summaryrefslogtreecommitdiff
path: root/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js')
-rw-r--r--www/js/DataModel.js38
-rw-r--r--www/js/EventCtrl.js49
-rw-r--r--www/js/TimelineCtrl.js25
3 files changed, 65 insertions, 47 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index a87f7765..3b465400 100644
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -28,7 +28,7 @@ angular.module('zmApp.controllers')
var monitors = [];
var multiservers = [];
- var oldevents = [];
+
var migrationComplete = false;
var tz = "";
@@ -2519,6 +2519,11 @@ angular.module('zmApp.controllers')
getEventsPages: function (monitorId, startTime, endTime) {
//console.log("********** INSIDE EVENTS PAGES ");
+
+ var d = $q.defer();
+
+
+
var apiurl = loginData.apiurl;
var myurl = apiurl + "/events/index";
@@ -2544,7 +2549,7 @@ angular.module('zmApp.controllers')
});
//var myurl = (monitorId == 0) ? apiurl + "/events.json?page=1" : apiurl + "/events/index/MonitorId:" + monitorId + ".json?page=1";
- var d = $q.defer();
+
$http.get(myurl)
.then(function (data) {
data = data.data;
@@ -2575,9 +2580,13 @@ angular.module('zmApp.controllers')
//-----------------------------------------------------------------------------
// new reminder
- // https://zm/api/events.json?&sort=StartTime&direction=desc
+ //
+ //https:///zm/api/events.json?&sort=StartTime&direction=desc&page=1
getEvents: function (monitorId, pageId, loadingStr, startTime, endTime) {
+
+
+ if (!pageId) pageId = 1;
//console.log("ZMData getEvents called with ID=" + monitorId + "and Page=" + pageId);
if (!loadingStr) {
@@ -2609,14 +2618,11 @@ angular.module('zmApp.controllers')
myurl = myurl + "/EndTime <=:" + endTime;
myurl = myurl + "/AlarmFrames >=:" + (loginData.enableAlarmCount ? loginData.minAlarmCount : 0);
- myurl = myurl + ".json";
- if (pageId) {
- myurl = myurl + "?page=" + pageId;
- } else {
- //console.log("**** PAGE WAS " + pageId);
- }
+ myurl = myurl + ".json?&sort=StartTime&direction=desc&page="+pageId;
+
+ debug ("getEvents:"+myurl);
// Simulated data
// myurl = "https://api.myjson.com/bins/4jx44.json";
@@ -2628,12 +2634,9 @@ angular.module('zmApp.controllers')
data = data.data;
if (loadingStr != 'none') $ionicLoading.hide();
//myevents = data.events;
- myevents = data.events.reverse();
- if (monitorId == 0) {
- oldevents = myevents;
- }
- //console.log (JSON.stringify(data));
- // console.log("DataModel Returning " + myevents.length + "events for page" + pageId);
+ myevents = data;
+
+
d.resolve(myevents);
return d.promise;
@@ -2650,10 +2653,7 @@ angular.module('zmApp.controllers')
d.reject(myevents);
- // FIXME: Check what pagination does to this logic
- if (monitorId == 0) {
- oldevents = [];
- }
+
return d.promise;
});
return d.promise;
diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js
index 82f04bd2..32367682 100644
--- a/www/js/EventCtrl.js
+++ b/www/js/EventCtrl.js
@@ -45,7 +45,8 @@ angular.module('zmApp.controllers')
var oldEvent;
var scrollbynumber;
var eventImageDigits = 5; // failsafe
- var eventsPage;
+ var currEventsPage = 1;
+ var maxEventsPage = 1;
var moreEvents;
var pageLoaded;
var enableLoadMore;
@@ -236,7 +237,7 @@ angular.module('zmApp.controllers')
});
$scope.showSearch = false;
- eventsPage = 1;
+
moreEvents = true;
$scope.viewTitle = {
title: ""
@@ -342,6 +343,8 @@ angular.module('zmApp.controllers')
$scope.monitors = NVRDataModel.applyMontageMonitorPrefs(tempMon, 2)[0];
} else*/
$scope.monitors = message;
+ currEventsPage = 1;
+ maxEventsPage = 1;
if ($scope.monitors.length == 0) {
var pTitle = $translate.instant('kNoMonitors');
@@ -374,14 +377,8 @@ angular.module('zmApp.controllers')
nolangTo = moment($rootScope.toString).locale('en').format("YYYY-MM-DD HH:mm:ss");
//NVRDataModel.debug ("GETTING EVENTS USING "+$scope.id+" "+nolangFrom+" "+ nolangTo);
- NVRDataModel.getEventsPages($scope.id, nolangFrom, nolangTo)
- .then(function (data) {
- // console.log ("WE GOT PAGES="+JSON.stringify(data));
- eventsPage = data.pageCount || 1;
- NVRDataModel.debug("EventCtrl: found " + eventsPage + " pages of events");
- pageLoaded = true;
- $scope.viewTitle.title = data.count;
+
NVRDataModel.debug("EventCtrl: grabbing events for: id=" + $scope.id + " Date/Time:" + $rootScope.fromString +
"-" + $rootScope.toString);
nolangFrom = "";
@@ -391,11 +388,20 @@ angular.module('zmApp.controllers')
if ($rootScope.toString)
nolangTo = moment($rootScope.toString).locale('en').format("YYYY-MM-DD HH:mm:ss");
- NVRDataModel.getEvents($scope.id, eventsPage, "", nolangFrom, nolangTo)
+ NVRDataModel.getEvents($scope.id, currEventsPage, "", nolangFrom, nolangTo)
.then(function (data) {
+ pageLoaded = true;
+ //$scope.viewTitle.title = data.pagination.count;
+
+ console.log (JSON.stringify(data.pagination));
+ if (data.pagination && data.pagination.pageCount)
+ maxEventsPage = data.pagination.pageCount;
+
+ NVRDataModel.debug ("We have a total of "+maxEventsPage+" and are at page="+currEventsPage);
+
// console.log ("WE GOT EVENTS="+JSON.stringify(data));
- var myevents = data;
+ var myevents = data.events;
NVRDataModel.debug("EventCtrl: success, got " + myevents.length + " events");
var loginData = NVRDataModel.getLogin();
@@ -493,7 +499,6 @@ angular.module('zmApp.controllers')
}
});
- });
}
//-------------------------------------------------------
@@ -2733,14 +2738,17 @@ angular.module('zmApp.controllers')
// the events API does not return an error for anything
// except greater page limits than reported
- // console.log("***** LOADING MORE INFINITE SCROLL ****");
- eventsPage--;
- if ((eventsPage <= 0) && (pageLoaded)) {
+ console.log("***** LOADING MORE INFINITE SCROLL ****");
+
+ if ((currEventsPage >= maxEventsPage) && (pageLoaded)) {
moreEvents = false;
- //console.log("*** At Page " + eventsPage + ", not proceeding");
+ NVRDataModel.debug ("No more - We have a total of "+maxEventsPage+" and are at page="+currEventsPage);
+
+ console.log("*** At Page " + currEventsPage + " of "+maxEventsPage+", not proceeding");
return;
}
+ currEventsPage++;
if (!enableLoadMore) {
moreEvents = false; // Don't ion-scroll till enableLoadMore is true;
$scope.$broadcast('scroll.infiniteScrollComplete');
@@ -2751,7 +2759,7 @@ angular.module('zmApp.controllers')
var loadingStr = "";
if ($scope.search.text != "") {
- var toastStr = $translate.instant('kToastSearchingPage') + eventsPage;
+ var toastStr = $translate.instant('kToastSearchingPage') + currEventsPage;
$ionicLoading.show({
maxwidth: 100,
scope: $scope,
@@ -2768,11 +2776,12 @@ angular.module('zmApp.controllers')
if ($rootScope.toString)
nolangTo = moment($rootScope.toString).locale('en').format("YYYY-MM-DD HH:mm:ss");
- NVRDataModel.getEvents($scope.id, eventsPage, loadingStr, nolangFrom, nolangTo)
+ NVRDataModel.getEvents($scope.id, currEventsPage, loadingStr, nolangFrom, nolangTo)
.then(function (data) {
var loginData = NVRDataModel.getLogin();
// console.log("Got new page of events with Page=" + eventsPage);
- var myevents = data;
+ var myevents = data.events;
+
for (var i = 0; i < myevents.length; i++) {
@@ -3064,6 +3073,8 @@ angular.module('zmApp.controllers')
// console.log("***Pull to Refresh");
NVRDataModel.debug("Reloading monitors");
+ maxEventsPage = 1;
+ currEventsPage = 1;
var refresh = NVRDataModel.getMonitors(1);
refresh.then(function (data) {
$scope.monitors = data;
diff --git a/www/js/TimelineCtrl.js b/www/js/TimelineCtrl.js
index b612468a..a5c7f818 100644
--- a/www/js/TimelineCtrl.js
+++ b/www/js/TimelineCtrl.js
@@ -1103,9 +1103,9 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
//console.log ("**NOLANG" + fromDateNoLang + " " + toDateNoLang);
NVRDataModel.getEventsPages(0, fromDateNoLang, toDateNoLang)
- .then(function (data) {
- var pages = data.pageCount || 1;
- var itemsPerPage = parseInt(data.limit);
+ .then(function (epData) {
+ var pages = 1;
+ var itemsPerPage = parseInt(epData.limit);
var iterCount;
// So iterCount is the # of HTTP calls I need to make
@@ -1117,17 +1117,18 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
// for dynamic binding which was easier, but due to performance reasons
// I am waiting for the full data to load before I draw
var promises = [];
- while ((pages > 0) && (iterCount > 0)) {
+ while ((pages <= epData.pageCount) && (iterCount > 0)) {
var promise = NVRDataModel.getEvents(0, pages, "none", fromDateNoLang, toDateNoLang);
promises.push(promise);
- pages--;
+
+ pages++;
iterCount--;
}
$q.all(promises)
.then(function (data) {
- NVRDataModel.debug("TimelineCtrl/drawgraph: all pages of graph data received");
+ NVRDataModel.debug("TimelineCtrl/drawgraph: all pages of graph data received " );
graphIndex = 0;
NVRDataModel.log("Creating " + $scope.monitors.length + " groups for the graph");
// create groups
@@ -1143,8 +1144,10 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
}
for (var j = 0; j < data.length; j++) {
- var myevents = data[j];
+ var myevents = data[j].events;
+ // console.log ("****************DATA ="+JSON.stringify(data[j]));
+ // console.log ("**********************************");
if (graphIndex > count) {
NVRDataModel.log("Exiting page count graph - reached limit of " + count);
break;
@@ -1203,10 +1206,12 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
}
//console.log ("ADDED "+tzs+" " +tze);
+
+ if (!graphData.get(myevents[i].Event.Id)) {
graphData.add({
//id: graphIndex,
id: myevents[i].Event.Id,
- content: "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + myevents[i].Event.AlarmFrames + ") " + "(" + myevents[j].Event.Id + ") " + myevents[i].Event.Notes + "</span>",
+ content: "<span class='my-vis-font'>" + "( <i class='ion-android-notifications'></i>" + myevents[i].Event.AlarmFrames + ") " + "(" + myevents[i].Event.Id + ") " + myevents[i].Event.Notes + "</span>",
start: tzs,
//start: myevents[i].Event.StartTime,
@@ -1224,7 +1229,9 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
myevent: myevents[i]
});
+ //console.log ("IED="+myevents[i].Event.Id);
graphIndex++;
+ }
} else {
//console.log ("SKIPPED GRAPH ID " + graphIndex);
}
@@ -1375,7 +1382,7 @@ angular.module('zmApp.controllers').controller('zmApp.TimelineCtrl', ['$ionicPla
var _item;
for (var x = 0; x < visible.length; x++) {
_item = timeline.itemSet.items[x];
- if (_item.data.group == prop.group) {
+ if (_item && _item.data && _item.data.group == prop.group) {
if (Math.abs(_item.left - prop.x) < minDist) {
closestItem = _item;
minDist = Math.abs(_item.left - prop.x);