feat: add file upload progress toast with per-file tracking (#93)

Replaced the hidden dropzone-only progress bar with a floating
upload toast that appears at the bottom-right corner whenever
files are being uploaded (button or drag-and-drop).

Features:
- Per-file progress bar with real byte-level tracking via XHR
- Spinning icon while uploading, green check on success, red on error
- Overall progress bar and file counter in the footer
- Auto-hides 4 seconds after all uploads complete
- Dismiss button to minimise the toast
- Works for both file and folder uploads
- i18n keys added to all 8 locale files
- Service worker cache bumped to v3
This commit is contained in:
Dionisio
2026-02-13 22:08:36 +01:00
parent 40bf43b292
commit aba7ea9d79
12 changed files with 383 additions and 115 deletions
+2
View File
@@ -16,6 +16,8 @@
"upload": "Hochladen",
"upload_files": "Dateien hochladen",
"upload_folder": "Ordner hochladen",
"upload.uploading": "Wird hochgeladen...",
"upload.complete": "{count} / {total} hochgeladen",
"rename": "Umbenennen",
"move": "Verschieben nach...",
"move_to": "Verschieben nach",
+2
View File
@@ -16,6 +16,8 @@
"upload": "Upload",
"upload_files": "Upload files",
"upload_folder": "Upload folder",
"upload.uploading": "Uploading...",
"upload.complete": "{count} / {total} uploaded",
"rename": "Rename",
"move": "Move to...",
"move_to": "Move to",
+2
View File
@@ -135,6 +135,8 @@
"upload": "Subir",
"upload_files": "Subir archivos",
"upload_folder": "Subir carpeta",
"upload.uploading": "Subiendo...",
"upload.complete": "{count} / {total} subidos",
"rename": "Renombrar",
"move": "Mover a...",
"move_to": "Mover a",
+2
View File
@@ -16,6 +16,8 @@
"upload": "بارگذاری",
"upload_files": "بارگذاری پرونده‌ها",
"upload_folder": "بارگذاری پوشه",
"upload.uploading": "...در حال بارگذاری",
"upload.complete": "{count} / {total} بارگذاری شد",
"rename": "تغییر نام",
"move": "انتقال به...",
"move_to": "انتقال به",
+2
View File
@@ -16,6 +16,8 @@
"upload": "Téléverser",
"upload_files": "Téléverser des fichiers",
"upload_folder": "Téléverser un dossier",
"upload.uploading": "Envoi en cours...",
"upload.complete": "{count} / {total} envoyés",
"rename": "Renommer",
"move": "Déplacer vers...",
"move_to": "Déplacer vers",
+3 -1
View File
@@ -16,6 +16,8 @@
"upload": "Carica",
"upload_files": "Carica file",
"upload_folder": "Carica cartella",
"upload.uploading": "Caricamento...",
"upload.complete": "{count} / {total} caricati",
"rename": "Rinomina",
"move": "Sposta in...",
"move_to": "Sposta in",
@@ -311,7 +313,7 @@
"fa": "Persiano",
"fr": "Francese",
"de": "Tedesco",
"pt": "Portoghese",
"pt": "Portoghese"
"it": "Italiano"
}
},
+2
View File
@@ -16,6 +16,8 @@
"upload": "Enviar",
"upload_files": "Enviar arquivos",
"upload_folder": "Enviar pasta",
"upload.uploading": "Enviando...",
"upload.complete": "{count} / {total} enviados",
"rename": "Renomear",
"move": "Mover para...",
"move_to": "Mover para",
+2
View File
@@ -16,6 +16,8 @@
"upload": "上传",
"upload_files": "上传文件",
"upload_folder": "上传文件夹",
"upload.uploading": "上传中...",
"upload.complete": "{count} / {total} 已上传",
"rename": "重命名",
"move": "移动到...",
"move_to": "移动到",