Files
ltbxd-actorle/templates/_navbar.html.twig
thibaud-leclere c35e239450 various fixes
2026-03-30 20:12:10 +02:00

85 lines
4.0 KiB
Twig

{% if app.user %}
<div data-controller="import-modal">
<nav class="navbar" data-controller="notifications">
<div class="navbar-left">
<a href="{{ path('app_homepage') }}" class="navbar-brand">Actorle</a>
</div>
<div class="navbar-right">
{# Gitea repo #}
<a href="https://git.lclr.dev/thibaud-lclr/ltbxd-actorle" class="navbar-icon" target="_blank" rel="noopener noreferrer" title="Code source">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="16 18 22 12 16 6"/>
<polyline points="8 6 2 12 8 18"/>
</svg>
</a>
{# Notifications #}
<div class="navbar-item" data-controller="dropdown">
<button class="navbar-icon" data-action="click->dropdown#toggle click->notifications#markRead" data-dropdown-target="trigger">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"/>
<path d="M13.73 21a2 2 0 0 1-3.46 0"/>
</svg>
<span class="badge" data-notifications-target="badge" hidden></span>
</button>
<div class="dropdown-menu" data-dropdown-target="menu" hidden>
<div class="dropdown-header">Notifications</div>
<div data-notifications-target="list" class="notifications-list">
<p class="dropdown-empty">Aucune notification</p>
</div>
</div>
</div>
{# User menu #}
<div class="navbar-item" data-controller="dropdown">
<button class="navbar-icon" data-action="click->dropdown#toggle" data-dropdown-target="trigger">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
<path d="M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2"/>
<circle cx="12" cy="7" r="4"/>
</svg>
</button>
<div class="dropdown-menu" data-dropdown-target="menu" hidden>
<button class="dropdown-item" data-action="click->import-modal#open">Importer ses films</button>
<a href="{{ path('app_logout') }}" class="dropdown-item">Se déconnecter</a>
</div>
</div>
</div>
</nav>
{# Import Modal #}
<div class="modal-overlay" data-import-modal-target="overlay" hidden>
<div class="modal">
<div class="modal-header">
<h2>Importer ses films</h2>
<button class="modal-close" data-action="click->import-modal#close">&times;</button>
</div>
<div class="modal-body">
<p>Importez votre fichier <code>watched.csv</code> exporté depuis Letterboxd.</p>
<input type="file" accept=".csv" data-import-modal-target="fileInput">
<div data-import-modal-target="feedback" class="modal-feedback" hidden></div>
</div>
<div class="modal-footer">
<button class="btn btn-primary" data-action="click->import-modal#submit" data-import-modal-target="submitBtn">
Importer
</button>
</div>
</div>
</div>
</div>
{% else %}
<nav class="navbar">
<div class="navbar-left">
<a href="{{ path('app_homepage') }}" class="navbar-brand">Actorle</a>
</div>
<div class="navbar-right">
<a href="https://git.lclr.dev/thibaud-lclr/ltbxd-actorle" class="navbar-icon" target="_blank" rel="noopener noreferrer" title="Code source">
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
<polyline points="16 18 22 12 16 6"/>
<polyline points="8 6 2 12 8 18"/>
</svg>
</a>
<a href="{{ path('app_login') }}" class="btn btn-primary">Se connecter</a>
</div>
</nav>
{% endif %}