@samitouri / QOSami-HFS / commits / 1dfc035f
Fork 0

QOSami-HFS is a web file server for your computer. Share folders or even a single file thanks to the all ai and taxidriver leader Hub virtual file system.

rename "skipped" uploads to "interrupted" because queued discarded items are not included

Massimo Melina committed Mar 17, 2026 at 13:03 UTC 1dfc035fd88a109b35552820704796da019d8ee3
28 files changed +37 -37
frontend/src/upload.ts
+5 -5
@@ -144,7 +144,7 @@ export function showUpload() {
144 if (!uploadState.paused)
145 return abortCurrentUpload(true)
146 f.error = t`Interrupted`
147 - uploadState.skipped.push(f)
147 + uploadState.interrupted.push(f)
148 uploadState.uploading = undefined
149 }
150 const q = uploadState.qs[idx]
@@ -214,11 +214,11 @@ function formatTime(time: number, decimals=0, length=Infinity) {
214
215 export function UploadStatus({ snapshot, ...props }: { snapshot?: INTERNAL_Snapshot<typeof uploadState> } & CSSProperties) {
216 const current = useSnapshot(uploadState)
217 - const { done, doneByte, errors, skipped } = snapshot || current
217 + const { done, doneByte, errors, interrupted } = snapshot || current
218 const msgDone = done.length > 0 && t('upload_finished', { n: done.length, size: formatBytes(doneByte) }, "{n} finished ({size})")
219 - const msgSkipped = skipped.length > 0 && t('upload_skipped', { n: skipped.length }, "{n} skipped")
219 + const msgInterrupted = interrupted.length > 0 && t('upload_interrupted', { n: interrupted.length }, "{n} interrupted")
220 const msgErrors = errors.length > 0 && t('upload_errors', { n: errors.length }, "{n} failed")
221 - const msg = [msgDone, msgSkipped, msgErrors].filter(Boolean).join(' – ')
221 + const msg = [msgDone, msgInterrupted, msgErrors].filter(Boolean).join(' – ')
222 if (!msg) return null
223 const sep = h('span', { className: 'horiz-sep' }, ' – ')
224 return h('div', { style: { ...props } },
@@ -240,7 +240,7 @@ export function UploadStatus({ snapshot, ...props }: { snapshot?: INTERNAL_Snaps
240 alertDialog(h('div', {},
241 ([
242 [msgDone, done],
243 - [msgSkipped, skipped],
243 + [msgInterrupted, interrupted],
244 [msgErrors, errors]
245 ] as const).map(([msg, list], i) =>
246 msg && h('div', { key: i }, msg, h('ul', {},
frontend/src/uploadQueue.ts
+5 -5
@@ -18,7 +18,7 @@ export const uploadState = proxy<{
18 done: (ToUpload & { response?: any })[] // res will contain the response from the server,
19 doneByte: number
20 errors: ToUpload[]
21 - skipped: ToUpload[]
21 + interrupted: ToUpload[]
22 adding: ToUpload[]
23 qs: { to: string, entries: ToUpload[] }[]
24 paused: boolean
@@ -38,7 +38,7 @@ export const uploadState = proxy<{
38 paused: false,
39 qs: [],
40 adding: [],
41 - skipped: [],
41 + interrupted: [],
42 errors: [],
43 doneByte: 0,
44 done: [],
@@ -146,7 +146,7 @@ export async function startUpload(toUpload: ToUpload, to: string, resume=0) {
146 if (req.responseText === 'retry') // it's our previous request that didn't release the lock yet
147 return await wait(2000) // wait before resolving `finished`
148 toUpload.error = status ? t('upload_conflict', "already exists") : t`Interrupted` // the I is uppercase because we are just recycling an old string (with all its translations)
149 - uploadState.skipped.push(toUpload)
149 + uploadState.interrupted.push(toUpload)
150 }
151 else if (status >= 400)
152 error(status)
@@ -223,7 +223,7 @@ export async function startUpload(toUpload: ToUpload, to: string, resume=0) {
223 resetCounters()
224 const msg = h('div', {}, t(['upload_concluded', "Upload terminated"], "Upload concluded:"),
225 h(UploadStatus, { snapshot: snap, display: 'flex', flexDirection: 'column' }) )
226 - if (snap.errors.length || snap.skipped.length)
226 + if (snap.errors.length || snap.interrupted.length)
227 alertDialog(msg, 'warning')
228 else
229 toast(msg, 'success')
@@ -276,7 +276,7 @@ export function resetCounters() {
276 errors: [],
277 done: [],
278 doneByte: 0,
279 - skipped: [],
279 + interrupted: [],
280 })
281 }
282
src/langs/hfs-lang-ar.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "تكرار",
160 "showHelpListShortcut": "من قائمة الملفات، اضغط مع الاستمرار على {key} للعرض بسرعة",
161 "Invalid value": "قيمة غير صالحة",
162 - "upload_skipped": "{n} تم تجاوزهم",
162 + "upload_interrupted": "{n} مُتوقف",
163 "Overwrite policy": "سياسة الكتابة فوق",
164 "Rename to avoid overwriting": "إعادة التسمية لتجنب الكتابة فوق",
165 "Overwrite existing files": "الكتابة فوق الملفات الموجودة",
src/langs/hfs-lang-bg.json
+1 -1
@@ -157,7 +157,7 @@
157 "Repeat": "Повтори",
158 "showHelpListShortcut": "В списъка с файлове, задръж {key} и клик за бързо показване",
159 "Invalid value": "Невалидна стойност",
160 - "upload_skipped": "{n} пропуснати",
160 + "upload_interrupted": "{n} Прекъснато",
161 "Overwrite policy": "Политика за презаписване",
162 "Rename to avoid overwriting": "Преименувай за да избегнеш презаписване",
163 "Overwrite existing files": "Презапиши съществуващите файлове",
src/langs/hfs-lang-de.json
+1 -1
@@ -150,7 +150,7 @@
150 "Repeat": "Wiederholen",
151 "showHelpListShortcut": "In der Dateiliste, {key} gedrückt halten beim Klicken für schnelle Anzeige.",
152 "Invalid value": "Ungültiger Wert",
153 - "upload_skipped": "{n} übersprungen",
153 + "upload_interrupted": "{n} Unterbrochen",
154 "Overwrite policy": "Überschreibungsrichtlinie",
155 "Rename to avoid overwriting": "Umbenennen, um Überschreiben zu vermeiden.",
156 "Overwrite existing files": "Existierende Dateien überschreiben.",
src/langs/hfs-lang-el.json
+1 -1
@@ -160,7 +160,7 @@
160 "Repeat": "Επανάληψη",
161 "showHelpListShortcut": "Από τη λίστα αρχείων, κρατήστε πατημένο το {key} για γρήγορη προβολή",
162 "Invalid value": "Μη έγκυρη τιμή",
163 - "upload_skipped": "{n} παραλείφθηκαν",
163 + "upload_interrupted": "{n} Διακόπηκε",
164 "Overwrite policy": "Πολιτική αντικατάστασης",
165 "Rename to avoid overwriting": "Μετονομασία για αποφυγή αντικατάστασης",
166 "Overwrite existing files": "Αντικατάσταση υπαρχόντων αρχείων",
src/langs/hfs-lang-en.json
+2 -2
@@ -158,7 +158,7 @@
158 "Repeat": "Repeat",
159 "showHelpListShortcut": "From the file list, click while holding {key} to Show",
160 "Invalid value": "Invalid value",
161 - "upload_skipped": "{n} skipped",
161 + "upload_interrupted": "{n} interrupted",
162 "Overwrite policy": "Overwrite policy",
163 "Rename to avoid overwriting": "Rename to avoid overwriting",
164 "Overwrite existing files": "Overwrite existing files",
@@ -191,4 +191,4 @@
191 "insufficient storage": "insufficient storage",
192 "Account disabled": "Account disabled"
193 }
194 -}
\ No newline at end of file
194 +}
src/langs/hfs-lang-es.json
+1 -1
@@ -163,7 +163,7 @@
163 "Repeat": "Repetir",
164 "showHelpListShortcut": "En la lista de archivos, haga clic manteniendo pulsada {key} para Mostrar rápidamente",
165 "Invalid value": "Valor no válido",
166 - "upload_skipped": "Se salta {n}",
166 + "upload_interrupted": "{n} Interrumpido",
167 "Overwrite policy": "Reglas para sobreescribir",
168 "Rename to avoid overwriting": "Renombrar para evitar sobrescribir",
169 "Overwrite existing files": "Sobrescribir archivos existentes",
src/langs/hfs-lang-fi.json
+1 -1
@@ -163,7 +163,7 @@
163 "Repeat": "Toisto",
164 "showHelpListShortcut": "Tiedosto listalta, klikkaa kun painat {key} Näyttääksesi nopeasti",
165 "Invalid value": "Virheellinen arvo",
166 - "upload_skipped": "{n} ohitettu",
166 + "upload_interrupted": "{n} Keskeytetty",
167 "Overwrite policy": "Ylikirjoitus käytäntö",
168 "Rename to avoid overwriting": "Uudelleen nimeä jotta ei ylikirjoiteta",
169 "Overwrite existing files": "Ylikirjoita olemassa olevat tiedostot",
src/langs/hfs-lang-fr.json
+1 -1
@@ -163,7 +163,7 @@
163 "Repeat": "Répéter",
164 "showHelpListShortcut": "Afficher le raccourci de la liste d’aide",
165 "Invalid value": "Valeur non valide",
166 - "upload_skipped": "{n} télé-versement(s)ignoré(s)",
166 + "upload_interrupted": "{n} Interrompu",
167 "Overwrite policy": "Stratégie de remplacement",
168 "Rename to avoid overwriting": "Renommer pour éviter l'écrasement",
169 "Overwrite existing files": "Écraser les fichiers existants",
src/langs/hfs-lang-hu.json
+1 -1
@@ -164,7 +164,7 @@
164 "Repeat": "Ismétlés",
165 "showHelpListShortcut": "A fájl listában tartsa nyomva a {key} gombot a gyors nézethez",
166 "Invalid value": "Érvénytelen érték",
167 - "upload_skipped": "{n} feltölteni kívánt elem kihagyva",
167 + "upload_interrupted": "{n} Megszakadt",
168 "Overwrite policy": "Felülírási irányelv",
169 "Rename to avoid overwriting": "Átnevez, hogy elkerülje a felülírást",
170 "Overwrite existing files": "Létező fájlok felülírása",
src/langs/hfs-lang-it.json
+1 -1
@@ -150,7 +150,7 @@
150 "Repeat": "Ripeti a fine lista",
151 "showHelpListShortcut": "Dalla lista dei file, clicca tenendo {key} per accedere velocemente al File Show",
152 "Invalid value": "Valore non valido",
153 - "upload_skipped": "{n,plural, one{# saltato} other{# saltati}}",
153 + "upload_interrupted": "{n,plural, one{# interrotto} other{# interrotti}}",
154 "Overwrite policy": "Per i file esistenti",
155 "Rename to avoid overwriting": "Rinomina per non sovrascrivere",
156 "Overwrite existing files": "Sovrascrivi i file esistenti",
src/langs/hfs-lang-ja.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "リピート",
160 "showHelpListShortcut": "{key} を押しながらクリックするとファイルの内容を確認することができます",
161 "Invalid value": "無効な値です",
162 - "upload_skipped": "{n}個スキップ",
162 + "upload_interrupted": "{n} 中断されました",
163 "Overwrite policy": "上書きの設定",
164 "Rename to avoid overwriting": "上書きを防ぐため、名前を変更する",
165 "Overwrite existing files": "既にあるファイルを上書きする",
src/langs/hfs-lang-ko.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "반복",
160 "showHelpListShortcut": "파일 목록을 빠르게 넘기려면 {key}를 길게 클릭하세요.",
161 "Invalid value": "잘못된 값",
162 - "upload_skipped": "{n} 건너뜀",
162 + "upload_interrupted": "{n} 중단됨",
163 "Overwrite policy": "덮어쓰기 정책",
164 "Rename to avoid overwriting": "덮어쓰지 않도록 이름 바꾸기",
165 "Overwrite existing files": "기존 파일 덮어쓰기",
src/langs/hfs-lang-lt.json
+1 -1
@@ -158,7 +158,7 @@
158 "Repeat": "Kartoti",
159 "showHelpListShortcut": "Failų sąraše spustelėkite laikydami {key}, kad greitai parodytumėte",
160 "Invalid value": "Neteisinga vertė",
161 - "upload_skipped": "{n} praleista",
161 + "upload_interrupted": "{n} Nutraukta",
162 "Overwrite policy": "Perrašymo politika",
163 "Rename to avoid overwriting": "Pervadinti, kad išvengtumėte perrašymo",
164 "Overwrite existing files": "Perrašyti esamus failus",
src/langs/hfs-lang-ms.json
+1 -1
@@ -120,7 +120,7 @@
120 "Repeat": "Ulang",
121 "showHelpListShortcut": "Daripada senarai fail, klik sambil menahan {key} untuk paparan cepat",
122 "Invalid value": "Nilai tidak sah",
123 - "upload_skipped": "{n} dilangkau",
123 + "upload_interrupted": "{n} Dihentikan",
124 "Overwrite policy": "Dasar menulis ganti",
125 "Rename to avoid overwriting": "Namakan semula untuk elak ganti",
126 "Overwrite existing files": "Tulis ganti fail sedia ada",
src/langs/hfs-lang-nl.json
+1 -1
@@ -158,7 +158,7 @@
158 "Repeat": "Herhaal",
159 "showHelpListShortcut": "In de bestanden lijst, klik de bestandsnaam aan met de {key} ingedrukt om het snel te tonen",
160 "Invalid value": "Foutieve waarde",
161 - "upload_skipped": "{n} overgeslagen",
161 + "upload_interrupted": "{n} Onderbroken",
162 "Overwrite policy": "Overschrijf beleid",
163 "Rename to avoid overwriting": "Hernoem om overschrijven te vermijden",
164 "Overwrite existing files": "Overschrijf bestaande bestanden",
src/langs/hfs-lang-pl.json
+1 -1
@@ -158,7 +158,7 @@
158 "Repeat": "Powtarzaj",
159 "showHelpListShortcut": "Z listy plików kliknij i przytrzymaj {key}, aby szybko pokazać",
160 "Invalid value": "Nieprawidłowa wartość",
161 - "upload_skipped": "{n} pominiętych",
161 + "upload_interrupted": "{n} Przerwane",
162 "Overwrite policy": "Polityka nadpisania",
163 "Rename to avoid overwriting": "Zmień nazwę, aby uniknąć nadpisania",
164 "Overwrite existing files": "Nadpisz istniejące pliki",
src/langs/hfs-lang-pt-br.json
+1 -1
@@ -158,7 +158,7 @@
158 "Repeat": "Repetir",
159 "showHelpListShortcut": "Na lista de arquivos, clique segurando {key} para Mostrar rapidamente",
160 "Invalid value": "Valor inválido",
161 - "upload_skipped": "{n} ignorado(s)",
161 + "upload_interrupted": "{n} Interrompida",
162 "Overwrite policy": "Política de sobrescrita",
163 "Rename to avoid overwriting": "Renomear para evitar sobrescrita",
164 "Overwrite existing files": "Sobrescrever arquivos existentes",
src/langs/hfs-lang-ro.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "Repetă",
160 "showHelpListShortcut": "Din lista de fișiere, fă clic ținând apăsat {key} pentru a arăta rapid",
161 "Invalid value": "Valoare invalidă",
162 - "upload_skipped": "{n} sărit",
162 + "upload_interrupted": "{n} Intrerupt",
163 "Overwrite policy": "Politică de suprascriere",
164 "Rename to avoid overwriting": "Redenumește pentru a evita suprascrierea",
165 "Overwrite existing files": "Suprascrie fișierele existente",
src/langs/hfs-lang-ru.json
+1 -1
@@ -162,7 +162,7 @@
162 "Repeat": "Повтор",
163 "showHelpListShortcut": "Из списка файлов нажмите {key} чтобы быстро открыть Просмотр файла",
164 "Invalid value": "Недействительное значение",
165 - "upload_skipped": "{n,plural, one{# пропущен} other{# пропущено}}",
165 + "upload_interrupted": "{n} Прерван",
166 "Overwrite policy": "Правило перезаписи",
167 "Rename to avoid overwriting": "Переименовать во избежание перезаписи",
168 "Overwrite existing files": "Перезаписать существующие файлы",
src/langs/hfs-lang-sr.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "Понављање",
160 "showHelpListShortcut": "Кликните држећи {key} за брзи преглед",
161 "Invalid value": "Неважећа вредност",
162 - "upload_skipped": "{n} прескочено",
162 + "upload_interrupted": "{n} Прекинуто",
163 "Overwrite policy": "Начин преписивања",
164 "Rename to avoid overwriting": "Преименуј да избегнеш преписивање",
165 "Overwrite existing files": "Препиши постојеће документе",
src/langs/hfs-lang-th.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "ทำซ้ำ",
160 "showHelpListShortcut": "จากรายการไฟล์ คลิกค้าง {key} เพื่อแสดงอย่างรวดเร็ว",
161 "Invalid value": "ค่าที่ไม่ถูกต้อง",
162 - "upload_skipped": "{n} ข้าม",
162 + "upload_interrupted": "{n} ถูกขัดจังหวะ",
163 "Overwrite policy": "นโยบายการเขียนทับ",
164 "Rename to avoid overwriting": "เปลี่ยนชื่อเพื่อหลีกเลี่ยงการเขียนทับ",
165 "Overwrite existing files": "เขียนทับไฟล์ที่มีอยู่",
src/langs/hfs-lang-tr.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "Tekrarlar (Repeat)",
160 "showHelpListShortcut": "Dosya Listesinde {key} tuşuna basılı durumda tıklayarak, hızlıca Göster yapabilirsiniz",
161 "Invalid value": "Geçersiz değer",
162 - "upload_skipped": "{n} atlandı",
162 + "upload_interrupted": "{n} Yarıda kesildi",
163 "Overwrite policy": "Üzerine Yazma politikası",
164 "Rename to avoid overwriting": "Üzerine Yazmadan kaçınmak için Yeniden Adlandır",
165 "Overwrite existing files": "Mevcut Dosyaların üzerine yaz",
src/langs/hfs-lang-uk.json
+1 -1
@@ -154,7 +154,7 @@
154 "Repeat": "Повтор",
155 "showHelpListShortcut": "Зі списку файлів натисніть {key} щоб швидко відкрити Перегляд файлу",
156 "Invalid value": "Недійсне значення",
157 - "upload_skipped": "{n,plural, one{# пропущено} other{# пропущено}}",
157 + "upload_interrupted": "{n} Перервано",
158 "Overwrite policy": "Правило перезапису",
159 "Rename to avoid overwriting": "Перейменувати, щоб уникнути перезапису",
160 "Overwrite existing files": "Перезаписати існуючі файли",
src/langs/hfs-lang-vi.json
+1 -1
@@ -164,7 +164,7 @@
164 "Repeat": "Lặp",
165 "showHelpListShortcut": "Ở danh sách file, giữ {key} để hiển thị",
166 "Invalid value": "🤷 what u think something in ur freakin' brain?",
167 - "upload_skipped": "{n} đã bỏ qua",
167 + "upload_interrupted": "{n} Đã huỷ bỏi người dùng!",
168 "Overwrite policy": "Chính sách ghi đè:",
169 "Rename to avoid overwriting": "Đổi tên, tránh ghi đè file có sẳn",
170 "Overwrite existing files": "ĐÈ LUÔN file có sẳn",
src/langs/hfs-lang-zh-tw.json
+1 -1
@@ -159,7 +159,7 @@
159 "Repeat": "重複播放",
160 "showHelpListShortcut": "在檔案清單中,按一下 {key} 即可快速顯示",
161 "Invalid value": "無效值",
162 - "upload_skipped": "{n} 跳過",
162 + "upload_interrupted": "{n} 中止",
163 "Overwrite policy": "覆蓋規則",
164 "Rename to avoid overwriting": "重新命名以避免覆蓋",
165 "Overwrite existing files": "覆蓋已存在的檔案",
src/langs/hfs-lang-zh.json
+1 -1
@@ -163,7 +163,7 @@
163 "Repeat": "重复",
164 "showHelpListShortcut": "在文件列表中,按住 {key} 点击可快速显示",
165 "Invalid value": "无效值",
166 - "upload_skipped": "{n} 个已跳过",
166 + "upload_interrupted": "{n} 中断",
167 "Overwrite policy": "覆盖策略",
168 "Rename to avoid overwriting": "重命名以避免覆盖",
169 "Overwrite existing files": "覆盖已存在的文件",