{% macro navbar() %} {% set pages = [ {"endpoint": "index", "label": "Home" }, {"endpoint": "recent", "label": "Recent" }, {"endpoint": "calendar_page", "label": "Calendar" }, {"endpoint": "trip_future_list", "label": "Future trips" }, {"endpoint": "trip_past_list", "label": "Past trips" }, {"endpoint": "conference_list", "label": "Conferences" }, {"endpoint": "past_conference_list", "label": "Past conferences" }, {"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": "birthday_list", "label": "Birthdays" }] if g.user.is_authenticated else []) %} <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 %} {% 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 %}