SPB Git

spb/drive Public

SPB Drive — self-hosted personal cloud drive (files, previews, sharing) on the MacLustr cluster.

JavaScript 82.7% CSS 10.6% Nunjucks 3.6% Shell 1.8% SQL 1.3%
2.3 KB · 55 lines jinja
Raw Blame History
1{#2  ─────────────────────────────────────────────3   SPB Drive — Personal Cloud Drive4  ─────────────────────────────────────────────5   Author  : Simon-Pierre Boucher6   Contact : contact@spboucher.ai7   File    : src/web/views/share-folder.njk8   Purpose : Public folder share — read-only browser + download-all ZIP9   License : MIT © Simon-Pierre Boucher10  ─────────────────────────────────────────────11#}12{% extends "base.njk" %}13{% block title %}{{ node.name }} · SPB Drive{% endblock %}14{% block og %}15  <meta property="og:site_name" content="SPB Drive">16  <meta property="og:title" content="{{ og.title }} (folder)">17  <meta property="og:type" content="website">18  <meta property="og:url" content="{{ og.url }}">19  <meta property="og:description" content="Shared folder · Simon-Pierre Boucher">20  <meta name="twitter:card" content="summary">21{% endblock %}22{% block body %}23<div class="share-page"24     data-token="{{ share.token }}"25     data-node-id="{{ node.id }}"26     data-name="{{ node.name }}"27     data-folder="1"28     data-allow-download="{{ '1' if allowDownload else '0' }}">29  <header class="share-topbar">30    <div class="brand"><div class="mark">SPB</div><span>SPB Drive</span></div>31  </header>32  <main class="share-main wide">33    <div class="share-file-head">34      <span class="fico" id="shareIcon"></span>35      <div>36        <h1>{{ node.name }}</h1>37        <div class="fmeta">Shared folder</div>38      </div>39      {% if allowDownload %}40      <a class="btn primary" href="/s/{{ share.token }}/zip">41        <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" width="16" height="16"><path d="M12 4v12m0 0 5-5m-5 5-5-5"/><path d="M4 19h16"/></svg>42        Download all as ZIP43      </a>44      {% endif %}45    </div>46    <div class="crumbs share-crumbs" id="shareCrumbs"></div>47    <div id="shareBrowser"></div>48  </main>49  <footer class="share-footer">50    Shared by Simon-Pierre Boucher · <a href="mailto:contact@spboucher.ai">contact@spboucher.ai</a>51  </footer>52</div>53<script type="module" src="/assets/js/share-page.js"></script>54{% endblock %}55