refactor: replace sidebar user footer with topbar dropdown menu

This commit is contained in:
2026-06-14 09:26:52 -04:00
parent b7bd4bfe92
commit 74cf9739d6
3 changed files with 94 additions and 37 deletions

View File

@@ -120,22 +120,7 @@ if (!isset($user) || $user === null) {
</a>
</nav>
<div class="sidebar-footer">
<div class="user-info">
<div class="user-avatar"><?= strtoupper(substr($user['username'] ?? '?', 0, 2)) ?></div>
<div class="user-details">
<span class="user-name"><?= htmlspecialchars($user['username'] ?? 'Guest') ?></span>
<span class="user-role"><?= htmlspecialchars(ucfirst(str_replace('_', ' ', $user['role'] ?? 'guest'))) ?></span>
</div>
<div class="user-menu">
<a href="/profile" title="Profile"><i class="fas fa-user-cog"></i></a>
<form method="POST" action="/logout" class="logout-form" style="display:inline">
<input type="hidden" name="_csrf_token" value="<?= $this->csrfToken() ?>">
<button type="submit" title="Logout" style="background:none;border:none;color:inherit;cursor:pointer;padding:0;font:inherit;line-height:1"><i class="fas fa-sign-out-alt"></i></button>
</form>
</div>
</div>
</div>
</aside>
<!-- Main Content -->
@@ -171,10 +156,34 @@ if (!isset($user) || $user === null) {
</div>
</div>
</div>
<span class="topbar-user">
<i class="fas fa-user-circle"></i>
<?= htmlspecialchars($user['username'] ?? 'Guest') ?>
</span>
<div class="dropdown topbar-user-dropdown">
<button class="topbar-user" onclick="toggleUserMenu(event)">
<i class="fas fa-user-circle"></i>
<?= htmlspecialchars($user['username'] ?? 'Guest') ?>
<i class="fas fa-chevron-down" style="font-size:0.7rem;margin-left:4px"></i>
</button>
<div class="dropdown-menu dropdown-menu-right" id="userMenu">
<div class="dropdown-header">
<strong><?= htmlspecialchars($user['username'] ?? 'Guest') ?></strong>
<small><?= htmlspecialchars(ucfirst(str_replace('_', ' ', $user['role'] ?? 'guest'))) ?></small>
</div>
<div class="dropdown-divider"></div>
<a href="/profile" class="dropdown-item"><i class="fas fa-user-cog"></i> My Account</a>
<a href="/notifications" class="dropdown-item"><i class="fas fa-bell"></i> Notifications</a>
<?php if (is_admin() || is_super_admin()): ?>
<div class="dropdown-divider"></div>
<a href="/admin/audit" class="dropdown-item"><i class="fas fa-history"></i> Audit Log</a>
<a href="/admin" class="dropdown-item"><i class="fas fa-cog"></i> Administration</a>
<?php endif; ?>
<div class="dropdown-divider"></div>
<form method="POST" action="/logout" style="padding:0;margin:0">
<input type="hidden" name="_csrf_token" value="<?= $this->csrfToken() ?>">
<button type="submit" class="dropdown-item" style="width:100%;text-align:left;border:none;background:none;cursor:pointer;font:inherit">
<i class="fas fa-sign-out-alt"></i> Log out
</button>
</form>
</div>
</div>
</div>
</header>