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