Lumi/src/web/views/admin-settings.ejs
2026-05-30 20:37:42 +02:00

107 lines
4.1 KiB
Plaintext

<%- include("partials/layout-top", { title }) %>
<section class="card">
<h1>Settings</h1>
<form method="post" action="/admin/settings" class="form-grid">
<div class="field">
<label>Site title</label>
<input name="site_title" value="<%= settings.site_title || '' %>" />
</div>
<div class="field">
<label>Command prefix</label>
<input name="command_prefix" value="<%= settings.command_prefix || '!' %>" />
</div>
<div class="field">
<label>Auto update enabled</label>
<label class="switch">
<input
type="checkbox"
class="switch-input"
name="auto_update_enabled"
<%= settings.auto_update_enabled ? 'checked' : '' %>
/>
<span class="switch-track" aria-hidden="true"></span>
<span class="switch-text"><%= settings.auto_update_enabled ? 'Enabled' : 'Disabled' %></span>
</label>
</div>
<div class="field">
<label>Auto update interval (minutes)</label>
<input name="auto_update_interval_minutes" value="<%= settings.auto_update_interval_minutes || 60 %>" />
</div>
<div class="field">
<label>Git remote</label>
<input name="git_remote" value="<%= settings.git_remote || 'origin' %>" />
</div>
<div class="field">
<label>Git branch</label>
<input name="git_branch" value="<%= settings.git_branch || 'main' %>" />
</div>
<div class="field full">
<h2>Platform Integration</h2>
<p class="hint">Enable or disable platform adapters and run the setup wizards.</p>
<div class="platform-grid">
<% (platforms || []).forEach((platform) => { %>
<div class="platform-card">
<div class="platform-card-header">
<strong><%= platform.label %></strong>
<% if (!platform.supported) { %>
<span class="level-pill">Coming soon</span>
<% } %>
</div>
<label class="platform-toggle-row switch">
<input
type="checkbox"
class="switch-input"
name="<%= platform.enabledKey %>"
<%= platform.enabled ? 'checked' : '' %>
<%= platform.supported ? '' : 'disabled' %>
/>
<span class="switch-track" aria-hidden="true"></span>
<span class="switch-text"><%= platform.enabled ? 'Enabled' : 'Disabled' %></span>
</label>
<% if (platform.supported) { %>
<div class="platform-meta">
<a class="link" href="<%= platform.wizardPath %>">Open wizard</a>
<span class="hint"><%= platform.configured ? 'Configured' : 'Not configured' %></span>
</div>
<% } else { %>
<p class="hint">Support planned for a future update.</p>
<% } %>
</div>
<% }) %>
</div>
</div>
<button type="submit" class="button">Save settings</button>
</form>
</section>
<section class="card">
<h2>Navigation icons</h2>
<p class="hint">Upload SVG or PNG icons for sidebar sublinks.</p>
<div class="nav-icon-grid">
<% (navIconItems || []).forEach((item) => { %>
<div class="nav-icon-row">
<div class="nav-icon-info">
<img class="nav-icon-preview" src="<%= item.icon %>" alt="" />
<div>
<strong><%= item.label %></strong>
<div class="hint"><%= item.path %></div>
</div>
</div>
<div class="nav-icon-actions">
<form method="post" action="/admin/settings/nav-icons" enctype="multipart/form-data" class="inline-form">
<input type="hidden" name="item_id" value="<%= item.id %>" />
<input type="file" name="icon_file" accept="image/svg+xml,image/png" />
<button type="submit" class="button subtle">Upload</button>
</form>
<form method="post" action="/admin/settings/nav-icons/reset" class="inline-form">
<input type="hidden" name="item_id" value="<%= item.id %>" />
<button type="submit" class="button subtle">Reset</button>
</form>
</div>
</div>
<% }) %>
</div>
</section>
<%- include("partials/layout-bottom") %>