feat: add Admin and Settings menu with collapsible submenus and placeholder pages
This commit is contained in:
@@ -2,6 +2,12 @@
|
|||||||
const API = '';
|
const API = '';
|
||||||
let currentChatId = null;
|
let currentChatId = null;
|
||||||
|
|
||||||
|
// Toggle collapsible nav sections (Admin, Settings)
|
||||||
|
function toggleNavSection(id) {
|
||||||
|
const el = document.getElementById(id);
|
||||||
|
if (el) el.style.display = el.style.display === 'none' ? 'block' : 'none';
|
||||||
|
}
|
||||||
|
|
||||||
// ============================================================
|
// ============================================================
|
||||||
// NAVIGATION
|
// NAVIGATION
|
||||||
// ============================================================
|
// ============================================================
|
||||||
|
|||||||
@@ -22,6 +22,25 @@
|
|||||||
<li><a href="#" class="nav-link" data-page="batches">Batches</a></li>
|
<li><a href="#" class="nav-link" data-page="batches">Batches</a></li>
|
||||||
<li><a href="#" class="nav-link" data-page="generated">Generated CVs</a></li>
|
<li><a href="#" class="nav-link" data-page="generated">Generated CVs</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<ul class="nav" style="margin-top:auto">
|
||||||
|
<li class="nav-section">
|
||||||
|
<a href="#" class="nav-section-title" onclick="toggleNavSection('admin-section')">Admin ▾</a>
|
||||||
|
<ul class="nav-sub" id="admin-section">
|
||||||
|
<li><a href="#" class="nav-link" data-page="admin-users">Users</a></li>
|
||||||
|
<li><a href="#" class="nav-link" data-page="admin-health">System Health</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li class="nav-section">
|
||||||
|
<a href="#" class="nav-section-title" onclick="toggleNavSection('settings-section')">Settings ▾</a>
|
||||||
|
<ul class="nav-sub" id="settings-section">
|
||||||
|
<li><a href="#" class="nav-link" data-page="settings-ai">AI Provider</a></li>
|
||||||
|
<li><a href="#" class="nav-link" data-page="settings-appearance">Appearance</a></li>
|
||||||
|
<li><a href="#" class="nav-link" data-page="settings-branding">Branding</a></li>
|
||||||
|
<li><a href="#" class="nav-link" data-page="settings-onlyoffice">ONLYOFFICE</a></li>
|
||||||
|
<li><a href="#" class="nav-link" data-page="settings-notifications">Notifications</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
|
|
||||||
<!-- Main content -->
|
<!-- Main content -->
|
||||||
@@ -121,6 +140,48 @@
|
|||||||
<h2 style="margin-bottom:20px">Generated CVs</h2>
|
<h2 style="margin-bottom:20px">Generated CVs</h2>
|
||||||
<div id="generated-list"></div>
|
<div id="generated-list"></div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<!-- ADMIN: USERS -->
|
||||||
|
<div id="page-admin-users" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">Users</h2>
|
||||||
|
<div class="card"><p class="text-muted">User management with role-based access control — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- ADMIN: SYSTEM HEALTH -->
|
||||||
|
<div id="page-admin-health" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">System Health</h2>
|
||||||
|
<div class="card"><p class="text-muted">Service status dashboard — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SETTINGS: AI PROVIDER -->
|
||||||
|
<div id="page-settings-ai" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">AI Provider</h2>
|
||||||
|
<div class="card"><p class="text-muted">Configure AI provider, model, and API key — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SETTINGS: APPEARANCE -->
|
||||||
|
<div id="page-settings-appearance" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">Appearance</h2>
|
||||||
|
<div class="card"><p class="text-muted">Theme and display settings — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SETTINGS: BRANDING -->
|
||||||
|
<div id="page-settings-branding" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">Branding</h2>
|
||||||
|
<div class="card"><p class="text-muted">Company name, logo, and header text — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SETTINGS: ONLYOFFICE -->
|
||||||
|
<div id="page-settings-onlyoffice" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">ONLYOFFICE</h2>
|
||||||
|
<div class="card"><p class="text-muted">ONLYOFFICE connection URL and JWT secret — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- SETTINGS: NOTIFICATIONS -->
|
||||||
|
<div id="page-settings-notifications" class="page">
|
||||||
|
<h2 style="margin-bottom:20px">Notifications</h2>
|
||||||
|
<div class="card"><p class="text-muted">Email notification settings — coming soon.</p></div>
|
||||||
|
</div>
|
||||||
</main>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -140,7 +201,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<script src="/static/app.js?v=18"></script>
|
<script src="/static/app.js?v=19"></script>
|
||||||
<script src="/static/carbone.js?v=16"></script>
|
<script src="/static/carbone.js?v=16"></script>
|
||||||
<script src="/static/batches.js?v=2"></script>
|
<script src="/static/batches.js?v=2"></script>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -74,6 +74,20 @@ a:hover { text-decoration: underline; }
|
|||||||
color: var(--accent);
|
color: var(--accent);
|
||||||
border-left-color: var(--accent);
|
border-left-color: var(--accent);
|
||||||
}
|
}
|
||||||
|
.nav-section-title {
|
||||||
|
display: block;
|
||||||
|
padding: 10px 20px;
|
||||||
|
color: var(--text-muted);
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: 600;
|
||||||
|
text-transform: uppercase;
|
||||||
|
letter-spacing: 0.5px;
|
||||||
|
cursor: pointer;
|
||||||
|
border-left: 3px solid transparent;
|
||||||
|
}
|
||||||
|
.nav-section-title:hover { color: var(--text); text-decoration: none; }
|
||||||
|
.nav-sub { list-style: none; padding: 0; margin: 0; }
|
||||||
|
.nav-sub li a { font-size: 13px; padding: 7px 20px 7px 32px; }
|
||||||
.main {
|
.main {
|
||||||
flex: 1;
|
flex: 1;
|
||||||
padding: 24px 32px;
|
padding: 24px 32px;
|
||||||
|
|||||||
Reference in New Issue
Block a user