feat(share-public): folder gallery UI in share.html

Replaces the placeholder with a gallery rendered by publicShare.js
against the new public endpoints.

- Grid / list view toggle (localStorage)
- Image thumbs and lazy-loaded video posters
- Click-to-open lightbox with Esc / arrow nav
- ZIP download for the current folder
- Subfolder navigation via URL hash, History API for back

Adds five overlay-related tokens to base/variables.css for the
lightbox surface (on-overlay text, translucent button, drop shadow).

share.html itself only adds an icons.js module import and empties
#share-folder for JS to populate.
This commit is contained in:
abnvle
2026-05-05 22:42:11 +02:00
parent d15d7b8f8e
commit cb454d8aa2
4 changed files with 814 additions and 47 deletions
+4 -9
View File
@@ -5,6 +5,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OxiCloud — Shared</title>
<script src="/js/core/theme-init.js"></script>
<script type="module" src="/js/core/icons.js"></script>
<link rel="stylesheet" href="/css/main.css">
<link rel="stylesheet" href="/css/views/share-public.css">
</head>
@@ -49,17 +50,11 @@
</a>
</div>
<!-- Folder share view -->
<div id="share-folder" class="share-state hidden">
<h2 id="folder-name"></h2>
<p class="subtitle" id="folder-meta">Shared folder</p>
<div id="folder-contents" class="folder-list">
<p class="subtitle">Folder browsing is not yet available. Use a WebDAV client for full access.</p>
</div>
</div>
<!-- Folder share view: populated by publicShare.js -->
<div id="share-folder" class="share-state hidden"></div>
</div>
<script src="/js/views/public/publicShare.js"></script>
<script type="module" src="/js/views/public/publicShare.js"></script>
</body>
</html>