From 2155c28de874794415a4d9775989fb96aaf3fa7f Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Thu, 18 Oct 2018 12:50:11 -0400 Subject: clear cookies to reset auth --- www/js/app.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'www/js/app.js') diff --git a/www/js/app.js b/www/js/app.js index fef31358..a6023fa8 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -958,6 +958,12 @@ angular.module('zmApp', [ function doLogoutAndLogin(str) { + if (window.cordova) { + // we need to do this or ZM will send same auth hash + // this was fixed in a PR dated Oct 18 + NVRDataModel.debug ("Clearing cookies"); + cordova.plugin.http.clearCookies(); + } return NVRDataModel.logout() .then(function (ans) { return doLogin(str); @@ -1132,6 +1138,7 @@ angular.module('zmApp', [ return d.promise; } NVRDataModel.debug("API based login returned... "); + console.log (JSON.stringify(succ)); NVRDataModel.setCurrentServerVersion(succ.version); $ionicLoading.hide(); //$rootScope.loggedIntoZm = 1; @@ -1656,6 +1663,7 @@ angular.module('zmApp', [ // lets see if it really works $rootScope.online = navigator.onLine; + NVRDataModel.log ("--------->Setting up network state handlers...."); document.addEventListener("offline", function () { //console.log ("OFFLINE------------------------------------"); $timeout(function () { @@ -1998,7 +2006,7 @@ angular.module('zmApp', [ $rootScope.$stateParams = $stateParams; if (window.cordova) { - console.log("------------->Keyboard foonone"); + //window.cordova.plugins.Keyboard.disableScroll(true); } if (window.StatusBar) { @@ -2082,7 +2090,7 @@ angular.module('zmApp', [ localforage.getItem('last-desktop-state') .then(function (succ) { - console.log("FOUND STATE" + JSON.stringify(succ) + ":" + succ); +// console.log("FOUND STATE" + JSON.stringify(succ) + ":" + succ); // sanitize this if (!succ.name || typeof succ.name !== 'string') { @@ -2300,12 +2308,13 @@ angular.module('zmApp', [ if (window.cordova && isOutgoingRequest) { + var d = $q.defer(); var options = { method: method, data: arguments[0].data, headers: arguments[0].headers, - timeout: arguments[0].timeout, + timeout: arguments[0].timeout || 10, responseType: arguments[0].responseType }; // console.log ("**** -->"+method+"<-- using native HTTP with:"+encodeURI(url)+" payload:"+JSON.stringify(options)); -- cgit v1.2.3 From 8f566c002d205c2f47b9e6a9e56ec1ff8b54e98d Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Thu, 18 Oct 2018 16:39:24 -0400 Subject: a few tweaks to do foo.... --- www/js/app.js | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) (limited to 'www/js/app.js') diff --git a/www/js/app.js b/www/js/app.js index a6023fa8..8a8cfd55 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -1515,12 +1515,16 @@ angular.module('zmApp', [ //navigator.app.exitApp(); }; - + // This is a global exception interceptor $rootScope.exceptionMessage = function (error) { NVRDataModel.debug("**EXCEPTION**" + error.reason + " caused by " + error.cause); }; + // for .config block + $rootScope.debug = function (msg) { + NVRDataModel.debug(msg); + }; if ($rootScope.platformOS == 'desktop' && 0) { @@ -1663,12 +1667,16 @@ angular.module('zmApp', [ // lets see if it really works $rootScope.online = navigator.onLine; - NVRDataModel.log ("--------->Setting up network state handlers...."); + // set up network state handlers after 3secs + // android seems to howl about this at app start? + $timeout (function() { + + NVRDataModel.log ("--------->Setting up network state handlers...."); document.addEventListener("offline", function () { //console.log ("OFFLINE------------------------------------"); $timeout(function () { $rootScope.online = false; - NVRDataModel.log("Your network went offline"); + NVRDataModel.log("************** Your network went offline"); //$rootScope.$emit('network-change', "offline"); @@ -1679,14 +1687,13 @@ angular.module('zmApp', [ //console.log ("ONLINE------------------------------------"); $timeout(function () { - - NVRDataModel.log("Your network came back online"); + NVRDataModel.log("************ Your network came back online"); $rootScope.online = true; $timeout(function () { // NVRDataModel.debug ("Ignoring - Alex R. Hack"); - if (0) { + if (1) { var networkState = "browser not supported"; if (navigator.connection) networkState = navigator.connection.type; NVRDataModel.debug("Detected network type as: " + networkState); @@ -1711,6 +1718,9 @@ angular.module('zmApp', [ }); }, false); + },3000); + + // This code takes care of trapping the Android back button // and takes it to the menu. //console.log (">>>>>>>>>>>>>>>>>>BACK BUTTON REGISTERED"); @@ -2263,7 +2273,7 @@ angular.module('zmApp', [ //------------------------------------------------------------------ // My route map connecting menu options to their respective templates and controllers - .config(function ($stateProvider, $urlRouterProvider, $httpProvider, $ionicConfigProvider, $provide, $compileProvider, /*$ionicNativeTransitionsProvider,*/ $logProvider, $translateProvider) { + .config(function ($stateProvider, $urlRouterProvider, $httpProvider, $ionicConfigProvider, $provide, $compileProvider, /*$ionicNativeTransitionsProvider,*/ $logProvider, $translateProvider, $injector) { //$logProvider.debugEnabled(false); //$compileProvider.debugInfoEnabled(false); @@ -2294,9 +2304,10 @@ angular.module('zmApp', [ // a) https://www.exratione.com/2013/08/angularjs-wrapping-http-for-fun-and-profit/ // b) https://gist.github.com/adamreisnz/354364e2a58786e2be71 - $provide.decorator('$http', ['$delegate', '$q', function ($delegate, $q) { + $provide.decorator('$http', ['$delegate', '$q', '$injector', function ($delegate, $q, $injector) { // create function which overrides $http function var $http = $delegate; + var logger = $injector.get("$rootScope"); var wrapper = function () { var url; @@ -2346,7 +2357,7 @@ angular.module('zmApp', [ } }, function (err) { - console.log("*** Inside native HTTP error: " + JSON.stringify(err)); + logger.debug("*** Inside native HTTP error: " + JSON.stringify(err)); d.reject(err); return d.promise; -- cgit v1.2.3 From 8e34a5c7d2e5969d72a2a469e8c97ad7fc7de712 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sat, 20 Oct 2018 20:20:03 -0400 Subject: #724 and general, filter out cake error leaks --- www/js/app.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'www/js/app.js') diff --git a/www/js/app.js b/www/js/app.js index 8a8cfd55..4e146384 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -714,6 +714,14 @@ angular.module('zmApp', [ } //console.log ("HTTP response"); + + + if (response.data && typeof(response.data) == 'string' && response.data.indexOf("
") != -1) {
+            console.log ("cake error detected, attempting fix...");
+            response.data = JSON.parse(response.data.replace(/
[\s\S]*<\/pre>/,''));
+            //console.log ("FIXED="+response.data);
+        }
+        //"data":"
         return response;
       }
 
@@ -2340,6 +2348,13 @@ angular.module('zmApp', [
                 });
                 return d.promise;
               } else {
+
+                // work around for cake-error leak
+                if (succ.data.indexOf("
") != -1) {
+                  logger.debug ("**** Native: cake-error in message, trying fix...");
+                  succ.data = JSON.parse(succ.data.replace(/
[\s\S]*<\/pre>/,''));
+                }
+
                 try {
                   d.resolve({
                     "data": JSON.parse(succ.data)
-- 
cgit v1.2.3


From 3f549f3d6ea3dac1fbf862e236549ce0dd7fd570 Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Sun, 21 Oct 2018 10:33:47 -0400
Subject: #724 more cleanup

---
 www/js/app.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 4e146384..8bbe4d1b 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -716,7 +716,7 @@ angular.module('zmApp', [
         //console.log ("HTTP response");
 
       
-        if (response.data && typeof(response.data) == 'string' && response.data.indexOf("
") != -1) {
+        if (response.data && typeof(response.data) == 'string' && response.data.startsWith("
")) {
             console.log ("cake error detected, attempting fix...");
             response.data = JSON.parse(response.data.replace(/
[\s\S]*<\/pre>/,''));
             //console.log ("FIXED="+response.data);
@@ -2350,7 +2350,7 @@ angular.module('zmApp', [
               } else {
 
                 // work around for cake-error leak
-                if (succ.data.indexOf("
") != -1) {
+                if (succ.data.startsWith("
") ) {
                   logger.debug ("**** Native: cake-error in message, trying fix...");
                   succ.data = JSON.parse(succ.data.replace(/
[\s\S]*<\/pre>/,''));
                 }
-- 
cgit v1.2.3


From e3ee3eeeb220cfce88ddfdb2189ec6e49432565f Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Mon, 22 Oct 2018 09:38:27 -0400
Subject: other cleanup

---
 www/js/app.js | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 8bbe4d1b..fd772197 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1009,7 +1009,7 @@ angular.module('zmApp', [
       proceedWithLogin()
         .then(function (success) {
 
-            NVRDataModel.debug("Storing login time as " + moment().toString());
+            //NVRDataModel.debug("Storing login time as " + moment().toString());
             localforage.setItem("lastLogin", moment().toString());
             d.resolve(success);
             return d.promise;
@@ -1813,7 +1813,7 @@ angular.module('zmApp', [
             toState.name != "app.zm-portal-login"
           ) {
 
-            NVRDataModel.debug("Setting last-desktop-state to:" + JSON.stringify(toState));
+           // NVRDataModel.debug("Setting last-desktop-state to:" + JSON.stringify(toState));
             localforage.setItem('last-desktop-state', {
               'name': toState.name,
               'params': toState.params
@@ -1852,7 +1852,7 @@ angular.module('zmApp', [
         // to work in Windows
 
 
-        NVRDataModel.debug("Setting last-desktop-state to:" + JSON.stringify(toState) + " with params:" + JSON.stringify(toParams));
+        //NVRDataModel.debug("Setting last-desktop-state to:" + JSON.stringify(toState) + " with params:" + JSON.stringify(toParams));
         localforage.setItem('last-desktop-state', {
           'name': toState,
           'params': toParams
@@ -2204,8 +2204,8 @@ angular.module('zmApp', [
               $rootScope.lastState = $ionicHistory.currentView().stateName;
               $rootScope.lastStateParam =
                 $ionicHistory.currentView().stateParams;
-              NVRDataModel.debug("Last State recorded:" +
-                JSON.stringify($ionicHistory.currentView()));
+              //NVRDataModel.debug("Last State recorded:" +
+                //JSON.stringify($ionicHistory.currentView()));
 
               if ($rootScope.lastState == "app.zm-portal-login") {
                 NVRDataModel.debug("Last state was portal-login, so forcing montage");
-- 
cgit v1.2.3


From 00c98cae610c0985c69b3b7bdb078cfbd354df0a Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Mon, 22 Oct 2018 14:56:10 -0400
Subject: clear cookies in desktop too

---
 www/js/app.js | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index fd772197..993e5fff 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -28,7 +28,8 @@ angular.module('zmApp', [
     'uk.ac.soton.ecs.videogular.plugins.cuepoints',
     'dcbImgFallback',
     'ngImageAppear',
-    'angular-websocket'
+    'angular-websocket',
+    'ngCookies'
 
 
   ])
@@ -860,7 +861,7 @@ angular.module('zmApp', [
   // This service automatically logs into ZM at periodic intervals
   //------------------------------------------------------------------
 
-  .factory('zmAutoLogin', function ($interval, NVRDataModel, $http, zm, $browser, $timeout, $q, $rootScope, $ionicLoading, $ionicPopup, $state, $ionicContentBanner, EventServer, $ionicHistory, $translate) {
+  .factory('zmAutoLogin', ['$interval', 'NVRDataModel', '$http', 'zm', '$timeout', '$q', '$rootScope', '$ionicLoading', '$ionicPopup', '$state', '$ionicContentBanner', 'EventServer', '$ionicHistory', '$translate', '$cookies',function ($interval, NVRDataModel, $http, zm, $timeout, $q, $rootScope, $ionicLoading, $ionicPopup, $state, $ionicContentBanner, EventServer, $ionicHistory, $translate, $cookies) {
     var zmAutoLoginHandle;
 
     //------------------------------------------------------------------
@@ -966,12 +967,19 @@ angular.module('zmApp', [
 
 
     function doLogoutAndLogin(str) {
+      NVRDataModel.debug ("Clearing cookies");
+
       if (window.cordova) {
         // we need to do this or ZM will send same auth hash
         // this was fixed in a PR dated Oct 18
-        NVRDataModel.debug ("Clearing cookies");
+       
         cordova.plugin.http.clearCookies();
       }
+      else {
+       angular.forEach($cookies, function (v, k) {
+         $cookies.remove(k);
+        });
+      }
       return NVRDataModel.logout()
         .then(function (ans) {
           return doLogin(str);
@@ -1417,7 +1425,7 @@ angular.module('zmApp', [
       stop: stop,
       doLogin: doLogoutAndLogin
     };
-  })
+  }])
 
   //====================================================================
   // First run in ionic
-- 
cgit v1.2.3


From 4496496240b6e3573c4c0892a28bfb0bcc288785 Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Tue, 23 Oct 2018 10:36:38 -0400
Subject: increase default timeout

---
 www/js/app.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 993e5fff..f5ec5c47 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -2341,7 +2341,7 @@ angular.module('zmApp', [
             method: method,
             data: arguments[0].data,
             headers: arguments[0].headers,
-            timeout: arguments[0].timeout || 10,
+            timeout: arguments[0].timeout || 20,
             responseType: arguments[0].responseType
           };
           // console.log ("**** -->"+method+"<-- using native HTTP with:"+encodeURI(url)+" payload:"+JSON.stringify(options));
-- 
cgit v1.2.3


From 9a847cc74b193ac9ba011d8f51f05588996aee5b Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Tue, 23 Oct 2018 16:10:39 -0400
Subject: build sync and ES ver

---
 www/js/app.js | 21 ++++++++++++++-------
 1 file changed, 14 insertions(+), 7 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index f5ec5c47..f43afe28 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -42,7 +42,7 @@ angular.module('zmApp', [
   .constant('zm', {
     minAppVersion: '1.28.107', // if ZM is less than this, the app won't work
     recommendedAppVersion: '1.32.0',
-    minEventServerVersion: '2.0',
+    minEventServerVersion: '2.1',
     castAppId: 'BA30FB4C',
     alarmFlashTimer: 20000, // time to flash alarm
     gcmSenderId: '710936220256',
@@ -2341,14 +2341,25 @@ angular.module('zmApp', [
             method: method,
             data: arguments[0].data,
             headers: arguments[0].headers,
-            timeout: arguments[0].timeout || 20,
+           // timeout: arguments[0].timeout, 
             responseType: arguments[0].responseType
           };
+
+          if (arguments[0].timeout) options.timeout = arguments[0].timeout;
           // console.log ("**** -->"+method+"<-- using native HTTP with:"+encodeURI(url)+" payload:"+JSON.stringify(options));
           cordova.plugin.http.sendRequest(encodeURI(url), options,
             function (succ) {
               // automatic JSON parse if no responseType: text
               // fall back to text if JSON parse fails too
+
+                   // work around for cake-error leak
+
+                  // console.log ("HTTP RESPONSE:" + JSON.stringify(succ.data));
+                   if (succ.data && succ.data.startsWith("
") ) {
+                    logger.debug ("**** Native: cake-error in message, trying fix...");
+                    succ.data = JSON.parse(succ.data.replace(/
[\s\S]*<\/pre>/,''));
+                  }
+
               if (options.responseType == 'text') {
                 // don't parse into JSON
                 d.resolve({
@@ -2357,11 +2368,7 @@ angular.module('zmApp', [
                 return d.promise;
               } else {
 
-                // work around for cake-error leak
-                if (succ.data.startsWith("
") ) {
-                  logger.debug ("**** Native: cake-error in message, trying fix...");
-                  succ.data = JSON.parse(succ.data.replace(/
[\s\S]*<\/pre>/,''));
-                }
+           
 
                 try {
                   d.resolve({
-- 
cgit v1.2.3


From 09a78638bd054f2188ddceaf59da4f144aec223a Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Fri, 26 Oct 2018 15:16:57 -0400
Subject: #725 make sure online/offline don't interfere

---
 www/js/app.js | 50 ++++++++++++++++++++++++++++++++------------------
 1 file changed, 32 insertions(+), 18 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index f43afe28..59c61d3e 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1180,8 +1180,9 @@ angular.module('zmApp', [
 
 
                 d.resolve("Login Success");
-
                 $rootScope.$broadcast('auth-success', succ);
+                return d.promise;
+
               } catch (e) {
                 NVRDataModel.debug("Login API approach did not work...");
                 var ld = NVRDataModel.getLogin();
@@ -1240,7 +1241,7 @@ angular.module('zmApp', [
 
 
             }
-          );
+          ); // post
 
 
 
@@ -1687,9 +1688,15 @@ angular.module('zmApp', [
       // android seems to howl about this at app start?
       $timeout (function() {
 
-        NVRDataModel.log ("--------->Setting up network state handlers....");
-      document.addEventListener("offline", function () {
-        //console.log ("OFFLINE------------------------------------");
+      NVRDataModel.log ("--------->Setting up network state handlers....");
+      document.addEventListener("offline", onOnline, false);
+      document.addEventListener("online", onOffline, false);
+
+      },3000);
+
+
+      function onOnline() {
+
         $timeout(function () {
           $rootScope.online = false;
           NVRDataModel.log("************** Your network went offline");
@@ -1697,19 +1704,19 @@ angular.module('zmApp', [
           //$rootScope.$emit('network-change', "offline");
 
         });
-      }, false);
 
-      document.addEventListener("online", function () {
-        //console.log ("ONLINE------------------------------------");
+      }
+
+      function onOffline() {
+
         $timeout(function () {
 
           NVRDataModel.log("************ Your network came back online");
 
           $rootScope.online = true;
 
-          $timeout(function () {
-            // NVRDataModel.debug ("Ignoring - Alex R. Hack");
-            if (1) {
+
+          
               var networkState = "browser not supported";
               if (navigator.connection) networkState = navigator.connection.type;
               NVRDataModel.debug("Detected network type as: " + networkState);
@@ -1725,16 +1732,11 @@ angular.module('zmApp', [
               }
               NVRDataModel.log("Your network is online, re-authenticating");
               zmAutoLogin.doLogin($translate.instant('kReAuthenticating'));
-            }
-
-          }, 1000); // need a time gap, seems network type registers late
-
-
+    
 
         });
-      }, false);
 
-      },3000);
+      }
       
 
       // This code takes care of trapping the Android back button
@@ -2194,7 +2196,14 @@ angular.module('zmApp', [
           NVRDataModel.setBackground(false);
           NVRDataModel.setJustResumed(true);
           $ionicPlatform.ready(function () {
+
             NVRDataModel.log("App is resuming from background");
+
+            NVRDataModel.log ("-->Re-registering online/offine");
+            document.addEventListener("offline", onOnline, false);
+            document.addEventListener("online", onOffline, false);
+
+
             $rootScope.isDownloading = false;
 
             var ld = NVRDataModel.getLogin();
@@ -2242,6 +2251,11 @@ angular.module('zmApp', [
         }
 
         function pauseHandler() {
+
+          NVRDataModel.log ("-->Clearing online/offine");
+          document.removeEventListener("offline", onOnline, false);
+          document.removeEventListener("online", onOffline, false);
+
           NVRDataModel.setBackground(true);
           NVRDataModel.setJustResumed(false);
           // NVRDataModel.setJustResumed(true); // used for window stop
-- 
cgit v1.2.3


From 73d3ab8eea13038d9ff3ab3bea0329fc48b6e464 Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Sat, 27 Oct 2018 07:38:21 -0400
Subject: when doing re-auth, don't logout

---
 www/js/app.js | 41 +++++++++++++++++++++++------------------
 1 file changed, 23 insertions(+), 18 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 59c61d3e..a8e31e5a 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -965,8 +965,12 @@ angular.module('zmApp', [
     // which actually means auth failed, but ZM treats it as a success
     //------------------------------------------------------------------
 
+    function _doLoginNoLogout (str) {
+    
+      return _doLogin(str);
+    }
 
-    function doLogoutAndLogin(str) {
+    function _doLogoutAndLogin(str) {
       NVRDataModel.debug ("Clearing cookies");
 
       if (window.cordova) {
@@ -975,20 +979,20 @@ angular.module('zmApp', [
        
         cordova.plugin.http.clearCookies();
       }
-      else {
+    /*  else {
        angular.forEach($cookies, function (v, k) {
          $cookies.remove(k);
         });
-      }
+      }*/
       return NVRDataModel.logout()
         .then(function (ans) {
-          return doLogin(str);
+          return _doLogin(str);
 
         });
     }
 
 
-    function doLogin(str) {
+    function _doLogin(str) {
       var d = $q.defer();
       var ld = NVRDataModel.getLogin();
 
@@ -1001,13 +1005,6 @@ angular.module('zmApp', [
         return d.promise;
 
       }
-
-      if ($rootScope.isDownloading) {
-        NVRDataModel.log("Skipping login process as we are downloading...");
-        d.resolve("success");
-        return d.promise;
-      }
-
       NVRDataModel.debug("Resetting zmCookie...");
       $rootScope.zmCookie = '';
       // first try to login, if it works, good
@@ -1404,7 +1401,7 @@ angular.module('zmApp', [
       $interval.cancel(zmAutoLoginHandle);
       //doLogin();
       zmAutoLoginHandle = $interval(function () {
-        doLogin("");
+        _doLogin("");
 
       }, zm.loginInterval); // Auto login every 5 minutes
       // PHP timeout is around 10 minutes
@@ -1424,7 +1421,9 @@ angular.module('zmApp', [
     return {
       start: start,
       stop: stop,
-      doLogin: doLogoutAndLogin
+      doLogin: _doLogoutAndLogin,
+      doLoginNoLogout: _doLoginNoLogout
+
     };
   }])
 
@@ -1689,13 +1688,14 @@ angular.module('zmApp', [
       $timeout (function() {
 
       NVRDataModel.log ("--------->Setting up network state handlers....");
-      document.addEventListener("offline", onOnline, false);
+      document.addEventListener("offline", onOffline, false);
       document.addEventListener("online", onOffline, false);
 
       },3000);
 
 
-      function onOnline() {
+      function onOffline() {
+
 
         $timeout(function () {
           $rootScope.online = false;
@@ -1707,10 +1707,15 @@ angular.module('zmApp', [
 
       }
 
-      function onOffline() {
+      function onOnline() {
 
         $timeout(function () {
 
+
+          if ($rootScope.online == true) {
+            NVRDataModel.log ("**** network online, but looks like it was not offline, not doing anything");
+            return;
+          }
           NVRDataModel.log("************ Your network came back online");
 
           $rootScope.online = true;
@@ -1731,7 +1736,7 @@ angular.module('zmApp', [
                 NVRDataModel.debug("Not changing bandwidth state, as auto change is not on");
               }
               NVRDataModel.log("Your network is online, re-authenticating");
-              zmAutoLogin.doLogin($translate.instant('kReAuthenticating'));
+              zmAutoLogin.doLoginNoLogout($translate.instant('kReAuthenticating'));
     
 
         });
-- 
cgit v1.2.3


From 42c068b2dd7ff891979cc39f532af1f4fd4d987c Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Sat, 27 Oct 2018 07:39:21 -0400
Subject: bump up maxFilesize for logs since we are attaching

---
 www/js/app.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index a8e31e5a..69c1c6bc 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -50,7 +50,7 @@ angular.module('zmApp', [
     largeHttpTimeout: 30000,
     logFile: 'zmNinjaLog.txt',
     authoremail: 'pliablepixels+zmNinja@gmail.com',
-    logFileMaxSize: 30000, // after this limit log gets reset
+    logFileMaxSize: 100000, // after this limit log gets reset
 
     updateCheckInterval: 86400000, // 24 hrs
     loadingTimeout: 15000,
-- 
cgit v1.2.3


From 1a9e196ba98c1c94ce3678d08b626bf0b942418e Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Sat, 27 Oct 2018 11:42:57 -0400
Subject: #725 online/offline registration fix

---
 www/js/app.js | 10 +++++-----
 1 file changed, 5 insertions(+), 5 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 69c1c6bc..332c4613 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1689,7 +1689,7 @@ angular.module('zmApp', [
 
       NVRDataModel.log ("--------->Setting up network state handlers....");
       document.addEventListener("offline", onOffline, false);
-      document.addEventListener("online", onOffline, false);
+      document.addEventListener("online", onOnline, false);
 
       },3000);
 
@@ -2205,8 +2205,8 @@ angular.module('zmApp', [
             NVRDataModel.log("App is resuming from background");
 
             NVRDataModel.log ("-->Re-registering online/offine");
-            document.addEventListener("offline", onOnline, false);
-            document.addEventListener("online", onOffline, false);
+            document.addEventListener("offline", onOffline, false);
+            document.addEventListener("online", onOnline, false);
 
 
             $rootScope.isDownloading = false;
@@ -2258,8 +2258,8 @@ angular.module('zmApp', [
         function pauseHandler() {
 
           NVRDataModel.log ("-->Clearing online/offine");
-          document.removeEventListener("offline", onOnline, false);
-          document.removeEventListener("online", onOffline, false);
+          document.removeEventListener("offline", onOffline, false);
+          document.removeEventListener("online", onOnline, false);
 
           NVRDataModel.setBackground(true);
           NVRDataModel.setJustResumed(false);
-- 
cgit v1.2.3


From f28620166d390fa85f3d283a7307f0746d559cbb Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Sun, 28 Oct 2018 13:54:01 -0400
Subject: #725 if already transitioned out, handle process-push in Portal

---
 www/js/app.js | 33 ++++-----------------------------
 1 file changed, 4 insertions(+), 29 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 332c4613..74f7d0cf 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1437,6 +1437,7 @@ angular.module('zmApp', [
     $ionicPlatform.ready(function () {
       //console.log(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>INSIDE RUN");
 
+      NVRDataModel.log("******* app .run device ready");
       $fileLogger.setStorageFilename(zm.logFile);
       $fileLogger.setTimestampFormat('MMM d, y ' + NVRDataModel.getTimeFormatSec());
 
@@ -1475,26 +1476,6 @@ angular.module('zmApp', [
       NVRDataModel.log("You are running on " + $rootScope.platformOS);
 
 
-      /*if (window.cordova && $rootScope.platformOS == 'android') {
-
-        cordova.plugins.diagnostic.isExternalStorageAuthorized(function (authorized) {
-          if (!authorized) cordova.plugins.diagnostic.requestExternalStorageAuthorization(okperm, nopermerr);
-        }, function (err) {
-          console.log("diagnostic external storage error " + err);
-        });
-
-
-      }*/
-
-
-      function nopermerr() {
-        NVRDataModel.displayBanner('error', ['Storage permission must be allowed'], "", 4000);
-      }
-
-      function okperm() {
-        //console.log("cool");
-        NVRDataModel.displayBanner('success', ['Storage permission acquired'], "", 4000);
-      }
 
       $rootScope.appName = "zmNinja";
       $rootScope.zmGlobalCookie = "";
@@ -1695,8 +1676,6 @@ angular.module('zmApp', [
 
 
       function onOffline() {
-
-
         $timeout(function () {
           $rootScope.online = false;
           NVRDataModel.log("************** Your network went offline");
@@ -1704,14 +1683,10 @@ angular.module('zmApp', [
           //$rootScope.$emit('network-change', "offline");
 
         });
-
       }
 
       function onOnline() {
-
         $timeout(function () {
-
-
           if ($rootScope.online == true) {
             NVRDataModel.log ("**** network online, but looks like it was not offline, not doing anything");
             return;
@@ -1719,9 +1694,7 @@ angular.module('zmApp', [
           NVRDataModel.log("************ Your network came back online");
 
           $rootScope.online = true;
-
-
-          
+  
               var networkState = "browser not supported";
               if (navigator.connection) networkState = navigator.connection.type;
               NVRDataModel.debug("Detected network type as: " + networkState);
@@ -2198,10 +2171,12 @@ angular.module('zmApp', [
 
 
         function resumeHandler() {
+         
           NVRDataModel.setBackground(false);
           NVRDataModel.setJustResumed(true);
           $ionicPlatform.ready(function () {
 
+            NVRDataModel.log("******* resumeHandler device ready");
             NVRDataModel.log("App is resuming from background");
 
             NVRDataModel.log ("-->Re-registering online/offine");
-- 
cgit v1.2.3


From 164ebf1745517bb2bc9be8eedb5bdf709168d801 Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Thu, 1 Nov 2018 11:20:41 -0400
Subject: #733 remove getMonitor dependency for monitor view, show the right
 loading message

---
 www/js/app.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 74f7d0cf..696006dd 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -2539,12 +2539,12 @@ angular.module('zmApp', [
         data: {
           requireLogin: true
         },
-        resolve: {
+        /*resolve: {
           message: function (NVRDataModel) {
             // console.log("Inside app.montage resolve");
             return NVRDataModel.getMonitors(0);
           }
-        },
+        },*/
         url: "/monitors",
         cache: false,
         templateUrl: "templates/monitors.html",
-- 
cgit v1.2.3


From 2ea8d3b31d217ac5cbfdd8554097168a16ad8e91 Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Thu, 1 Nov 2018 11:45:04 -0400
Subject: reflect new ES version

---
 www/js/app.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 696006dd..c14180f2 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -42,7 +42,7 @@ angular.module('zmApp', [
   .constant('zm', {
     minAppVersion: '1.28.107', // if ZM is less than this, the app won't work
     recommendedAppVersion: '1.32.0',
-    minEventServerVersion: '2.1',
+    minEventServerVersion: '2.2',
     castAppId: 'BA30FB4C',
     alarmFlashTimer: 20000, // time to flash alarm
     gcmSenderId: '710936220256',
-- 
cgit v1.2.3


From 8c33f90e9f9920b6eda552c6d69277468a0fb23f Mon Sep 17 00:00:00 2001
From: Arseny Zorin 
Date: Wed, 7 Nov 2018 11:47:04 +0300
Subject: Fixes double definition in www/js/app.js

---
 www/js/app.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index c14180f2..130d732a 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1165,7 +1165,7 @@ angular.module('zmApp', [
                   }
                 }
 
-                var ldg = NVRDataModel.getLogin();
+                ldg = NVRDataModel.getLogin();
                 ldg.loginAPISupported = true;
                 NVRDataModel.setLogin(ldg);
 
@@ -1182,7 +1182,7 @@ angular.module('zmApp', [
 
               } catch (e) {
                 NVRDataModel.debug("Login API approach did not work...");
-                var ld = NVRDataModel.getLogin();
+                ld = NVRDataModel.getLogin();
                 ld.loginAPISupported = false;
                 NVRDataModel.setLogin(ld);
                 loginWebScrape()
-- 
cgit v1.2.3


From c80a2d1ef37551191093bdae160315c4c7a95336 Mon Sep 17 00:00:00 2001
From: Arseny Zorin 
Date: Wed, 7 Nov 2018 18:41:42 +0300
Subject: Returns removed ldg by mistake and finally fixes ld double def

---
 www/js/app.js | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 130d732a..02f5e8fb 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -1134,7 +1134,7 @@ angular.module('zmApp', [
 
                 if (!succ.version) {
                   NVRDataModel.debug("API login returned fake success, going back to webscrape");
-                  var ld = NVRDataModel.getLogin();
+                  ld = NVRDataModel.getLogin();
                   ld.loginAPISupported = false;
                   NVRDataModel.setLogin(ld);
 
@@ -1165,7 +1165,7 @@ angular.module('zmApp', [
                   }
                 }
 
-                ldg = NVRDataModel.getLogin();
+                var ldg = NVRDataModel.getLogin();
                 ldg.loginAPISupported = true;
                 NVRDataModel.setLogin(ldg);
 
-- 
cgit v1.2.3


From d8b0c15aaf7fbaca2442c9312e65da8ecae2c8dd Mon Sep 17 00:00:00 2001
From: Pliable Pixels 
Date: Wed, 7 Nov 2018 10:47:40 -0500
Subject: es version

---
 www/js/app.js | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

(limited to 'www/js/app.js')

diff --git a/www/js/app.js b/www/js/app.js
index 02f5e8fb..cf64c31b 100755
--- a/www/js/app.js
+++ b/www/js/app.js
@@ -42,7 +42,7 @@ angular.module('zmApp', [
   .constant('zm', {
     minAppVersion: '1.28.107', // if ZM is less than this, the app won't work
     recommendedAppVersion: '1.32.0',
-    minEventServerVersion: '2.2',
+    minEventServerVersion: '2.4',
     castAppId: 'BA30FB4C',
     alarmFlashTimer: 20000, // time to flash alarm
     gcmSenderId: '710936220256',
-- 
cgit v1.2.3