53 lines
2.0 KiB
HTML
53 lines
2.0 KiB
HTML
{{define "footer"}}
|
||
</main>
|
||
|
||
{{/* 底部状态条:三段式布局的第三段,六个主列表都有。
|
||
Pagination 是可选的(只有做了分页的页面才传),
|
||
没做分页的页面不受影响,见 docs/admin/05-ui-specification.md §3.2。
|
||
|
||
`[必须]` 每个链接的 href 必须整体来自 .Pagination.XxxURL 这一个 pipeline,
|
||
不要在这里把筛选参数和 page 分开拼接(比如 "?{{.BaseQuery}}&page=...")——
|
||
html/template 会把夹在字面量 & 中间的动态内容当成单个参数值整体转义,
|
||
? 和 = 变成 %3F/%3D,链接直接失效。已经在 service.NewPaginationView
|
||
里把完整链接拼好,这里只管原样输出。 */}}
|
||
<footer class="statusbar">
|
||
<span>{{.Status}}</span>
|
||
{{if .Pagination}}
|
||
<nav class="pagination" aria-label="分页">
|
||
<form method="get" class="page-size-form" data-page-size-form>
|
||
{{range .Pagination.FilterFields}}
|
||
<input type="hidden" name="{{.Name}}" value="{{.Value}}">
|
||
{{end}}
|
||
<label>每页
|
||
<select name="page_size" data-page-size-select>
|
||
{{range .Pagination.PageSizeOptions}}
|
||
<option value="{{.Value}}"{{if .Selected}} selected{{end}}>{{.Value}} 条</option>
|
||
{{end}}
|
||
</select>
|
||
</label>
|
||
<span class="page-size-loading" data-page-size-loading role="status" hidden>加载中…</span>
|
||
</form>
|
||
{{if .Pagination.HasPrev}}
|
||
<a href="{{.Pagination.FirstURL}}">首页</a>
|
||
<a href="{{.Pagination.PrevURL}}">上一页</a>
|
||
{{else}}
|
||
<span class="disabled">首页</span>
|
||
<span class="disabled">上一页</span>
|
||
{{end}}
|
||
{{if .Pagination.HasNext}}
|
||
<a href="{{.Pagination.NextURL}}">下一页</a>
|
||
<a href="{{.Pagination.LastURL}}">末页</a>
|
||
{{else}}
|
||
<span class="disabled">下一页</span>
|
||
<span class="disabled">末页</span>
|
||
{{end}}
|
||
</nav>
|
||
{{end}}
|
||
</footer>
|
||
|
||
<script src="/static/js/app.js"></script>
|
||
{{if .PageScript}}<script src="{{.PageScript}}"></script>{{end}}
|
||
</body>
|
||
</html>
|
||
{{end}}
|