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