瀏覽代碼

Fixed bugs on iPad Safari desktop mode

TC pushbot 5 4 年之前
父節點
當前提交
d7ad33c0c5
共有 7 個文件被更改,包括 46 次插入22 次删除
  1. 1 0
      documents/dev.io/eng.drawio
  2. 二進制
      documents/dev.io/eng.png
  3. 1 0
      documents/dev.io/iothub.drawio
  4. 二進制
      documents/dev.io/iothub.png
  5. 2 2
      web/Music/manifest.json
  6. 1 1
      web/SystemAO/disk/webdav.html
  7. 41 19
      web/desktop.system

+ 1 - 0
documents/dev.io/eng.drawio

@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2021-04-03T15:09:29.756Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.7.3 Chrome/85.0.4183.98 Electron/10.1.2 Safari/537.36" etag="GKssehMAVURyNHtDOlTc" version="13.7.3" type="device"><diagram id="jmUpG5iB2ST3fUfwdaxy" name="第1頁">5VpZc9sgEP41fqxHt53H2HHSdnpk6vR6xBKxaJFQEfKRX1+QkGWM3CgTWyTTFw+sOL/9dtkFD9xpsrmhIIs/kgjigWNFm4F7NXCckXfBf4VgWwl8P6gES4qiSmQ3gjl6gFJoSWmBIpgrDRkhmKFMFYYkTWHIFBmglKzVZvcEq7NmYAk1wTwEWJd+RxGLK+nYGTXytxAt43pmO5AbTkDdWO4kj0FE1nsidzZwp5QQVpWSzRRigV2NS9Xv+sjX3cIoTFmXDu4Nvp5Pf6OP3hxNvr2/dH+myRtXro1t6w3DiO9fVgllMVmSFOBZI51QUqQRFKNavNa0+UBIxoU2F/6CjG2lMkHBCBfFLMHyazWnmOjoVmpVA7qE7B/rd3ZAcgJCkkBGt7wfhRgwtFLHB5IKy127XddbgvjMjiVZ61l+1UWSlgvUIXJS0BDKXg3mvLC3jEZUauIJWvFNaIVjT7c/RP+hX1d/yuHKytVGqW1lrbs2K9Qe02YHrXvP1Lqir6cqRy5yBXAhZ7pGaSRcHEkASnmhlFpxlK+cIaDkgeTDkCSaTlWNrWPE4DwDJUBr7kvbbGYFKYObf+Os4yI7uN5oeMDrseT1unFtti3bxHtuzbfOBKZta7D8H1T3OlJ9bJLqnkb1SXF/D2l5CIszDiZETmOU2L6j0Nq9aKG1FfRI6wuzrFY4PQyC0SO8Lmu3kCK+e67dk5M9eA1kDzSyf80F1Q8UycO4TBSLBF+GjHC0JoK8iIeMH8AC4luSI4ZIypssCGPc7zcNLjFaig+MHBgBKRhGKZzugljrNJZh15YgLcNrsQzX0g0jOJu/NxJwHrMMvz9/P+5oAvZzI9pnqWes2cDbu7tbLrmZ3YnVx1DEOXCFQlGAaZTtQmCzkY0a13htcY3TK88tDcnPGRTBIbdxRokY4Os7DTgOAVPRAdJlhBwKSFt8SYKiqLISmKMHsCiHErCXqin35U8G/pUYixtGXtnIiYDfJUZ1dm+1nbwtwDtnA/5F5U52fw7G7po82Uazp3qZe4bxhfuRMqZUTcNagByKvIqk7U7Hwig373t85+CINe97DEef5kyga1JlGw00bT2t+gL/FFCQueF5zgAr8hdH79bcqo3eZ8utHOd/pXfXGPKYSnu6Hxu9JP30eKXTXT+BUfejB/nfARK+556IUxilWdFyrMYkWXB/ZMTntEWVvR6pjtm01R6YSls7P8Q8O6osu15SCrZ7DWQO4xx7qAlGKlPqfOS6Y3tPpgsNN6oVnPQ1p971nsHNYfliIE2tukytT/4XduDvXmLNGZ8eL71r9VGvLXv2D27n2p5jvD6TZ8fXkE6uPs25ZB6CVHeBGKMshz1d8ahY2W1xaNtV5vniUP3CeLZBOiv7REnzb2PfNEp6tDHFJNf93Gsz3iBQ7xzdFj/pn8Z4ebX5m0h1KjX/tXFnfwE=</diagram></mxfile>

二進制
documents/dev.io/eng.png


+ 1 - 0
documents/dev.io/iothub.drawio

@@ -0,0 +1 @@
+<mxfile host="Electron" modified="2021-04-03T15:09:46.446Z" agent="5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/13.7.3 Chrome/85.0.4183.98 Electron/10.1.2 Safari/537.36" etag="3oxCHB1r_clRRtaiHXQ-" version="13.7.3" type="device"><diagram id="jmUpG5iB2ST3fUfwdaxy" name="第1頁">3Vptc9o4EP41+tiM35E/2mDS6zQ3zJG5tB8drMO6sy3GCAj59beyZYyxCO4UsNsZJpFWKyHt7rMvEsgcp2+PebiKn1hEEmRo0RsyJ8gwRpYLfwVhXxJs2ykJy5xGJUmvCXP6TiRRk9QNjci6wcgZSzhdNYkLlmVkwRu0MM/Zrsn2D0ua37oKl6RFmC/CpE19oRGPSyo2RjX9M6HLuPpm3ZEHTsOKWZ5kHYcR2x2RzACZ45wxXrbStzFJhOwquZTzpmdGDxvLSca7TDAfk+l8/B99subU//uLZ37P0k+m3BvfVwcmEZxfdlnOY7ZkWZgENdXP2SaLiFhVg17N85WxFRB1IP5LON9LZYYbzoAU8zSRo+2dV5oN8yXhH2zXKPnEHo8myvM+EpYSnu+BISdJyOm2qcNQmsLywHeYOmMUtmJo0motzS6nSKMFQnOJNdvkCyJn1TKHxtE2alKhiR/Qit2HVkAZ+f6bmP9gV93vcrmiM3lr9Payd1abpZAua/Oi1q1ra72hrx9Vjtz1Nkw28ptQ4CDsIj9AgY0wRr4mHB5LQ5pBQ4y6GHlTaMfRemsUtBFyPYQtFMCIidyJoPgT5AUt1TcVu4spJ/NVWAh2By63I7S2JOfk7UPxyVHTGj2cmD+W5r+rPaCuS574yPvZ2o1krustsfyWiLA6IgIPChGWAhFg1liYfeAiPFYb+hFY/vKe+rd722hYvekqrF5z7mj1br9G3zD5B8cZXTD7ojcjOYXTk/ynseD8klhwFFiwhMH708LpWwIXgAVwqbgd5iFHXInmJk28BWcgRF8YMIV89Gv4SpIZW1NOWQYsr4xzlh4xeAldigHOTrDBNjyhGRkfMuQP9dIdMHoFEAkYSwEYU2vjxblZlOglmz0HGPtmUQJ3RIZ+9XT5p9SDu0DD0D4/P8/g32PwXCRKECHGIrsS0cJGnq0KJFUyBUfNopXM5YupJsKjIgGDT9ud3j+1aiZWliqxMu4KGe1cNuuaInaD3LCvEjnQA+SNqiDuCGYPfFo7UQPZ8KYkQ+mpFiBJkitcWEqjqAQnWdP38LVYSqio0G0hA9tH9kSsBXhcl9C8kpIOxV51Y6Gp8gCFkoybKWlQ9aB+M79W+avLjm1YFWG17waISodWNdypCjIwZIv0WABtIpj7dlC2cRLS+3dQPSfBd7P9rqWfPqx8Vz9T/DkiFIDJ+zrChjpmQ2DBxe0IxHXsD872lfWfyvZvVv8ZbYfwe9p+14S2WnEgtl89AgxDP7e7lequH2dQ+tFVFccIeRNZT/iBcD0flOdl8eHjuvhoOamYpa+bdT8OSpWY3jU4G/0W3Dq6U8Hd+X3q+olpMdXL83B/xCDLIOPc+5UzalpKVdJMO/JbsuKobaPcwVUfuQ4AOMmaXYE5cW1cVJNtCLbL+sNF8vAeU04xe3jX7g+z6oTtgp/71Yp4++RuUvWEZd2zhjfsltjTyZ9zVL4PQmGIzaIxFZ+WU00SulqTO91RNSWnq9Jg1bXu7dJg1Z06VMx+UV5Xd1R9yqzlP6ur/XvIbPG+eYnfxy9f0tjdzpbRHxlmn1S+1RamBcISVZkjPOYAQN6SsUITncVuKpzrlUAO3fqXOmUErH/uZAb/Aw==</diagram></mxfile>

二進制
documents/dev.io/iothub.png


+ 2 - 2
web/Music/manifest.json

@@ -1,6 +1,6 @@
 {
-  "name": "airMusic",
-  "short_name": "airMusic",
+  "name": "AirMusic",
+  "short_name": "AirMusic",
   "icons": [{
     "src": "img/pwa/128.png",
       "sizes": "128x128",

+ 1 - 1
web/SystemAO/disk/webdav.html

@@ -27,7 +27,7 @@
         </div>
         <div class="ui message maconly" style="display:none">
             <h4><i class="apple icon"></i> Login Method for MacOS</h4>
-            <p>If you are using MacOS, you can select "Connect to Network Server", enter the endpoint of the arozos WebDAV service (<span class="protocol"></span>//<span class="hostname"></span>:<span class="port"></span>/webdav) and login with your arozos username and password.</p>
+            <p>If you are using MacOS, you can select "Connect to Network Server", enter the endpoint of the arozos WebDAV service (<span class="protocol"></span>//<span class="hostname"></span>:<span class="port"></span>/webdav/{vroot_name}) and login with your arozos username and password.</p>
         </div>
         <div class="ui blue message windowonly nontls" style="display:none">
             <h4><i class="windows icon"></i> Login Method for Windows (Non SSL / TLS Mode)</h4>

+ 41 - 19
web/desktop.system

@@ -513,6 +513,7 @@
 
         .notificationbar .cover{
             backdrop-filter: blur(2px);
+            -webkit-backdrop-filter: blur(2px);
             position:absolute;
             top:0px;
             left:0px;
@@ -690,10 +691,10 @@
         <div class="hostname statusbarpadding">
             Welcome
         </div>
-        <div class="clock statusbarpadding" style="display: table-cell; cursor:pointer; user-select: none;" onclick="toggleNotification();">
+        <div class="clock statusbarpadding" style="display: table-cell; cursor:pointer; user-select: none;" onclick="toggleNotification();" ontouchstart="toggleNotification();">
             ArOZ Online Desktop
         </div>
-        <div class="quicktools" onclick="showToolPanel();">
+        <div class="quicktools" onclick="showToolPanel();" ontouchend="showToolPanel();">
             <div class="qtwrapper">
                 <i class="content icon"></i>
             </div>
@@ -718,7 +719,7 @@
                 <div class="auto-jsCalendar blue"></div>
             </div>
         </div>
-        <div class="cover" onclick='toggleNotification("hide");'>
+        <div class="cover" onclick='toggleNotification("hide");' ontouchstart='toggleNotification("hide");'>
 
         </div>
     </div>
@@ -811,15 +812,15 @@
         </div>
         <div class="item" style="padding-bottom:12px;">
             <i class="volume up icon"></i> System Global Volume
-            <div class="ts fluid small progress" style="margin-top:8px; cursor:pointer;" onclick="updateVolume(this,event);">
+            <div class="ts fluid small progress" style="margin-top:8px; cursor:pointer;" onclick="updateVolume(this,event);" >
                 <div id="volumebar" class="bar" style="width: 0%; background-color:#52C9FF;  cursor:pointer;"></div>
             </div>
         </div>
-        <div class="item" id="settingButton" onclick="showSystemSettings(); hideToolPanel();">
+        <div class="item" id="settingButton" onclick="showSystemSettings(); hideToolPanel();" ontouchend="showSystemSettings(); hideToolPanel();">
             <i class="setting icon"></i> System Settings
             <!-- <div style="float:right;"><i class="caret right icon"></i></div> -->
         </div>
-        <div class="item" onclick="fullscreen(); hideToolPanel();">
+        <div class="item" onclick="fullscreen(); hideToolPanel();" ontouchend="fullscreen(); hideToolPanel();">
             <i class="maximize icon"></i> Toggle Fullscreen
         </div>
         <div class="ts divider"></div>
@@ -828,10 +829,10 @@
                 <i class="log out icon"></i> Logout
             </div>
         -->
-        <div class="item hardware" onclick="restart(); hideToolPanel();">
+        <div class="item hardware" onclick="restart(); hideToolPanel();" ontouchend="restart(); hideToolPanel();">
             <i class="repeat icon"></i> Restart
         </div>
-        <div class="item hardware" style="color:#b51d1d;"  onclick="shutdown(); hideToolPanel();">
+        <div class="item hardware" style="color:#b51d1d;"  onclick="shutdown(); hideToolPanel();" ontouchend="shutdown(); hideToolPanel();">
             <i class="power icon"></i> Power Off
         </div>
     </div>
@@ -4417,10 +4418,31 @@
             hideAllContextMenus();
         }
 
+
+        document.getElementById("volumebar").parentNode.addEventListener("touchstart", function(e){
+            updateVolume( document.getElementById("volumebar").parentNode, e);
+        });
+
+        function getCoordinateFromEvent(e){
+            if (e.originalEvent == undefined){
+                e.originalEvent = e;
+            }
+            if(e.type == 'touchstart' || e.type == 'touchmove' || e.type == 'touchend' || e.type == 'touchcancel'){
+                var touch = e.originalEvent.touches[0] || e.originalEvent.changedTouches[0];
+                x = touch.pageX;
+                y = touch.pageY;
+            } else if (e.type == 'mousedown' || e.type == 'mouseup' || e.type == 'mousemove' || e.type == 'mouseover'|| e.type=='mouseout' || e.type=='mouseenter' || e.type=='mouseleave') {
+                x = e.clientX;
+                y = e.clientY;
+            }
+            return [x,y];
+        }
+
         function updateVolume(object, event){
             var width = $(object).width();
             var left = $(object).offset().left;
-            var clickRel = event.clientX - left;
+            var clickPosition = getCoordinateFromEvent(event)[0];
+            var clickRel = clickPosition - left;
             var percentage = clickRel / width * 100;
             if (percentage < 0){
                 percentage = 0;
@@ -4802,17 +4824,17 @@
         }, 15000);
 
         function getDesktopHash(callback){
-                $.ajax({
-                    url: "../../system/file_system/listDirHash",
-                    data: {dir: "user:/Desktop/"},
-                    success: function(data){
-                        if (data.error !== undefined){
-                           
-                        }
-                        callback(data);
+            $.ajax({
+                url: "../../system/file_system/listDirHash",
+                data: {dir: "user:/Desktop/"},
+                success: function(data){
+                    if (data.error !== undefined){
+                        
                     }
-                })
-            }
+                    callback(data);
+                }
+            })
+        }
     </script>
 </body>