2021-06-16 17:27:08 +02:00

261 lines
13 KiB
HTML

{% block doc -%}
<!doctype html>
<html lang="de"{% block html_attribs %}{% endblock html_attribs %}>
{%- block html %}
<head>
{%- block head %}
<title>{%- block title -%}{{ title|default('oveda') }}{% endblock title %}</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
{% if canonical_url %}
<link rel="canonical" href="{{ canonical_url }}" />
{% endif %}
{%- block metas %}
<meta property="og:type" content="website">
<meta property="og:title" content="{{ self.title() }}">
{% if canonical_url %}
<meta property="og:url" content="{{ canonical_url }}" />
{% endif %}
{% if meta %}
<meta name="description" content="{{ meta['description'] }}">
<meta property="og:description" content="{{ meta['description'] }}">
<meta name="twitter:title" content="{{ self.title() }}">
{% if 'image' in meta %}
<meta property="og:image" content="{{ meta['image'] }}">
<meta name="twitter:image" content="{{ meta['image'] }}">
<meta name="twitter:card" content="summary_large_image">
{% else %}
<meta name="twitter:card" content="summary">
{% endif %}
{% else %}
<meta name="description" content="Mit der offenen Veranstaltungsdatenbank Events einfach bekannt machen!">
<meta property="og:description" content="Mit der offenen Veranstaltungsdatenbank Events einfach bekannt machen!">
{% endif %}
{%- endblock metas %}
<!-- Icons -->
<link rel="apple-touch-icon" sizes="180x180" href="{{ url_for('static', filename='apple-touch-icon.png')}}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ url_for('static', filename='favicon-32x32.png')}}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ url_for('static', filename='apple-touch-icon.png')}}">
<link rel="manifest" href="/site.webmanifest">
<!-- Bootstrap CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.13.1/css/all.min.css">
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='site.css')}}" />
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/css/select2.min.css" rel="stylesheet" />
<link rel="stylesheet" type="text/css" href="{{ url_for('static', filename='jquery.recurrenceinput.css')}}" />
<link href="https://fonts.googleapis.com/css?family=Lato:300,400,700,300italic,400italic,700italic" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.5.1/dist/leaflet.css" integrity="sha512-xwE/Az9zrjBIphAcBb3F6JVqxf46+CDLwfLMHloNu6KEQCAWi6HcDUbeOfBIptF7tcCzusKFjFw2yuvEpDL9wQ==" crossorigin=""/>
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.Default.css" />
<link rel="stylesheet" href="https://unpkg.com/leaflet.markercluster@1.4.1/dist/MarkerCluster.css" />
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.css" />
{%- block styles %}
{%- endblock styles %}
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.11.4/i18n/jquery-ui-i18n.js" integrity="sha256-HwXB0HPJCXhungCtZoScc1a53ngQOXua64nb0cI6PHY=" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment-with-locales.min.js" integrity="sha256-AdQN98MVZs44Eq2yTwtoKufhnU+uZ7v2kXnD5vqzZVo=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-beta.1/dist/js/select2.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jsrender/1.0.6/jsrender.js" integrity="sha512-DtWD/uCp2x1mspIw6vhZGPuJP85aKEL0HFI0jFVxcEiWw1OHJn36LqtkX9G9chzKVYLtTT0G8uJ2miDEL7ucTQ==" crossorigin="anonymous"></script>
<script src="https://unpkg.com/leaflet@1.5.1/dist/leaflet.js" integrity="sha512-GffPMF3RvMeYyc1LWMHtK8EbPv0iNZ8/oTtHPx9/cc2ILxQ+u905qIwdpULaqDkyBKgOaB57QTMg7ztg8Jm2Og==" crossorigin=""></script>
<script src="https://unpkg.com/leaflet.markercluster@1.4.1/dist/leaflet.markercluster.js"></script>
<script src="https://cdn.jsdelivr.net/npm/leaflet.locatecontrol@0.68.0/dist/L.Control.Locate.min.js" charset="utf-8"></script>
<script src="{{ url_for('static', filename='jquery.recurrenceinput.js')}}"></script>
{% block header_before_site_js %}
{%- endblock -%}
<script src="{{ url_for('static', filename='site.js')}}"></script>
<script src="{{ url_for('static', filename='svg-icon.js')}}"></script>
<script>
function render_event_status_pill(event) {
if (event.eventStatus != null) {
if (event.eventStatus == "EventCancelled") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.cancelled') }}</span>';
}
if (event.eventStatus == "EventMovedOnline") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.movedOnline') }}</span>';
}
if (event.eventStatus == "EventPostponed") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.postponed') }}</span>';
}
if (event.eventStatus == "EventRescheduled") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.rescheduled') }}</span>';
}
}
if (event.status != null) {
if (event.status == "cancelled") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.cancelled') }}</span>';
}
if (event.status == "movedOnline") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.movedOnline') }}</span>';
}
if (event.eventStatus == "postponed") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.postponed') }}</span>';
}
if (event.eventStatus == "rescheduled") {
return '<span class="badge badge-pill badge-warning">{{ _('EventStatus.rescheduled') }}</span>';
}
}
return '';
}
function render_attendance_mode_pill(event) {
if (event.attendance_mode != null) {
if (event.attendance_mode == "online") {
return '<span class="badge badge-pill badge-info">{{ _('EventAttendanceMode.online') }}</span>';
}
if (event.attendance_mode == "mixed") {
return '<span class="badge badge-pill badge-info">{{ _('EventAttendanceMode.mixed') }}</span>';
}
}
return '';
}
function render_booked_up_pill(event) {
if (event.booked_up) {
return '<span class="badge badge-pill badge-warning">{{ _('Booked up') }}</span>';
}
return '';
}
function render_event_warning_pills(event) {
return render_event_status_pill(event) + ' ' + render_booked_up_pill(event) + ' ' + render_attendance_mode_pill(event);
}
</script>
{% if structured_data %}
<script type="application/ld+json">
{{ structured_data | safe }}
</script>
{% endif %}
{% if structured_datas %}
{% for structured_data in structured_datas %}
<script type="application/ld+json">
{{ structured_data | safe }}
</script>
{% endfor %}
{% endif %}
{% block header %}
{% endblock %}
{%- endblock head %}
</head>
<body{% block body_attribs %}{% endblock body_attribs %}>
{% block body -%}
{% block navbar %}
<nav class="navbar navbar-expand-lg navbar-dark bg-dark">
<a class="navbar-brand" href="{{ url_for('home') }}">
<img src="{{ url_for('static', filename='calendar_icon_90.png')}}" width="30" height="30" class="d-inline-block align-top rounded" alt="Logo"> Oveda
</a>
<button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav mr-auto">
{% if current_user.is_authenticated %}
<a class="nav-item nav-link" href="{{ url_for('manage') }}">{{ _('Manage') }}</a>
{% endif %}
<a class="nav-item nav-link" href="{{ url_for('event_dates') }}">{{ _('Events') }}</a>
<a class="nav-item nav-link" href="{{ url_for('planing') }}">{{ _('Planing') }}</a>
<a class="nav-item nav-link" href="{{ url_for('example') }}">{{ _('Example') }}</a>
<a class="nav-item nav-link" href="{{ url_for('developer') }}">{{ _('Developer') }}</a>
</div>
<div class="navbar-nav navbar-right">
{% if current_user.is_authenticated %}
<li class="nav-item dropdown">
<a class="nav-link dropdown-toggle" href="#" id="navbarDropdown" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
{{ current_user.email }}
</a>
<div class="dropdown-menu" aria-labelledby="navbarDropdown">
<a class="dropdown-item" href="{{ url_for('profile') }}">{{ _('Profile') }}</a>
{% if current_user.has_role('admin') %}
<a class="dropdown-item" href="{{ url_for('admin') }}">{{ _('Admin') }}</a>
{% endif %}
<div class="dropdown-divider"></div>
<a class="dropdown-item" href="{{ url_for('security.logout') }}">{{ _('Logout') }}</a>
</div>
</li>
{% else %}
<a class="nav-item nav-link" href="{{ url_for('security.login') }}">{{ _fsdomain('Login') }}</a>
<a class="nav-item nav-link" href="{{ url_for('security.register') }}">{{ _fsdomain('Register') }}</a>
{% endif %}
</div>
</div>
</nav>
{%- endblock navbar %}
<div class="body-content"{% block body_content__attribs %}{% endblock body_content__attribs %}>
{% block content_container -%}
<main {% block content_container_attribs %}class="p-3"{% endblock content_container_attribs %}>
{% include "_messages.html" %}
{% block content -%}
{%- endblock content %}
</main>
{%- endblock content_container %}
<!-- Footer -->
{% block footer -%}
<footer class="footer mt-5">
<div class="container">
<div class="row">
<div class="col h-100 text-center my-auto">
<ul class="list-inline mb-2">
<li class="list-inline-item">
<a href="{{ url_for('tos') }}" class="text-muted">{{ _('Terms of service') }}</a>
</li>
<li class="list-inline-item">&sdot;</li>
<li class="list-inline-item">
<a href="{{ url_for('legal_notice') }}" class="text-muted">{{ _('Legal notice') }}</a>
</li>
<li class="list-inline-item">&sdot;</li>
<li class="list-inline-item">
<a href="{{ url_for('contact') }}" class="text-muted">{{ _('Contact') }}</a>
</li>
<li class="list-inline-item">&sdot;</li>
<li class="list-inline-item">
<a href="{{ url_for('privacy') }}" class="text-muted">{{ _('Privacy') }}</a>
</li>
</ul>
<p class="text-muted small mb-4 mb-lg-0">Mit <i class="fa fa-heart"></i> in Goslar entwickelt.</p>
</div>
</div>
</div>
</footer>
{%- endblock footer %}
</div>
<!-- Optional JavaScript -->
<!-- jQuery first, then Popper.js, then Bootstrap JS -->
<!--<script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>-->
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
{% block scripts %}
{%- endblock scripts %}
{%- endblock body %}
</body>
{%- endblock html %}
</html>
{% endblock doc -%}