shelfy/templates/dashboard.pages.tmpl

94 lines
3.1 KiB
Cheetah
Raw Normal View History

2025-06-06 07:42:55 +00:00
<!DOCTYPE html>
<html lang="en">
{{ template "head" . }}
<body>
<header></header>
<div class="column">
<h1>Dashboard</h1>
<div class="columns is-mobile">
<div class="column is-2">
<aside class="menu">
2025-06-12 08:57:10 +00:00
<p class="menu-label">GoDownloader</p>
2025-06-06 07:42:55 +00:00
<ul class="menu-list">
2025-06-12 08:57:10 +00:00
<li><a class="nav-link" onclick="toggleMenuGoDownload(); return false;">GoDownloader</a>
<ul id="menuDownload" hidden>
<li><a hx-get="/downloads" class="nav-link" hx-target="#content" hx-swap="innerHTML">Téléchargements</a></li>
</ul>
</li>
2025-06-06 07:42:55 +00:00
<p class="menu-label">Library</p>
<li><a hx-get="/library" class="nav-link"
onclick="toggleMenu(); return false;"
hx-target="#content" hx-swap-oob="beforeend">Library</a>
<li>
<ul class="menu-list" id="libraryMenu" hidden>
<li>
<a class="is-active">Choise Library</a>
2025-06-21 16:17:16 +00:00
<ul id="paths-list">
2025-06-06 07:42:55 +00:00
{{range .paths}}
<li>
2025-06-21 16:20:31 +00:00
<a
href="/api/paths/{{.ID}}/media"
class="path-link"
hx-get="/api/paths/{{.ID}}/media"
hx-target="#content"
hx-swap="innerHTML">
2025-06-21 16:17:16 +00:00
{{.PathName}}
<i class="fas fa-ellipsis-v"></i>
</a>
</li>
{{end}}
2025-06-21 16:20:31 +00:00
2025-06-06 07:42:55 +00:00
</ul>
</li>
</ul>
</li>
2025-06-20 15:01:26 +00:00
<li><a hx-get="/folders" class="nav-link" hx-target="#content" hx-swap-oob="beforeend">Folders</a></li>
2025-06-06 07:42:55 +00:00
<li><a hx-get="/settings" class="nav-link" hx-target="#content" hx-swap-oob="beforeend">Settings</a></li>
</li>
</ul>
</aside>
</div>
<div class="column is-10">
2025-06-21 18:25:36 +00:00
<div id="loading-spinner" class="has-text-centered" style="display:none; position: absolute; top: 1rem; right: 1rem; z-index: 50;">
<button class="button is-loading is-white is-large" aria-label="Loading"></button>
</div>
2025-06-06 07:42:55 +00:00
<div id="content">
<!-- Le contenu spécifique sera chargé ici -->
</div>
</div>
</div>
</div>
<footer></footer>
</body>
2025-06-21 18:28:07 +00:00
<script>
// static/js/spinner.js
// Écoute tous les événements HTMX et affiche/masque le spinner global
document.body.addEventListener('htmx:send', () => {
const s = document.getElementById('loading-spinner');
if (s) s.style.display = 'block';
});
document.body.addEventListener('htmx:afterOnLoad', () => {
const s = document.getElementById('loading-spinner');
if (s) s.style.display = 'none';
});
// En cas derreur réseau
document.body.addEventListener('htmx:afterRequest', (evt) => {
if (evt.detail.xhr.status >= 400) {
const s = document.getElementById('loading-spinner');
if (s) s.style.display = 'none';
}
});
</script>
2025-06-06 07:42:55 +00:00
</html>