diff options
Diffstat (limited to 'internal/web/templates')
| -rw-r--r-- | internal/web/templates/blog/gallery.html | 9 | ||||
| -rw-r--r-- | internal/web/templates/dashboard/overview.html | 2 | ||||
| -rw-r--r-- | internal/web/templates/dashboard/page_form.html | 15 | ||||
| -rw-r--r-- | internal/web/templates/dashboard/pages.html | 6 | ||||
| -rw-r--r-- | internal/web/templates/dashboard/post_form.html | 2 | ||||
| -rw-r--r-- | internal/web/templates/dashboard/posts.html | 2 |
6 files changed, 28 insertions, 8 deletions
diff --git a/internal/web/templates/blog/gallery.html b/internal/web/templates/blog/gallery.html new file mode 100644 index 0000000..4dbde13 --- /dev/null +++ b/internal/web/templates/blog/gallery.html @@ -0,0 +1,9 @@ +{{define "title"}}{{if not .Data.page.IsHome}}{{.Data.page.Title}} · {{end}}{{.Blog.Title}}{{end}} +{{define "content"}} +{{if not .Data.page.IsHome}}<h1 class="page-title">{{.Data.page.Title}}</h1>{{end}} +{{if .Data.page.IntroHTML}}<div class="intro">{{html .Data.page.IntroHTML}}</div>{{end}} +{{if .Data.images}}<div class="gallery">{{range .Data.images}} + <a href="/media/{{.ID}}"><img src="/media/{{.ID}}" alt="{{.Filename}}" loading="lazy"></a>{{end}} +</div>{{else if not (or .Data.page.IntroHTML .Data.page.OutroHTML)}}<p class="muted">{{t "Nothing here yet."}}</p>{{end}} +{{if .Data.page.OutroHTML}}<div class="outro">{{html .Data.page.OutroHTML}}</div>{{end}} +{{end}} diff --git a/internal/web/templates/dashboard/overview.html b/internal/web/templates/dashboard/overview.html index e239445..2a797d8 100644 --- a/internal/web/templates/dashboard/overview.html +++ b/internal/web/templates/dashboard/overview.html @@ -12,7 +12,7 @@ <div class="card"> <h2>{{t "Pages"}}</h2> <ul class="plain"> - {{range .Data.pages}}<li><a href="/b/{{$.Blog.Subdomain}}/posts?page={{.ID}}">{{.Title}}</a> <span class="muted">({{tf "%d posts" .PostCount}}{{if .IsHome}}, {{t "home"}}{{end}}{{if not .ShowInNav}}, {{t "hidden from menu"}}{{end}})</span></li>{{end}} + {{range .Data.pages}}<li><a href="{{if .Special}}/b/{{$.Blog.Subdomain}}/pages/{{.ID}}/edit{{else}}/b/{{$.Blog.Subdomain}}/posts?page={{.ID}}{{end}}">{{.Title}}</a> <span class="muted">({{if .Special}}{{t .Kind}}{{else}}{{tf "%d posts" .PostCount}}{{end}}{{if .IsHome}}, {{t "home"}}{{end}}{{if not .ShowInNav}}, {{t "hidden from menu"}}{{end}})</span></li>{{end}} </ul> </div> </div> diff --git a/internal/web/templates/dashboard/page_form.html b/internal/web/templates/dashboard/page_form.html index 4ee720b..5b47d05 100644 --- a/internal/web/templates/dashboard/page_form.html +++ b/internal/web/templates/dashboard/page_form.html @@ -1,9 +1,12 @@ -{{define "title"}}{{if .Data.page.ID}}{{t "Edit page"}}{{else}}{{t "New page"}}{{end}} · {{.Blog.Title}}{{end}} +{{define "title"}}{{template "pageformtitle" .}} · {{.Blog.Title}}{{end}} +{{define "pageformtitle"}}{{if eq .Data.page.Kind "gallery"}}{{if .Data.page.ID}}{{t "Edit gallery page"}}{{else}}{{t "New gallery page"}}{{end}}{{else}}{{if .Data.page.ID}}{{t "Edit page"}}{{else}}{{t "New page"}}{{end}}{{end}}{{end}} {{define "content"}} <div class="card"> - <h1>{{if .Data.page.ID}}{{t "Edit page"}}{{else}}{{t "New page"}}{{end}}</h1> + <h1>{{template "pageformtitle" .}}</h1> + {{if eq .Data.page.Kind "gallery"}}<p class="lead muted">{{t "A gallery page shows every image in your files as a wall of pictures, newest first, between its intro and closing text."}}</p>{{end}} <form method="post" enctype="multipart/form-data"> <input type="hidden" name="_csrf" value="{{.CSRF}}"> + {{if not .Data.page.ID}}<input type="hidden" name="kind" value="{{.Data.page.Kind}}">{{end}} <label>{{t "Title"}}<br><input name="title" value="{{.Data.page.Title}}" required maxlength="120"></label> <label>{{t "Address"}} <span class="muted">({{t "leave empty to make one from the title; e.g."}} <code>about</code> → {{.BlogURL}}/about)</span><br> <input name="slug" value="{{.Data.page.Slug}}" pattern="[a-z0-9]([a-z0-9-]*[a-z0-9])?" maxlength="80"></label> @@ -11,6 +14,14 @@ {{template "editor" (dict "name" "intro" "value" .Data.page.IntroMD "format" .Data.page.Format "rows" 8 "tall" false "upload" (print "/b/" .Blog.Subdomain "/files/upload") "preview" (print "/b/" .Blog.Subdomain "/preview") "csrf" .CSRF)}} <label for="ed-outro">{{t "Closing text"}} <span class="muted">({{t "shown after the posts, in the same format; optional"}})</span></label> {{template "editor" (dict "name" "outro" "value" .Data.page.OutroMD "format" .Data.page.Format "formatof" "intro" "rows" 8 "tall" false "upload" (print "/b/" .Blog.Subdomain "/files/upload") "preview" (print "/b/" .Blog.Subdomain "/preview") "csrf" .CSRF)}} + {{if eq .Data.page.Kind "gallery"}} + <h2>{{t "Images"}}</h2> + <p class="muted small">{{t "Every image in your files is shown except the ones ticked here. The logo, favicon, header and background images are never shown."}}</p> + {{if .Data.images}}<div class="imagegrid hidegrid"> + {{range .Data.images}}<label class="pick"><img src="/b/{{$.Blog.Subdomain}}/media/{{.ID}}" alt="" loading="lazy"><span class="name" title="{{.Filename}}">{{.Filename}}</span><span class="hide"><input type="checkbox" name="hide" value="{{.ID}}"{{if index $.Data.hidden .ID.String}} checked{{end}}> {{t "Hide"}}</span></label>{{end}} + </div> + {{else}}<p class="muted">{{t "No images in your files yet."}} <a href="/b/{{.Blog.Subdomain}}/files">{{t "Files"}}</a></p>{{end}} + {{end}} <label class="check"><input type="checkbox" name="show_in_nav"{{if .Data.page.ShowInNav}} checked{{end}}> {{t "Show in menu"}}</label> <label class="check"><input type="checkbox" name="show_notices"{{if .Data.page.ShowNotices}} checked{{end}}> {{t "Show announcements on this page"}}</label> <p class="actionrow"> diff --git a/internal/web/templates/dashboard/pages.html b/internal/web/templates/dashboard/pages.html index 6c3b56d..af3bb5e 100644 --- a/internal/web/templates/dashboard/pages.html +++ b/internal/web/templates/dashboard/pages.html @@ -2,7 +2,7 @@ {{define "content"}} <div class="pagehead"> <h1>{{t "Pages"}}</h1> - <div class="actions"><a class="btn" href="/b/{{.Blog.Subdomain}}/pages/new">+ {{t "New page"}}</a></div> + <div class="actions"><a class="btn" href="/b/{{.Blog.Subdomain}}/pages/new">+ {{t "New page"}}</a> <a class="btn secondary" href="/b/{{.Blog.Subdomain}}/pages/new?kind=gallery" title="{{t "A gallery of every image in your files"}}">+ {{t "New special page"}}</a></div> <p class="lead muted">{{t "Each page holds its own list of posts. Which pages are in the menu, and in what order, is set on the"}} <a href="/b/{{.Blog.Subdomain}}/design#menu">{{t "Design"}}</a> {{t "tab."}}</p> </div> <div class="card"> @@ -14,9 +14,9 @@ <form method="post" action="/b/{{$.Blog.Subdomain}}/pages/{{.ID}}/move" class="inline"><input type="hidden" name="_csrf" value="{{$.CSRF}}"><input type="hidden" name="dir" value="down"><button class="mini" title="{{t "Move down"}}">▼</button></form> </td> <td><a href="/b/{{$.Blog.Subdomain}}/pages/{{.ID}}/edit">{{.Title}}</a> - {{if .IsHome}}<span class="tag">{{t "home"}}</span>{{end}}{{if not .ShowInNav}}<span class="tag off">{{t "not in menu"}}</span>{{end}}</td> + {{if .Special}}<span class="tag">{{t .Kind}}</span>{{end}}{{if .IsHome}}<span class="tag">{{t "home"}}</span>{{end}}{{if not .ShowInNav}}<span class="tag off">{{t "not in menu"}}</span>{{end}}</td> <td><a href="{{$.BlogURL}}{{if .IsHome}}/{{else}}/{{.Slug}}{{end}}" target="_blank">{{if .IsHome}}/{{else}}/{{.Slug}}{{end}} ↗</a></td> - <td><a href="/b/{{$.Blog.Subdomain}}/posts?page={{.ID}}">{{.PostCount}}</a></td> + <td>{{if .Special}}<span class="muted">—</span>{{else}}<a href="/b/{{$.Blog.Subdomain}}/posts?page={{.ID}}">{{.PostCount}}</a>{{end}}</td> <td class="nowrap"> {{if not .IsHome}}<form method="post" action="/b/{{$.Blog.Subdomain}}/pages/{{.ID}}/home" class="inline"><input type="hidden" name="_csrf" value="{{$.CSRF}}"><button class="mini">{{t "Make home"}}</button></form> <a class="danger" href="/b/{{$.Blog.Subdomain}}/pages/{{.ID}}/delete">{{t "delete"}}</a>{{end}} diff --git a/internal/web/templates/dashboard/post_form.html b/internal/web/templates/dashboard/post_form.html index e64a331..edb60fd 100644 --- a/internal/web/templates/dashboard/post_form.html +++ b/internal/web/templates/dashboard/post_form.html @@ -7,7 +7,7 @@ <label>{{t "Title"}}<br><input name="title" value="{{.Data.post.Title}}" required maxlength="200" autofocus></label> <div class="row"> <label>{{t "Page"}}<br> - <select name="page_id">{{range .Data.pages}}<option value="{{.ID}}"{{if eq .ID $.Data.post.PageID}} selected{{end}}>{{.Title}}</option>{{end}}</select> + <select name="page_id">{{range .Data.pages}}{{if not .Special}}<option value="{{.ID}}"{{if eq .ID $.Data.post.PageID}} selected{{end}}>{{.Title}}</option>{{end}}{{end}}</select> </label> <label>{{t "Address"}} <span class="muted">({{t "optional, made from the title"}})</span><br> <input name="slug" value="{{.Data.post.Slug}}" pattern="[a-z0-9]([a-z0-9-]*[a-z0-9])?" maxlength="80"></label> diff --git a/internal/web/templates/dashboard/posts.html b/internal/web/templates/dashboard/posts.html index 983fbae..217c966 100644 --- a/internal/web/templates/dashboard/posts.html +++ b/internal/web/templates/dashboard/posts.html @@ -8,7 +8,7 @@ <label>{{t "Page:"}} <select name="page" onchange="this.form.submit()"> <option value="0">{{t "All pages"}}</option> - {{range .Data.pages}}<option value="{{.ID}}"{{if eq .ID $.Data.pageID}} selected{{end}}>{{.Title}}</option>{{end}} + {{range .Data.pages}}{{if not .Special}}<option value="{{.ID}}"{{if eq .ID $.Data.pageID}} selected{{end}}>{{.Title}}</option>{{end}}{{end}} </select></label> <noscript><button type="submit">{{t "Filter"}}</button></noscript> </form> |
