From 302302a2ac290fcbe8103f7bc7bc015621640fcc Mon Sep 17 00:00:00 2001 From: ed Date: Sat, 3 Apr 2021 02:52:19 +0200 Subject: [PATCH] fix zip touch events on iOS --- README.md | 33 ++++++++++++++++++--------------- copyparty/web/browser.css | 24 ++++++++++++++++-------- copyparty/web/browser.html | 4 ++-- copyparty/web/browser.js | 11 ++--------- copyparty/web/util.js | 3 +++ 5 files changed, 41 insertions(+), 34 deletions(-) diff --git a/README.md b/README.md index d31d3a6f..47a741b4 100644 --- a/README.md +++ b/README.md @@ -199,25 +199,28 @@ copyparty can invoke external programs to collect additional metadata for files # browser support -| feature | ie6 | ie9 | ie10 | ie11 | ff 52+ | chr 49+ | -| --------------- | --- | --- | ---- | ---- | ------ | ------- | -| browse files | yep | yep | yep | yep | yep | yep | -| basic uploader | yep | yep | yep | yep | yep | yep | -| make directory | yep | yep | yep | yep | yep | yep | -| send message | yep | yep | yep | yep | yep | yep | -| set sort order | - | yep | yep | yep | yep | yep | -| zip selection | - | yep | yep | yep | yep | yep | -| directory tree | - | - | `*1` | yep | yep | yep | -| up2k | - | - | yep | yep | yep | yep | -| icons work | - | - | yep | yep | yep | yep | -| markdown editor | - | - | yep | yep | yep | yep | -| markdown viewer | - | - | yep | yep | yep | yep | -| play mp3/mp4 | - | yep | yep | yep | yep | yep | -| play ogg/opus | - | - | - | - | yep | yep | +`ie`internet-explorer, `ff`firefox, `chr`chrome, `iOS`iPhone/iPad, `Andr`Android + +| feature | ie6 | ie9 | ie10 | ie11 | ff 52+ | chr 49+ | iOS | Andr | +| --------------- | --- | --- | ---- | ---- | ------ | ------- | --- | ---- | +| browse files | yep | yep | yep | yep | yep | yep | yep | yep | +| basic uploader | yep | yep | yep | yep | yep | yep | yep | yep | +| make directory | yep | yep | yep | yep | yep | yep | yep | yep | +| send message | yep | yep | yep | yep | yep | yep | yep | yep | +| set sort order | - | yep | yep | yep | yep | yep | yep | yep | +| zip selection | - | yep | yep | yep | yep | yep | yep | yep | +| directory tree | - | - | `*1` | yep | yep | yep | yep | yep | +| up2k | - | - | yep | yep | yep | yep | yep | yep | +| icons work | - | - | yep | yep | yep | yep | yep | yep | +| markdown editor | - | - | yep | yep | yep | yep | yep | yep | +| markdown viewer | - | - | yep | yep | yep | yep | yep | yep | +| play mp3/m4a | - | yep | yep | yep | yep | yep | yep | yep | +| play ogg/opus | - | - | - | - | yep | yep | `*2` | yep | * internet explorer 6 to 8 (and netscape 4.0) behave the same * firefox 52 and chrome 49 are the last winxp versions * `*1` only public folders (login session is dropped) and no history / back-button +* `*2` using a wasm decoder which can sometimes get stuck and consumes a bit more power # client examples diff --git a/copyparty/web/browser.css b/copyparty/web/browser.css index 59e690d0..58ee8462 100644 --- a/copyparty/web/browser.css +++ b/copyparty/web/browser.css @@ -243,7 +243,7 @@ a, #files tbody div a:last-child { height: 100%; background: #3c3c3c; } -#wtoggle { +#wtico { cursor: url(/.cpr/dd/1.png), pointer; animation: cursor 500ms infinite; } @@ -273,24 +273,32 @@ a, #files tbody div a:last-child { padding: .2em 0 0 .07em; color: #fff; } -#wtoggle>span { +#wzip { display: none; + margin-right: .3em; + padding-right: .3em; + border-right: .1em solid #555; +} +#wtoggle, +#wtoggle * { + line-height: 1em; } #wtoggle.sel { - width: 4.27em; + width: 6em; } -#wtoggle.sel>span { +#wtoggle.sel #wzip { display: inline-block; - line-height: 0; } -#wtoggle.sel>span a { +#wtoggle.sel #wzip a { font-size: .4em; - margin: -.3em 0; + padding: 0 .3em; + margin: -.3em .2em; position: relative; display: inline-block; } -#wtoggle.sel>span #selzip { +#wtoggle.sel #wzip #selzip { top: -.6em; + padding: .4em .3em; } #barpos, #barbuf { diff --git a/copyparty/web/browser.html b/copyparty/web/browser.html index a7b78558..6bb23342 100644 --- a/copyparty/web/browser.html +++ b/copyparty/web/browser.html @@ -113,12 +113,12 @@
- + sel.
all
sel.
inv.
zip
- ♫ +
diff --git a/copyparty/web/browser.js b/copyparty/web/browser.js index 1e08f1ef..b679a52e 100644 --- a/copyparty/web/browser.js +++ b/copyparty/web/browser.js @@ -75,7 +75,7 @@ makeSortable(ebi('files'), mp.read_order.bind(mp)); var widget = (function () { var ret = {}; var widget = ebi('widget'); - var wtoggle = ebi('wtoggle'); + var wtico = ebi('wtico'); var touchmode = false; var side_open = false; var was_paused = true; @@ -113,14 +113,7 @@ var widget = (function () { return false; }; - if (window.Touch) { - var touch_handler = function (e) { - touchmode = true; - return ret.toggle(e); - }; - wtoggle.addEventListener('touchstart', touch_handler, false); - } - wtoggle.onclick = click_handler; + wtico.onclick = click_handler; return ret; })(); diff --git a/copyparty/web/util.js b/copyparty/web/util.js index a8088f4a..01538622 100644 --- a/copyparty/web/util.js +++ b/copyparty/web/util.js @@ -6,6 +6,9 @@ if (!window['console']) }; +var clickev = window.Touch ? 'touchstart' : 'click'; + + // error handler for mobile devices function hcroak(msg) { document.body.innerHTML = msg;