From 74266af6d1209ed4a1f58adcf088cb1b9c0c0003 Mon Sep 17 00:00:00 2001 From: ed Date: Thu, 18 Apr 2024 23:10:11 +0000 Subject: [PATCH] pipe: warn when trying to download a .PARTIAL and fix file sorting indicators on firefox --- copyparty/web/browser.css | 16 +++++++++++++--- copyparty/web/browser.js | 18 +++++++++++++++--- 2 files changed, 28 insertions(+), 6 deletions(-) diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css index 0901a9ba..571f5632 100644 --- a/copyparty/web/browser.css +++ b/copyparty/web/browser.css @@ -699,12 +699,12 @@ a:hover { .s0:after, .s1:after { content: '⌄'; - margin-left: -.1em; + margin-left: -.15em; } .s0r:after, .s1r:after { content: '⌃'; - margin-left: -.1em; + margin-left: -.15em; } .s0:after, .s0r:after { @@ -715,7 +715,7 @@ a:hover { color: var(--sort-2); } #files thead th:after { - margin-right: -.7em; + margin-right: -.5em; } #files tbody tr:hover td, #files tbody tr:hover td+td { @@ -744,6 +744,15 @@ html #files.hhpick thead th { word-wrap: break-word; overflow: hidden; } +#files tr.fade a { + color: #999; + color: rgba(255, 255, 255, 0.4); + font-style: italic; +} +html.y #files tr.fade a { + color: #999; + color: rgba(0, 0, 0, 0.4); +} #files tr:nth-child(2n) td { background: var(--row-alt); } @@ -1737,6 +1746,7 @@ html.y #tree.nowrap .ntree a+a:hover { } #files th span { position: relative; + white-space: nowrap; } #files>thead>tr>th.min, #files td.min { diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 4bfc4155..ce7f230c 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -290,6 +290,8 @@ var Ls = { "f_dls": 'the file links in the current folder have\nbeen changed into download links', + "f_partial": "To safely download a file which is currently being uploaded, please click the file which has the same filename, but without the .PARTIAL file extension. Please press CANCEL or Escape to do this.\n\nPressing OK / Enter will ignore this warning and continue downloading the .PARTIAL scratchfile instead, which will almost definitely give you corrupted data.", + "ft_paste": "paste {0} items$NHotkey: ctrl-V", "fr_eperm": 'cannot rename:\nyou do not have “move” permission in this folder', "fd_eperm": 'cannot delete:\nyou do not have “delete” permission in this folder', @@ -792,6 +794,8 @@ var Ls = { "f_dls": 'linkene i denne mappen er nå\nomgjort til nedlastningsknapper', + "f_partial": "For å laste ned en fil som enda ikke er ferdig opplastet, klikk på filen som har samme filnavn som denne, men uten .PARTIAL på slutten. Da vil serveren passe på at nedlastning går bra. Derfor anbefales det sterkt å trykke ABRYT eller Escape-tasten.\n\nHvis du virkelig ønsker å laste ned denne .PARTIAL-filen på en ukontrollert måte, trykk OK / Enter for å ignorere denne advarselen. Slik vil du høyst sannsynlig motta korrupt data.", + "ft_paste": "Lim inn {0} filer$NSnarvei: ctrl-V", "fr_eperm": 'kan ikke endre navn:\ndu har ikke “move”-rettigheten i denne mappen', "fd_eperm": 'kan ikke slette:\ndu har ikke “delete”-rettigheten i denne mappen', @@ -1806,7 +1810,7 @@ function MPlayer() { r.preload = function (url, full) { var t0 = Date.now(), - fname = uricom_dec(url.split('/').pop()); + fname = uricom_dec(url.split('/').pop().split('?')[0]); url = addq(mpl.acode(url), 'cache=987&_=' + ACB); mpl.preload_url = full ? url : null; @@ -6381,8 +6385,9 @@ var treectl = (function () { '" class="doc' + (lang ? ' bri' : '') + '" hl="' + id + '" name="' + hname + '">-txt-'; - var ln = ['' + tn.lead + '' + hname + '', tn.sz]; + var cl = /\.PARTIAL$/.exec(fname) ? ' class="fade"' : '', + ln = ['' + tn.lead + '' + hname + '', tn.sz]; for (var b = 0; b < res.taglist.length; b++) { var k = res.taglist[b], @@ -8215,6 +8220,13 @@ ebi('files').onclick = ebi('docul').onclick = function (e) { treectl.reqls(tgt.getAttribute('href'), true); return ev(e); } + if (tgt && /\.PARTIAL(\?|$)/.exec('' + tgt.getAttribute('href')) && !window.partdlok) { + ev(e); + modal.confirm(L.f_partial, function () { + window.partdlok = 1; + tgt.click(); + }, null); + } tgt = e.target.closest('a[hl]'); if (tgt) {