default.html
HTML document, ASCII text
1
<!DOCTYPE html>
2
<html lang="en-GB">
3
<head>
4
<title>{% block title %}{% endblock %}</title>
5
<meta charset="utf-8">
6
<meta name="viewport" content="width=device-width, initial-scale=1">
7
<link rel="stylesheet" href="/static/style.css">
8
<script src="https://cdn.jsdelivr.net/npm/iconify-icon@2.1.0/dist/iconify-icon.min.js"></script>
9
</head>
10
<style>
11
@media (prefers-reduced-motion: no-preference) {
12
@view-transition {
13
navigation: auto;
14
}
15
}
16
</style>
17
{% block extra_head %}{% endblock %}
18
<body {% if fixed_content_area %}class="fixed-content-area"{% endif %}>
19
<dialog id="hamburger" class="sheet-left">
20
<nav>
21
<ul>
22
<li><span id="hamburger-site-name">{{ site_name }}</span></li>
23
<li><a href="/">
24
<iconify-icon icon="ic:baseline-home"></iconify-icon>Home
25
</a></li>
26
<li><a href="/object/">
27
<iconify-icon icon="mdi:flower-tulip"></iconify-icon>Object list
28
</a></li>
29
<li><a href="/query-pictures">
30
<iconify-icon icon="mdi:search"></iconify-icon>Query
31
</a></li>
32
<li><a href="/info/">
33
<iconify-icon icon="mdi:information"></iconify-icon>Help
34
</a></li>
35
{% if session.username %}
36
<li><a href="/upload">
37
<iconify-icon icon="mdi:upload"></iconify-icon>Upload
38
</a></li>
39
<li><a href="/create-gallery">
40
<iconify-icon icon="ic:baseline-photo-album"></iconify-icon>New gallery
41
</a></li>
42
{% endif %}
43
</ul>
44
<ul>
45
{% if session.username %}
46
<li><a href="/profile/{{ session.username }}">
47
<iconify-icon icon="ic:baseline-account-circle"></iconify-icon>Profile: {{ session.username }}
48
</a></li>
49
<li><a href="/logout">
50
<iconify-icon icon="mdi:logout"></iconify-icon>Log out
51
</a></li>
52
{% else %}
53
<li><a href="/accounts">
54
<iconify-icon icon="mdi:login"></iconify-icon>Accounts
55
</a></li>
56
{% endif %}
57
</ul>
58
</nav>
59
</dialog>
60
<header>
61
<nav class="navbar" id="mobile-navbar">
62
<ul>
63
{% if back_url %}
64
<li id="back-button">
65
<a class="button button-flat button-neutral" href="{{ back_url | safe }}">
66
<iconify-icon icon="ic:baseline-arrow-back">Back</iconify-icon>
67
</a>
68
</li>
69
{% else %}
70
<li id="hamburger-button">
71
<button class="button-flat button-neutral" onclick="document.getElementById('hamburger').showModal()">
72
<iconify-icon icon="ic:baseline-menu">Menu</iconify-icon>
73
</button>
74
</li>
75
{% endif %}
76
<li id="mobile-navbar-title">
77
{% block nav_title %}{% endblock %}
78
</li>
79
</ul>
80
</nav>
81
<nav class="navbar" id="desktop-navbar">
82
<ul>
83
{% if back_url %}
84
<li id="back-button-desktop">
85
<a class="button button-flat button-neutral" href="{{ back_url | safe }}">
86
<iconify-icon icon="ic:baseline-arrow-back">Back</iconify-icon>
87
</a>
88
</li>
89
{% endif %}
90
<li id="desktop-navbar-title">{{ self.nav_title() }}</li> {# copy the block #}
91
</ul>
92
<ul>
93
<li><a href="/">Home</a></li>
94
<li><a href="/object/">Object list</a></li>
95
<li><a href="/query-pictures">Query</a></li>
96
<li><a href="/info/">Help</a></li>
97
{% if session.username %}
98
<li><a href="/upload">Upload</a></li>
99
<li><a href="/create-gallery">New gallery</a>
100
{% endif %}
101
{% if session.username %}
102
<li><a href="/profile/{{ session.username }}">Profile: {{ session.username }}</a></li>
103
<li><a href="/logout">Log out</a></li>
104
{% else %}
105
<li><a href="/accounts">Accounts</a></li>
106
{% endif %}
107
</ul>
108
</nav>
109
</header>
110
<div id="mobile-navbar-spacer"></div>
111
<main>
112
{% block content %}{% endblock %}
113
</main>
114
{% with messages = get_flashed_messages(with_categories=true) %}
115
<ol class="toast-container">
116
{% for category, message in messages %}
117
<li
118
style="
119
{% if category %}
120
background-color:
121
{% if category == 'error' %}var(--color-error)
122
{% elif category == 'alert' %}var(--color-alert)
123
{% elif category == 'info' %}var(--color-info)
124
{% elif category == 'success' %}var(--color-success)
125
{% endif %};
126
color:
127
{% if category == 'error' %}var(--color-error-text)
128
{% elif category == 'alert' %}var(--color-alert-text)
129
{% elif category == 'info' %}var(--color-info-text)
130
{% elif category == 'success' %}var(--color-success-text)
131
{% endif %};
132
{% endif %}"
133
>
134
{% if category | split | first == "task" %}
135
{{ message }}
136
{% else %}
137
{{ message }}
138
{% endif %}
139
<x-buttonbox>
140
<button class="button-flat" onclick="removeToast()" style="color: inherit !important;">Close</button>
141
</x-buttonbox>
142
</li>
143
{% endfor %}
144
</ol>
145
{% endwith %}
146
<script src="/static/efficient-ui/dialogs.js"></script>
147
<script src="/static/efficient-ui/toasts.js"></script>
148
<script src="/static/ripples.js"></script>
149
</body>
150
</html>
151