By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.

Dismiss

 default.html

View raw Download
text/html • 11.55 kiB
HTML document, Unicode text, UTF-8 text
        
            
1
<!DOCTYPE html>
2
<html lang="en">
3
<head>
4
{% block head %}
5
<link rel="stylesheet" href="/static/style.css">
6
<link rel="stylesheet" href="/userstyle">
7
<title>{% block title %}{% trans %}Roundabout{% endtrans %}{% endblock %}</title>
8
<link rel="apple-touch-icon" sizes="512x512" href="/static/apple-touch-icon.png">
9
<link rel="manifest" href="/static/site.webmanifest">
10
<link rel="mask-icon" href="/static/safari-pinned-tab.svg" color="#3f51b5">
11
<link rel="shortcut icon" href="/static/favicon.ico">
12
{% block favicon %}
13
<link rel="shortcut icon" href="/static/logo.svg">
14
{% endblock %}
15
<meta name="apple-mobile-web-app-title" content="Roundabout">
16
<meta name="application-name" content="Roundabout">
17
<meta name="theme-color" content="#37474f">
18
<script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
19
<meta name="viewport" content="width=device-width, initial-scale=1" />
20
<script src="/static/htmx.min.js"></script>
21
{% endblock %}
22
<script>
23
/*
24
@licstart The following is the entire license notice for the
25
JavaScript code in this page.
26
27
Copyright 2023-2024 Roundabout contributors
28
29
The JavaScript code in this page is free software: you can
30
redistribute it and/or modify it under the terms of the GNU
31
Affero General Public License (GNU AGPL) as published by the Free
32
Software Foundation, either version 3 of the License, or
33
(at your option) any later version. The code is distributed
34
WITHOUT ANY WARRANTY; without even the implied warranty of
35
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
36
GNU AGPL for more details.
37
38
As additional permission under GNU AGPL version 3 section 7, you
39
may distribute non-source (e.g., minimized or compacted) forms of
40
that code without the copy of the GNU AGPL normally required by
41
section 4, provided you include this license notice and a URL
42
through which recipients can access the Corresponding Source.
43
44
@licend The above is the entire license notice
45
for the JavaScript code in this page.
46
*/
47
</script>
48
</head>
49
<body>
50
<dialog id="sidenav" class="sheet-left">
51
<x-frame style="--width: 320px; --margin: 0;">
52
<article class="card">
53
<section class="card-main">
54
<nav class="sidenav">
55
<ul>
56
{% if logged_in_user %}
57
<li><a href="/{{ logged_in_user }}">
58
<img src="/info/{{ logged_in_user }}/avatar" class="avatar" style="width: 1em; height: 1em;">
59
{{ logged_in_user }}
60
</a></li>
61
<li><a href="/notifications">
62
<iconify-icon icon="ic:baseline-inbox" data-badge="{{ unread }}"></iconify-icon>
63
{% trans %}Notifications{% endtrans %}
64
</a></li>
65
<li><a href="/newrepo">
66
<iconify-icon icon="mdi:folder-plus"></iconify-icon>
67
{% trans %}Create repository{% endtrans %}
68
</a></li>
69
<li><a href="/favourites">
70
<iconify-icon icon="mdi:star"></iconify-icon>
71
{% trans %}Your favourites{% endtrans %}
72
</a></li>
73
<li><a href="/settings">
74
<iconify-icon icon="mdi:cog"></iconify-icon>
75
{% trans %}Settings{% endtrans %}
76
</a></li>
77
<li><a href="/logout">
78
<iconify-icon icon="mdi:logout"></iconify-icon>
79
{% trans %}Log out{% endtrans %}
80
</a></li>
81
{% else %}
82
<li><a href="/accounts">
83
<iconify-icon icon="mdi:account"></iconify-icon>
84
{% trans %}Log in or sign up{% endtrans %}
85
</a></li>
86
{% endif %}
87
</ul>
88
</nav>
89
</section>
90
</article>
91
</x-frame>
92
</dialog>
93
{% block dialogs %}
94
{% endblock %}
95
<x-vbox class="nopad" style="align-items: stretch; height: 100vh;">
96
{% if "cookie-banner" not in request.cookies %}
97
<x-hbox id="cookie-info">
98
<p>
99
{% trans %}By using this site, you agree to have cookies stored on your device, strictly for functional purposes, such as storing your session and preferences.{% endtrans %}
100
</p>
101
<x-buttonbox>
102
<a href="/cookie-dismiss" class="button button-flat button-neutral">{% trans %}Dismiss{% endtrans %}</a>
103
</x-buttonbox>
104
</x-hbox>
105
{% endif %}
106
<header>
107
<nav id="global-nav" class="breadcrumbs">
108
<a href="javascript:document.getElementById('sidenav').showModal();" id="sidenav-trigger">
109
<iconify-icon icon="mdi:menu"></iconify-icon>
110
</a>
111
<ul>
112
<li><a href="/">{% trans %}roundabout{% endtrans %} (α) {% if config.logo %}({{ config.logo }}){% endif %}</a></li>
113
{% block breadcrumbs %}{% endblock %}
114
</ul>
115
<div class="flexible-space" id="navbar-separator"></div>
116
117
<x-buttonbox style="align-items: center; gap: 12px;" id="main-nav-links-desktop">
118
{% if logged_in_user %}
119
<a href="/{{ logged_in_user }}">
120
<x-hbox class="box-center" style="--gap-box: 1ch;">
121
<img src="/info/{{ logged_in_user }}/avatar" class="avatar" style="width: 1em; height: 1em;">
122
{{ logged_in_user }}
123
</x-hbox>
124
</a>
125
<a href="/notifications">
126
<iconify-icon icon="ic:baseline-inbox" data-badge="{{ unread }}"></iconify-icon>
127
</a>
128
<a href="/newrepo">
129
<iconify-icon icon="mdi:folder-plus" title="{% trans %}Create repository{% endtrans %}"></iconify-icon>
130
</a>
131
<a href="/favourites">
132
<iconify-icon icon="mdi:star" title="{% trans %}Favourites{% endtrans %}"></iconify-icon>
133
</a>
134
<a href="/settings">
135
<iconify-icon icon="mdi:cog" title="{% trans %}User settings{% endtrans %}"></iconify-icon>
136
</a>
137
<a href="/logout">
138
<iconify-icon icon="mdi:logout" title="{% trans %}Log out{% endtrans %}"></iconify-icon>
139
</a>
140
{% else %}
141
<a href="/accounts">{% trans %}Log in or sign up{% endtrans %}</a>
142
{% endif %}
143
</x-buttonbox>
144
</nav>
145
{% if self.nav() | trim %}
146
<nav id="repo-nav" class="navbar" style="max-height: 100%; flex: 0 0 var(--height-navbar);">
147
{% block nav %}{% endblock %}
148
</nav>
149
{% endif %}
150
</header>
151
<main>
152
{% block full %}
153
{% block content %}
154
{% endblock %}
155
{% endblock %}
156
</main>
157
<footer>
158
{{ Markup(config.footer) }}
159
<x-hbox style="justify-content: center;">
160
<details>
161
<summary>{% trans %}English{% endtrans %}</summary>
162
<form method="POST" action="/language">
163
<ul>
164
<li>
165
<button type="submit" value="{{ locale }}" class="link-button" name="language">
166
{% trans %}Automatic{% endtrans %}
167
</button>
168
</li>
169
{% for locale in config.available_locales %}
170
<li>
171
<button type="submit" value="{{ locale }}" class="link-button" name="language">
172
{{ locale_names[locale] }}
173
</button>
174
</li>
175
{% endfor %}
176
</ul>
177
</form>
178
</details>
179
</x-hbox>
180
</footer>
181
</x-vbox>
182
{% with messages = get_flashed_messages(with_categories=true) %}
183
<ol class="toast-container">
184
{% for category, message in messages %}
185
<li
186
style="
187
{% if category %}
188
background-color:
189
{% if category == 'error' %}var(--color-error)
190
{% elif category == 'alert' %}var(--color-alert)
191
{% elif category == 'info' %}var(--color-info)
192
{% elif category == 'success' %}var(--color-success)
193
{% endif %};
194
color:
195
{% if category == 'error' %}var(--color-error-text)
196
{% elif category == 'alert' %}var(--color-alert-text)
197
{% elif category == 'info' %}var(--color-info-text)
198
{% elif category == 'success' %}var(--color-success-text)
199
{% endif %};
200
{% endif %}"
201
>
202
{% if category | split | first == "task" %}
203
{{ message }}
204
{% else %}
205
{{ message }}
206
{% endif %}
207
<x-buttonbox>
208
<button class="button-flat" onclick="removeToast()" style="color: inherit !important;">{% trans %}Close{% endtrans %}</button>
209
</x-buttonbox>
210
</li>
211
{% endfor %}
212
</ol>
213
{% endwith %}
214
<script src="/static/ripples.js"></script>
215
<script src="/static/efficient-ui/dialogs.js"></script>
216
<script src="/static/efficient-ui/toasts.js"></script>
217
{% block scripts %}
218
{% endblock %}
219
</body>
220
</html>
221