{# Copyright 2020 Karlsruhe Institute of Technology # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. #} {% from "macros.html" import render_csrf, render_js %} {% block title %}{% if title %}{{ title }} - Kadi4Mat{% else %}Kadi4Mat{% endif %}{% endblock %}
{# The navigation bar, which will change depending on whether the user is authenticated and active or not. #}
{# Uniform way to easily pass variables directly into templates from the backend. #} {{ render_js("main.js") }}
{# Left side panel for short-lived alerts. #}
{% for category, message in get_flashed_messages(with_categories=true) %} {% endfor %}
{# Main content panel. #}
{# Only show breadcrumbs if the respective block is overridden in a template. #} {% if self.breadcrumbs() %} {% endif %} {# As most pages use Vue, the wrapper below is inserted into every page. In cases where this is not needed or wanted, the content_wrapper block can be used instead. #} {% block content_wrapper %}
{% block content %}{% endblock %}
{% endblock %}
{# Right side panel for persistent notifications. #}
{# The navigation footer. #} {{ render_js("app/base.js") }} {# Page specific scripts, always executed after the DOM is ready. #} {% block scripts %} {# If using the content_wrapper block we do not need the following script. As the content block won't be defined as well in this case, we can disable the script automatically like this. #} {% if self.content() %} {% endif %} {% endblock %}