server_photo_s85js/public/index.html.ok2
2026-08-11 08:45:04 +02:00

274 lines
7.9 KiB
Text
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html lang="it">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Galleria</title>
<!-- Configurazione iniziale -->
<script>
window.BASE_URL = "";
window.AppConfig = { ready: true };
window.dispatchEvent(new Event("config:ready"));
</script>
<!-- CSS applicazione -->
<link rel="stylesheet" href="/css/base.css" />
<link rel="stylesheet" href="/css/header.css" />
<link rel="stylesheet" href="/css/gallery.css" />
<link rel="stylesheet" href="/css/map.css" />
<link rel="stylesheet" href="/css/modal.css" />
<link rel="stylesheet" href="/css/activityModal.css" />
<link rel="stylesheet" href="/css/infoPanel.css" />
<link rel="stylesheet" href="/css/bottomSheet.css" />
<link rel="stylesheet" href="/css/optionsSheet.css" />
<link rel="stylesheet" href="/css/utils.css" />
<!-- Leaflet e MarkerCluster -->
<link rel="stylesheet" href="https://unpkg.com/leaflet/dist/leaflet.css" />
<link
rel="stylesheet"
href="https://unpkg.com/leaflet.markercluster/dist/MarkerCluster.css"
/>
<link
rel="stylesheet"
href="https://unpkg.com/leaflet.markercluster/dist/MarkerCluster.Default.css"
/>
<style>
#authLoader {
position: fixed;
inset: 0;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
background: #fff;
font-size: 1.4rem;
}
</style>
</head>
<body class="photos">
<div id="authLoader">Caricamento…</div>
<div id="app" style="display: none">
<!-- HEADER -->
<header class="topbar">
<h1>Galleria</h1>
<!-- Pulsante singolo: mostra la modalità corrente e passa all'altra -->
<button
id="modeToggle"
class="mode-toggle"
type="button"
aria-label="Passa alle attività"
title="Passa alle attività"
>
📷
</button>
<div class="top-buttons">
<div class="deleted-toggle">
<input
type="checkbox"
id="showDeleted"
class="visually-hidden"
aria-hidden="true"
tabindex="-1"
/>
<button
id="showDeletedBtn"
class="icon-btn deleted-toggle-btn is-hidden"
type="button"
aria-label="Mostra foto cancellate"
aria-pressed="false"
title="Mostra foto cancellate"
>
<span class="eye-icon" aria-hidden="true">👁️</span>
</button>
</div>
<button
id="openMapBtn"
class="icon-btn"
type="button"
aria-label="Apri mappa"
title="Mappa"
>
🗺️
</button>
<button
id="optionsBtn"
class="icon-btn"
type="button"
aria-label="Apri opzioni"
title="Opzioni"
>
</button>
<button
id="configBtn"
class="icon-btn"
type="button"
aria-label="Apri configurazione"
title="Configurazione"
>
⚙️
</button>
<button
id="logoutBtn"
class="icon-btn logout-btn"
type="button"
data-logout
data-redirect="/login"
aria-label="Logout"
title="Logout"
>
<img src="/logout.png" class="logout-icon" alt="" />
</button>
</div>
</header>
<!-- GALLERIA -->
<main id="gallery"></main>
<!-- MAPPA -->
<div id="globalMap" class="global-map"></div>
<!-- MODAL FOTO E VIDEO -->
<div id="modal" class="modal" aria-hidden="true">
<button
id="modalClose"
class="modal-close"
type="button"
aria-label="Chiudi"
>
×
</button>
<div id="modalMediaContainer" class="modal-media"></div>
<button
id="modalPrev"
class="modal-nav-btn prev hidden"
type="button"
aria-label="Elemento precedente"
>
</button>
<button
id="modalNext"
class="modal-nav-btn next hidden"
type="button"
aria-label="Elemento successivo"
>
</button>
</div>
<!-- MODAL ATTIVITÀ -->
<div id="activityModal" aria-hidden="true">
<button
id="activityModalClose"
class="modal-close"
type="button"
aria-label="Chiudi attività"
>
×
</button>
<div id="activityModalContent"></div>
</div>
<!-- INFO PANEL -->
<aside id="infoPanel" class="info-panel" aria-hidden="true"></aside>
<!-- BOTTOM SHEET MAPPA -->
<div id="bottomSheet" class="bottom-sheet">
<div class="sheet-header"></div>
<div id="sheetGallery" class="sheet-gallery"></div>
</div>
<!-- OPTIONS SHEET -->
<div id="optionsSheet" class="options-sheet">
<div class="sheet-header"></div>
<div class="sheet-content">
<h3>Ordinamento</h3>
<button class="sheet-btn" type="button" data-sort="asc">
Data ↑
</button>
<button class="sheet-btn" type="button" data-sort="desc">
Data ↓
</button>
<h3>Raggruppamento</h3>
<button class="sheet-btn" type="button" data-group="auto">
Automatico
</button>
<button class="sheet-btn" type="button" data-group="day">
Giorno
</button>
<button class="sheet-btn" type="button" data-group="month">
Mese
</button>
<button class="sheet-btn" type="button" data-group="year">
Anno
</button>
<h3>Filtri</h3>
<button class="sheet-btn" type="button" data-filter="">Tutto</button>
<button class="sheet-btn" type="button" data-filter="folder">
Con cartella
</button>
<button class="sheet-btn" type="button" data-filter="location">
Con GPS
</button>
<button class="sheet-btn" type="button" data-filter="type">
Solo immagini
</button>
</div>
</div>
<div id="sheetOverlay" class="sheet-overlay"></div>
</div>
<!-- Librerie esterne -->
<script src="https://unpkg.com/leaflet/dist/leaflet.js"></script>
<script src="https://unpkg.com/leaflet.markercluster/dist/leaflet.markercluster.js"></script>
<!-- Autenticazione e configurazione -->
<script src="/js/config.js"></script>
<script src="/js/auth.js"></script>
<script src="/js/logout.js"></script>
<!-- Moduli applicazione -->
<script src="/js/api.js"></script>
<script src="/js/state.js"></script>
<script src="/js/sync.js"></script>
<script src="/js/galleryUtils.js"></script>
<script src="/js/activityThumbs.js"></script>
<script src="/js/galleryRenderer.js"></script>
<script src="/js/gallery.js"></script>
<script src="/js/mapPhotosLayer.js"></script>
<script src="/js/mapActivitiesLayer.js"></script>
<script src="/js/mapGlobal.js"></script>
<script src="/js/modal.js"></script>
<script src="/js/activityModal.js"></script>
<script src="/js/infoPanel.js"></script>
<script src="/js/bottomSheet.js"></script>
<script src="/js/optionsSheet.js"></script>
<script src="/js/pageControls.js"></script>
<!-- Debug mobile: rimuovere in produzione se non necessario -->
<script src="https://cdn.jsdelivr.net/npm/eruda"></script>
<script>
if (window.eruda) {
window.eruda.init();
}
</script>
</body>
</html>