diff options
56 files changed, 71 insertions, 43 deletions
@@ -8,7 +8,9 @@ Ionic Framework Team </author> <content src="index.html"/> - <access origin="*"/> + <access origin="*" subdomains="true"/> + <allow-navigation href="*"/> + <allow-intent href="*"/> <preference name="webviewbounce" value="false"/> <preference name="UIWebViewBounce" value="false"/> <preference name="DisallowOverscroll" value="true"/> @@ -67,5 +69,5 @@ <splash src="resources/android/splash/drawable-port-xxhdpi-screen.png" density="port-xxhdpi"/> <splash src="resources/android/splash/drawable-port-xxxhdpi-screen.png" density="port-xxxhdpi"/> </platform> - <icon src="resources/ios/icon/icon-small@3x.png"/> -</widget> + <icon src="resources/android/icon/drawable-xhdpi-icon.png"/> +</widget>
\ No newline at end of file diff --git a/ionic.project b/ionic.project index 84c1db95..f6c258f8 100644 --- a/ionic.project +++ b/ionic.project @@ -1,4 +1,11 @@ { "name": "zmNinja", - "app_id": "" + "app_id": "", + "browsers": [ + { + "platform": "android", + "browser": "crosswalk", + "version": "12.41.296.5" + } + ] }
\ No newline at end of file diff --git a/package.json b/package.json index e6190172..82703d82 100644 --- a/package.json +++ b/package.json @@ -13,5 +13,14 @@ "bower": "^1.3.3", "gulp-util": "^2.2.14", "shelljs": "^0.3.0" - } + }, + "cordovaPlugins": [ + "org.apache.cordova.splashscreen" + ], + "cordovaPlatforms": [ + { + "platform": "android", + "locator": "./engine/cordova-android-c0.6.1/" + } + ] }
\ No newline at end of file diff --git a/resources/android/icon/drawable-hdpi-icon.png b/resources/android/icon/drawable-hdpi-icon.png Binary files differindex b9100934..cedb109a 100644 --- a/resources/android/icon/drawable-hdpi-icon.png +++ b/resources/android/icon/drawable-hdpi-icon.png diff --git a/resources/android/icon/drawable-ldpi-icon.png b/resources/android/icon/drawable-ldpi-icon.png Binary files differindex 16cd5dba..0b0758c1 100644 --- a/resources/android/icon/drawable-ldpi-icon.png +++ b/resources/android/icon/drawable-ldpi-icon.png diff --git a/resources/android/icon/drawable-mdpi-icon.png b/resources/android/icon/drawable-mdpi-icon.png Binary files differindex 64a6cbc5..44909812 100644 --- a/resources/android/icon/drawable-mdpi-icon.png +++ b/resources/android/icon/drawable-mdpi-icon.png diff --git a/resources/android/icon/drawable-xhdpi-icon.png b/resources/android/icon/drawable-xhdpi-icon.png Binary files differindex 1605f695..b4adf3d5 100644 --- a/resources/android/icon/drawable-xhdpi-icon.png +++ b/resources/android/icon/drawable-xhdpi-icon.png diff --git a/resources/android/icon/drawable-xxhdpi-icon.png b/resources/android/icon/drawable-xxhdpi-icon.png Binary files differindex 56fb29e6..e8062137 100644 --- a/resources/android/icon/drawable-xxhdpi-icon.png +++ b/resources/android/icon/drawable-xxhdpi-icon.png diff --git a/resources/android/icon/drawable-xxxhdpi-icon.png b/resources/android/icon/drawable-xxxhdpi-icon.png Binary files differindex e4a91525..f22fdda9 100644 --- a/resources/android/icon/drawable-xxxhdpi-icon.png +++ b/resources/android/icon/drawable-xxxhdpi-icon.png diff --git a/resources/android/splash/drawable-land-hdpi-screen.png b/resources/android/splash/drawable-land-hdpi-screen.png Binary files differindex 66b12fea..b752ce83 100644 --- a/resources/android/splash/drawable-land-hdpi-screen.png +++ b/resources/android/splash/drawable-land-hdpi-screen.png diff --git a/resources/android/splash/drawable-land-ldpi-screen.png b/resources/android/splash/drawable-land-ldpi-screen.png Binary files differindex 7dceec7b..8e5dc8da 100644 --- a/resources/android/splash/drawable-land-ldpi-screen.png +++ b/resources/android/splash/drawable-land-ldpi-screen.png diff --git a/resources/android/splash/drawable-land-mdpi-screen.png b/resources/android/splash/drawable-land-mdpi-screen.png Binary files differindex 0dc2ba75..86e11863 100644 --- a/resources/android/splash/drawable-land-mdpi-screen.png +++ b/resources/android/splash/drawable-land-mdpi-screen.png diff --git a/resources/android/splash/drawable-land-xhdpi-screen.png b/resources/android/splash/drawable-land-xhdpi-screen.png Binary files differindex 39ae00c3..31aef3bd 100644 --- a/resources/android/splash/drawable-land-xhdpi-screen.png +++ b/resources/android/splash/drawable-land-xhdpi-screen.png diff --git a/resources/android/splash/drawable-land-xxhdpi-screen.png b/resources/android/splash/drawable-land-xxhdpi-screen.png Binary files differindex 3f591b1e..b431a9f8 100644 --- a/resources/android/splash/drawable-land-xxhdpi-screen.png +++ b/resources/android/splash/drawable-land-xxhdpi-screen.png diff --git a/resources/android/splash/drawable-land-xxxhdpi-screen.png b/resources/android/splash/drawable-land-xxxhdpi-screen.png Binary files differindex 253e6f18..cd40b188 100644 --- a/resources/android/splash/drawable-land-xxxhdpi-screen.png +++ b/resources/android/splash/drawable-land-xxxhdpi-screen.png diff --git a/resources/android/splash/drawable-port-hdpi-screen.png b/resources/android/splash/drawable-port-hdpi-screen.png Binary files differindex e0dbb62f..d09ce2cb 100644 --- a/resources/android/splash/drawable-port-hdpi-screen.png +++ b/resources/android/splash/drawable-port-hdpi-screen.png diff --git a/resources/android/splash/drawable-port-ldpi-screen.png b/resources/android/splash/drawable-port-ldpi-screen.png Binary files differindex 8e93c2d6..86d0be61 100644 --- a/resources/android/splash/drawable-port-ldpi-screen.png +++ b/resources/android/splash/drawable-port-ldpi-screen.png diff --git a/resources/android/splash/drawable-port-mdpi-screen.png b/resources/android/splash/drawable-port-mdpi-screen.png Binary files differindex 0aaad62b..e26762a1 100644 --- a/resources/android/splash/drawable-port-mdpi-screen.png +++ b/resources/android/splash/drawable-port-mdpi-screen.png diff --git a/resources/android/splash/drawable-port-xhdpi-screen.png b/resources/android/splash/drawable-port-xhdpi-screen.png Binary files differindex 64c27f8a..3ccaf7e7 100644 --- a/resources/android/splash/drawable-port-xhdpi-screen.png +++ b/resources/android/splash/drawable-port-xhdpi-screen.png diff --git a/resources/android/splash/drawable-port-xxhdpi-screen.png b/resources/android/splash/drawable-port-xxhdpi-screen.png Binary files differindex f605e6a3..b19a69d3 100644 --- a/resources/android/splash/drawable-port-xxhdpi-screen.png +++ b/resources/android/splash/drawable-port-xxhdpi-screen.png diff --git a/resources/android/splash/drawable-port-xxxhdpi-screen.png b/resources/android/splash/drawable-port-xxxhdpi-screen.png Binary files differindex 2b993cff..707c5300 100644 --- a/resources/android/splash/drawable-port-xxxhdpi-screen.png +++ b/resources/android/splash/drawable-port-xxxhdpi-screen.png diff --git a/resources/ios/icon/icon-40.png b/resources/ios/icon/icon-40.png Binary files differindex 9ccac7b2..9c7c043f 100644 --- a/resources/ios/icon/icon-40.png +++ b/resources/ios/icon/icon-40.png diff --git a/resources/ios/icon/icon-40@2x.png b/resources/ios/icon/icon-40@2x.png Binary files differindex 24c6be93..232bf09f 100644 --- a/resources/ios/icon/icon-40@2x.png +++ b/resources/ios/icon/icon-40@2x.png diff --git a/resources/ios/icon/icon-50.png b/resources/ios/icon/icon-50.png Binary files differindex 034cd840..435e64f4 100644 --- a/resources/ios/icon/icon-50.png +++ b/resources/ios/icon/icon-50.png diff --git a/resources/ios/icon/icon-50@2x.png b/resources/ios/icon/icon-50@2x.png Binary files differindex 8a75566e..946e1fe3 100644 --- a/resources/ios/icon/icon-50@2x.png +++ b/resources/ios/icon/icon-50@2x.png diff --git a/resources/ios/icon/icon-60.png b/resources/ios/icon/icon-60.png Binary files differindex 597f6bba..be6a5862 100644 --- a/resources/ios/icon/icon-60.png +++ b/resources/ios/icon/icon-60.png diff --git a/resources/ios/icon/icon-60@2x.png b/resources/ios/icon/icon-60@2x.png Binary files differindex 5a1a750c..dc67c7ca 100644 --- a/resources/ios/icon/icon-60@2x.png +++ b/resources/ios/icon/icon-60@2x.png diff --git a/resources/ios/icon/icon-60@3x.png b/resources/ios/icon/icon-60@3x.png Binary files differindex 87f28d48..b2a38906 100644 --- a/resources/ios/icon/icon-60@3x.png +++ b/resources/ios/icon/icon-60@3x.png diff --git a/resources/ios/icon/icon-72.png b/resources/ios/icon/icon-72.png Binary files differindex 969249df..cedb109a 100644 --- a/resources/ios/icon/icon-72.png +++ b/resources/ios/icon/icon-72.png diff --git a/resources/ios/icon/icon-72@2x.png b/resources/ios/icon/icon-72@2x.png Binary files differindex 09d57a96..e8062137 100644 --- a/resources/ios/icon/icon-72@2x.png +++ b/resources/ios/icon/icon-72@2x.png diff --git a/resources/ios/icon/icon-76.png b/resources/ios/icon/icon-76.png Binary files differindex 50a55222..0bc0c72d 100644 --- a/resources/ios/icon/icon-76.png +++ b/resources/ios/icon/icon-76.png diff --git a/resources/ios/icon/icon-76@2x.png b/resources/ios/icon/icon-76@2x.png Binary files differindex 81c525fb..7e4ad1ac 100644 --- a/resources/ios/icon/icon-76@2x.png +++ b/resources/ios/icon/icon-76@2x.png diff --git a/resources/ios/icon/icon-small.png b/resources/ios/icon/icon-small.png Binary files differindex 6b63410e..ab1c6d7b 100644 --- a/resources/ios/icon/icon-small.png +++ b/resources/ios/icon/icon-small.png diff --git a/resources/ios/icon/icon-small@2x.png b/resources/ios/icon/icon-small@2x.png Binary files differindex 3422acb5..42eabca3 100644 --- a/resources/ios/icon/icon-small@2x.png +++ b/resources/ios/icon/icon-small@2x.png diff --git a/resources/ios/icon/icon-small@3x.png b/resources/ios/icon/icon-small@3x.png Binary files differindex 3222baba..5987ea08 100644 --- a/resources/ios/icon/icon-small@3x.png +++ b/resources/ios/icon/icon-small@3x.png diff --git a/resources/ios/icon/icon.png b/resources/ios/icon/icon.png Binary files differindex 29f2c922..f360f54a 100644 --- a/resources/ios/icon/icon.png +++ b/resources/ios/icon/icon.png diff --git a/resources/ios/icon/icon@2x.png b/resources/ios/icon/icon@2x.png Binary files differindex e229cb3e..77d780ac 100644 --- a/resources/ios/icon/icon@2x.png +++ b/resources/ios/icon/icon@2x.png diff --git a/resources/ios/splash/Default-568h@2x~iphone.png b/resources/ios/splash/Default-568h@2x~iphone.png Binary files differindex 4b64fc9b..7da6bdeb 100644 --- a/resources/ios/splash/Default-568h@2x~iphone.png +++ b/resources/ios/splash/Default-568h@2x~iphone.png diff --git a/resources/ios/splash/Default-667h.png b/resources/ios/splash/Default-667h.png Binary files differindex 370b38f6..2e1e0f31 100644 --- a/resources/ios/splash/Default-667h.png +++ b/resources/ios/splash/Default-667h.png diff --git a/resources/ios/splash/Default-736h.png b/resources/ios/splash/Default-736h.png Binary files differindex 7bc4dfaf..2a686786 100644 --- a/resources/ios/splash/Default-736h.png +++ b/resources/ios/splash/Default-736h.png diff --git a/resources/ios/splash/Default-Landscape-736h.png b/resources/ios/splash/Default-Landscape-736h.png Binary files differindex 7691f853..e09e6484 100644 --- a/resources/ios/splash/Default-Landscape-736h.png +++ b/resources/ios/splash/Default-Landscape-736h.png diff --git a/resources/ios/splash/Default-Landscape@2x~ipad.png b/resources/ios/splash/Default-Landscape@2x~ipad.png Binary files differindex e4deaeec..6d457f88 100644 --- a/resources/ios/splash/Default-Landscape@2x~ipad.png +++ b/resources/ios/splash/Default-Landscape@2x~ipad.png diff --git a/resources/ios/splash/Default-Landscape~ipad.png b/resources/ios/splash/Default-Landscape~ipad.png Binary files differindex 75996789..98f85658 100644 --- a/resources/ios/splash/Default-Landscape~ipad.png +++ b/resources/ios/splash/Default-Landscape~ipad.png diff --git a/resources/ios/splash/Default-Portrait@2x~ipad.png b/resources/ios/splash/Default-Portrait@2x~ipad.png Binary files differindex d16827e1..b04ff4d3 100644 --- a/resources/ios/splash/Default-Portrait@2x~ipad.png +++ b/resources/ios/splash/Default-Portrait@2x~ipad.png diff --git a/resources/ios/splash/Default-Portrait~ipad.png b/resources/ios/splash/Default-Portrait~ipad.png Binary files differindex 06ae8242..7d5e848c 100644 --- a/resources/ios/splash/Default-Portrait~ipad.png +++ b/resources/ios/splash/Default-Portrait~ipad.png diff --git a/resources/ios/splash/Default@2x~iphone.png b/resources/ios/splash/Default@2x~iphone.png Binary files differindex aceeb3c5..686e3b60 100644 --- a/resources/ios/splash/Default@2x~iphone.png +++ b/resources/ios/splash/Default@2x~iphone.png diff --git a/resources/ios/splash/Default~iphone.png b/resources/ios/splash/Default~iphone.png Binary files differindex 94966ad3..e26762a1 100644 --- a/resources/ios/splash/Default~iphone.png +++ b/resources/ios/splash/Default~iphone.png diff --git a/www/index.html b/www/index.html index 4946b9a4..607ec11a 100644 --- a/www/index.html +++ b/www/index.html @@ -4,6 +4,7 @@ <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width"> + <title></title> <link href="lib/ionic/css/ionic.css" rel="stylesheet"> diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 90830e73..b0ae8ca3 100644 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -184,9 +184,10 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion getMonitors: function (forceReload) { console.log("** Inside ZMData getMonitors with forceReload=" + forceReload); $ionicLoading.show({ - template: 'Loading ZoneMinder Monitors...', + template: 'Loading Monitors...', animation: 'fade-in', showBackdrop: true, + duration:10000, maxWidth: 200, showDelay: 0 }); @@ -196,7 +197,7 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion console.log("ZMDataModel: Invoking HTTP get to load monitors"); var apiurl = loginData.apiurl; var myurl = apiurl + "/monitors.json"; - $http.get(myurl) + $http.get(myurl, {timeout:10000}) .success(function (data) { //console.log("HTTP success got " + JSON.stringify(data.monitors)); monitors = data.monitors; @@ -250,11 +251,12 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion console.log("ZMData getEvents called with ID=" + monitorId); $ionicLoading.show({ - template: 'Loading ZoneMinder Events...', + template: 'Loading Events...', animation: 'fade-in', showBackdrop: true, maxWidth: 200, - showDelay: 0 + showDelay: 0, + duration:10000, //specifically for Android - http seems to get stuck at times }); var d = $q.defer(); @@ -278,7 +280,7 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion return d.promise; } else { // not simulated - $http.get(myurl) + $http.get(myurl, {timeout:10000}) .success(function (data) { $ionicLoading.hide(); myevents = data.events.reverse(); diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index fadc9f65..963ef3d3 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -56,18 +56,12 @@ angular.module('zmApp.controllers').controller('zmApp.EventCtrl', function ($ion play: "2" } - $scope.initLoadingImage = function() - { - console.log ("***Loading***"); - /* $ionicLoading.show({ - template: "loading, please wait...", - noBackdrop: true, - });*/ - } + $scope.finishedLoadingImage = function() { + console.log ("*** Events image FINISHED loading ***"); $ionicLoading.hide(); // alert ("IMAGE LOADED"); } @@ -93,7 +87,7 @@ angular.module('zmApp.controllers').controller('zmApp.EventCtrl', function ($ion $ionicLoading.show({ template: "please wait...", noBackdrop: true, - + duration: 10000, }); var loginData = ZMDataModel.getLogin(); @@ -123,13 +117,14 @@ angular.module('zmApp.controllers').controller('zmApp.EventCtrl', function ($ion break; }; - + console.log ("** POST URL " +loginData.url+ 'zm/index.php'); var req = $http({ method: 'POST', - url: loginData.url + 'zm/index.php', + timeout: 10000, + url: loginData.url + '/zm/index.php', headers: { 'Content-Type': 'application/x-www-form-urlencoded', - 'Accept': '*/*', + //'Accept': '*/*', }, transformRequest: function (obj) { var str = []; diff --git a/www/js/EventsGraphsCtrl.js b/www/js/EventsGraphsCtrl.js index 8523a5c7..5cd5e71a 100644 --- a/www/js/EventsGraphsCtrl.js +++ b/www/js/EventsGraphsCtrl.js @@ -87,7 +87,7 @@ angular.module('zmApp.controllers').controller('zmApp.EventsGraphsCtrl', functio console.log("Monitor event URL:" + url); if (!ZMDataModel.isSimulated()) { - $http.get(url) + $http.get(url, {timeout:10000}) .success(function (data) { console.log("**** EVENT COUNT FOR MONITOR " + monitors[j].Monitor.Id + " IS " + data.pagination.count); diff --git a/www/js/MonitorCtrl.js b/www/js/MonitorCtrl.js index def65266..4e217464 100644 --- a/www/js/MonitorCtrl.js +++ b/www/js/MonitorCtrl.js @@ -16,25 +16,26 @@ $scope.reloadView = function () $ionicLoading.show({ template: "refreshed view", noBackdrop: true, - duration: 3000 + duration: 2000 }); } -$scope.initLoadingImage = function() +$scope.isSimulated = function () { + return ZMDataModel.isSimulated(); + }; + + +$scope.finishedLoadingImage = function() { - console.log ("***Loading***"); + console.log ("***Monitor image FINISHED Loading***"); + $ionicLoading.hide(); /* $ionicLoading.show({ template: "loading, please wait...", noBackdrop: true, });*/ } - - $scope.finishedLoadingImage = function() - { - $ionicLoading.hide(); - // alert ("IMAGE LOADED"); - } + $scope.$on('$ionicView.loaded', function(){ console.log("**VIEW ** Monitor Ctrl Loaded"); diff --git a/www/js/app.js b/www/js/app.js index d4059074..be83cd23 100644 --- a/www/js/app.js +++ b/www/js/app.js @@ -6,6 +6,10 @@ angular.module('zmApp', [ ]) +// this directive will be load any time an image completes loading +// via img tags where this directive is added (I am using this in +// events and mionitor view to show a loader while the image is +// downloading from ZM .directive('imageonload', function() { return { restrict: 'A', @@ -14,11 +18,14 @@ angular.module('zmApp', [ //call the function that was passed scope.$apply(attrs.imageonload); }); - } + }, + + }; }) -.directive('img', function () { +/* + .directive('img', function () { // element[0].src = 'img/demo.gif'; return { @@ -34,14 +41,11 @@ angular.module('zmApp', [ // }); } } -}) +})*/ .run(function ($ionicPlatform, $ionicPopup, $rootScope, $state, ZMDataModel,$cordovaSplashscreen) { - // generates and error in desktops but works fine - setTimeout(function() { - $cordovaSplashscreen.hide() - }, 3000) + ZMDataModel.init(); var loginData = ZMDataModel.getLogin(); @@ -92,6 +96,13 @@ angular.module('zmApp', [ $ionicPlatform.ready(function () { + + // generates and error in desktops but works fine + console.log ("**** DEVICE READY ***"); + setTimeout(function() { + $cordovaSplashscreen.hide() + }, 3000) + var pixelRatio = window.devicePixelRatio || 1; $rootScope.devWidth = ((window.innerWidth > 0) ? window.innerWidth : screen.width); $rootScope.devHeight = ((window.innerHeight > 0) ? window.innerHeight : screen.height); diff --git a/www/templates/events-modal.html b/www/templates/events-modal.html index 8f43b114..08dbe651 100644 --- a/www/templates/events-modal.html +++ b/www/templates/events-modal.html @@ -24,7 +24,7 @@ <div ng-if="isSimulated()"> <ion-scroll has-bouncing=false min-zoom=1 zooming="true" direction="xy" style="width: 100%; "> - <img ng-src="img/demo.gif" width="100%"> + <img imageonload="finishedLoadingImage()" ng-src="img/demo.gif" width="100%" /> </ion-scroll> </div> diff --git a/www/templates/login.html b/www/templates/login.html index 05d28848..0e302c9e 100644 --- a/www/templates/login.html +++ b/www/templates/login.html @@ -14,7 +14,7 @@ <input type="password" placeholder="Password" ng-model="loginData.password"> </label> <label class="item item-input"> - <input autocapitalize="none" type="text" placeholder="Zoneminder base URL" ng-model="loginData.url"> + <input autocapitalize="none" type="text" placeholder="ZM base URL (please don't add /zm)" ng-model="loginData.url"> </label> <label class="item item-input"> <input autocapitalize="none" type="text" placeholder="API base URL" ng-model="loginData.apiurl"> diff --git a/www/templates/monitors-modal.html b/www/templates/monitors-modal.html index 1d5e5488..47da2917 100644 --- a/www/templates/monitors-modal.html +++ b/www/templates/monitors-modal.html @@ -16,13 +16,13 @@ <div ng-if="!isSimulated()"> <ion-scroll has-bouncing=false min-zoom=1 zooming="true" direction="xy" style="width: 100%; "> - <img imageonload="finishedLoadingImage()" ng-src="{{LoginData.url}}/cgi-bin/zms?mode=jpeg&monitor={{monitorId}}&maxfps=3&buffer=1000&user={{LoginData.username}}&pass={{LoginData.password}}&rand={{rand}}" width="100%" style="background-image:url('http://www.pbase.com/arjunrc/image/159892445/medium.jpg');" /> + <img imageonload="finishedLoadingImage()" ng-src="{{LoginData.url}}/cgi-bin/zms?mode=jpeg&monitor={{monitorId}}&maxfps=3&buffer=1000&user={{LoginData.username}}&pass={{LoginData.password}}&rand={{rand}}" width="100%" /> </ion-scroll> </div> <div ng-if="isSimulated()"> <ion-scroll has-bouncing=false min-zoom=1 zooming="true" direction="xy" style="width: 100%; "> - <img ng-src="img/demo.gif" width="100%"> + <img imageonload="finishedLoadingImage()" ng-src="img/demo.gif" width="100%" /> </ion-scroll> </div> |
