From af193ee83480ce3f85bdcca128d3b4314c39e3aa Mon Sep 17 00:00:00 2001 From: ed Date: Sat, 20 Apr 2024 16:13:32 +0000 Subject: [PATCH] keep up2k state integrity on abort --- copyparty/up2k.py | 7 ++++++- copyparty/web/browser.js | 14 +++++++++++++- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/copyparty/up2k.py b/copyparty/up2k.py index ca3d542a..4bd219ed 100644 --- a/copyparty/up2k.py +++ b/copyparty/up2k.py @@ -347,7 +347,12 @@ class Up2k(object): ret.sort(reverse=True) ret2 = [ - {"at": at, "vp": "/" + vp, "pd": 100 - ((nn * 100) // (nh or 1)), "sz": sz} + { + "at": at, + "vp": "/" + quotep(vp), + "pd": 100 - ((nn * 100) // (nh or 1)), + "sz": sz, + } for (at, vp, sz, nn, nh) in ret ] return json.dumps(ret2, indent=0) diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index ce7f230c..c0a44b96 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -422,6 +422,7 @@ var Ls = { "un_fclr": "clear filter", "un_derr": 'unpost-delete failed:\n', "un_f5": 'something broke, please try a refresh or hit F5', + "un_uf5": "sorry but you have to refresh the page (for example by pressing F5 or CTRL-R) before this upload can be aborted", "un_nou": 'warning: server too busy to show unfinished uploads; click the "refresh" link in a bit', "un_noc": 'warning: unpost of fully uploaded files is not enabled/permitted in server config', "un_max": "showing first 2000 files (use the filter)", @@ -926,6 +927,7 @@ var Ls = { "un_fclr": "nullstill filter", "un_derr": 'unpost-sletting feilet:\n', "un_f5": 'noe gikk galt, prøv å oppdatere listen eller trykk F5', + "un_uf5": "beklager, men du må laste siden på nytt (f.eks. ved å trykke F5 eller CTRL-R) før denne opplastningen kan avbrytes", "un_nou": 'advarsel: kan ikke vise ufullstendige opplastninger akkurat nå; klikk på oppdater-linken om litt', "un_noc": 'advarsel: angring av fullførte opplastninger er deaktivert i serverkonfigurasjonen', "un_max": "viser de første 2000 filene (bruk filteret for å innsnevre)", @@ -8097,7 +8099,17 @@ var unpost = (function () { if (!links.length) continue; - req.push(uricom_dec(r.files[a].vp.split('?')[0])); + var f = r.files[a]; + if (f.k == 'u') { + var vp = vsplit(f.vp.split('?')[0]), + dfn = uricom_dec(vp[1]); + for (var iu = 0; iu < up2k.st.files.length; iu++) { + var uf = up2k.st.files[iu]; + if (uf.name == dfn && uf.purl == vp[0]) + return modal.alert(L.un_uf5); + } + } + req.push(uricom_dec(f.vp.split('?')[0])); for (var b = 0; b < links.length; b++) { links[b].removeAttribute('href'); links[b].innerHTML = '[busy]';