From 41c405e09353dc689451cf0852f2b26c506e6133 Mon Sep 17 00:00:00 2001 From: ed Date: Sun, 4 Jan 2026 12:18:02 +0000 Subject: [PATCH] refactor Signed-off-by: ed --- copyparty/web/browser.js | 59 ++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 38 deletions(-) diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 9ed24e64..4f5c4382 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -9574,39 +9574,24 @@ var rcm = (function () { selFile.elem = selFile.type = selFile.path = selFile.id = selFile.relpath = null; selFile.no_dsel = false; if (target) { + var file = target.closest("#files tbody tr"); if (isGrid && target.matches && target.matches('#ggrid > a')) { - var ref = target.getAttribute('ref'); - var file = ebi(ref) && ebi(ref).closest('#files tbody tr'); - if (file) { - selFile.no_dsel = clgot(file, "sel"); - clmod(file, "sel", true); - selFile.elem = file; - selFile.path = basenames(file.children[1].firstChild.href).split('?')[0]; - selFile.relpath = selFile.path.split('/').slice(-1)[0]; - if (noq_href(file.children[1].firstChild).endsWith("/")) - selFile.type = "dir"; - else { - var lead = file.firstChild.firstChild; - selFile.id = lead.id.split('-')[1]; - selFile.type = lead.innerHTML[0] == '(' ? 'gf' : lead.id.split('-')[0]; - } - } - } else { - var file = target.closest("#files tbody tr"); - if (file) { - selFile.no_dsel = clgot(file, "sel"); - clmod(file, "sel", true); - selFile.elem = file; + var ref = ebi(target.getAttribute('ref')); + file = ref && ref.closest('#files tbody tr'); + } + if (file) { + selFile.no_dsel = clgot(file, "sel"); + clmod(file, "sel", true); + selFile.elem = file; - selFile.path = basenames(file.children[1].firstChild.href).split('?')[0]; - selFile.relpath = selFile.path.split('/').slice(-1)[0]; - if (noq_href(file.children[1].firstChild).endsWith("/")) - selFile.type = "dir"; - else { - var lead = file.firstChild.firstChild; - selFile.id = lead.id.split('-')[1]; - selFile.type = lead.innerHTML[0] == '(' ? 'gf' : lead.id.split('-')[0]; - } + selFile.path = basenames(file.children[1].firstChild.href).split('?')[0]; + selFile.relpath = selFile.path.split('/').slice(-1)[0]; + if (noq_href(file.children[1].firstChild).endsWith("/")) + selFile.type = "dir"; + else { + var lead = file.firstChild.firstChild; + selFile.id = lead.id.split('-')[1]; + selFile.type = lead.innerHTML[0] == '(' ? 'gf' : lead.id.split('-')[0]; } } } @@ -9640,9 +9625,10 @@ var rcm = (function () { r.hide = function (force) { if (!menu.style.display || (!force && menu.contains(document.activeElement))) return; - if (selFile.elem && !selFile.no_dsel) + if (selFile.elem && !selFile.no_dsel) { clmod(selFile.elem, "sel", false); msel.selui(); + } selFile.elem = selFile.type = selFile.path = selFile.id = selFile.relpath = null; selFile.no_dsel = false; menu.style.display = ''; @@ -9654,12 +9640,8 @@ var rcm = (function () { return true; } ev(e); - var gridItem = e.target.closest('#ggrid > a'); - if (thegrid.en && gridItem) { - show(xscroll() + e.clientX, yscroll() + e.clientY, gridItem, true); - return false; - } - show(xscroll() + e.clientX, yscroll() + e.clientY, e.target, false); + var gfile = thegrid.en && e.target && e.target.closest('#ggrid > a'); + show(xscroll() + e.clientX, yscroll() + e.clientY, gfile || e.target, gfile); return false; }; menu.onblur = function() {setTimeout(r.hide)}; @@ -9667,6 +9649,7 @@ var rcm = (function () { return r; })(); + function reload_mp() { if (mp && mp.au) { mpo.au = mp.au;