2026-04-27 17:20:57 +03:00
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
|
<html lang="en">
|
|
|
|
|
|
<head>
|
|
|
|
|
|
<meta charset="UTF-8">
|
|
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
|
|
|
|
<title>WarpBox - {{ .BoxID }}</title>
|
2026-04-27 18:37:05 +03:00
|
|
|
|
<link rel="icon" type="image/png" href="/static/WarpBoxLogo.png">
|
2026-04-27 17:20:57 +03:00
|
|
|
|
<link rel="stylesheet" href="/static/css/app.css">
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/window.css">
|
|
|
|
|
|
<link rel="stylesheet" href="/static/css/box.css">
|
|
|
|
|
|
</head>
|
|
|
|
|
|
|
|
|
|
|
|
<body>
|
|
|
|
|
|
<main>
|
|
|
|
|
|
<section class="win98-window box-window" aria-labelledby="box-window-title">
|
|
|
|
|
|
<header class="win98-titlebar box-titlebar">
|
2026-04-27 18:37:05 +03:00
|
|
|
|
<div class="win98-titlebar-label">
|
|
|
|
|
|
<img class="win98-titlebar-icon" src="/static/WarpBoxLogo.png" alt="" aria-hidden="true">
|
|
|
|
|
|
<h1 id="box-window-title">WarpBox Explorer - {{ .BoxID }}</h1>
|
|
|
|
|
|
</div>
|
2026-04-29 02:29:49 +03:00
|
|
|
|
<div class="win98-window-controls" aria-label="Window controls">
|
|
|
|
|
|
<button class="win98-control win98-minimize" type="button" data-action="minimize" title="Minimize" aria-label="Minimize">_</button>
|
|
|
|
|
|
<button class="win98-control" type="button" data-action="toggle-fit" title="Fit window" aria-label="Maximize">□</button>
|
|
|
|
|
|
<button class="win98-control" type="button" data-action="fake-close" title="Close" aria-label="Close">×</button>
|
2026-04-27 17:20:57 +03:00
|
|
|
|
</div>
|
|
|
|
|
|
</header>
|
|
|
|
|
|
|
2026-04-29 02:29:49 +03:00
|
|
|
|
<div class="box-command-row">
|
|
|
|
|
|
<button class="box-address" type="button" id="box-address" data-copy-url="{{ .BoxID }}" title="Copy current page URL">{{ .BoxID }}</button>
|
|
|
|
|
|
<a class="win98-button box-toolbar-button" href="/"><img src="/static/img/icons/directory_open_cool-4.png" alt="" aria-hidden="true"><span>Upload</span></a>
|
2026-04-27 18:18:53 +03:00
|
|
|
|
{{ if .DownloadAll }}
|
2026-04-30 03:54:50 +03:00
|
|
|
|
<a class="win98-button box-toolbar-button {{ if or .ZipOnly (gt (len .Files) 1) }}start-upload-cta is-current-step{{ end }}" href="{{ .DownloadAll }}"><img src="/static/img/icons/Windows Icons - PNG/zipfldr.dll_14_101-0.png" alt="" aria-hidden="true"><span>Download Zip</span></a>
|
2026-04-27 18:18:53 +03:00
|
|
|
|
{{ end }}
|
2026-04-27 17:20:57 +03:00
|
|
|
|
</div>
|
|
|
|
|
|
|
2026-04-27 18:18:53 +03:00
|
|
|
|
{{ if .RetentionLabel }}
|
2026-04-29 02:29:49 +03:00
|
|
|
|
<div class="box-meta" data-expires-at="{{ .ExpiresAtISO }}">
|
|
|
|
|
|
<span id="box-expiry-text">Expires in {{ .RetentionLabel }}</span>
|
2026-04-27 18:18:53 +03:00
|
|
|
|
</div>
|
|
|
|
|
|
{{ end }}
|
|
|
|
|
|
|
2026-04-28 19:41:23 +03:00
|
|
|
|
<div class="win98-panel box-panel" data-box-id="{{ .BoxID }}" data-poll-ms="{{ .PollMS }}" data-zip-only="{{ if .ZipOnly }}true{{ else }}false{{ end }}">
|
2026-04-27 17:20:57 +03:00
|
|
|
|
{{ if .Files }}
|
|
|
|
|
|
<div class="box-file-grid" aria-label="Uploaded files">
|
|
|
|
|
|
{{ range .Files }}
|
2026-04-29 02:29:49 +03:00
|
|
|
|
<a class="box-file {{ if .IsComplete }}is-complete{{ else if eq .Status "failed" }}is-failed{{ else }}is-loading{{ end }} {{ if .ThumbnailURL }}has-thumbnail{{ end }}" href="{{ if and .IsComplete (not $.ZipOnly) }}{{ .DownloadPath }}{{ else }}#{{ end }}" title="{{ if $.ZipOnly }}Available in ZIP download{{ else }}{{ .Title }}{{ end }}" data-file-id="{{ .ID }}" data-status="{{ .Status }}" data-name="{{ .Name }}" data-size="{{ .SizeLabel }}" data-mime="{{ .MimeType }}" data-download-path="{{ .DownloadPath }}" data-thumbnail="{{ .ThumbnailURL }}" {{ if and .IsComplete (not $.ZipOnly) }}download{{ else }}aria-disabled="true"{{ end }}>
|
2026-04-28 18:44:16 +03:00
|
|
|
|
<img class="box-file-icon" src="{{ if .ThumbnailURL }}{{ .ThumbnailURL }}{{ else }}{{ .IconPath }}{{ end }}" alt="" aria-hidden="true">
|
2026-04-27 17:20:57 +03:00
|
|
|
|
<span class="box-file-name">{{ .Name }}</span>
|
2026-04-27 17:33:52 +03:00
|
|
|
|
<span class="box-file-meta">{{ .StatusLabel }} · {{ .SizeLabel }}</span>
|
2026-04-27 17:20:57 +03:00
|
|
|
|
</a>
|
|
|
|
|
|
{{ end }}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
{{ else }}
|
|
|
|
|
|
<p class="box-empty">This box is empty.</p>
|
|
|
|
|
|
{{ end }}
|
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="win98-statusbar box-statusbar" aria-live="polite">
|
|
|
|
|
|
<span>{{ .FileCount }} item(s)</span>
|
|
|
|
|
|
<span>WarpBox</span>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
</main>
|
2026-04-29 02:29:49 +03:00
|
|
|
|
<div class="modal-backdrop" id="modal-backdrop"></div>
|
|
|
|
|
|
<section class="win98-window popup-window" id="doc-popup" aria-modal="true" role="dialog" aria-labelledby="doc-popup-title">
|
|
|
|
|
|
<div class="win98-titlebar">
|
|
|
|
|
|
<div class="win98-titlebar-label">
|
|
|
|
|
|
<img class="win98-titlebar-icon" src="/static/img/icons/tip.png" alt="" aria-hidden="true">
|
|
|
|
|
|
<h2 id="doc-popup-title">WarpBox</h2>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="win98-window-controls"><button class="win98-control popup-close" type="button" id="doc-popup-close" title="Close">×</button></div>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="win98-panel popup-body" id="doc-popup-body"></div>
|
|
|
|
|
|
</section>
|
|
|
|
|
|
<div class="box-context-menu" id="box-context-menu" role="menu" aria-hidden="true">
|
|
|
|
|
|
<button type="button" data-context-action="preview"><img src="/static/img/sprites/bitmap.png" alt="" aria-hidden="true"><span>Preview</span></button>
|
|
|
|
|
|
<button type="button" data-context-action="download"><img src="/static/img/icons/directory_open_cool-4.png" alt="" aria-hidden="true"><span>Download</span></button>
|
|
|
|
|
|
<button type="button" data-context-action="properties"><img src="/static/img/icons/tip.png" alt="" aria-hidden="true"><span>Properties</span></button>
|
|
|
|
|
|
</div>
|
|
|
|
|
|
<div class="toast" id="toast" role="status" aria-live="polite"></div>
|
|
|
|
|
|
<script src="/static/js/warpbox-ui.js"></script>
|
2026-04-27 17:33:52 +03:00
|
|
|
|
<script src="/static/js/box.js"></script>
|
2026-04-27 17:20:57 +03:00
|
|
|
|
</body>
|
|
|
|
|
|
</html>
|