diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 66149002..8009ea3e 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -2042,8 +2042,8 @@ function despin(sel) { } -function apply_perms(perms) { - perms = perms || []; +function apply_perms(newperms) { + perms = newperms || []; var o = QSA('#ops>a[data-perm], #u2footfoot'); for (var a = 0; a < o.length; a++) { @@ -2065,8 +2065,16 @@ function apply_perms(perms) { var have_write = has(perms, "write"), have_read = has(perms, "read"), + de = document.documentElement, tds = QSA('#u2conf td'); + /* good idea maybe + clmod(de, "read", have_read); + clmod(de, "write", have_write); + clmod(de, "nread", !have_read); + clmod(de, "nwrite", !have_write); + */ + for (var a = 0; a < tds.length; a++) { tds[a].style.display = (have_write || tds[a].getAttribute('data-perm') == 'read') ? @@ -2360,7 +2368,7 @@ var light; light = bcfg_get('lightmode', false); function freshen() { - document.documentElement.setAttribute("class", light ? "light" : ""); + clmod(document.documentElement, "light", light); pbar.drawbuf(); pbar.drawpos(); vbar.draw(); diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js index b7aec5d4..ec8377ae 100644 --- a/copyparty/web/up2k.js +++ b/copyparty/web/up2k.js @@ -444,8 +444,7 @@ function up2k_init(subtle) { } // show uploader if the user only has write-access - var perms = document.body.getAttribute('perms'); - if (perms && !has(perms.split(' '), 'read')) + if (perms.length && !has(perms, 'read')) goto('up2k'); // shows or clears a message in the basic uploader ui @@ -1265,7 +1264,7 @@ function up2k_init(subtle) { fpx = parseInt(getComputedStyle(bar)['font-size']), wem = wpx * 1.0 / fpx, wide = wem > 54, - parent = ebi(wide ? 'u2btn_cw' : 'u2btn_ct'), + parent = ebi(wide && has(perms, 'write') ? 'u2btn_cw' : 'u2btn_ct'), btn = ebi('u2btn'); //console.log([wpx, fpx, wem]); @@ -1278,6 +1277,13 @@ function up2k_init(subtle) { window.addEventListener('resize', onresize); onresize(); + if (is_touch) { + // android-chrome wobbles for a bit; firefox / iOS-safari are OK + setTimeout(onresize, 20); + setTimeout(onresize, 100); + setTimeout(onresize, 500); + } + var o = QSA('#u2conf *[tt]'); for (var a = o.length - 1; a >= 0; a--) { o[a].parentNode.getElementsByTagName('input')[0].setAttribute('tt', o[a].getAttribute('tt')); @@ -1330,14 +1336,12 @@ function up2k_init(subtle) { } function set_fsearch(new_state) { - var perms = document.body.getAttribute('perms'), - fixed = false; + var fixed = false; if (!ebi('fsearch')) { new_state = false; } - else if (perms) { - perms = perms.split(' '); + else if (perms.length) { if (!has(perms, 'write')) { new_state = true; fixed = true; @@ -1367,6 +1371,8 @@ function up2k_init(subtle) { ebi('u2bm').innerHTML = ico + ' ' + desc + ''; } catch (ex) { } + + onresize(); } function tgl_flag_en() { diff --git a/copyparty/web/util.js b/copyparty/web/util.js index 59e9d688..2a2c5339 100644 --- a/copyparty/web/util.js +++ b/copyparty/web/util.js @@ -6,7 +6,8 @@ if (!window['console']) }; -var is_touch = 'ontouchstart' in window, +var perms = [], + is_touch = 'ontouchstart' in window, ANDROID = /(android)/i.test(navigator.userAgent);