summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/DataModel.js235
-rw-r--r--www/js/EventCtrl.js54
-rw-r--r--www/js/EventsGraphsCtrl.js157
-rw-r--r--www/js/HttpFactory.js94
-rw-r--r--www/js/LoginCtrl.js17
-rw-r--r--www/js/MonitorCtrl.js28
-rw-r--r--www/js/MontageCtrl.js53
-rw-r--r--www/js/app.js167
-rw-r--r--www/js/controllers.js8
9 files changed, 813 insertions, 0 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
new file mode 100644
index 00000000..cd5e411f
--- /dev/null
+++ b/www/js/DataModel.js
@@ -0,0 +1,235 @@
+angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ionicLoading', function ($http, $q, $ionicLoading) {
+ // var deferred='';
+ var monitorsLoaded = 0;
+ var simulationMode = 0; // make 1 for simulation
+ var simSize = 30;
+ var montageSize = 3;
+ var monitors = [];
+ var oldevents = [];
+ var loginData = {
+ 'username': '',
+ 'password': '',
+ 'url': '',
+ 'apiurl': ''
+ };
+ //greeas
+
+ var simulation =
+ {
+ fillSimulatedMonitors: function(cnt)
+ {
+ var simmonitors = [];
+ console.log ("*** Returning "+cnt+" simulated monitors");
+ for (var i=0; i < cnt; i++)
+ {
+
+
+ simmonitors.push(
+ {
+ "Monitor":
+ {
+ "Id":i.toString(),
+ "Name":"Monitor Simulation "+i.toString(),
+ "Type":"Remote",
+ "Function":"Modect",
+ "Enabled":"1",
+ "Width":"1280",
+ "Height":"960",
+ "Colours":"4",
+ "MaxFPS":"10.00",
+ "AlarmMaxFPS":"10.00",
+ "AlarmFrameCount":"10.00"
+ }
+ }
+ );
+
+ }
+ console.log ("Simulated: "+JSON.stringify(simmonitors));
+ return simmonitors;
+ },
+ };
+
+ return {
+
+ init: function () {
+ console.log("****** DATAMODEL INIT SERVICE CALLED ********");
+ var montageSize = 2;
+
+ if (window.localStorage.getItem("username") != undefined) {
+ loginData.username =
+ window.localStorage.getItem("username");
+
+ }
+ if (window.localStorage.getItem("password") != undefined) {
+ loginData.password =
+ window.localStorage.getItem("password");
+
+ }
+
+ if (window.localStorage.getItem("url") != undefined) {
+ loginData.url =
+ window.localStorage.getItem("url");
+
+ }
+
+ if (window.localStorage.getItem("apiurl") != undefined) {
+ loginData.apiurl =
+ window.localStorage.getItem("apiurl");
+
+ }
+
+ monitorsLoaded = 0;
+ console.log("Getting out of ZMDataModel init");
+
+ },
+
+
+
+ getLogin: function () {
+ return loginData;
+ },
+ setLogin: function (newLogin) {
+ loginData = newLogin;
+ window.localStorage.setItem("username", loginData.username);
+ window.localStorage.setItem("password", loginData.password);
+ window.localStorage.setItem("url", loginData.url);
+ window.localStorage.setItem("apiurl", loginData.apiurl);
+
+ },
+
+ getMonitors: function (forceReload) {
+ console.log("** Inside ZMData getMonitors with forceReload=" + forceReload);
+ var d = $q.defer();
+ if (((monitorsLoaded == 0) || (forceReload == 1)) && (simulationMode !=1) ) // monitors are empty or force reload
+ {
+ console.log("ZMDataModel: Invoking HTTP Factory to load monitors");
+ var apiurl = loginData.apiurl;
+ var myurl = apiurl + "/monitors.json";
+ $http.get(myurl)
+ .success(function (data) {
+ console.log ("HTTP success got " + JSON.stringify(data.monitors));
+ monitors = data.monitors;
+ console.log("promise resolved inside HTTP success");
+ monitorsLoaded = 1;
+ d.resolve(monitors);
+ })
+ .error(function (err) {
+ console.log("HTTP Error " + err);
+ monitors = [];
+ console.log("promise resolved inside HTTP fail");
+ d.resolve(monitors);
+ });
+ return d.promise;
+
+ } else // monitors are loaded
+ {
+ if (simulationMode == 1)
+ {
+ monitors = simulation.fillSimulatedMonitors(simSize);
+ //fillSimulatedMonitors
+ }
+ console.log("Returning pre-loaded list of " + monitors.length + " monitors");
+ d.resolve(monitors);
+ return d.promise;
+ }
+
+ },
+ setMonitors: function (mon) {
+ console.log("ZMData setMonitors called with " + mon.length + " monitors");
+ monitors = mon;
+ },
+
+ getAllPreexistingEvents: function()
+ {
+ console.log ("returning "+oldevents.length+" preexisting events");
+ return oldevents;
+ },
+
+
+ getEvents: function (monitorId) {
+
+ $ionicLoading.show({
+ template: 'Loading ZoneMinder Events...',
+ animation: 'fade-in',
+ showBackdrop: true,
+ maxWidth: 200,
+ showDelay: 0
+ });
+
+ console.log("ZMData getEvents called with ID="+monitorId);
+ var d = $q.defer();
+ var myevents = [];
+ var apiurl = loginData.apiurl;
+ var myurl = (monitorId == 0) ? apiurl + "/events.json" : apiurl + "/events/index/MonitorId:"+monitorId+".json";
+ console.log ("Constructed URL is " + myurl);
+ $http.get(myurl)
+ .success(function (data) {
+ $ionicLoading.hide();
+ myevents = data.events.reverse();
+ if (monitorId == 0)
+ {
+ oldevents = myevents;
+ }
+ //console.log (JSON.stringify(data));
+ console.log("Returning " + myevents.length + "events");
+ d.resolve(myevents);
+ return d.promise;
+
+ })
+ .error(function (err) {
+ $ionicLoading.hide();
+ console.log("HTTP Events error " + err);
+ d.resolve(myevents);
+ if (monitorId ==0)
+ {
+ oldevents = [];
+ }
+ return d.promise;
+ })
+ return d.promise;
+
+ },
+
+ getMontageSize: function () {
+ return montageSize;
+ },
+ setMontageSize: function (montage) {
+ montageSize = montage;
+ },
+
+ getMonitorsLoaded: function () {
+ console.log("**** Inside promise function ");
+ var deferred = $q.defer();
+ if (monitorsLoaded != 0) {
+ deferred.resolve(monitorsLoaded);
+ }
+
+ return deferred.promise;
+ },
+ setMonitorsLoaded: function (loaded) {
+ console.log("ZMData.setMonitorsLoaded=" + loaded);
+ monitorsLoaded = loaded;
+ },
+
+ getMonitorName: function (id) {
+ var idnum = parseInt(id);
+ // console.log ("I have " + monitors.length + " monitors to match");
+
+ //console.log (JSON.stringify(monitors));
+ for (var i = 0; i < monitors.length; i++) {
+ // console.log ("Searching for:"+idnum+"& got:"+monitors[i].Monitor.Id);
+ //console.log ("Searching for monitors id:"+monitors[i].Mo
+ // console.log ("Iteration #"+i+" " +monitors[i].Monitor.Id + " " + monitors[i].Monitor.Name);
+ if (parseInt(monitors[i].Monitor.Id) == idnum) {
+ // console.log ("Matched, exiting getMonitorname");
+ return monitors[i].Monitor.Name;
+ }
+
+ }
+ return "(Unknown)";
+ },
+
+
+
+ };
+}]); \ No newline at end of file
diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js
new file mode 100644
index 00000000..8c0ea8ba
--- /dev/null
+++ b/www/js/EventCtrl.js
@@ -0,0 +1,54 @@
+angular.module('zmApp.controllers').controller('zmApp.EventCtrl', function ($ionicPlatform, $scope, $stateParams, message, ZMDataModel,$ionicSideMenuDelegate) {
+ console.log("I got STATE PARAM " + $stateParams.id);
+ $scope.id = parseInt($stateParams.id,10);
+
+$scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ }
+
+ console.log("***CALLING EVENTS FACTORY");
+ var lData = ZMDataModel.getLogin();
+ console.log("ZM Service Username = " + lData.username);
+ $scope.monitors = message;
+ $scope.events = ZMDataModel.getEvents($scope.id)
+ .then(function (data) {
+ console.log("EventCtrl Got events");
+ //var events = [];
+ var myevents = data;
+ for (var i = 0; i < myevents.length; i++) {
+
+ myevents[i].Event.MonitorName = ZMDataModel.getMonitorName(myevents[i].Event.MonitorId);
+ }
+
+ //for (var i = 0; i< myevents.length; i++)
+ // {
+ // console.log ("I got Name as " + myevents[i].Event.MonitorName);
+ // }
+ $scope.events = myevents;
+ });
+ //ZMDataModel.getEvents();
+
+
+ $scope.doRefresh = function () {
+ console.log("***Pull to Refresh");
+ $scope.events = [];
+ $scope.events = ZMDataModel.getEvents($scope.id)
+ .then(function (data) {
+ console.log("EventCtrl Got events");
+ //var events = [];
+ var myevents = data;
+ for (var i = 0; i < myevents.length; i++) {
+
+ myevents[i].Event.MonitorName = ZMDataModel.getMonitorName(myevents[i].Event.MonitorId);
+ }
+
+ //for (var i = 0; i< myevents.length; i++)
+ // {
+ // console.log ("I got Name as " + myevents[i].Event.MonitorName);
+ // }
+ $scope.events = myevents;
+ $scope.$broadcast('scroll.refreshComplete');
+ });
+ }; //dorefresh
+
+}); \ No newline at end of file
diff --git a/www/js/EventsGraphsCtrl.js b/www/js/EventsGraphsCtrl.js
new file mode 100644
index 00000000..2bd04e12
--- /dev/null
+++ b/www/js/EventsGraphsCtrl.js
@@ -0,0 +1,157 @@
+angular.module('zmApp.controllers').controller('zmApp.EventsGraphsCtrl', function ($ionicPlatform, $scope, ZMDataModel, $ionicSideMenuDelegate, $rootScope, $http) {
+ console.log("Inside Graphs controller");
+ $scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ }
+
+ $scope.navTitle = 'Tab Page';
+ $scope.leftButtons = [{
+ type: 'button-icon icon ion-navicon',
+ tap: function (e) {
+ $scope.toggleMenu();
+ }
+ }];
+
+ $scope.anotherChart = function()
+ {
+ //alert ("Well I got called!");
+ $scope.chart2Object = {}; //test
+ $scope.chart2Object.data = [
+ ['Monitor', 'Events', {
+ role: 'style'
+ }, {
+ role: 'annotation'
+ }],
+ ['', 0, '', ''] // needed to get rid of the initial error of charts
+ ];
+
+
+ $scope.chart2Object.type = "BarChart";
+ $scope.chart2Object.options = {
+ title: 'Events per monitor PER HOUR',
+ height: $rootScope.devHeight,
+ animation: {
+ duration: 700,
+ easing: 'out',
+ startup: 'false',
+ },
+
+
+ }
+
+ var monitors = [];
+ console.log("*** Grabbing lists of events and monitors ");
+ ZMDataModel.getMonitors(0).then(function (data) {
+
+ monitors = data;
+ var loginData = ZMDataModel.getLogin();
+ //var events = ZMDataModel.getAllPreexistingEvents();
+ // lets get the event count for all
+ for (var i = 0; i < monitors.length; i++) {
+ (function (j) {
+ //monevents[monitors[j].Monitor.Id].monName = monitors[j].Monitor.Name;
+
+ var url = loginData.apiurl +
+ "/events/index/MonitorId:" + monitors[j].Monitor.Id +
+ ".json?page=1";
+ console.log("Monitor event URL:" + url);
+ $http.get(url)
+ .success(function (data) {
+ console.log("**** EVENT COUNT FOR MONITOR " +
+ monitors[j].Monitor.Id + " IS " + data.pagination.count);
+
+ console.log("Pushing " + monitors[j].Monitor.Name +
+ " AND " + data.pagination.count);
+
+ $scope.chart2Object.data.push
+ ([monitors[j].Monitor.Name, data.pagination.count,
+ 'opacity: 0.4', data.pagination.count]);
+
+ })
+ .error(function (data) {
+ console.log("**** EVENT COUNT FOR MONITOR " +
+ monitors[i].Monitor.Id + " IS ERROR ");
+ $scope.chart2Object.data.push([monitors[j].Monitor.Name,
+ 0, 'opacity: 0.4', 0]);
+
+ });
+
+ })(i); // j
+
+ } //for
+
+ });
+
+ }; // scope function
+
+
+
+
+ $scope.chartObject = {}; //test
+ $scope.chartObject.data = [
+ ['Monitor', 'Events', {
+ role: 'style'
+ }, {
+ role: 'annotation'
+ }],
+ ['', 0, '', ''] // needed to get rid of the initial error of charts
+ ];
+
+
+ $scope.chartObject.type = "BarChart";
+ $scope.chartObject.options = {
+ title: 'Events per monitor',
+ height: $rootScope.devHeight,
+ animation: {
+ duration: 700,
+ easing: 'out',
+ startup: 'false',
+ },
+
+
+ }
+
+ var monitors = [];
+ console.log("*** Grabbing lists of events and monitors ");
+ ZMDataModel.getMonitors(0).then(function (data) {
+
+ monitors = data;
+ var loginData = ZMDataModel.getLogin();
+ //var events = ZMDataModel.getAllPreexistingEvents();
+ // lets get the event count for all
+ for (var i = 0; i < monitors.length; i++) {
+ (function (j) {
+ //monevents[monitors[j].Monitor.Id].monName = monitors[j].Monitor.Name;
+
+ var url = loginData.apiurl +
+ "/events/index/MonitorId:" + monitors[j].Monitor.Id +
+ ".json?page=1";
+ console.log("Monitor event URL:" + url);
+ $http.get(url)
+ .success(function (data) {
+ console.log("**** EVENT COUNT FOR MONITOR " +
+ monitors[j].Monitor.Id + " IS " + data.pagination.count);
+
+ console.log("Pushing " + monitors[j].Monitor.Name +
+ " AND " + data.pagination.count);
+
+ $scope.chartObject.data.push
+ ([monitors[j].Monitor.Name, data.pagination.count,
+ 'opacity: 0.4', data.pagination.count]);
+
+ })
+ .error(function (data) {
+ console.log("**** EVENT COUNT FOR MONITOR " +
+ monitors[i].Monitor.Id + " IS ERROR ");
+ $scope.chartObject.data.push([monitors[j].Monitor.Name,
+ 0, 'opacity: 0.4', 0]);
+
+ });
+
+ })(i); // j
+
+ } //for
+
+ });
+
+}); \ No newline at end of file
diff --git a/www/js/HttpFactory.js b/www/js/HttpFactory.js
new file mode 100644
index 00000000..c11daba1
--- /dev/null
+++ b/www/js/HttpFactory.js
@@ -0,0 +1,94 @@
+angular.module('zmApp.controllers').factory('ZMHttpFactory', ['$http', '$rootScope','$ionicLoading', '$ionicPopup','$timeout'
+ function($http, $rootScope, $ionicLoading, $ionicPopup, $timeout) {
+
+
+
+ return {
+ getMonitors: function(loginData) {
+ console.log ("Inside HTTP getMonitors");
+ $ionicLoading.show({
+ template: 'Loading ZoneMinder Monitors...',
+ animation: 'fade-in',
+ showBackdrop: true,
+ maxWidth: 200,
+ showDelay: 0
+ });
+
+ var monitors = [];
+
+ var apiurl = loginData.apiurl;
+ var myurl = apiurl+"/monitors.jsona";
+
+ return $http({
+ url: myurl,
+ method: 'get'
+
+ }) //http
+ .then(function(response) {
+ var data = response.data;
+ //console.log("****YAY" + JSON.stringify(data));
+ // $rootScope.$broadcast ('handleZoneMinderMonitorsUpdate',monitors);
+ $ionicLoading.hide();
+ console.log ("** Settings Monitors from HTTP");
+ //ZMDataModel.setMonitors(data.monitors);
+
+ // ZMDataModel.setMonitorsLoaded(1);
+ monitors = data.monitors;
+ console.log ("**** returning "+monitors.length+" monitors from HTTP");
+ return monitors;
+ },
+ function (result)
+ {
+ console.log ("**** Error in HTTP");
+ $ionicLoading.hide();
+ //ZMDataModel.setMonitorsLoaded(1);
+ //$ionicPopup.alert ({title: "Error", template:"Error retrieving Monitors. \nPlease check if your Settings are correct. "});
+ //return ZMDataModel.getMonitors();
+ return monitors;
+ }
+ ); //then
+ }, //getMonitors
+
+ getEvents: function(loginData) {
+
+ $ionicLoading.show({
+ template: 'Loading ZoneMinder Events...',
+ animation: 'fade-in',
+ showBackdrop: true,
+ maxWidth: 200,
+ showDelay: 0
+ });
+
+ var myevents = [];
+ var apiurl = loginData.apiurl;
+ //var myurl = $rootScope.loginData.url+'/zm/index.php?skin=xml';
+ var myurl = apiurl + "/events.json";
+ console.log("***MAKING REQUEST to "+ myurl);
+ return $http({
+ url: myurl,
+ method: 'get',
+ headers: {
+ //'Content-Type': 'application/x-www-form-urlencoded',
+ 'Accept': '*/*',
+ }
+
+ }) //http
+ .then(function(response) {
+ var data = response.data;
+ // $rootScope.$broadcast ('handleZoneMinderMonitorsUpdate',monitors);
+ $ionicLoading.hide();
+ myevents = response.data;
+ return myevents.events.reverse();
+ },
+ function (result)
+ {
+ console.log ("**** Error in HTTP");
+ $ionicLoading.hide();
+ //$ionicPopup.alert ({title: "Error", template:"Error retrieving Monitors. \nPlease check if your Settings are correct. "});
+ return myevents;
+ }
+ ); //then
+ }, //getEvents
+ }
+ }
+]); \ No newline at end of file
diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js
new file mode 100644
index 00000000..2e428c18
--- /dev/null
+++ b/www/js/LoginCtrl.js
@@ -0,0 +1,17 @@
+angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', function ($scope, $rootScope, $ionicModal, ZMDataModel,$ionicSideMenuDelegate) {
+$scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ }
+
+ $scope.loginData = ZMDataModel.getLogin();
+
+
+ // Perform the login action when the user submits the login form
+ $scope.login = function () {
+ console.log('Saving login');
+ ZMDataModel.setLogin($scope.loginData);
+
+
+
+ };
+}) \ No newline at end of file
diff --git a/www/js/MonitorCtrl.js b/www/js/MonitorCtrl.js
new file mode 100644
index 00000000..300f5538
--- /dev/null
+++ b/www/js/MonitorCtrl.js
@@ -0,0 +1,28 @@
+angular.module('zmApp.controllers').controller('zmApp.MonitorCtrl', function ($scope, ZMDataModel, message,$ionicSideMenuDelegate) {
+
+ $scope.monitors = [];
+
+$scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ }
+
+ console.log("***EVENTS: Waiting for Monitors to load before I proceed");
+
+ $scope.monitors = message;
+ // console.log("I GOT " + $scope.monitors);
+
+ console.log("HERE");
+
+ $scope.doRefresh = function () {
+ console.log("***Pull to Refresh");
+ $scope.monitors = [];
+
+ var refresh = ZMDataModel.getMonitors(1);
+ refresh.then(function (data) {
+ $scope.monitors = data;
+ $scope.$broadcast('scroll.refreshComplete');
+ });
+
+ };
+
+}); \ No newline at end of file
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js
new file mode 100644
index 00000000..115bd513
--- /dev/null
+++ b/www/js/MontageCtrl.js
@@ -0,0 +1,53 @@
+angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', function ($scope, $rootScope, ZMDataModel, message,$ionicSideMenuDelegate) {
+
+
+ $scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ }
+
+ //var monsize =3;
+ console.log("********* Inside Montage Ctrl");
+ $scope.LoginData = ZMDataModel.getLogin();
+ $scope.slider = {};
+ $scope.slider.monsize = ZMDataModel.getMontageSize();
+ $scope.$on('$ionicView.afterEnter', function () {
+ $rootScope.rand = Math.floor((Math.random() * 100000) + 1);
+ //console.log("*********IN VIEW, generated " + $rootScope.rand);
+
+ console.log("Rootscoxxpe Montage is " + ZMDataModel.getMontageSize() + " and slider montage is " + $scope.slider.monsize);
+ });
+
+
+
+
+
+ $scope.$watch('slider.monsize', function () {
+ console.log('Slider has changed');
+ ZMDataModel.setMontageSize($scope.slider.monsize);
+ console.log("Rootscope Montage is " + ZMDataModel.getMontageSize() + " and slider montage is " + $scope.slider.monsize);
+ //$rootScope.montageSize = $scope.slider.monsize;
+ });
+
+ $scope.monitors = [];
+ console.log("Inside MontageCtrl waiting for monitors to load...");
+
+ $scope.monitors = message;
+ console.log("I have received the monitors inside Montage and there are " + $scope.monitors.length);
+ // console.log("***CALLING FACTORY");
+ //ZMHttpFactory.getMonitors().then(function(data) //{
+ // $scope.monitors = data;
+ // console.log("I GOT " + $scope.monitors);
+ // });
+
+ $scope.doRefresh = function () {
+ console.log("***Pull to Refresh");
+ $scope.monitors = [];
+
+ var refresh = ZMDataModel.getMonitors(1);
+ refresh.then(function (data) {
+ $scope.monitors = data;
+ $scope.$broadcast('scroll.refreshComplete');
+ });
+
+ };
+}); \ No newline at end of file
diff --git a/www/js/app.js b/www/js/app.js
new file mode 100644
index 00000000..a5f58a6b
--- /dev/null
+++ b/www/js/app.js
@@ -0,0 +1,167 @@
+
+// core app start stuff
+angular.module('zmApp', [
+ 'ionic',
+ 'zmApp.controllers',
+
+ ])
+
+.run(function ($ionicPlatform, $ionicPopup, $rootScope, $state, ZMDataModel) {
+
+ ZMDataModel.init();
+ var loginData = ZMDataModel.getLogin();
+
+ if (loginData.username && loginData.password && loginData.url && loginData.apiurl) {
+ console.log("VALID CREDENTIALS. Grabbing Monitors");
+ ZMDataModel.getMonitors(0);
+
+ }
+
+ window.onorientationchange = function() {
+ console.log ("**ORIENTATION CHANGE**");
+ var pixelRatio = window.devicePixelRatio || 1;
+ $rootScope.devWidth = ((window.innerWidth > 0) ? window.innerWidth : screen.width);
+ $rootScope.devHeight = ((window.innerHeight > 0) ? window.innerHeight : screen.height);
+ console.log("********Computed Dev Width & Height as" + $rootScope.devWidth+"*"+$rootScope.devHeight);
+ }
+
+ $rootScope.$on('$stateChangeStart', function (event, toState, toParams) {
+ // console.log ("***** STATE CHANGE CHECK ****");
+ var requireLogin = toState.data.requireLogin;
+ // console.log ("STATE REQUIRE LOGIN: "+requireLogin);
+ if (requireLogin) {
+ event.preventDefault();
+ //$state.go('app');
+ //$ionicPopup.alert ({title: "Error", template:"You are not logged in."});
+ //alert ("Not logged in");
+ // get me a login modal!
+ }
+ });
+
+
+ $ionicPlatform.ready(function () {
+ var pixelRatio = window.devicePixelRatio || 1;
+ $rootScope.devWidth = ((window.innerWidth > 0) ? window.innerWidth : screen.width);
+ $rootScope.devHeight = ((window.innerHeight > 0) ? window.innerHeight : screen.height);
+
+ console.log("********Computed Dev Width & Height as" + $rootScope.devWidth+"*"+$rootScope.devHeight);
+
+ document.addEventListener("resume", function () {
+ console.log("****The application is resuming from the background");
+ $rootScope.rand = Math.floor((Math.random() * 100000) + 1);
+ console.log("** generated Random of " + $rootScope.rand);
+ $state.go($state.current, {}, {
+ reload: true
+ });
+ }, false);
+
+
+ if (window.cordova && window.cordova.plugins.Keyboard) {
+ cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);
+ }
+ if (window.StatusBar) {
+ // org.apache.cordova.statusbar required
+ StatusBar.styleDefault();
+ }
+
+
+ });
+})
+
+
+.config(function ($stateProvider, $urlRouterProvider) {
+
+
+ $stateProvider
+
+ /*.state('app', {
+ data: {
+ requireLogin: false
+ },
+ url: "/app",
+ abstract: true,
+ templateUrl: "templates/intro.html",
+ controller: 'zmApp.AppCtrl',
+
+
+ })*/
+
+ .state('login', {
+ data: {
+ requireLogin: false
+ },
+ url: "/login",
+ templateUrl: "templates/login.html",
+ controller: 'zmApp.LoginCtrl',
+
+
+ })
+
+ .state('monitors', {
+ data: {
+ requireLogin: false
+ },
+ resolve: {
+ message: function (ZMDataModel) {
+ console.log("Inside app.montage resolve");
+ return ZMDataModel.getMonitors(0);
+ }
+ },
+ url: "/monitors",
+ templateUrl: "templates/monitors.html",
+ controller: 'zmApp.MonitorCtrl',
+
+ })
+
+
+
+
+ .state('events', {
+ data: {
+ requireLogin: false
+ },
+ resolve: {
+ message: function (ZMDataModel) {
+ console.log("Inside app.events resolve");
+ return ZMDataModel.getMonitors(0);
+ }
+ },
+ url: "/events/:id",
+ templateUrl: "templates/events.html",
+ controller: 'zmApp.EventCtrl',
+
+ })
+
+//n
+ .state('events-graphs', {
+ data: {
+ requireLogin: false
+ },
+ url: "/events-graphs",
+ templateUrl: "templates/events-graphs.html",
+ controller: 'zmApp.EventsGraphsCtrl',
+ })
+
+
+ .state('montage', {
+ data: {
+ requireLogin: false
+ },
+ resolve: {
+ message: function (ZMDataModel) {
+ console.log("Inside app.montage resolve");
+ return ZMDataModel.getMonitors(0);
+ }
+ },
+ url: "/montage",
+ templateUrl: "templates/montage.html",
+ controller: 'zmApp.MontageCtrl',
+
+});
+
+
+ // if none of the above states are matched, use this as the fallback
+ var defaultState = "/monitors";
+ //var defaultState = "/app/montage";
+ $urlRouterProvider.otherwise(defaultState);
+}); \ No newline at end of file
diff --git a/www/js/controllers.js b/www/js/controllers.js
new file mode 100644
index 00000000..8e4c9e69
--- /dev/null
+++ b/www/js/controllers.js
@@ -0,0 +1,8 @@
+angular.module('zmApp.controllers', ['ionic', 'googlechart' ])
+
+.controller('zmApp.AppCtrl', function($scope, $ionicSideMenuDelegate) {
+ $scope.openMenu = function () {
+ $ionicSideMenuDelegate.toggleLeft();
+ }
+});
+//test \ No newline at end of file