mirror of
https://github.com/9001/copyparty.git
synced 2026-06-18 20:22:27 -06:00
thumbnails in list view
This commit is contained in:
parent
2d487d1427
commit
0f03812202
|
|
@ -288,7 +288,7 @@ window.baguetteBox = (function () {
|
|||
var galleries = data[selector].galleries;
|
||||
[].forEach.call(galleries, function (gallery) {
|
||||
[].forEach.call(gallery, function (imageItem) {
|
||||
//unbind(imageItem.imageElement, 'click', imageItem.eventHandler);
|
||||
unbind(imageItem.imageElement, 'click', imageItem.eventHandler);
|
||||
});
|
||||
|
||||
if (currentGallery === gallery)
|
||||
|
|
@ -742,7 +742,7 @@ window.baguetteBox = (function () {
|
|||
}
|
||||
|
||||
function showOverlay(chosenImageIndex) {
|
||||
clmod(ebi('ggrid'), 'waiting', true);
|
||||
clmod(ebi('wrap'), 'waiting', true);
|
||||
|
||||
if (options.noScrollbars) {
|
||||
var a = document.documentElement.style.overflowY,
|
||||
|
|
@ -767,7 +767,7 @@ window.baguetteBox = (function () {
|
|||
loadImage(currentIndex, function () {
|
||||
preloadNext(currentIndex);
|
||||
preloadPrev(currentIndex);
|
||||
clmod(ebi('ggrid'), 'waiting', false);
|
||||
clmod(ebi('wrap'), 'waiting', false);
|
||||
});
|
||||
|
||||
show_buttons(0);
|
||||
|
|
@ -796,7 +796,6 @@ window.baguetteBox = (function () {
|
|||
function hideOverlay(e, dtor) {
|
||||
ev(e);
|
||||
playvid(false);
|
||||
removeFromCache('#files');
|
||||
if (options.noScrollbars) {
|
||||
document.documentElement.style.overflowY = scrollCSS[0];
|
||||
document.body.style.overflowY = scrollCSS[1];
|
||||
|
|
|
|||
|
|
@ -522,6 +522,7 @@ html.dy #files tr.sel a.play {
|
|||
color: #fff;
|
||||
}
|
||||
html.dy tr.play td:nth-child(1) a {
|
||||
color: #000;
|
||||
background: #fff;
|
||||
border: #000 solid 1px;
|
||||
}
|
||||
|
|
@ -708,6 +709,7 @@ html.y #path {
|
|||
display: block;
|
||||
padding: .5em;
|
||||
scroll-margin-top: 45vh;
|
||||
border-radius: var(--radius);
|
||||
}
|
||||
#files tr {
|
||||
scroll-margin-top: 25vh;
|
||||
|
|
@ -742,6 +744,7 @@ a:hover {
|
|||
color: var(--a-hil);
|
||||
background: var(--a-h-bg);
|
||||
}
|
||||
#files .imgcontainer:hover,
|
||||
#files a:hover {
|
||||
color: var(--fg-max);
|
||||
background: color-mix(in oklab, var(--a) 20%, transparent);
|
||||
|
|
@ -786,10 +789,6 @@ a.dir {
|
|||
color: #3584e4;
|
||||
color: var(--a);
|
||||
}
|
||||
tr.dir td:nth-child(2) a::before {
|
||||
content: "📁";
|
||||
margin: 0 .1em 0 -.2em;
|
||||
}
|
||||
#files thead th {
|
||||
padding: .3em;
|
||||
background: var(--bg);
|
||||
|
|
@ -844,7 +843,7 @@ html.y #files tr.fade a {
|
|||
border-radius: 0 5px 5px 0;
|
||||
border-radius: 0 var(--radius) var(--radius) 0;
|
||||
}
|
||||
#files tbody td:nth-child(3) {
|
||||
#files tbody td:nth-child(4) {
|
||||
font-family: 'scp', monospace, monospace;
|
||||
font-family: var(--font-mono), 'scp', monospace, monospace;
|
||||
text-align: right;
|
||||
|
|
@ -1049,9 +1048,6 @@ tr td:nth-child(1) a {
|
|||
padding: .3em;
|
||||
margin: -.3em;
|
||||
} */
|
||||
tr.play td:nth-child(2) a::before {
|
||||
content: "▶";
|
||||
}
|
||||
tr.play td:nth-child(1) a {
|
||||
background: var(--btn-1-bg);
|
||||
color:var(--btn-1-fg);
|
||||
|
|
@ -1118,10 +1114,14 @@ tr.play td:nth-child(1) a {
|
|||
/* separate to allow IE to only use this rule */
|
||||
display: block;
|
||||
}
|
||||
#files .play .thumb,
|
||||
#files .play img,
|
||||
#ggrid>a.play .thumb,
|
||||
#ggrid>a.play img {
|
||||
background: var(--bg-u2);
|
||||
}
|
||||
.thumb,
|
||||
.imgcontainer img,
|
||||
#ggrid>a .thumb,
|
||||
#ggrid>a img {
|
||||
color: #3584e4;
|
||||
|
|
@ -1136,6 +1136,7 @@ tr.play td:nth-child(1) a {
|
|||
height: calc(var(--grid-sz) - 2.5em);
|
||||
object-fit: cover;
|
||||
}
|
||||
.imgcontainer img,
|
||||
#ggrid>a img {
|
||||
position: absolute;
|
||||
opacity: 0;
|
||||
|
|
@ -2197,7 +2198,7 @@ input.ssconf_v {
|
|||
margin: 0 .1em 0 0;
|
||||
}
|
||||
|
||||
#files td div span {
|
||||
#files td div:not(.imgcontainer) span {
|
||||
color: var(--fg-max);
|
||||
padding: 0 .4em;
|
||||
font-weight: bold;
|
||||
|
|
@ -2501,9 +2502,47 @@ html.b .btn {
|
|||
#files td.min {
|
||||
display: none;
|
||||
}
|
||||
#files td:nth-child(2n) {
|
||||
#files td:nth-child(3){
|
||||
color: var(--tab-alt);
|
||||
}
|
||||
#files td:has(.imgcontainer) {
|
||||
padding: 0 1px;
|
||||
}
|
||||
#files .imgcontainer {
|
||||
width: 2.3em;
|
||||
height: 2.3em;
|
||||
cursor: pointer;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
#files .play .imgcontainer {
|
||||
margin: -2px 0px;
|
||||
padding: 2px;
|
||||
}
|
||||
#files .thumb,
|
||||
#files img {
|
||||
height: 100%;
|
||||
}
|
||||
#files tbody tr.sel span.th_ext span,
|
||||
#files tbody tr.sel span.th_ext {
|
||||
background: none;
|
||||
}
|
||||
#files .dir.thumbed img,
|
||||
#files .dir .thumbed img {
|
||||
position: absolute;
|
||||
opacity: .6;
|
||||
}
|
||||
#files .dir.thumbed .thumb,
|
||||
#files .dir .thumbed .thumb {
|
||||
display: block !important;
|
||||
z-index: 2;
|
||||
}
|
||||
#files .au .imgcontainer::after {
|
||||
content: "▶";
|
||||
position: absolute;
|
||||
z-index: 2;
|
||||
top: .6em;
|
||||
}
|
||||
#plazy {
|
||||
width: 1px;
|
||||
height: 1px;
|
||||
|
|
@ -2542,7 +2581,6 @@ html.b .btn {
|
|||
padding: 0;
|
||||
}
|
||||
.disabled,
|
||||
#thumbs,
|
||||
#au_prescan,
|
||||
#au_fullpre,
|
||||
#au_os_seek,
|
||||
|
|
@ -2556,7 +2594,6 @@ html.b .btn {
|
|||
#up_quick.disabled {
|
||||
display: none;
|
||||
}
|
||||
.setting:has(#griden.on)+.setting #thumbs,
|
||||
.setting:has(#au_preload.on)+.setting #au_prescan,
|
||||
.setting:has(#au_preload.on)+.setting #au_prescan,
|
||||
.setting:has(#au_preload.on)~.setting #au_fullpre,
|
||||
|
|
@ -5237,7 +5274,8 @@ html.e #tree_footer {
|
|||
background: transparent;
|
||||
}
|
||||
html.e #wrap {
|
||||
padding: 0;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
html.e #pathBar {
|
||||
padding: 0;
|
||||
|
|
|
|||
|
|
@ -282,7 +282,7 @@ if (1)
|
|||
|
||||
"ct_grid": '田 the grid',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ tooltips',
|
||||
"ct_thumb": 'in grid-view, toggle icons or thumbnails$NHotkey: T">🖼️ thumbs',
|
||||
"ct_thumb": '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_den": 'use dragging to move files into other folders">mvd',
|
||||
|
|
@ -1261,8 +1261,8 @@ ebi('op_cfg').innerHTML = (
|
|||
' <h3 id="h_general">✅ ' + L.cl_opts + '</h3>\n' +
|
||||
' <div>\n' +
|
||||
' <a id="tooltips" class="tgl btn" tt="' + L.ct_ttips + '</a>\n' +
|
||||
' <a id="griden" class="tgl btn" tt="' + L.wt_grid + '">' + L.ct_grid + '</a>\n' +
|
||||
' <a id="thumbs" class="tgl btn" tt="' + L.ct_thumb + '</a>\n' +
|
||||
' <a id="griden" class="tgl btn" tt="' + L.wt_grid + '">' + L.ct_grid + '</a>\n' +
|
||||
' <a id="csel" class="tgl btn" tt="' + L.ct_csel + '</a>\n' +
|
||||
' <a id="dsel" class="tgl btn" tt="' + L.ct_dsel + '</a>\n' +
|
||||
' <a id="den" class="tgl btn" tt="' + L.ct_den + '</a>\n' +
|
||||
|
|
@ -2191,7 +2191,7 @@ var mpl = (function () {
|
|||
tags.album = np.album;
|
||||
|
||||
if (r.osd_cv) {
|
||||
var files = QSA("#files tr>td:nth-child(2)>a[id]"),
|
||||
var files = QSA("#files tr>td:nth-child(3)>a[id]"),
|
||||
cover = null;
|
||||
|
||||
for (var a = 0, aa = files.length; a < aa; a++) {
|
||||
|
|
@ -2304,7 +2304,7 @@ function MPlayer() {
|
|||
|
||||
for (var a = 0, aa = trs.length; a < aa; a++) {
|
||||
var tds = trs[a].getElementsByTagName('td'),
|
||||
link = tds[1].getElementsByTagName('a');
|
||||
link = tds[2].getElementsByTagName('a');
|
||||
|
||||
link = link[link.length - 1];
|
||||
var url = link.getAttribute('href'),
|
||||
|
|
@ -4245,16 +4245,13 @@ function eval_hash() {
|
|||
}
|
||||
|
||||
if (mtype == 'g') {
|
||||
if (!thegrid.en)
|
||||
ebi('griden').click();
|
||||
|
||||
var t = setInterval(function () {
|
||||
if (!thegrid.bbox)
|
||||
if (!msel.bbox || !msel.ready)
|
||||
return;
|
||||
|
||||
clearInterval(t);
|
||||
baguetteBox.urltime(ts);
|
||||
var im = QS('#ggrid a[ref="' + id + '"]');
|
||||
var im = ebi(id);
|
||||
if (!im)
|
||||
return toast.warn(10, L.im_hnf);
|
||||
|
||||
|
|
@ -5526,7 +5523,7 @@ var fileman = (function () {
|
|||
f = [],
|
||||
indir = [],
|
||||
srcdir = vsplit(r.clip[0])[0],
|
||||
links = QSA('#files tbody td:nth-child(2) a');
|
||||
links = QSA('#files tbody td:nth-child(3) a');
|
||||
|
||||
r.f = f;
|
||||
|
||||
|
|
@ -6517,88 +6514,21 @@ window.thegrid = (function () {
|
|||
var html = [],
|
||||
svgs = new Set(),
|
||||
max_svgs = CHROME ? 500 : 5000,
|
||||
need_ext = !r.thumbs || !!ext_th,
|
||||
use_ext_th = r.thumbs && ext_th,
|
||||
files = QSA('#files>tbody>tr>td:nth-child(2) a[id]');
|
||||
files = QSA('#files>tbody>tr>td:nth-child(3) a[id]');
|
||||
|
||||
for (var a = 0, aa = files.length; a < aa; a++) {
|
||||
var ao = files[a],
|
||||
ohref = esc(ao.getAttribute('href')),
|
||||
href = ohref.split('?')[0],
|
||||
ext = '',
|
||||
ext0 = '',
|
||||
name = uricom_dec(vsplit(href)[1]),
|
||||
ref = ao.getAttribute('id'),
|
||||
isdir = clgot(ao.parentElement.parentElement, 'dir'),
|
||||
ac = ao.parentElement.parentElement.classList,
|
||||
ihref = ohref;
|
||||
|
||||
if (need_ext && href != "#") {
|
||||
var ar = href.split('.');
|
||||
if (ar.length > 1)
|
||||
ar.shift();
|
||||
|
||||
ar.reverse();
|
||||
ext0 = ar[0];
|
||||
for (var b = 0; b < Math.min(2, ar.length); b++) {
|
||||
ext = ext ? (ar[b] + '.' + ext) : ar[b];
|
||||
if (ar[b].length > 2)
|
||||
break;
|
||||
}
|
||||
if (!ext)
|
||||
ext = 'unk';
|
||||
}
|
||||
|
||||
if (use_ext_th && (ext_th[ext] || ext_th[ext0])) {
|
||||
ihref = ext_th[ext] || ext_th[ext0];
|
||||
}
|
||||
else if (r.thumbs) {
|
||||
ihref = addq(ihref, 'th=' + (
|
||||
have_jxl ? 'x' :
|
||||
have_webp ? 'w' :
|
||||
'j'
|
||||
));
|
||||
if (!r.crop)
|
||||
ihref += 'f';
|
||||
if (r.x3)
|
||||
ihref += '3';
|
||||
if (href == "#")
|
||||
ihref = SR + '/.cpr/ico/' + (ref == 'moar' ? '++' : 'exit');
|
||||
}
|
||||
else {
|
||||
ihref = '';
|
||||
}
|
||||
|
||||
if(ihref){
|
||||
ihref = addq(ihref, 'cache=i&_=' + ACB + TS);
|
||||
|
||||
var accent = getComputedStyle(document.body).getPropertyValue('--a');
|
||||
if (!accent)
|
||||
accent = '#07c';
|
||||
ihref += '&a=' + parseColor(accent).replace(/ /g, '');
|
||||
}
|
||||
|
||||
var svg = '<use href="#' +
|
||||
(isdir ? 'folder' : 'file') + '-icon" color="' +
|
||||
(ext == 'unk' || ext.startsWith('/') ? '#0000' : intToHSL(hashCode(ext))) + '"/>';
|
||||
svg = '<svg class="thumb" width="100%" height="100%">' + svg + '</svg>';
|
||||
|
||||
if (N3DS){
|
||||
// 3DS / unsupported: use fallback
|
||||
svg = '<span class="thumb">' + (isdir ? '📁[FOLDER]' : '📄[FILE:' + ext + ']') + '</span>';
|
||||
ext = 'unk';
|
||||
}
|
||||
ac = ao.parentElement.parentElement.classList;
|
||||
|
||||
html.push('<a href="' + ohref + '" ref="' + ref +
|
||||
'" class="' + ac + '" ttt="' + esc(name) + '">' +
|
||||
'<div class="imgcontainer">' +
|
||||
'<input type="checkbox" class="gselchk"></input>' +
|
||||
svg +
|
||||
(isdir || ext == 'unk' || ext.startsWith('/') ? '' :
|
||||
'<span class="th_ext" style="font-size: ' + (r.sz / 5) +'em; font-size:calc((var(--grid-sz) - 2.5em) / 3 * ' +
|
||||
(ext.length > 3 ? 1 / (3 + ext.length * .4) * 3 : 1) + ')"><span class="inner">' + ext + '</span></span>') +
|
||||
'<img loading="lazy" fetchPriority="low" onload="th_onload(this)" src="' +
|
||||
ihref + '" /></div><span class="' + ac + '">' + ao.innerHTML + '</span></a>');
|
||||
get_thumb(ohref, ref, isdir, true) +
|
||||
'<span class="' + ac + '">' + ao.innerHTML + '</span></a>');
|
||||
}
|
||||
ggrid.innerHTML = html.join('\n');
|
||||
clmod(ggrid, 'crop', r.crop);
|
||||
|
|
@ -6704,7 +6634,10 @@ window.thegrid = (function () {
|
|||
swrite('thumbs', 1);
|
||||
}
|
||||
|
||||
bcfg_bind(r, 'thumbs', 'thumbs', true, r.setdirty);
|
||||
bcfg_bind(r, 'thumbs', 'thumbs', true, function(e){
|
||||
r.setdirty();
|
||||
msel.render();
|
||||
});
|
||||
bcfg_bind(r, 'ihop', 'ihop', true);
|
||||
bcfg_bind(r, 'vau', 'gridvau', false);
|
||||
bcfg_bind(r, 'crop', 'gridcrop', !dcrop.endsWith('n'), r.set_crop);
|
||||
|
|
@ -6757,6 +6690,85 @@ window.thegrid = (function () {
|
|||
return r;
|
||||
})();
|
||||
|
||||
function get_thumb(ohref, ref, isdir, grid){
|
||||
var href = ohref.split('?')[0],
|
||||
ext = '',
|
||||
ext0 = '',
|
||||
name = uricom_dec(vsplit(href)[1]),
|
||||
need_ext = !thegrid.thumbs || !!ext_th,
|
||||
use_ext_th = thegrid.thumbs && ext_th,
|
||||
ihref = ohref;
|
||||
|
||||
if (need_ext && href != "#") {
|
||||
var ar = href.split('.');
|
||||
if (ar.length > 1)
|
||||
ar.shift();
|
||||
|
||||
ar.reverse();
|
||||
ext0 = ar[0];
|
||||
for (var b = 0; b < Math.min(2, ar.length); b++) {
|
||||
ext = ext ? (ar[b] + '.' + ext) : ar[b];
|
||||
if (ar[b].length > 2)
|
||||
break;
|
||||
}
|
||||
if (!ext)
|
||||
ext = 'unk';
|
||||
}
|
||||
|
||||
if (use_ext_th && (ext_th[ext] || ext_th[ext0])) {
|
||||
ihref = ext_th[ext] || ext_th[ext0];
|
||||
}
|
||||
else if (thegrid.thumbs) {
|
||||
ihref = addq(ihref, 'th=' + (
|
||||
have_jxl ? 'x' :
|
||||
have_webp ? 'w' :
|
||||
'j'
|
||||
));
|
||||
if (grid && !thegrid.crop)
|
||||
ihref += 'f';
|
||||
if (grid && thegrid.x3)
|
||||
ihref += '3';
|
||||
if (href == "#")
|
||||
ihref = SR + '/.cpr/ico/' + (ref == 'moar' ? '++' : 'exit');
|
||||
}
|
||||
else {
|
||||
ihref = '';
|
||||
}
|
||||
|
||||
if(ihref){
|
||||
ihref = addq(ihref, 'cache=i&_=' + ACB + TS);
|
||||
|
||||
var accent = getComputedStyle(document.body).getPropertyValue('--a');
|
||||
if (!accent)
|
||||
accent = '#07c';
|
||||
ihref += '&a=' + parseColor(accent).replace(/ /g, '');
|
||||
}
|
||||
|
||||
var svg = '<use href="#' +
|
||||
(isdir ? 'folder' : 'file') + '-icon" color="' +
|
||||
(ext == 'unk' || ext.startsWith('/') ? '#0000' : intToHSL(hashCode(ext))) + '"/>';
|
||||
svg = '<svg class="thumb" width="100%" height="100%">' + svg + '</svg>';
|
||||
|
||||
if (N3DS){
|
||||
// 3DS / unsupported: use fallback
|
||||
svg = '<span class="thumb">' + (isdir ? '📁[FOLDER]' : '📄[FILE:' + ext + ']') + '</span>';
|
||||
ext = 'unk';
|
||||
}
|
||||
|
||||
var container = '<div class="imgcontainer" ref="' + ref + '">' +
|
||||
(grid ? '<input type="checkbox" class="gselchk"></input>' : '') +
|
||||
svg +
|
||||
(isdir || ext == 'unk' || ext.startsWith('/') ? '' :
|
||||
'<span class="th_ext" style="font-size: ' +
|
||||
(grid ?
|
||||
(thegrid.sz / 5) +'em; font-size:calc((var(--grid-sz) - 2.5em) / 3 * ' + (ext.length > 3 ? 1 / (3 + ext.length * .4) * 3 : 1) + ')' :
|
||||
'.8em') +
|
||||
'"><span class="inner">' + ext + '</span></span>') +
|
||||
'<img loading="lazy" fetchPriority="low" onload="th_onload(this)" src="' +
|
||||
ihref + '" /></div>'
|
||||
return container;
|
||||
}
|
||||
|
||||
function th_onload(el) {
|
||||
set_loaded(el, true, false)
|
||||
}
|
||||
|
|
@ -8628,8 +8640,9 @@ var treectl = (function () {
|
|||
'" hl="' + id + '" name="' + hname + '">-txt-</a>';
|
||||
|
||||
var cl = (/\.PARTIAL$/.exec(fname) ? 'fade ' : '') + (img_re.exec(fname) ? 'img ' : '') + (tn.cls || ''),
|
||||
ln = ['<tr class="' + cl + '"><td>' + tn.lead + '</td><td><a href="' +
|
||||
top + tn.href + '" id="' + id + '">' + hname +
|
||||
ln = ['<tr class="' + cl + '"><td>' + tn.lead + '</td><td>' +
|
||||
get_thumb(tn.href, id, (/\bdir\b/i).test(cl), false) +
|
||||
'</td><td><a href="' + top + tn.href + '" id="' + id + '">' + hname +
|
||||
'</a></td><td sortv="' + tn.sz + '">' + filesizefun(tn.sz)];
|
||||
|
||||
for (var b = 0; b < res.taglist.length; b++) {
|
||||
|
|
@ -8736,7 +8749,7 @@ var treectl = (function () {
|
|||
|
||||
var media = scan_hash(location.hash);
|
||||
if(media && media[0] == 'g')
|
||||
clmod(ebi('ggrid'), 'waiting', true);
|
||||
clmod(ebi('wrap'), 'waiting', true);
|
||||
setTimeout(eval_hash, 1);
|
||||
};
|
||||
|
||||
|
|
@ -9173,6 +9186,7 @@ function mk_files_header(taglist) {
|
|||
var html = [
|
||||
'<thead><tr>',
|
||||
'<th name="lead"><span>!</span></th>',
|
||||
'<th name="thumb"><span>th</span></th>',
|
||||
'<th name="href"><span>File Name</span></th>',
|
||||
'<th name="sz" sort="int"><span>Size</span></th>'
|
||||
];
|
||||
|
|
@ -9724,7 +9738,7 @@ var msel = (function () {
|
|||
}
|
||||
|
||||
r.all = [];
|
||||
var links = QSA('#files tbody td:nth-child(2) a:last-child'),
|
||||
var links = QSA('#files tbody td:nth-child(3) a:last-child'),
|
||||
is_srch = !!ebi('unsearch'),
|
||||
vbase = get_evpath();
|
||||
|
||||
|
|
@ -9910,16 +9924,25 @@ var msel = (function () {
|
|||
dl_file(sel[a].vp + sel[a].q);
|
||||
};
|
||||
r.render = function () {
|
||||
var tds = QSA('#files tbody td+td+td'),
|
||||
var tds = QSA('#files tbody td+td+td+td'),
|
||||
is_srch = !!ebi('unsearch');
|
||||
|
||||
for (var a = 0, aa = tds.length; a < aa; a++)
|
||||
tds[a].onclick = r.seltgl;
|
||||
|
||||
var links = QSA('#files a[id]')
|
||||
var links = QSA('#files td:nth-child(3) a[id]')
|
||||
for (var a = 0, aa = links.length; a < aa; a++)
|
||||
links[a].onclick = fclick;
|
||||
|
||||
var thumbs = QSA('#files .imgcontainer')
|
||||
for (var a = 0, aa = thumbs.length; a < aa; a++)
|
||||
thumbs[a].onclick = fclick1;
|
||||
|
||||
var imgs = QSA('#files img');
|
||||
for (var a = 0, aa = imgs.length; a < aa; a++) {
|
||||
set_loaded(imgs[a], thegrid.thumbs && imgs[a].complete, true);
|
||||
}
|
||||
|
||||
if(window.baguetteBox != undefined)
|
||||
r.bagit();
|
||||
|
||||
|
|
@ -9930,6 +9953,8 @@ var msel = (function () {
|
|||
var zipvis = (is_srch || !have_zip) ? 'none' : '';
|
||||
ebi('selzip').style.display = zipvis;
|
||||
ebi('zip1').style.display = zipvis;
|
||||
|
||||
r.ready = true;
|
||||
}
|
||||
|
||||
r.bagit = function (isrc) {
|
||||
|
|
@ -9956,30 +9981,23 @@ var msel = (function () {
|
|||
},
|
||||
onChange: function (i, maxIdx) {
|
||||
if (this[i].imageElement) {
|
||||
sethash('g' + this[i].imageElement.getAttribute('ref') + getsort());
|
||||
sethash('g' + this[i].imageElement.getAttribute('id') + getsort());
|
||||
}
|
||||
}
|
||||
});
|
||||
r.bbox_opts = br[1];
|
||||
r.bbox = true;
|
||||
eval_hash()
|
||||
};
|
||||
|
||||
if(window.baguetteBox != undefined)
|
||||
r.bagit();
|
||||
|
||||
return r;
|
||||
})();
|
||||
|
||||
function fclick1(e) {
|
||||
if (ctrl(e) && !treectl.csel && !r.sel && !r.tempsel)
|
||||
return true;
|
||||
|
||||
e.preventDefault ? e.preventDefault() : e.returnValue = false;
|
||||
|
||||
// pass copy of click event to list entry (can trigger bbox handler)
|
||||
var link = ebi(this.getAttribute('ref'));
|
||||
link.dispatchEvent(new MouseEvent('click', {
|
||||
var td = ebi(this.getAttribute('ref'));
|
||||
td.dispatchEvent(new MouseEvent('click', {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
clientX: e.clientX,
|
||||
|
|
@ -9996,24 +10014,18 @@ function fclick(e, dbl) {
|
|||
ev(e);
|
||||
return;
|
||||
}
|
||||
var isInGrid = this.hasAttribute('ref'),
|
||||
link = this;
|
||||
if(isInGrid){
|
||||
// get table row with file link
|
||||
link = ebi(this.getAttribute('ref'))
|
||||
}
|
||||
var qhref = link.getAttribute('href'),
|
||||
var qhref = this.getAttribute('href'),
|
||||
href = qhref.split('?')[0],
|
||||
fid = link.getAttribute('id'),
|
||||
fid = this.getAttribute('id'),
|
||||
aplay = ebi('a' + fid),
|
||||
atext = ebi('t' + fid),
|
||||
is_txt = atext && !/\.ts$/.test(href) && showfile.getlang(href),
|
||||
is_img = img_re.test(href),
|
||||
is_dir = href.endsWith('/'),
|
||||
is_srch = !!ebi('unsearch'),
|
||||
in_tree = is_dir && treectl.find(link.textContent.slice(0, -1)),
|
||||
in_tree = is_dir && treectl.find(this.textContent.slice(0, -1)),
|
||||
have_sel = QS('#files tr.sel'),
|
||||
td = link.closest('td').nextSibling,
|
||||
td = this.closest('td').nextSibling,
|
||||
tr = td.parentNode;
|
||||
|
||||
if (thegrid.en && (thegrid.sel || thegrid.tempsel) && !dbl && !ctrl(e) || treectl.csel && (e.shiftKey || ctrl(e))) {
|
||||
|
|
@ -10026,10 +10038,10 @@ function fclick(e, dbl) {
|
|||
else if (in_tree)
|
||||
in_tree.click();
|
||||
|
||||
else if (link.hasAttribute('download'))
|
||||
link.click();
|
||||
else if (this.hasAttribute('download'))
|
||||
this.click();
|
||||
|
||||
else if (thegrid.en && aplay && (thegrid.vau || !is_img))
|
||||
else if (aplay && (thegrid.vau || !is_img))
|
||||
aplay.click();
|
||||
|
||||
else if (is_dir)
|
||||
|
|
@ -10049,7 +10061,7 @@ function fclick(e, dbl) {
|
|||
thegrid.sel = true;
|
||||
}, 1);
|
||||
thegrid.sel = false;
|
||||
link.click();
|
||||
this.click();
|
||||
}
|
||||
ev(e);
|
||||
}
|
||||
|
|
@ -11071,7 +11083,7 @@ var drag = (function() {
|
|||
|
||||
elem.ondragenter = elem.ondragleave = elem.ondragover = function(e) {
|
||||
if (!r.enabled) return;
|
||||
var elemHref = basenames((elem.tagName == "A" ? elem : elem.querySelector("td:nth-child(2) a")).href.split("?")[0])
|
||||
var elemHref = basenames((elem.tagName == "A" ? elem : elem.querySelector("td:nth-child(3) a")).href.split("?")[0])
|
||||
if (current == elem || elemHref == get_evpath() || currLink == elemHref) // Prevent folders being dragged into themselves
|
||||
return;
|
||||
ev(e);
|
||||
|
|
@ -11110,7 +11122,7 @@ var drag = (function() {
|
|||
f.draggable = true;
|
||||
f.ondragstart = function(e) {
|
||||
try{
|
||||
currLink = basenames(e.target.querySelector("td:nth-child(2) a").href.split("?"));
|
||||
currLink = basenames(e.target.querySelector("td:nth-child(3) a").href.split("?"));
|
||||
current = e.target;
|
||||
r.no_warn = true;
|
||||
|
||||
|
|
|
|||
|
|
@ -61,7 +61,7 @@ th {
|
|||
vertical-align: top;
|
||||
white-space: nowrap;
|
||||
}
|
||||
#wrap td+td+td+td+td+td+td+td {
|
||||
#wrap td+td+td+td+td+td+td+td+td {
|
||||
font-family: var(--font-mono), monospace, monospace;
|
||||
}
|
||||
#wrap th:first-child,
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.chi = {
|
|||
|
||||
"ct_grid": '田 网格',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ 提示',
|
||||
"ct_thumb": '在网格视图中,切换图标或缩略图$N快捷键: T">🖼️ 缩略',
|
||||
"ct_thumb": '切换图标或缩略图$N快捷键: T">🖼️ 缩略',
|
||||
"ct_csel": '在网格视图中,允许使用 CTRL 和 SHIFT 进行文件选择">选择',
|
||||
"ct_dsel": '在网格视图中,允许拖动选择">拖选',
|
||||
"ct_dl": '点击文件时强制下载(不要就地显示)">下载',
|
||||
|
|
|
|||
|
|
@ -229,7 +229,7 @@ Ls.cze = {
|
|||
|
||||
"ct_grid": '田 mřížka',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ nápovědy',
|
||||
"ct_thumb": 'v zobrazení mřížky přepnout ikony nebo náhledy$NKlávesová zkratka: T">🖼️ náhledy',
|
||||
"ct_thumb": 'přepnout ikony nebo náhledy$NKlávesová zkratka: T">🖼️ náhledy',
|
||||
"ct_csel": 'použít CTRL a SHIFT pro výběr souborů v zobrazení mřížky">výběr',
|
||||
"ct_dsel": 'použít tažený výběr v zobrazení mřížky">tažení', //m
|
||||
"ct_dl": 'vynutit stažení (nezobrazovat inline) při kliknutí na soubor">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.deu = {
|
|||
|
||||
"ct_grid": '田 Das Raster™',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ Tooltips',
|
||||
"ct_thumb": 'In Raster-Ansicht, zwischen Icons und Vorschau wechseln$NHotkey: T">🖼️ Vorschaubilder',
|
||||
"ct_thumb": 'Zwischen Icons und Vorschau wechseln$NHotkey: T">🖼️ Vorschaubilder',
|
||||
"ct_csel": 'Benutze STRG und UMSCHALT für Dateiauswahl in Raster-Ansicht">sel',
|
||||
"ct_dsel": 'Ziehauswahl in Raster-Ansicht verwenden">ziehen', //m
|
||||
"ct_dl": 'Beim Klick auf Dateien sie immer herunterladen (nicht einbetten)">dl',
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.epo = {
|
|||
|
||||
"ct_grid": '田 krado',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ ŝpruchelpiloj',
|
||||
"ct_thumb": 'dum krado-vido, baskuli montradon de simboloj aŭ bildetoj$NFulmoklavo: T">🖼️ bildetoj',
|
||||
"ct_thumb": 'baskuli montradon de simboloj aŭ bildetoj$NFulmoklavo: T">🖼️ bildetoj',
|
||||
"ct_csel": 'uzi STIR kaj MAJ por elekti dosierojn en krado-vido">elekto',
|
||||
"ct_dsel": 'uzi tren-elekton en krado-vido">treni',
|
||||
"ct_dl": 'devigi elŝuton (ne montri enkadre), kiam dosiero estas alklakita">elŝuti',
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.fin = {
|
|||
|
||||
"ct_grid": '田 kuvanäkymä',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ vihjelaatikot',
|
||||
"ct_thumb": 'valitse kuvakkeiden / pienoiskuvien välillä kuvanäkymässä $NPikanäppäin: T">🖼️ pienoiskuvat',
|
||||
"ct_thumb": 'valitse kuvakkeiden / pienoiskuvien välillä $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 klikataan">dl',
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.fra = {
|
|||
|
||||
"ct_grid": '田 grille',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ infobulles',
|
||||
"ct_thumb": 'vue en grille, activer les icônes ou les miniatures$NHotkey: T">🖼️ minia',
|
||||
"ct_thumb": 'activer les icônes ou les miniatures$NHotkey: T">🖼️ minia',
|
||||
"ct_csel": 'utiliser CTRL et MAJ pour selectioner des fichiers en vue en grille">sel',
|
||||
"ct_dsel": 'utiliser la sélection par glisser en vue en grille">glisser', //m
|
||||
"ct_dl": 'forcer le téléchargement (ne pas afficher en ligne) lorsqu’un fichier est cliqué">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.grc = {
|
|||
|
||||
"ct_grid": '田 το πλέγμα',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ συμβουλές εργαλείων',
|
||||
"ct_thumb": 'σε προβολή πλέγματος, εναλλαγή εικονιδίων ή μικρογραφιών$NΠλήκτρο συντόμευσης: T">🖼️ μικρογραφίες',
|
||||
"ct_thumb": 'εναλλαγή εικονιδίων ή μικρογραφιών$NΠλήκτρο συντόμευσης: T">🖼️ μικρογραφίες',
|
||||
"ct_csel": 'χρησιμοποίησε CTRL και SHIFT για επιλογή αρχείων σε προβολή πλέγματος">επιλογή',
|
||||
"ct_dsel": 'χρησιμοποίησε επιλογή με σύρσιμο σε προβολή πλέγματος">σύρσιμο', //m
|
||||
"ct_dl": 'εξαναγκασμός λήψης (να μην εμφανίζεται ενσωματωμένα) όταν γίνεται κλικ σε ένα αρχείο">dl', //m
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ Ls.hun = {
|
|||
|
||||
"ct_grid": '田 rács nézet',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ segítő szövegek',
|
||||
"ct_thumb": 'rács nézetben ikonok/indexképek váltása$Ngyorsbillentyű: T">🖼️ képek',
|
||||
"ct_thumb": 'ikonok/indexképek váltása$Ngyorsbillentyű: T">🖼️ képek',
|
||||
"ct_csel": 'kijelölés CTRL és SHIFT gombokkal rács nézetben">kijelölés',
|
||||
"ct_dsel": 'kijelölés egérhúzással rács nézetben">húzás',
|
||||
"ct_dl": 'azonnali letöltés (beágyazás helyett)">letöltés',
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.ita = {
|
|||
|
||||
"ct_grid": '田 griglia',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ tooltip',
|
||||
"ct_thumb": 'nella vista griglia, alterna icone o miniature$NTasto rapido: T">🖼️ miniature',
|
||||
"ct_thumb": 'alterna icone o miniature$NTasto rapido: T">🖼️ miniature',
|
||||
"ct_csel": 'usa CTRL e SHIFT per la selezione file nella vista griglia">sel',
|
||||
"ct_dsel": 'usa la selezione tramite trascinamento nella vista griglia">trascina', //m
|
||||
"ct_dl": 'forza il download (non visualizzare inline) quando si clicca su un file">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.jpn = {
|
|||
|
||||
"ct_grid": '田 グリッド',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ ツールチップ',
|
||||
"ct_thumb": 'グリッドビューではアイコンまたはサムネイルを切り替える$Nホットキー: T">🖼️ サムネイル',
|
||||
"ct_thumb": 'アイコンまたはサムネイルを切り替える$Nホットキー: T">🖼️ サムネイル',
|
||||
"ct_csel": 'グリッドビューでファイルを選択するにはCtrlとShiftを使用する。">選択',
|
||||
"ct_dsel": 'グリッドビューでドラッグ選択を使用する。">ドラッグ', //m
|
||||
"ct_dl": 'ファイルをクリックしたときに強制的にダウンロードする(インラインで表示しない)">dl',
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.kor = {
|
|||
|
||||
"ct_grid": "田 그리드",
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ 도움말',
|
||||
"ct_thumb": '그리드 보기에서 아이콘 또는 미리보기 이미지 전환$N단축키: T">🖼️ 미리보기',
|
||||
"ct_thumb": '아이콘 또는 미리보기 이미지 전환$N단축키: T">🖼️ 미리보기',
|
||||
"ct_csel": '그리드 보기에서 CTRL과 SHIFT를 사용하여 파일 선택">선택',
|
||||
"ct_dsel": '그리드 보기에서 드래그 선택 사용">드래그', //m
|
||||
"ct_dl": '파일을 클릭하면 다운로드를 강제로 수행 (인라인으로 표시하지 않음)">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.nld = {
|
|||
|
||||
"ct_grid": '田 grid',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ tooltips',
|
||||
"ct_thumb": 'In grid-overzicht, wissel tussen iconen of thumbnails$NHotkey: T">🖼️ thumbs',
|
||||
"ct_thumb": 'wissel tussen iconen of thumbnails$NHotkey: T">🖼️ thumbs',
|
||||
"ct_csel": 'Gebruik CTRL en SHIFT voor de bestand selectie in grid-overzicht>sel',
|
||||
"ct_dsel": 'Gebruik slepen om te selecteren in grid-overzicht>slepen', //m
|
||||
"ct_dl": 'download afdwingen (niet inline weergeven) wanneer op een bestand wordt geklikt">dl', //m
|
||||
|
|
|
|||
|
|
@ -228,7 +228,7 @@ Ls.pol = {
|
|||
|
||||
"ct_grid": '田 siatka',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ podpowiedzi',
|
||||
"ct_thumb": 'w widoku siatki, przełącz ikony i miniaturki$NSkrót: T">🖼️ miniaturki',
|
||||
"ct_thumb": 'przełącz ikony i miniaturki$NSkrót: T">🖼️ miniaturki',
|
||||
"ct_csel": 'użyj CTRL i SHIFT do wybierania plików w widoku siatki">wybierz',
|
||||
"ct_dsel": 'użyj zaznaczania przez przeciąganie w widoku siatki">przeciągnij', //m
|
||||
"ct_dl": 'wymuś pobieranie (nie wyświetlaj inline) po kliknięciu pliku">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.por = {
|
|||
|
||||
"ct_grid": '田 a grade',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ dicas de ferramentas',
|
||||
"ct_thumb": 'na visualização de grade, alternar entre ícones ou miniaturas$NHotkey: T">🖼️ miniaturas',
|
||||
"ct_thumb": 'alternar entre ícones ou miniaturas$NHotkey: T">🖼️ miniaturas',
|
||||
"ct_csel": 'usar CTRL e SHIFT para seleção de arquivo na visualização de grade">sel',
|
||||
"ct_dsel": 'usar seleção por arrasto na visualização de grade">arrastar',
|
||||
"ct_dl": 'forçar download (não exibir na página) ao clicar em um arquivo">dl',
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.rus = {
|
|||
|
||||
"ct_grid": '田 сетка',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ подсказки',
|
||||
"ct_thumb": 'переключение между иконками и миниатюрами в режиме сетки$NГорячая клавиша: T">🖼️ миниат.',
|
||||
"ct_thumb": 'переключение между иконками и миниатюрами$NГорячая клавиша: T">🖼️ миниат.',
|
||||
"ct_csel": 'держите CTRL или SHIFT для выделения файлов в режиме сетки">выбор',
|
||||
"ct_dsel": 'использовать выделение перетаскиванием в режиме сетки">перетащить', //m
|
||||
"ct_dl": 'принудительная загрузка (не показывать встроенно) при щелчке по файлу">dl', //m
|
||||
|
|
|
|||
|
|
@ -224,7 +224,7 @@ Ls.spa = {
|
|||
|
||||
"ct_grid": '田 cuadrícula',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ tooltips',
|
||||
"ct_thumb": 'en vista de cuadrícula, alternar iconos o miniaturas$NAtajo: T">🖼️ miniaturas',
|
||||
"ct_thumb": 'alternar iconos o miniaturas$NAtajo: T">🖼️ miniaturas',
|
||||
"ct_csel": 'usa CTRL y SHIFT para seleccionar archivos en la vista de cuadrícula">sel',
|
||||
"ct_dsel": 'usa la selección por arrastre en la vista de cuadrícula">arrastrar', //m
|
||||
"ct_dl": 'forzar descarga (no mostrar en línea) al hacer clic en un archivo">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.swe = {
|
|||
|
||||
"ct_grid": '田 rutnätet',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ tips',
|
||||
"ct_thumb": 'växla mellan miniatyrer och ikoner i rutnätsvyn$NSnabbtangent: T">🖼️ miniatyrer',
|
||||
"ct_thumb": 'växla mellan miniatyrer och ikoner$NSnabbtangent: T">🖼️ miniatyrer',
|
||||
"ct_csel": 'använd CTRL och SKIFT för urval av filer i rutnätsvyn">val',
|
||||
"ct_dsel": 'använd dra-urval i rutnätsvyn">dra', //m
|
||||
"ct_dl": 'tvinga nedladdning (visa inte inline) när en fil klickas">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.tur = {
|
|||
|
||||
"ct_grid": '田 ızgara',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ ipuçları',
|
||||
"ct_thumb": 'ızgara görünümünde, simgeler ve küçük resimler arasında geçiş yapın$NKısayol: T">🖼️ küçük resimler',
|
||||
"ct_thumb": 'simgeler ve küçük resimler arasında geçiş yapın$NKısayol: T">🖼️ küçük resimler',
|
||||
"ct_csel": 'ızgara görünümünde dosya seçimi için CTRL ve SHIFT tuşlarını kullanın">seç',
|
||||
"ct_dsel": 'ızgara görünümünde sürükleyerek seçimi kullanın">sürükle', //m
|
||||
"ct_dl": 'dosyaya tıklandığında indirmeyi zorla (satır içinde görüntüleme)">dl', //m
|
||||
|
|
|
|||
|
|
@ -225,7 +225,7 @@ Ls.ukr = {
|
|||
|
||||
"ct_grid": '田 сітка',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ підказки',
|
||||
"ct_thumb": 'у режимі сітки, перемкнути іконки або мініатюри$NГаряча клавіша: T">🖼️ мініатюри',
|
||||
"ct_thumb": 'перемкнути іконки або мініатюри$NГаряча клавіша: T">🖼️ мініатюри',
|
||||
"ct_csel": 'використовувати CTRL і SHIFT для вибору файлів у режимі сітки">вибір',
|
||||
"ct_dsel": 'використовувати вибір перетягуванням у режимі сітки">перетягнути', //m
|
||||
"ct_dl": 'примусове завантаження (не показувати вбудовано) під час натискання на файл">dl', //m
|
||||
|
|
|
|||
|
|
@ -226,7 +226,7 @@ Ls.vie = {
|
|||
// settings / tuỳ chọn
|
||||
"ct_grid": '田 chế độ lưới',
|
||||
"ct_ttips": '༼ ◕_◕ ༽">ℹ️ tooltips',
|
||||
"ct_thumb": 'ở chế độ lưới, chuyển biểu tượng hoặc hình thu nhỏ$NPhím tắt: T">🖼️ ảnh thu nhỏ',
|
||||
"ct_thumb": 'chuyển biểu tượng hoặc hình thu nhỏ$NPhím tắt: T">🖼️ ảnh thu nhỏ',
|
||||
"ct_csel": 'dùng CTRL và SHIFT để chọn tệp trong chế độ lưới">sel',
|
||||
"ct_dsel": 'dùng chọn bằng cách kéo trong chế độ lưới">kéo', //m
|
||||
"ct_dl": 'cưỡng chế tải xuống (không hiện thị trong dòng) khi nhấp vào tệp">dl',
|
||||
|
|
|
|||
|
|
@ -62,7 +62,6 @@
|
|||
* more consistent areas for clicking to navigate left / right in the image viewer (they don't depend on image fill mode anymore)
|
||||
* "folder up" / "next sibling" / "previous sibling" are now icon buttons at the top
|
||||
* new look for the login screen
|
||||
* file list makes it easier to identify folders via an added folder emoji to folder names. to disable this, add the following style: `tr:has(a.dir) td:nth-child(2) a::before { display: none; }`
|
||||
* pm-monokai theme has become "flat dark"
|
||||
|
||||
## 🌠 fun facts
|
||||
|
|
|
|||
|
|
@ -256,7 +256,7 @@ Ls.hmn = {
|
|||
|
||||
"ct_grid": '田 the grid',
|
||||
"ct_ttips": '◔ ◡ ◔">ℹ️ tooltips',
|
||||
"ct_thumb": 'in grid-view, toggle icons or thumbnails$NHotkey: T">🖼️ thumbs',
|
||||
"ct_thumb": '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',
|
||||
|
|
|
|||
Loading…
Reference in a new issue