From fc0c7ff3749ad793165cf14d8bb57672cd67c289 Mon Sep 17 00:00:00 2001 From: ed Date: Mon, 22 Feb 2021 21:11:30 +0100 Subject: [PATCH] correct up2k mode in mixed-r/w --- copyparty/web/browser.js | 6 +++++- copyparty/web/up2k.js | 33 ++++++++++++++++++--------------- 2 files changed, 23 insertions(+), 16 deletions(-) diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 804b7871..37d1741b 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -983,7 +983,8 @@ function apply_perms(perms) { (have_write || tds[a].getAttribute('data-perm') == 'read') ? 'table-cell' : 'none'; } - if (!have_write && up2k) + + if (window['up2k']) up2k.set_fsearch(); } @@ -1021,5 +1022,8 @@ function reload_browser(not_mp) { widget.close(); mp = init_mp(); } + + if (window['up2k']) + up2k.set_fsearch(); } reload_browser(true); diff --git a/copyparty/web/up2k.js b/copyparty/web/up2k.js index 2fa76bf7..91b80878 100644 --- a/copyparty/web/up2k.js +++ b/copyparty/web/up2k.js @@ -282,7 +282,7 @@ function up2k_init(have_crypto) { var flag = false; apply_flag_cfg(); - apply_fsearch_cfg(); + set_fsearch(); function nav() { ebi('file' + fdom_ctr).click(); @@ -1061,12 +1061,24 @@ function up2k_init(have_crypto) { } function tgl_fsearch() { - fsearch = !fsearch; - bcfg_set('fsearch', fsearch); - apply_fsearch_cfg(); + set_fsearch(!fsearch); } - function apply_fsearch_cfg() { + function set_fsearch(new_state) { + var perms = document.body.getAttribute('perms'); + + if (!ebi('fsearch')) { + new_state = false; + } + else if (perms && perms.indexOf('write') === -1) { + new_state = true; + } + + if (new_state !== undefined) { + fsearch = new_state; + bcfg_set('fsearch', fsearch); + } + try { var fun = fsearch ? 'add' : 'remove'; ebi('op_up2k').classList[fun]('srch'); @@ -1078,11 +1090,6 @@ function up2k_init(have_crypto) { catch (ex) { } } - function set_fsearch() { - if (!fsearch) - tgl_fsearch(); - } - function tgl_flag_en() { flag_en = !flag_en; bcfg_set('flag_en', flag_en); @@ -1131,12 +1138,8 @@ function up2k_init(have_crypto) { for (var a = nodes.length - 1; a >= 0; a--) nodes[a].addEventListener('touchend', nop, false); - var perms = document.body.getAttribute('perms'); - if (perms && perms.indexOf('write') === -1) - set_fsearch(); - + set_fsearch(); bumpthread({ "target": 1 }) - return { "init_deps": init_deps, "set_fsearch": set_fsearch } }