From 5d7cf80ff0923dae348c48cea0a2306af39b5fce Mon Sep 17 00:00:00 2001 From: ed Date: Fri, 16 Jan 2026 01:11:26 +0000 Subject: [PATCH] dsel: default on desktop + ie11 --- copyparty/web/browser.css | 7 ++++--- copyparty/web/browser.js | 30 ++++++++++++++---------------- copyparty/web/tl/fin.js | 1 + copyparty/web/tl/nor.js | 1 + scripts/tl.js | 6 +++++- 5 files changed, 25 insertions(+), 20 deletions(-) diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css index ee63c43c..aa2e1fba 100644 --- a/copyparty/web/browser.css +++ b/copyparty/web/browser.css @@ -4172,9 +4172,10 @@ html.e #detree { .selbox { position: fixed; - border: 1px solid var(--btn-1h-bg); - background-color: var(--btn-1h-bg); + border: .5em solid #f0f; + border: .2em solid var(--btn-1h-bg); + background-color: rgba(128, 128, 128, 0.6); background-color: rgb(from var(--btn-1h-bg) r g b / 0.5); pointer-events: none; z-index: 99; -} \ No newline at end of file +} diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 9ecf276e..bf9aef00 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -231,7 +231,7 @@ if (1) "ct_ttips": '◔ ◡ ◔">ℹ️ tooltips', "ct_thumb": 'in grid-view, toggle icons or thumbnails$NHotkey: T">🖼️ thumbs', "ct_csel": 'use CTRL and SHIFT for file selection in grid-view">sel', - "ct_dsel": 'use drag selection in grid-view">dsel', + "ct_dsel": 'use drag-selection in grid-view">dsel', "ct_dl": 'force download (don\'t display inline) when a file is clicked">dl', "ct_ihop": 'when the image viewer is closed, scroll down to the last viewed file">g⮯', "ct_dots": 'show hidden files (if server permits)">dotfiles', @@ -6747,7 +6747,7 @@ var treectl = (function () { bcfg_bind(r, 'idxh', 'idxh', idxh, setidxh); bcfg_bind(r, 'dyn', 'dyntree', true, onresize); bcfg_bind(r, 'csel', 'csel', dgsel); - bcfg_bind(r, 'dsel', 'dsel', false); + bcfg_bind(r, 'dsel', 'dsel', !MOBILE); bcfg_bind(r, 'dlni', 'dlni', dlni, resort); bcfg_bind(r, 'dots', 'dotfiles', see_dots, function (v) { r.goto(); @@ -9763,16 +9763,13 @@ function reload_browser() { var is_drag = false; var startx, starty; var selbox = null; - + var ttimer = null; var lpdelay = 400; var mvthresh = 10; function unbox() { - var boxes = QSA('.selbox'); - for (var el of boxes) { - el.remove(); - } + qsr('.selbox'); selbox = null; is_drag = false; is_selma = false; @@ -9847,8 +9844,8 @@ function reload_browser() { } if (!is_drag || !selbox) return; - - if (e.cancelable) e.preventDefault(); + + ev(e); var width = Math.abs(pos.x - startx); var height = Math.abs(pos.y - starty); @@ -9859,6 +9856,9 @@ function reload_browser() { selbox.style.height = height + 'px'; selbox.style.left = left + 'px'; selbox.style.top = top + 'px'; + + if (IE && window.getSelection) + window.getSelection().removeAllRanges(); } function sel_end(e) { @@ -9871,15 +9871,13 @@ function reload_browser() { var sbrect = selbox.getBoundingClientRect(); var faf = QSA('#ggrid a'); - for (var el of faf) { - if (bob(sbrect, el.getBoundingClientRect())) { - sel_toggle(el); - } - }; + for (var a = 0, aa = faf.length; a < aa; a++) + if (bob(sbrect, faf[a].getBoundingClientRect())) + sel_toggle(faf[a]); msel.selui(); } - + unbox(); document.body.style.userSelect = 'auto'; } @@ -9899,7 +9897,7 @@ function reload_browser() { } }); } - + dsel_init(); })(); diff --git a/copyparty/web/tl/fin.js b/copyparty/web/tl/fin.js index 64080718..a680a04f 100644 --- a/copyparty/web/tl/fin.js +++ b/copyparty/web/tl/fin.js @@ -226,6 +226,7 @@ Ls.fin = { "ct_ttips": '◔ ◡ ◔">ℹ️ vihjelaatikot', "ct_thumb": 'valitse kuvakkeiden / pienoiskuvien välillä kuvanäkymässä $NPikanäppäin: T">🖼️ pienoiskuvat', "ct_csel": 'käytä CTRL ja SHIFT tiedostojen valintaan kuvanäkymässä">valitse', + "ct_dsel": 'käytä aluevalintaa tiedostojen valintaan kuvanäkymässä">aluevalinta', "ct_dl": 'pakota lataus (älä näytä upotettuna), kun tiedostoa napsautetaan">dl', //m "ct_ihop": 'kun kuvakatselin suljetaan, vieritä alas viimeksi katsottuun tiedostoon">g⮯', "ct_dots": 'näytä piilotetut tiedostot (jos palvelin sallii)">piilotiedostot', diff --git a/copyparty/web/tl/nor.js b/copyparty/web/tl/nor.js index ad8f8f33..128d2e3e 100644 --- a/copyparty/web/tl/nor.js +++ b/copyparty/web/tl/nor.js @@ -223,6 +223,7 @@ Ls.nor = { "ct_ttips": 'vis hjelpetekst ved å holde musen over ting">ℹ️ tips', "ct_thumb": 'vis miniatyrbilder istedenfor ikoner$NSnarvei: T">🖼️ bilder', "ct_csel": 'bruk tastene CTRL og SHIFT for markering av filer i ikonvisning">merk', + "ct_dsel": 'marker filer med klikk-og-dra i ikonvisning">dsel', "ct_dl": 'last ned filer (ikke vis i nettleseren)">dl', "ct_ihop": 'bla ned til sist viste bilde når bildeviseren lukkes">g⮯', "ct_dots": 'vis skjulte filer (gitt at serveren tillater det)">.synlig', diff --git a/scripts/tl.js b/scripts/tl.js index 54a1cc37..0b80c69c 100644 --- a/scripts/tl.js +++ b/scripts/tl.js @@ -255,6 +255,7 @@ Ls.hmn = { "ct_ttips": '◔ ◡ ◔">ℹ️ tooltips', "ct_thumb": 'in grid-view, toggle icons or thumbnails$NHotkey: T">🖼️ thumbs', "ct_csel": 'use CTRL and SHIFT for file selection in grid-view">sel', + "ct_dsel": 'use drag-selection in grid-view">dsel', "ct_dl": 'force download (don\'t display inline) when a file is clicked">dl', "ct_ihop": 'when the image viewer is closed, scroll down to the last viewed file">g⮯', "ct_dots": 'show hidden files (if server permits)">dotfiles', @@ -293,6 +294,7 @@ Ls.hmn = { "cdt_ask": "when scrolling to the bottom,$Ninstead of loading more files,$Nask what to do", "cdt_hsort": "how many sorting rules (<code>,sorthref</code>) to include in media-URLs. Setting this to 0 will also ignore sorting-rules included in media links when clicking them", "cdt_ren": "enable custom right-click menu, you can still access the regular menu by pressing the shift key and right-clicking", + "cdt_rdb": "show the regular right-click menu when the custom one is already open and right-clicking again", "tt_entree": "show navpane (directory tree sidebar)$NHotkey: B", "tt_detree": "show breadcrumbs$NHotkey: B", @@ -383,6 +385,7 @@ Ls.hmn = { "f_anota": "only {0} of the {1} items were selected;\nto select the full folder, first scroll to the bottom", "f_dls": 'the file links in the current folder have\nbeen changed into download links', + "f_dl_nd": 'skipping folder (use zip/tar download instead):\n', "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.", @@ -674,7 +677,7 @@ Ls.hmn = { "rc_ply": "play", "rc_pla": "play as audio", "rc_txt": "open in textfile viewer", - "rc_md": "open in text editor", + "rc_md": "open in markdown viewer", "rc_dl": "download", "rc_zip": "download as archive", "rc_cpl": "copy link", @@ -682,6 +685,7 @@ Ls.hmn = { "rc_cut": "cut", "rc_cpy": "copy", "rc_pst": "paste", + "rc_rnm": "rename", "rc_nfo": "new folder", "rc_nfi": "new file", "rc_sal": "select all",