63 lines
2.0 KiB
HTML
63 lines
2.0 KiB
HTML
{{define "admin/users.html"}}{{template "admin/layout" .}}{{end}}
|
|
{{define "admin_content_users"}}
|
|
<div class="admin-page-head">
|
|
<div>
|
|
<h1>用户管理</h1>
|
|
<p>禁言违规用户,共 {{.Total}} 位注册用户</p>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="admin-card">
|
|
<div class="table-responsive">
|
|
<table class="table admin-table mb-0">
|
|
<thead>
|
|
<tr><th>ID</th><th>用户名</th><th>昵称</th><th>角色</th><th>状态</th><th>注册时间</th><th width="120">操作</th></tr>
|
|
</thead>
|
|
<tbody>
|
|
{{range .Users}}
|
|
<tr>
|
|
<td>{{.ID}}</td>
|
|
<td>{{.Username}}</td>
|
|
<td>{{.Nickname}}</td>
|
|
<td>
|
|
{{if eq .Role "admin"}}
|
|
<span class="badge badge-admin">管理员</span>
|
|
{{else}}普通用户{{end}}
|
|
</td>
|
|
<td>
|
|
{{if .Banned}}<span class="badge badge-banned">已禁言</span>{{else}}<span class="text-success">正常</span>{{end}}
|
|
</td>
|
|
<td>{{.CreatedAt.Format "2006-01-02"}}</td>
|
|
<td>
|
|
{{if eq .Role "admin"}}
|
|
<span class="text-muted small">—</span>
|
|
{{else if .Banned}}
|
|
<button class="btn btn-sm btn-success" onclick="banUser({{.ID}}, false)">解除禁言</button>
|
|
{{else}}
|
|
<button class="btn btn-sm btn-outline-warning" onclick="banUser({{.ID}}, true)">禁言</button>
|
|
{{end}}
|
|
</td>
|
|
</tr>
|
|
{{else}}
|
|
<tr><td colspan="7" class="admin-empty">暂无用户</td></tr>
|
|
{{end}}
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
{{template "admin_pagination" .}}
|
|
</div>
|
|
{{end}}
|
|
|
|
{{define "admin_scripts_users"}}
|
|
<script>
|
|
function banUser(id, banned) {
|
|
var msg = banned ? '确定禁言该用户?禁言后无法登录和发帖。' : '确定解除该用户的禁言?';
|
|
adminConfirm(msg, function() {
|
|
postForm('/admin/api/users/' + id + '/ban', 'POST', { banned: banned ? 'true' : 'false' })
|
|
.then(function(d) { showToast(d.message); reloadSoon(); })
|
|
.catch(function(e) { showToast(e.message, 'danger'); });
|
|
});
|
|
}
|
|
</script>
|
|
{{end}}
|