Task checkboxes post themselves (hx-post="?toggle=N") and flip back when the save fails, replacing tasks.js. View settings are a server-rendered form dialog with real radios and a select, replacing view-settings.js; with that, postReplace has no callers left. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
59 lines
2.8 KiB
HTML
59 lines
2.8 KiB
HTML
{{define "headScripts"}}<script src="{{asset "page/actions.js"}}"></script>{{end}}
|
|
|
|
{{define "headerActions"}}{{if .CanEdit}}
|
|
<button class="btn btn-block" onclick="newPage()" title="New page (N)"><span class="btn-icon">{{icon "new"}}</span><span class="btn-label">NEW</span></button>
|
|
<button class="btn btn-block" data-companion-reveal hidden title="Reveal in file manager"><span class="btn-icon">{{icon "reveal"}}</span><span class="btn-label">REVEAL</span></button>
|
|
{{if not .IsRoot}}
|
|
<button class="btn btn-block" onclick="movePage()" title="Move page (M)"><span class="btn-icon">{{icon "move"}}</span><span class="btn-label">MOVE</span></button>
|
|
<button class="btn btn-block danger" hx-get="?dialog=delete" hx-target="#modal-host" title="Delete page"><span class="btn-icon">{{icon "delete"}}</span><span class="btn-label">DELETE</span></button>
|
|
{{end}}
|
|
<a class="btn btn-block" href="?edit" title="Edit page (E)"><span class="btn-icon">{{icon "edit"}}</span><span class="btn-label">EDIT</span></a>
|
|
{{end}}{{end}}
|
|
|
|
{{define "content"}}
|
|
{{if .Content}}
|
|
<div class="content">{{.Content}}</div>
|
|
{{end}}
|
|
{{if .SpecialContent}}
|
|
<div class="content">{{.SpecialContent}}</div>
|
|
{{end}}
|
|
{{if not (or .Content .SpecialContent)}}
|
|
<p class="empty">{{if .Entries}}No page{{else}}Empty folder{{end}} — <a href="?edit">[CREATE]</a></p>
|
|
{{end}}
|
|
{{if .Entries}}
|
|
<h2 id="files">Files <button class="btn btn-small" data-companion-reveal hidden title="Open folder in file manager">open</button>{{if .CanEdit}} <button class="btn btn-small" hx-get="?dialog=view" hx-target="#modal-host" title="View & sorting">view</button>{{end}}</h2>
|
|
{{if eq .View "thumbnail"}}
|
|
<div class="thumb-grid">
|
|
{{range .Entries}}
|
|
<a class="thumb-tile" href="{{.URL}}" title="{{.Name}}">
|
|
{{if .ThumbURL}}<span class="thumb-media"><img class="thumb-img" src="{{.ThumbURL}}" alt="" loading="lazy" width="300">{{if .IsVideo}}<span class="thumb-play" aria-hidden="true">▶</span>{{end}}</span>{{else}}<span class="thumb-icon">{{.Icon}}</span>{{end}}
|
|
<span class="thumb-label truncate">{{.Name}}</span>
|
|
</a>
|
|
{{end}}
|
|
</div>
|
|
{{else}}
|
|
<table class="data-table panel">
|
|
<tbody>
|
|
{{range .Entries}}
|
|
<tr class="list-item" data-path="{{.URL}}">
|
|
<td class="icon">{{.Icon}}</td>
|
|
<td class="name"><a href="{{.URL}}">{{.Name}}</a></td>
|
|
<td class="meta">{{.Meta}}</td>
|
|
</tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
{{end}}
|
|
{{end}}
|
|
{{if or .Content .SpecialContent}}
|
|
<script src="{{asset "page/content.js"}}"></script>
|
|
{{if not .SuppressTOC}}<script src="{{asset "page/toc.js"}}"></script>{{end}}
|
|
{{end}}
|
|
{{if .Content}}
|
|
<script src="{{asset "page/sections.js"}}"></script>
|
|
{{end}}
|
|
<script src="{{asset "page/contents.js"}}"></script>
|
|
{{end}}
|
|
|
|
{{define "aside"}}{{if .SidebarWidget}}<aside class="sidebar">{{.SidebarWidget}}</aside>{{end}}{{end}}
|