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 >