parcel/templates/base.html

119 lines
5.0 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{% block title %}{% endblock %} - Parcel File Sharing</title>
<link rel="shortcut icon" type="image/png" href="/static/favicon.png">
<link rel="stylesheet" href="/static/main.css">
<link rel="stylesheet" href="/static/icons/lucide.css" />
{% if env.analytics_domain and env.plausible_script %}
<script defer data-domain="{{ env.plausible_domain }}" src="{{ env.plausible_script }}"></script>
{% else %}
<!-- No analytics domain or script provided -->
{% endif %}
{% block head %}{% endblock %}
</head>
<body>
<header class="bg-neutral-100 dark:bg-gray-900 text-neutral-800 dark:text-neutral-200 border-b
border-gray-400 dark:border-gray-700 w-full shadow-sm">
<nav class="container mx-auto flex flex-row align-center justify-between">
<ul class="list-none flex flex-row">
<li>
<a href="/" class="flex flex-row items-center gap-1 text-neutral-800
dark:text-neutral-200 hover:bg-slate-700/10 hover:text-neutral-800
dark:hover:text-neutral-200">
<div class="ml-4 text-xl">
<span class="icon-package-open"></span>
</div>
<div class="mr-4 my-4 font-semibold">Parcel</div>
</a>
</li>
</ul>
<ul class="list-none flex flex-row">
{% if auth %}
<li class="relative dropdown">
<div class="cursor-pointer select-none block px-4 py-4 text-neutral-800
dark:text-neutral-200 hover:bg-slate-700/10">
<span class="icon-circle-user-round"></span>
{{ auth.name }}
{% if not auth.has_totp %}
<span class="icon-triangle-alert text-danger"></span>
{% endif %}
</div>
<ul class="invisible absolute top-full right-0 left-auto bg-slate-100
dark:bg-slate-800 border border-gray-400 dark:border-gray-700 rounded w-max z-50">
{% if auth.admin %}
<li>
<a href="/admin" class="block px-4 py-4 text-neutral-800 dark:text-neutral-200
hover:bg-slate-700/10 hover:text-neutral-800 dark:hover:text-neutral-200">
<span class="icon-cog"></span>
Administration
</a>
</li>
{% endif %}
<li>
<a href="/user/settings" class="block px-4 py-4 text-neutral-800
dark:text-neutral-200 hover:bg-slate-700/10 hover:text-neutral-800
dark:hover:text-neutral-200">
<span class="icon-settings-2"></span>
Account Settings
{% if not auth.has_totp %}
<span class="icon-triangle-alert text-danger"></span>
{% endif %}
</a>
</li>
<li>
<a href="/user/signout" class="block px-4 py-4 text-neutral-800
dark:text-neutral-200 hover:bg-slate-700/10 hover:text-neutral-800
dark:hover:text-neutral-200">
<span class="icon-log-out"></span>
Sign Out
</a>
</li>
</ul>
</li>
{% else %}
<li>
<a href="/user/signin" class="block px-4 py-4 text-neutral-800 dark:text-neutral-200
hover:bg-slate-700/10 hover:text-neutral-100 dark:hover:text-neutral-200">
<span class="icon-log-in"></span>
Sign In
</a>
</li>
{% endif %}
</ul>
</nav>
</header>
{% block content %}{% endblock %}
<footer class="container mx-auto mt-8 mb-4 flex flex-col items-center text-sm text-neutral-500">
<div>
Powered by
<a
class="text-neutral-500 hover:text-neutral-600 dark:hover:text-neutral-400"
title="Git repository"
href="https://git.blakerain.com/BlakeRain/parcel">Parcel</a>
v{{ build.version }}
</div>
{% if build.profile == "debug" %}
<div class="flex flex-row gap-2">
<span>Responsive Breakpoints:</span>
<span class="opacity-50 sm:opacity-100">sm</span>
<span class="opacity-50 md:opacity-100">md</span>
<span class="opacity-50 lg:opacity-100">lg</span>
<span class="opacity-50 xl:opacity-100">xl</span>
<span class="opacity-50 2xl:opacity-100">2xl</span>
</div>
{% endif %}
</footer>
<script type="text/javascript" src="/static/scripts/vendor/htmx.js"></script>
{% if build.profile == "debug" %}
<script type="text/javascript">
// htmx.logAll();
</script>
{% endif %}
<script type="module" src="/{{ env.init_js | safe }}"></script>
{% block scripts %}{% endblock %}
</body>
</html>