snorklerjoe/CubeServer

View on GitHub
src/CubeServer-app/cubeserver_app/templates/navbar.html.jinja2

Summary

Maintainability
Test Coverage
{# TODO: Use a macro to simplify these links up a bit: #}

{% block navbar %}
<nav class="navbar navbar-expand-lg navbar-dark bg-primary">
    <div class="container-fluid">
            <a class="navbar-brand px-3" href="/">{{ config['CONSTANTS'].LONG_TITLE }}</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarColor01" aria-controls="navbarColor01" aria-expanded="false" aria-label="Toggle navigation">
                <span class="navbar-toggler-icon"></span>
            </button>
        <div class="collapse navbar-collapse" id="navbarColor01">
            <ul class="navbar-nav me-auto">
                <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'home.home' else 'disabled selected'}}" href="/">Home
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'home.leaderboard' else 'disabled selected'}}" href="/stats">Leaderboard
                    </a>
                </li>
                {% if config['CONFIGURABLE'].registration_open %}
                <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'team.register' else 'disabled selected'}}" href="/team/register">Register a Team
                    </a>
                </li>
                {% endif %}
            </ul>
            <hr>
            <ul class="navbar-nav me-auto">
                {% if session['username'] %}
                <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'home.logout' else 'disabled selected'}}" href={{ url_for('home.logout') }}>Sign Out
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'home.settings' else 'disabled selected'}}" href={{ url_for('home.settings') }}>Profile
                    </a>
                </li>
                {% else %}
                 <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'home.login' else 'disabled selected'}}" href={{ url_for('home.login') }}>Sign In
                    </a>
                </li>
                {% endif %}
                <li class="nav-item">
                    <a class="nav-link {{'active' if request.endpoint != 'about.about' else 'disabled selected'}}" href="/about">About
                    </a>
                </li>
                <li class="nav-item">
                    <a class="nav-link active text-info" target="_blank" href="https://github.com/snorklerjoe/CubeServer/">Source Code
                    </a>
                </li>
            </ul>
            <button class="btn" type="button" id="toggleTheme">
                <span class="glyphicon">
                    <svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-palette" viewBox="0 0 16 16">
                        <path d="M8 5a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zm4 3a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3zM5.5 7a1.5 1.5 0 1 1-3 0 1.5 1.5 0 0 1 3 0zm.5 6a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3z"/>
                        <path d="M16 8c0 3.15-1.866 2.585-3.567 2.07C11.42 9.763 10.465 9.473 10 10c-.603.683-.475 1.819-.351 2.92C9.826 14.495 9.996 16 8 16a8 8 0 1 1 8-8zm-8 7c.611 0 .654-.171.655-.176.078-.146.124-.464.07-1.119-.014-.168-.037-.37-.061-.591-.052-.464-.112-1.005-.118-1.462-.01-.707.083-1.61.704-2.314.369-.417.845-.578 1.272-.618.404-.038.812.026 1.16.104.343.077.702.186 1.025.284l.028.008c.346.105.658.199.953.266.653.148.904.083.991.024C14.717 9.38 15 9.161 15 8a7 7 0 1 0-7 7z"/>
                    </svg>
                </span>
                {% if 'theme' in request.cookies %}
                    {{request.cookies.get('theme')|title}}
                {% else %}
                    {{ config['CONSTANTS'].DEFAULT_THEME }}
                {% endif %}
            </button>
            <hr>
            <hr>
        </div>
    </div>
</nav>
{% endblock %}