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",