cdnV2

git clone https://github.com/notamitgamer/cdnV2.git
· rebuilt hourlyOpen on GitHub
commit d7bd96f9b06330edcbeabadf68e28afc70251df3
parent e1e7c17a8e9887ac86bba414f2194fd34e4bca76
Author: claude-bot <noreply@anthropic.com>
Date:   Sat, 10 Oct 2026 00:10:58 +0000

Navbar: add an Admin shield button linking to /admin (icon-only on desktop, labelled in the phone menu)

Diffstat:
Mapp/templates/_navbar.html | 5+++++
1 file changed, 5 insertions(+), 0 deletions(-)

diff --git a/app/templates/_navbar.html b/app/templates/_navbar.html @@ -21,6 +21,8 @@ } .navlinks a svg { flex-shrink: 0; } .navlinks a:hover { color: var(--ui-text); background: var(--ui-surface); } +.navlinks a.nav-admin { padding: 0.4rem 0.5rem; margin-left: 0.25rem; border: 1px solid var(--ui-border); } +.navlinks a.nav-admin span { display: none; } .navlinks a.active { color: var(--ui-accent); background: var(--ui-accent-bg); font-weight: 500; } .nav-toggle { display: none; align-items: center; justify-content: center; @@ -38,6 +40,8 @@ .navlinks { display: none; flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0.15rem; padding-top: 0.5rem; } .navlinks.open { display: flex; } .navlinks a { padding: 0.65rem 0.75rem; font-size: 1rem; } + .navlinks a.nav-admin { padding: 0.65rem 0.75rem; margin-left: 0; border: 0; } + .navlinks a.nav-admin span { display: inline; } } .breadcrumb-container { max-width: var(--ui-width); margin: 0 auto; padding: 0 1rem 0.75rem; } .breadcrumb { @@ -76,6 +80,7 @@ <a href="/stats" class="{{ 'active' if page == 'stats' }}"{{ ' aria-current="page"'|safe if page == 'stats' }}><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><line x1="6" y1="20" x2="6" y2="12"/><line x1="12" y1="20" x2="12" y2="4"/><line x1="18" y1="20" x2="18" y2="9"/></svg><span>Stats</span></a> <a href="/gh-sync" class="{{ 'active' if page == 'gh-sync' }}"{{ ' aria-current="page"'|safe if page == 'gh-sync' }}><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/></svg><span>Sync</span></a> <a href="/documentation" class="{{ 'active' if page == 'documentation' }}"{{ ' aria-current="page"'|safe if page == 'documentation' }}><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"/><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"/></svg><span>Docs</span></a> + <a href="/admin" class="nav-admin" title="Admin" aria-label="Admin"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"><path d="M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"/></svg><span>Admin</span></a> </nav> </header> {% if not (page == 'listing' and not path) %}