diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css index 54315bb9..ca31c7a3 100644 --- a/copyparty/web/browser.css +++ b/copyparty/web/browser.css @@ -985,6 +985,10 @@ html.y #path a:hover { margin: 0 auto; display: block; } +#ggrid.nocrop>a img { + max-height: 20em; + max-height: calc(var(--grid-sz)*2); +} #ggrid>a.dir:before { content: '📂'; } diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index f4f0e05e..6102a866 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -4523,8 +4523,8 @@ var thegrid = (function () { ' ' + - '+ ' + L.gt_chop + ': ' + + ' ' + + '+ ' + L.gt_chop + ': ' + ' ' + '+ ' + L.gt_sort + ': ' + '' + L.gt_name + ' ' + @@ -4535,6 +4535,7 @@ var thegrid = (function () { '
' ); lfiles.parentNode.insertBefore(gfiles, lfiles); + var ggrid = ebi('ggrid'); var r = { 'sz': clamp(fcfg_get('gridsz', 10), 4, 80), @@ -4555,7 +4556,7 @@ var thegrid = (function () { if (l) return setln(parseInt(l)); - var t = ebi('files').tHead.rows[0].cells; + var t = lfiles.tHead.rows[0].cells; for (var a = 0; a < t.length; a++) if (t[a].getAttribute('name') == s) { t[a].click(); @@ -4580,10 +4581,13 @@ var thegrid = (function () { lfiles = ebi('files'); gfiles = ebi('gfiles'); + ggrid = ebi('ggrid'); var vis = has(perms, "read"); gfiles.style.display = vis && r.en ? '' : 'none'; lfiles.style.display = vis && !r.en ? '' : 'none'; + clmod(ggrid, 'crop', r.crop); + clmod(ggrid, 'nocrop', !r.crop); ebi('pro').style.display = ebi('epi').style.display = ebi('lazy').style.display = ebi('treeul').style.display = ebi('treepar').style.display = ''; ebi('bdoc').style.display = 'none'; clmod(ebi('wrap'), 'doc'); @@ -4773,7 +4777,7 @@ var thegrid = (function () { pels[a].removeAttribute('tt'); } - tt.att(ebi('ggrid')); + tt.att(ggrid); }; function loadgrid() { @@ -4849,7 +4853,9 @@ var thegrid = (function () { (r.sz / 1.25) + 'em" loading="lazy" onload="th_onload(this)" src="' + ihref + '" />' + ao.innerHTML + '
'); } - ebi('ggrid').innerHTML = html.join('\n'); + ggrid.innerHTML = html.join('\n'); + clmod(ggrid, 'crop', r.crop); + clmod(ggrid, 'nocrop', !r.crop); var srch = ebi('unsearch'), gsel = ebi('gridsel'); @@ -5641,19 +5647,21 @@ function aligngriditems() { if (!treectl) return; - var em2px = parseFloat(getComputedStyle(ebi('ggrid')).fontSize); - var gridsz = 10; + var ggrid = ebi('ggrid'), + em2px = parseFloat(getComputedStyle(ggrid).fontSize), + gridsz = 10; try { gridsz = cprop('--grid-sz').slice(0, -2); } catch (ex) { } - var gridwidth = ebi('ggrid').clientWidth; - var griditemcount = ebi('ggrid').children.length; - var totalgapwidth = em2px * griditemcount; + var gridwidth = ggrid.clientWidth, + griditemcount = ggrid.children.length, + totalgapwidth = em2px * griditemcount; + if (/b/.test(themen + '')) totalgapwidth *= 2.8; - var val, st = ebi('ggrid').style; + var val, st = ggrid.style; if (((griditemcount * em2px) * gridsz) + totalgapwidth < gridwidth) { val = 'left'; @@ -6166,13 +6174,14 @@ var treectl = (function () { r.nextdir = null; var cdir = get_evpath(), - cur = ebi('files').getAttribute('ts'); + lfiles = ebi('files'), + cur = lfiles.getAttribute('ts'); if (cur && parseInt(cur) > this.ts) { console.log("reject ls"); return; } - ebi('files').setAttribute('ts', this.ts); + lfiles.setAttribute('ts', this.ts); try { var res = JSON.parse(this.responseText);