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<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 153style=" 154{% if category %} 155background-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 %}; 161color: 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