Partiel _header.html unique pour les 19 pages (fin des copies qui dérivaient): desktop une ligne — primaires + menu Plus + Ctrl K, page active déduite du gabarit dans render(); mobile ≤900px burger + panneau ≥44px, Échap/clic extérieur; wallboard sans header et triage sur le même partiel. nav.js partagé.
64 lines
5.4 KiB
HTML
64 lines
5.4 KiB
HTML
{# ── Header global partagé (issue #16) ─────────────────────────────
|
|
NE PAS dupliquer ce markup dans les pages : c'est l'unique source.
|
|
Page active : variable `active_nav` (déduite du gabarit dans
|
|
render(), app/main.py). Fil d'Ariane projet : `owner`+`repo`
|
|
(board) ou `full_name` (pages projet). Lien Gitea externe si
|
|
`repo_info.html_url` est présent (board).
|
|
Desktop : primaires + menu « Plus ▾ ». Mobile : burger + panneau.
|
|
Le wallboard (TV) n'inclut pas ce partiel, volontairement. #}
|
|
<header class="app-header">
|
|
<div class="brand">
|
|
<a href="/" class="logo" aria-label="Kanbante — accueil"><span class="logo-mark">📋</span><span class="gradient-text">Kanbante</span></a>
|
|
{% if owner is defined and repo is defined %}
|
|
<span class="crumb"><span class="sep">/</span> <a href="/board/{{ owner }}/{{ repo }}">{{ owner }} / <strong>{{ repo }}</strong></a></span>
|
|
{% elif full_name is defined %}
|
|
<span class="crumb"><span class="sep">/</span> <a href="/board/{{ full_name }}">{{ full_name }}</a></span>
|
|
{% endif %}
|
|
</div>
|
|
<nav class="nav-pills main-nav" aria-label="Navigation principale">
|
|
<a href="/" class="nav-pill{% if active_nav == 'home' %} active{% endif %}">🏠 Projets</a>
|
|
<a href="/focus" class="nav-pill{% if active_nav == 'focus' %} active{% endif %}">🎯 Focus</a>
|
|
<a href="/today" class="nav-pill{% if active_nav == 'today' %} active{% endif %}">🌅 Aujourd'hui</a>
|
|
<a href="/search" class="nav-pill{% if active_nav == 'search' %} active{% endif %}">🔍 Recherche</a>
|
|
<a href="/capture" class="nav-pill{% if active_nav == 'capture' %} active{% endif %}">⚡ Capture</a>
|
|
<div class="nav-more">
|
|
<button type="button" class="nav-pill nav-more-btn{% if active_nav in ['my', 'activity', 'briefing', 'standup', 'digest', 'forecast', 'rules', 'health'] %} active-soft{% endif %}" id="nav-more-btn" aria-expanded="false" aria-controls="nav-more-menu">Plus <span aria-hidden="true">▾</span></button>
|
|
<div class="nav-more-menu" id="nav-more-menu" role="menu" hidden>
|
|
<a href="/my" class="nav-pill{% if active_nav == 'my' %} active{% endif %}" role="menuitem">👤 Mes issues</a>
|
|
<a href="/activity" class="nav-pill{% if active_nav == 'activity' %} active{% endif %}" role="menuitem">📰 Activité</a>
|
|
<a href="/briefing" class="nav-pill{% if active_nav == 'briefing' %} active{% endif %}" role="menuitem">📊 Briefing</a>
|
|
<a href="/standup" class="nav-pill{% if active_nav == 'standup' %} active{% endif %}" role="menuitem">🗣️ Standup</a>
|
|
<a href="/digest" class="nav-pill{% if active_nav == 'digest' %} active{% endif %}" role="menuitem">🧠 Digest</a>
|
|
<a href="/forecast" class="nav-pill{% if active_nav == 'forecast' %} active{% endif %}" role="menuitem">🔮 Prévisions</a>
|
|
<a href="/rules" class="nav-pill{% if active_nav == 'rules' %} active{% endif %}" role="menuitem">⚙️ Règles</a>
|
|
<a href="/health" class="nav-pill{% if active_nav == 'health' %} active{% endif %}" role="menuitem">🩺 Santé</a>
|
|
<a href="/wall" class="nav-pill" role="menuitem">🖥️ Wallboard</a>
|
|
</div>
|
|
</div>
|
|
</nav>
|
|
<div class="header-actions">
|
|
{% if repo_info is defined and repo_info and repo_info.html_url %}
|
|
<a href="{{ repo_info.html_url }}" target="_blank" rel="noopener" class="nav-pill" title="Ouvrir ce dépôt dans Gitea">🔗 Gitea ↗</a>
|
|
{% endif %}
|
|
<button type="button" class="nav-pill palette-trigger" title="Palette de commandes (Ctrl+K)">⌨️ Ctrl K</button>
|
|
<button type="button" class="nav-burger" id="nav-burger" aria-expanded="false" aria-controls="mobile-nav" aria-label="Ouvrir le menu">☰</button>
|
|
</div>
|
|
<nav class="mobile-nav" id="mobile-nav" aria-label="Menu mobile" hidden>
|
|
<a href="/" class="{% if active_nav == 'home' %}active{% endif %}">🏠 Projets</a>
|
|
<a href="/focus" class="{% if active_nav == 'focus' %}active{% endif %}">🎯 Focus</a>
|
|
<a href="/today" class="{% if active_nav == 'today' %}active{% endif %}">🌅 Aujourd'hui</a>
|
|
<a href="/search" class="{% if active_nav == 'search' %}active{% endif %}">🔍 Recherche</a>
|
|
<a href="/capture" class="{% if active_nav == 'capture' %}active{% endif %}">⚡ Capture</a>
|
|
<a href="/my" class="{% if active_nav == 'my' %}active{% endif %}">👤 Mes issues</a>
|
|
<a href="/activity" class="{% if active_nav == 'activity' %}active{% endif %}">📰 Activité</a>
|
|
<a href="/briefing" class="{% if active_nav == 'briefing' %}active{% endif %}">📊 Briefing</a>
|
|
<a href="/standup" class="{% if active_nav == 'standup' %}active{% endif %}">🗣️ Standup</a>
|
|
<a href="/digest" class="{% if active_nav == 'digest' %}active{% endif %}">🧠 Digest</a>
|
|
<a href="/forecast" class="{% if active_nav == 'forecast' %}active{% endif %}">🔮 Prévisions</a>
|
|
<a href="/rules" class="{% if active_nav == 'rules' %}active{% endif %}">⚙️ Règles</a>
|
|
<a href="/health" class="{% if active_nav == 'health' %}active{% endif %}">🩺 Santé</a>
|
|
<a href="/wall">🖥️ Wallboard</a>
|
|
</nav>
|
|
<script src="/static/js/nav.js" defer></script>
|
|
</header>
|