ChestXpert / update_nav.py
31puneet's picture
Initial ChestXpert deployment
c8a3a1b
import os
import glob
nav_extension = """
<div class="nav-auth" id="nav-auth" style="display: none; align-items: center; gap: 0.5rem; margin-left: 1rem;">
<a href="/login" class="btn btn-outline" style="padding: 0.4rem 1rem;">Sign In</a>
<a href="/register" class="btn btn-primary" style="padding: 0.4rem 1rem;">Sign Up</a>
</div>
<div class="nav-profile" id="nav-profile" style="display: none; align-items: center; margin-left: 1rem; position: relative;">
<div class="profile-trigger" id="profile-trigger" style="cursor: pointer; display: flex; align-items: center; gap: 0.5rem;">
<img src="/static/default-avatar.svg" alt="Profile" style="width: 32px; height: 32px; border-radius: 50%; border: 2px solid var(--border-color); background: #f1f5f9;">
<span id="nav-user-name" style="font-weight: 500; font-size: 0.9rem;">User</span>
</div>
<div class="profile-dropdown" id="profile-dropdown" style="display: none; position: absolute; top: 120%; right: 0; background: white; border: 1px solid var(--border-color); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); min-width: 220px; z-index: 100;">
<div style="padding: 1rem; border-bottom: 1px solid var(--border-color);">
<strong id="dropdown-name" style="display: block; color: var(--text-dark); margin-bottom: 0.25rem;">User</strong>
<span id="dropdown-email" style="font-size: 0.8rem; color: var(--text-light); word-break: break-all;">user@example.com</span>
</div>
<div style="padding: 0.5rem;">
<a href="/history" style="display: block; padding: 0.5rem 1rem; color: var(--text-color); text-decoration: none; border-radius: 4px; font-size: 0.9rem; transition: background 0.2s;" onmouseover="this.style.background='var(--bg-light)'" onmouseout="this.style.background='transparent'">My Analyses</a>
<a href="#" style="display: block; padding: 0.5rem 1rem; color: var(--text-color); text-decoration: none; border-radius: 4px; font-size: 0.9rem; transition: background 0.2s;" onmouseover="this.style.background='var(--bg-light)'" onmouseout="this.style.background='transparent'">Account Settings</a>
<div style="height: 1px; background: var(--border-color); margin: 0.5rem 0;"></div>
<button id="logout-btn" style="display: block; width: 100%; text-align: left; padding: 0.5rem 1rem; color: #ef4444; border: none; background: transparent; cursor: pointer; border-radius: 4px; font-size: 0.9rem; transition: background 0.2s;" onmouseover="this.style.background='#fef2f2'" onmouseout="this.style.background='transparent'">Sign Out</button>
</div>
</div>
</div>"""
for f in glob.glob('templates/*.html'):
if 'login.html' in f or 'register.html' in f:
continue
with open(f, 'r', encoding='utf-8') as file:
content = file.read()
if 'id="nav-auth"' not in content:
content = content.replace('</div>\\n <div class="nav-status">', '</div>\\n' + nav_extension + '\\n <div class="nav-status">')
with open(f, 'w', encoding='utf-8') as file:
file.write(content)
print(f"Updated {f}")