38 lines
2.0 KiB
HTML
38 lines
2.0 KiB
HTML
{{/*
|
||
共享片段:所有后台页面通用的顶部导航与翻页器。
|
||
|
||
由 templates.go 在启动时与 layout.html 一起解析进「基模板」,各页面模板只需
|
||
{{template "bar" .}} / {{template "pager" .Pager}} 引用,改一处即全局生效
|
||
—— 这也是把导航从 14 份复制粘贴里提出来、补全模块入口的原因。
|
||
|
||
页面需要提供的数据:
|
||
.NavKey 由 renderPage 自动注入(= 当前页面名),用于导航高亮
|
||
.PendingReviews 由 backstageNavStats 中间件注入(待审总数,导航角标)
|
||
barLabel/barRight 两个 define 由各页面模板自己提供(见 pages/*.html)
|
||
*/}}
|
||
|
||
{{define "bar"}}
|
||
<div class="bar">
|
||
<span class="bar-title">{{template "barLabel" .}}</span>
|
||
<nav class="bar-nav">
|
||
<a href="/admin/" class="{{if eq .NavKey "dashboard"}}on{{end}}">首页</a>
|
||
<a href="/admin/reviews" class="{{if or (eq .NavKey "review-list") (eq .NavKey "review-detail")}}on{{end}}">审核{{if gt .PendingReviews 0}}<span class="bar-badge">{{.PendingReviews}}</span>{{end}}</a>
|
||
<a href="/admin/runways" class="{{if or (eq .NavKey "runways") (eq .NavKey "runway-detail") (eq .NavKey "runway-edit")}}on{{end}}">走秀</a>
|
||
<a href="/admin/street-snaps" class="{{if or (eq .NavKey "street-snaps") (eq .NavKey "street-snap-detail") (eq .NavKey "snap-edit")}}on{{end}}">街拍</a>
|
||
<a href="/admin/brands" class="{{if or (eq .NavKey "brands") (eq .NavKey "brand-form")}}on{{end}}">品牌</a>
|
||
<a href="/admin/ingest-jobs" class="{{if eq .NavKey "ingest-jobs"}}on{{end}}">入库任务</a>
|
||
<a href="/admin/users" class="{{if eq .NavKey "users"}}on{{end}}">用户</a>
|
||
<span class="sep"></span>
|
||
{{template "barRight" .}}
|
||
</nav>
|
||
</div>
|
||
{{end}}
|
||
|
||
{{define "pager"}}
|
||
<div class="pager">
|
||
{{if .HasPrev}}<a href="{{.PrevURL}}">上一页</a>{{else}}<a class="off">上一页</a>{{end}}
|
||
{{if .Label}}<span class="muted">{{.Label}}</span>{{end}}
|
||
{{if .HasNext}}<a href="{{.NextURL}}">下一页</a>{{else}}<a class="off">下一页</a>{{end}}
|
||
</div>
|
||
{{end}}
|