ejplatform/ej-server

View on GitHub
src/ej/templates/jinja2/base.jinja2

Summary

Maintainability
Test Coverage
{% set page_title = page_title|default(settings.EJ_PAGE_TITLE) -%}
{% set main_tag = main_tag|default("main") %}

<!DOCTYPE html>
<html lang="{{ get_language() }}">
<head>
    <meta charset="utf-8">
    <title>{{ page_title }}</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">

    {% block meta %}{% endblock %}
    {% block css %}{% include 'ej/includes/head/css.jinja2' %}{% endblock %}
    {% block javascript %}{% include 'ej/includes/head/javascript.jinja2' %}{% endblock %}
    {% include ['ej/includes/head/favicons.jinja2',
                'ej/includes/head/pwa.jinja2',
                'ej/includes/head/open_graph.jinja2'] %}

</head>


{%- block body %}
    <body class="{{ body_class|default('body') }}" {% if request is defined %}data-current-url="{{ request.path }}"{% endif %} {{ salt_attr()|safe }}>
    <script>(function () {
        document.querySelector('body').classList.add('js')
    })();</script>
    {% if has_content_link|default(aria_flow|default(false)) %}<a id="first-link" href="#{{ aria_flowto|default('page-wrapper') }}" accesskey="1">{{ _('Jump to main content') }}</a>{% endif %}
    <div id="page-wrapper">
        {%- if not hide_menu|default(False) %}
        {%- if menu_contents is defined %}{{ page_menu(menu_contents|default([]), request=request) }}
        {% else %}
            {% call page_menu() %}
                {%- block menu %}{{ page_menu.DEFAULT_MENU_SECTIONS(request)|safe }}{% endblock %}
            {% endcall %}
        {% endif %}
    {% endif %}

        {%- block main %}
            <{{ main_tag }} id="main-content" tabindex=0 class="{{ main_class|default('container-1') }}{% if request is defined %}{{- '' if request.user.is_authenticated else ' is-anonymous' }}"{% endif %}>
            {%- block message_area %}
                <div id="message-area" up-hungry role="status" role="alert" aria-live="polite" {% if aria_flowto is defined %}aria-flowto="{{ aria_flowto }}"{% endif %}>
                    {% for msg in get_messages() %}
                        <div class="toast"{% if msg.tags %} {{ msg.tags }}{% endif %} tabindex="0">{{ msg|safe }}</div>
                    {% endfor %}
                </div>
                <script> window.addEventListener('load', function () {
                    var e = document.getElementById('message-area'),
                        t = document.getElementById(e.getAttribute('aria-flowto'));
                    if (!t) { e.removeAttribute('aria-flowto') }
                });
                </script>
            {% endblock %}

            {% if content is defined %}
                {{ content }}
            {% else %}
                {% block content %}
                    {% if content_html is defined %}
                        {{ content_html|safe }}
                    {% else %}
                        <p>{{ _('Please override the "content" block of your template!') }}</p>
                    {% endif %}
                {% endblock content %}
            {% endif %}
            </{{ main_tag }}>
        {% endblock %}
    </div>
    {% if not hide_header|default(False) %}{% include 'ej/includes/header.jinja2' %}{% endif %}
    </body>
{% endblock body %}
</html>