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 • 10.0 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
<title>{% block title %}{% trans %}Roundabout{% endtrans %}{% endblock %}</title>
7
<link rel="apple-touch-icon" sizes="512x512" href="/static/apple-touch-icon.png">
8
<link rel="manifest" href="/static/site.webmanifest">
9
<link rel="mask-icon" href="/static/safari-pinned-tab.svg" color="#3f51b5">
10
<link rel="shortcut icon" href="/static/favicon.ico">
11
<meta name="apple-mobile-web-app-title" content="Roundabout">
12
<meta name="application-name" content="Roundabout">
13
<meta name="theme-color" content="#37474f">
14
<link rel="shortcut icon" href="/static/logo.svg">
15
<script src="https://code.iconify.design/iconify-icon/1.0.7/iconify-icon.min.js"></script>
16
<meta name="viewport" content="width=device-width, initial-scale=1" />
17
{% endblock %}
18
</head>
19
<body>
20
<dialog id="sidenav" class="sheet-left">
21
<x-frame style="--width: 320px; --margin: 0;">
22
<article class="card">
23
<section class="card-main">
24
<nav class="sidenav">
25
<ul>
26
{% if logged_in_user %}
27
<li><a href="/{{ logged_in_user }}">
28
<img src="/info/{{ logged_in_user }}/avatar" class="avatar" style="width: 1em; height: 1em;">
29
{{ logged_in_user }}
30
</a></li>
31
<li><a href="/notifications">
32
<iconify-icon icon="ic:baseline-inbox" data-badge="{{ unread }}"></iconify-icon>
33
{% trans %}Notifications{% endtrans %}
34
</a></li>
35
<li><a href="/newrepo">
36
<iconify-icon icon="mdi:folder-plus"></iconify-icon>
37
{% trans %}Create repository{% endtrans %}
38
</a></li>
39
<li><a href="/favourites">
40
<iconify-icon icon="mdi:star"></iconify-icon>
41
{% trans %}Your favourites{% endtrans %}
42
</a></li>
43
<li><a href="/settings">
44
<iconify-icon icon="mdi:cog"></iconify-icon>
45
{% trans %}Settings{% endtrans %}
46
</a></li>
47
<li><a href="/logout">
48
<iconify-icon icon="mdi:logout"></iconify-icon>
49
{% trans %}Log out{% endtrans %}
50
</a></li>
51
{% else %}
52
<li><a href="/accounts">
53
<iconify-icon icon="mdi:account"></iconify-icon>
54
{% trans %}Log in or sign up{% endtrans %}
55
</a></li>
56
{% endif %}
57
</ul>
58
</nav>
59
</section>
60
</article>
61
</x-frame>
62
</dialog>
63
{% block dialogs %}
64
{% endblock %}
65
<x-vbox class="nopad" style="align-items: stretch; height: 100vh;">
66
{% if "cookie-banner" not in request.cookies %}
67
<x-hbox id="cookie-info">
68
<p>
69
{% 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 %}
70
</p>
71
<x-buttonbox>
72
<a href="/cookie-dismiss" class="button button-flat button-neutral">{% trans %}Dismiss{% endtrans %}</a>
73
</x-buttonbox>
74
</x-hbox>
75
{% endif %}
76
<header>
77
<nav id="global-nav" class="breadcrumbs">
78
<a href="javascript:document.getElementById('sidenav').showModal();" id="sidenav-trigger">
79
<iconify-icon icon="mdi:menu"></iconify-icon>
80
</a>
81
<ul>
82
<li><a href="/">{% trans %}roundabout{% endtrans %} (α)</a></li>
83
{% block breadcrumbs %}{% endblock %}
84
</ul>
85
<div class="flexible-space" id="navbar-separator"></div>
86
<x-buttonbox style="align-items: center; gap: 12px;">
87
{% if logged_in_user %}
88
<a href="/{{ logged_in_user }}">
89
<x-hbox class="box-center" style="--gap-box: 1ch;">
90
<img src="/info/{{ logged_in_user }}/avatar" class="avatar" style="width: 1em; height: 1em;">
91
{{ logged_in_user }}
92
</x-hbox>
93
</a>
94
<a href="/notifications">
95
<iconify-icon icon="ic:baseline-inbox" data-badge="{{ unread }}"></iconify-icon>
96
</a>
97
<a href="/newrepo">
98
<iconify-icon icon="mdi:folder-plus" title="{% trans %}Create repository{% endtrans %}"></iconify-icon>
99
</a>
100
<a href="/favourites">
101
<iconify-icon icon="mdi:star" title="{% trans %}Favourites{% endtrans %}"></iconify-icon>
102
</a>
103
<a href="/settings">
104
<iconify-icon icon="mdi:cog" title="{% trans %}User settings{% endtrans %}"></iconify-icon>
105
</a>
106
<a href="/logout">
107
<iconify-icon icon="mdi:logout" title="{% trans %}Log out{% endtrans %}"></iconify-icon>
108
</a>
109
{% else %}
110
<a href="/accounts">{% trans %}Log in or sign up{% endtrans %}</a>
111
{% endif %}
112
</x-buttonbox>
113
</nav>
114
{% if self.nav() | trim %}
115
<nav id="repo-nav" class="navbar" style="max-height: 100%; flex: 0 0 var(--height-navbar);">
116
{% block nav %}{% endblock %}
117
</nav>
118
{% endif %}
119
</header>
120
<main>
121
{% block content %}
122
{% endblock %}
123
</main>
124
<footer>
125
{{ Markup(config.footer) }}
126
<x-hbox style="justify-content: center;">
127
<details>
128
<summary>{% trans %}English{% endtrans %}</summary>
129
<form method="POST" action="/language">
130
<ul>
131
<li>
132
<button type="submit" value="{{ locale }}" class="link-button" name="language">
133
{% trans %}Automatic{% endtrans %}
134
</button>
135
</li>
136
{% for locale in config.available_locales %}
137
<li>
138
<button type="submit" value="{{ locale }}" class="link-button" name="language">
139
{{ locale_names[locale] }}
140
</button>
141
</li>
142
{% endfor %}
143
</ul>
144
</form>
145
</details>
146
</x-hbox>
147
</footer>
148
</x-vbox>
149
{% with messages = get_flashed_messages(with_categories=true) %}
150
<ol class="toast-container">
151
{% for category, message in messages %}
152
<li
153
style="
154
{% if category %}
155
background-color:
156
{% if category == 'error' %}var(--color-error)
157
{% elif category == 'alert' %}var(--color-alert)
158
{% elif category == 'info' %}var(--color-info)
159
{% elif category == 'success' %}var(--color-success)
160
{% endif %};
161
color:
162
{% if category == 'error' %}var(--color-error-text)
163
{% elif category == 'alert' %}var(--color-alert-text)
164
{% elif category == 'info' %}var(--color-info-text)
165
{% elif category == 'success' %}var(--color-success-text)
166
{% endif %};
167
{% endif %}"
168
>
169
{% if category | split | first == "task" %}
170
{{ message }}
171
{% else %}
172
{{ message }}
173
{% endif %}
174
<x-buttonbox>
175
<button class="button-flat" onclick="removeToast()" style="color: inherit !important;">{% trans %}Close{% endtrans %}</button>
176
</x-buttonbox>
177
</li>
178
{% endfor %}
179
</ol>
180
{% endwith %}
181
<script src="/static/ripples.js"></script>
182
<script src="/static/efficient-ui/dialogs.js"></script>
183
<script src="/static/efficient-ui/toasts.js"></script>
184
{% block scripts %}
185
{% endblock %}
186
</body>
187
</html>
188