feat(admin): 站点信息 + 注册开关可后台设置,模板动态渲染
新增 4 项可配置站点设置(DB持久化+内存缓存,即时生效): - site.brand 品牌名(页面标题/页脚/管理面板,默认 MetaLab) - site.framework 框架名(页脚标识,默认 MetaZone) - site.copyright_start 版权起始年(页脚,默认 2024) - registration.enabled 注册开关(关闭后禁止新用户注册,默认 true) 实现方式: - InjectSiteInfo 中间件:全局注入 Brand/Framework/CopyrightStart 到 gin.Context - BuildPageData 读取 context,所有 SSR 页面自动获取站点信息 - AuthService.Register 最先检查 IsRegistrationEnabled() - 管理后台新增「基本设置」+「注册设置」区块,文本输入手动保存 + Toggle 即时生效
This commit is contained in:
@ -4,7 +4,7 @@
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
{{if .CSRFToken}}<meta name="csrf-token" content="{{.CSRFToken}}">{{end}}
|
||||
<title>{{.Title}} - MetaLab 管理面板</title>
|
||||
<title>{{.Title}} - {{.Brand}} 管理面板</title>
|
||||
<link rel="stylesheet" href="/admin/static/css/common.css">
|
||||
{{if .ExtraCSS}}
|
||||
<link rel="stylesheet" href="{{.ExtraCSS}}">
|
||||
@ -13,7 +13,7 @@
|
||||
<body>
|
||||
<header class="admin-header">
|
||||
<div class="admin-header-inner">
|
||||
<a href="/admin" class="admin-logo">MetaLab <span>管理面板</span></a>
|
||||
<a href="/admin" class="admin-logo">{{.Brand}} <span>管理面板</span></a>
|
||||
<div class="admin-header-right">
|
||||
<span class="admin-user">{{.Username}}</span>
|
||||
<a href="/" class="admin-back-btn"><svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="14" height="14" style="vertical-align:-2px;margin-right:3px;"><path d="m3 9 9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><polyline points="9 22 9 12 15 12 15 22"/></svg>返回前台</a>
|
||||
|
||||
@ -1,7 +1,61 @@
|
||||
{{template "admin/layout/base.html" .}}
|
||||
<div class="page-header">
|
||||
<h1>站点设置</h1>
|
||||
<p class="page-desc">管理审核开关与站点全局配置</p>
|
||||
<p class="page-desc">管理站点基本配置、审核开关与注册策略</p>
|
||||
</div>
|
||||
|
||||
<!-- 基本设置 -->
|
||||
<div class="settings-section">
|
||||
<div class="section-title">基本设置</div>
|
||||
<div class="section-body">
|
||||
<div class="setting-item">
|
||||
<div class="setting-info">
|
||||
<span class="setting-label">品牌名称</span>
|
||||
<span class="setting-desc">显示在页面标题、页脚、管理面板中</span>
|
||||
</div>
|
||||
<div class="setting-input-wrap">
|
||||
<input type="text" id="setting-site-brand" class="setting-input" placeholder="MetaLab" value="{{.Brand}}">
|
||||
<button class="btn btn-sm btn-primary btn-save" data-key="site.brand" data-input="setting-site-brand">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<div class="setting-info">
|
||||
<span class="setting-label">框架名称</span>
|
||||
<span class="setting-desc">显示在页脚 Framework 标识中</span>
|
||||
</div>
|
||||
<div class="setting-input-wrap">
|
||||
<input type="text" id="setting-site-framework" class="setting-input" placeholder="MetaZone" value="{{.Framework}}">
|
||||
<button class="btn btn-sm btn-primary btn-save" data-key="site.framework" data-input="setting-site-framework">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="setting-item">
|
||||
<div class="setting-info">
|
||||
<span class="setting-label">版权起始年份</span>
|
||||
<span class="setting-desc">页脚版权标起始年(如 2024 → © 2024-当前年)</span>
|
||||
</div>
|
||||
<div class="setting-input-wrap">
|
||||
<input type="text" id="setting-site-copyright" class="setting-input" placeholder="2024" value="{{.CopyrightStart}}">
|
||||
<button class="btn btn-sm btn-primary btn-save" data-key="site.copyright_start" data-input="setting-site-copyright">保存</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 注册设置 -->
|
||||
<div class="settings-section">
|
||||
<div class="section-title">注册设置</div>
|
||||
<div class="section-body">
|
||||
<div class="setting-item">
|
||||
<div class="setting-info">
|
||||
<span class="setting-label">允许注册</span>
|
||||
<span class="setting-desc">关闭后,新用户将无法注册</span>
|
||||
</div>
|
||||
<label class="toggle-switch">
|
||||
<input type="checkbox" id="registration-enabled" data-key="registration.enabled">
|
||||
<span class="toggle-slider"></span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 审核设置 -->
|
||||
@ -56,7 +110,7 @@
|
||||
|
||||
<!-- 通用设置 -->
|
||||
<div class="settings-section">
|
||||
<div class="section-title">通用设置</div>
|
||||
<div class="section-title">其他设置</div>
|
||||
<div class="section-body" id="general-settings">
|
||||
<div class="settings-empty" id="settings-empty">加载中...</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user