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
                        Copyright 2023-2024 Roundabout contributors 
        
            26
                        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
                        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
                        @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 %} (α)</a></li> 
        
            111
                                    {% block breadcrumbs %}{% endblock %} 
        
            112
                                </ul> 
        
            113
                                <div class="flexible-space" id="navbar-separator"></div> 
        
            114
                                <x-buttonbox style="align-items: center; gap: 12px;"> 
        
            115
                                    {% if logged_in_user %} 
        
            116
                                        <a href="/{{ logged_in_user }}"> 
        
            117
                                            <x-hbox class="box-center" style="--gap-box: 1ch;"> 
        
            118
                                                    <img src="/info/{{ logged_in_user }}/avatar" class="avatar" style="width: 1em; height: 1em;"> 
        
            119
                                                    {{ logged_in_user }} 
        
            120
                                            </x-hbox> 
        
            121
                                        </a> 
        
            122
                                        <a href="/notifications"> 
        
            123
                                            <iconify-icon icon="ic:baseline-inbox" data-badge="{{ unread }}"></iconify-icon> 
        
            124
                                        </a> 
        
            125
                                        <a href="/newrepo"> 
        
            126
                                            <iconify-icon icon="mdi:folder-plus" title="{% trans %}Create repository{% endtrans %}"></iconify-icon> 
        
            127
                                        </a> 
        
            128
                                        <a href="/favourites"> 
        
            129
                                            <iconify-icon icon="mdi:star" title="{% trans %}Favourites{% endtrans %}"></iconify-icon> 
        
            130
                                        </a> 
        
            131
                                        <a href="/settings"> 
        
            132
                                            <iconify-icon icon="mdi:cog" title="{% trans %}User settings{% endtrans %}"></iconify-icon> 
        
            133
                                        </a> 
        
            134
                                        <a href="/logout"> 
        
            135
                                            <iconify-icon icon="mdi:logout" title="{% trans %}Log out{% endtrans %}"></iconify-icon> 
        
            136
                                        </a> 
        
            137
                                    {% else %} 
        
            138
                                        <a href="/accounts">{% trans %}Log in or sign up{% endtrans %}</a> 
        
            139
                                    {% endif %} 
        
            140
                                </x-buttonbox> 
        
            141
                            </nav> 
        
            142
                            {% if self.nav() | trim %} 
        
            143
                                <nav id="repo-nav" class="navbar" style="max-height: 100%; flex: 0 0 var(--height-navbar);"> 
        
            144
                                    {% block nav %}{% endblock %} 
        
            145
                                </nav> 
        
            146
                            {% endif %} 
        
            147
                        </header> 
        
            148
                        <main> 
        
            149
                            {% block full %} 
        
            150
                                {% block content %} 
        
            151
                                {% endblock %} 
        
            152
                            {% endblock %} 
        
            153
                        </main> 
        
            154
                        <footer> 
        
            155
                            {{ Markup(config.footer) }} 
        
            156
                            <x-hbox style="justify-content: center;"> 
        
            157
                                <details> 
        
            158
                                    <summary>{% trans %}English{% endtrans %}</summary> 
        
            159
                                    <form method="POST" action="/language"> 
        
            160
                                        <ul> 
        
            161
                                            <li> 
        
            162
                                                <button type="submit" value="{{ locale }}" class="link-button" name="language"> 
        
            163
                                                    {% trans %}Automatic{% endtrans %} 
        
            164
                                                </button> 
        
            165
                                            </li> 
        
            166
                                            {% for locale in config.available_locales %} 
        
            167
                                                <li> 
        
            168
                                                    <button type="submit" value="{{ locale }}" class="link-button" name="language"> 
        
            169
                                                        {{ locale_names[locale] }} 
        
            170
                                                    </button> 
        
            171
                                                </li> 
        
            172
                                            {% endfor %} 
        
            173
                                        </ul> 
        
            174
                                    </form> 
        
            175
                                </details> 
        
            176
                            </x-hbox> 
        
            177
                        </footer> 
        
            178
                    </x-vbox> 
        
            179
                    {% with messages = get_flashed_messages(with_categories=true) %} 
        
            180
                        <ol class="toast-container"> 
        
            181
                            {% for category, message in messages %} 
        
            182
                                <li 
        
            183
                                    style=" 
        
            184
                                    {% if category %} 
        
            185
                                        background-color: 
        
            186
                                            {% if category == 'error' %}var(--color-error) 
        
            187
                                            {% elif category == 'alert' %}var(--color-alert) 
        
            188
                                            {% elif category == 'info' %}var(--color-info) 
        
            189
                                            {% elif category == 'success' %}var(--color-success) 
        
            190
                                            {% endif %}; 
        
            191
                                        color: 
        
            192
                                            {% if category == 'error' %}var(--color-error-text) 
        
            193
                                            {% elif category == 'alert' %}var(--color-alert-text) 
        
            194
                                            {% elif category == 'info' %}var(--color-info-text) 
        
            195
                                            {% elif category == 'success' %}var(--color-success-text) 
        
            196
                                            {% endif %}; 
        
            197
                                    {% endif %}" 
        
            198
                                > 
        
            199
                                    {% if category | split | first == "task" %} 
        
            200
                                        {{ message }} 
        
            201
                                    {% else %} 
        
            202
                                        {{ message }} 
        
            203
                                    {% endif %} 
        
            204
                                    <x-buttonbox> 
        
            205
                                        <button class="button-flat" onclick="removeToast()" style="color: inherit !important;">{% trans %}Close{% endtrans %}</button> 
        
            206
                                    </x-buttonbox> 
        
            207
                                </li> 
        
            208
                            {% endfor %} 
        
            209
                        </ol> 
        
            210
                    {% endwith %} 
        
            211
                    <script src="/static/ripples.js"></script> 
        
            212
                    <script src="/static/efficient-ui/dialogs.js"></script> 
        
            213
                    <script src="/static/efficient-ui/toasts.js"></script> 
        
            214
                    {% block scripts %} 
        
            215
                    {% endblock %} 
        
            216
                </body> 
        
            217
            </html> 
        
            218