2026-04-25 18:04:10 +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</ title >
2026-04-27 18:37:05 +03:00
< link rel = "icon" type = "image/png" href = "/static/WarpBoxLogo.png" >
2026-04-25 18:04:10 +03:00
< link href = "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&display=swap" rel = "stylesheet" >
< link rel = "stylesheet" href = "/static/css/app.css" >
2026-04-27 16:49:44 +03:00
< link rel = "stylesheet" href = "/static/css/window.css" >
< link rel = "stylesheet" href = "/static/css/upload.css" >
2026-04-25 18:04:10 +03:00
</ head >
< body >
< main >
2026-04-27 16:49:44 +03:00
< section class = "win98-window upload-window" aria-labelledby = "upload-window-title" >
< header class = "win98-titlebar upload-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 = "upload-window-title" > WarpBox Upload</ h1 >
</ div >
2026-04-27 16:49:44 +03:00
< div class = "win98-window-controls" aria-hidden = "true" >
< span class = "win98-control" > _</ span >
< span class = "win98-control" > □</ span >
< span class = "win98-control" > × </ span >
2026-04-25 18:46:16 +03:00
</ div >
</ header >
2026-04-25 18:04:10 +03:00
2026-04-28 21:11:37 +03:00
< form class = "upload-form" action = "/upload" method = "post" enctype = "multipart/form-data" data-uploads-enabled = "{{ if .UploadsEnabled }}true{{ else }}false{{ end }}" >
2026-04-27 16:49:44 +03:00
< div class = "win98-menu upload-menu" aria-hidden = "true" >
2026-04-27 17:02:07 +03:00
< span class = "win98-menu-option" > File</ span >
< span class = "win98-menu-option" > Edit</ span >
< span class = "win98-menu-option" > View</ span >
< span class = "win98-menu-option" > Help</ span >
2026-04-25 18:46:16 +03:00
</ div >
2026-04-25 18:04:10 +03:00
2026-04-27 16:49:44 +03:00
< div class = "win98-panel upload-panel" >
2026-04-25 18:46:16 +03:00
< label class = "upload-dropzone" for = "file-upload" >
< span class = "upload-icon" aria-hidden = "true" ></ span >
< span class = "upload-primary" > Drop file here</ span >
< span class = "upload-secondary" > or click Browse to choose one</ span >
</ label >
2026-04-28 21:11:37 +03:00
< input id = "file-upload" class = "upload-input" type = "file" name = "files" multiple {{ if not . UploadsEnabled }} disabled {{ end }} >
2026-04-25 18:46:16 +03:00
2026-04-27 18:18:53 +03:00
< fieldset class = "upload-options" >
< legend > Box options</ legend >
< label class = "upload-option-row" for = "upload-retention" >
< span > Keep files</ span >
< select id = "upload-retention" class = "upload-select" name = "retention" >
{{ range .RetentionOptions }}
< option value = "{{ .Key }}" {{ if eq . Key $. DefaultRetention }} selected {{ end }} > {{ .Label }}</ option >
{{ end }}
</ select >
</ label >
< label class = "upload-check-row" for = "upload-password-enabled" >
< input id = "upload-password-enabled" type = "checkbox" >
< span > Password protect this box</ span >
</ label >
< input id = "upload-password" class = "upload-text-input" type = "password" autocomplete = "new-password" placeholder = "Password" disabled >
< label class = "upload-check-row" for = "upload-zip-enabled" >
< input id = "upload-zip-enabled" type = "checkbox" checked >
< span > Allow Download Zip</ span >
</ label >
</ fieldset >
2026-04-25 18:46:16 +03:00
< div class = "upload-details" >
< span class = "upload-detail-label" > Selected Files</ span >
< span id = "upload-file-count" class = "upload-file-count" > 0 files</ span >
</ div >
2026-04-27 17:26:57 +03:00
< div class = "upload-result is-hidden" aria-live = "polite" >
2026-04-27 17:20:57 +03:00
< span class = "upload-result-label" > Folder link</ span >
< a id = "upload-box-link" class = "upload-result-link is-empty" href = "#" aria-disabled = "true" > Waiting for upload</ a >
< button id = "upload-share-button" class = "win98-button upload-share-button" type = "button" disabled > Share</ button >
</ div >
2026-04-27 17:49:19 +03:00
< div class = "upload-file-list" aria-live = "polite" aria-label = "Selected files" >
2026-04-28 21:11:37 +03:00
{{ if .UploadsEnabled }}
< p class = "upload-empty-state" > No files selected</ p >
{{ else }}
< p class = "upload-empty-state" > Guest uploads are disabled.</ p >
{{ end }}
2026-04-27 17:49:19 +03:00
</ div >
2026-04-25 18:46:16 +03:00
</ div >
< footer class = "upload-actions" >
< label class = "win98-button" for = "file-upload" > Browse...</ label >
2026-04-28 21:11:37 +03:00
< button class = "win98-button" type = "submit" {{ if not . UploadsEnabled }} disabled {{ end }} > Upload</ button >
2026-04-25 18:46:16 +03:00
</ footer >
2026-04-27 17:26:57 +03:00
< div class = "upload-overall" aria-live = "polite" >
< div class = "upload-overall-track" aria-hidden = "true" >
< span class = "upload-overall-bar" ></ span >
</ div >
< span class = "upload-overall-percent" > 0%</ span >
</ div >
2026-04-27 16:49:44 +03:00
< div class = "win98-statusbar upload-statusbar" aria-live = "polite" >
2026-04-25 18:46:16 +03:00
< span > Ready</ span >
< span > WarpBox</ span >
</ div >
</ form >
</ section >
2026-04-25 18:04:10 +03:00
</ main >
< script src = "/static/js/app.js" ></ script >
</ body >
2026-04-25 18:46:16 +03:00
</ html >