- Move trip-related pages (Future trips, Past trips, Trip statistics) to a "Trips" dropdown - Move conference-related pages (Conferences, Past conferences) to a "Conferences" dropdown - Position both dropdowns between Calendar and Travel in the navbar - Maintain active state highlighting for dropdown items and parent dropdowns 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
		
			
				
	
	
		
			99 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			4.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
{% macro navbar() %}
 | 
						|
 | 
						|
{% set pages_before_dropdowns = [
 | 
						|
  {"endpoint": "index", "label": "Home" },
 | 
						|
  {"endpoint": "recent", "label": "Recent" },
 | 
						|
  {"endpoint": "calendar_page", "label": "Calendar" },
 | 
						|
] %}
 | 
						|
 | 
						|
{% set pages_after_dropdowns = [
 | 
						|
  {"endpoint": "travel_list", "label": "Travel" },
 | 
						|
  {"endpoint": "accommodation_list", "label": "Accommodation" },
 | 
						|
  {"endpoint": "gaps_page", "label": "Gaps" },
 | 
						|
  {"endpoint": "weekends", "label": "Weekends" },
 | 
						|
  {"endpoint": "launch_list", "label": "Space launches" },
 | 
						|
  {"endpoint": "holiday_list", "label": "Holidays" },
 | 
						|
  {"endpoint": "schengen_report", "label": "Schengen" },
 | 
						|
  ] + ([{"endpoint": "birthday_list", "label": "Birthdays" }]
 | 
						|
    if g.user.is_authenticated else [])
 | 
						|
%}
 | 
						|
 | 
						|
{% set trip_pages = [
 | 
						|
  {"endpoint": "trip_future_list", "label": "Future trips" },
 | 
						|
  {"endpoint": "trip_past_list", "label": "Past trips" },
 | 
						|
  {"endpoint": "trip_stats", "label": "Trip statistics" },
 | 
						|
] %}
 | 
						|
 | 
						|
{% set conference_pages = [
 | 
						|
  {"endpoint": "conference_list", "label": "Conferences" },
 | 
						|
  {"endpoint": "past_conference_list", "label": "Past conferences" },
 | 
						|
] %}
 | 
						|
 | 
						|
 | 
						|
<nav class="navbar navbar-expand-md bg-success" data-bs-theme="dark">
 | 
						|
  <div class="container-fluid">
 | 
						|
    <a class="navbar-brand" href="{{ url_for("index") }}">Agenda</a>
 | 
						|
    <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
 | 
						|
      <span class="navbar-toggler-icon"></span>
 | 
						|
    </button>
 | 
						|
    <div class="collapse navbar-collapse" id="navbarSupportedContent">
 | 
						|
      <ul class="navbar-nav me-auto mb-2 mb-lg-0">
 | 
						|
        {% for page in pages_before_dropdowns %}
 | 
						|
        {% set is_active = request.endpoint == page.endpoint %}
 | 
						|
        <li class="nav-item">
 | 
						|
          <a class="nav-link{% if is_active %} border border-white border-2 active{% endif %}" {% if is_active %} aria-current="page"{% endif %} href="{{ url_for(page.endpoint) }}">
 | 
						|
            {{ page.label }}
 | 
						|
          </a>
 | 
						|
        </li>
 | 
						|
        {% endfor %}
 | 
						|
        
 | 
						|
        <!-- Trip dropdown -->
 | 
						|
        {% set trip_active = request.endpoint in ['trip_future_list', 'trip_past_list', 'trip_stats'] %}
 | 
						|
        <li class="nav-item dropdown">
 | 
						|
          <a class="nav-link dropdown-toggle{% if trip_active %} border border-white border-2 active{% endif %}" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
 | 
						|
            Trips
 | 
						|
          </a>
 | 
						|
          <ul class="dropdown-menu">
 | 
						|
            {% for page in trip_pages %}
 | 
						|
            {% set is_active = request.endpoint == page.endpoint %}
 | 
						|
            <li><a class="dropdown-item{% if is_active %} active{% endif %}" href="{{ url_for(page.endpoint) }}">{{ page.label }}</a></li>
 | 
						|
            {% endfor %}
 | 
						|
          </ul>
 | 
						|
        </li>
 | 
						|
        
 | 
						|
        <!-- Conference dropdown -->
 | 
						|
        {% set conference_active = request.endpoint in ['conference_list', 'past_conference_list'] %}
 | 
						|
        <li class="nav-item dropdown">
 | 
						|
          <a class="nav-link dropdown-toggle{% if conference_active %} border border-white border-2 active{% endif %}" href="#" role="button" data-bs-toggle="dropdown" aria-expanded="false">
 | 
						|
            Conferences
 | 
						|
          </a>
 | 
						|
          <ul class="dropdown-menu">
 | 
						|
            {% for page in conference_pages %}
 | 
						|
            {% set is_active = request.endpoint == page.endpoint %}
 | 
						|
            <li><a class="dropdown-item{% if is_active %} active{% endif %}" href="{{ url_for(page.endpoint) }}">{{ page.label }}</a></li>
 | 
						|
            {% endfor %}
 | 
						|
          </ul>
 | 
						|
        </li>
 | 
						|
        
 | 
						|
        {% for page in pages_after_dropdowns %}
 | 
						|
        {% set is_active = request.endpoint == page.endpoint %}
 | 
						|
        <li class="nav-item">
 | 
						|
          <a class="nav-link{% if is_active %} border border-white border-2 active{% endif %}" {% if is_active %} aria-current="page"{% endif %} href="{{ url_for(page.endpoint) }}">
 | 
						|
            {{ page.label }}
 | 
						|
          </a>
 | 
						|
        </li>
 | 
						|
        {% endfor %}
 | 
						|
      </ul>
 | 
						|
      <ul class="navbar-nav ms-auto">
 | 
						|
      {% if g.user.is_authenticated %}
 | 
						|
        <li class="nav-item"><a class="nav-link" href="{{ url_for("logout", next=request.url) }}">Logout</a></li>
 | 
						|
      {% else %}
 | 
						|
        <li class="nav-item"><a class="nav-link" href="{{ url_for("login", next=request.url) }}">Login</a></li>
 | 
						|
      {% endif %}
 | 
						|
      </ul>
 | 
						|
    </div>
 | 
						|
  </div>
 | 
						|
</nav>
 | 
						|
 | 
						|
{% endmacro %}
 |