From 30726c41cea20fb6a8d6dce8bfb64a6966025871 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sat, 25 Nov 2017 11:33:21 -0500 Subject: #562 next version of zmNinja will need new Event Server too --- www/js/DataModel.js | 28 ++++++++++++++-------------- www/js/EventServer.js | 12 +++++++----- www/js/MontageCtrl.js | 2 +- 3 files changed, 22 insertions(+), 20 deletions(-) (limited to 'www/js') diff --git a/www/js/DataModel.js b/www/js/DataModel.js index f6d59140..078a2fe2 100755 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -1563,25 +1563,25 @@ angular.module('zmApp.controllers') monitors[i].Monitor.isAlarmed = false; monitors[i].Monitor.connKey = (Math.floor((Math.random() * 999999) + 1)).toString(); - var st = loginData.streamingurl; + var st2 = loginData.streamingurl; if (zmsPort >0) { // we need to insert minport - st = ""; - var p = URI.parse(loginData.streamingurl); - st += p.scheme + "://"; - if (!p.host) { - p.host = p.path; - p.path = undefined; + st2 = ""; + var p2 = URI.parse(loginData.streamingurl); + st2 += p2.scheme + "://"; + if (!p2.host) { + p2.host = p2.path; + p2.path = undefined; } - st += p.host; - var sport = parseInt(zmsPort) + parseInt(monitors[i].Monitor.Id); - st = st + ':'+sport; - if (p.path) st += p.path; + st2 += p2.host; + var sport2 = parseInt(zmsPort) + parseInt(monitors[i].Monitor.Id); + st2 = st2 + ':'+sport2; + if (p2.path) st2 += p2.path; } - monitors[i].Monitor.streamingURL = st; - console.log ("NO SERVER MATCH CONSTRUCTED STREAMING PATH="+st); + monitors[i].Monitor.streamingURL = st2; + console.log ("NO SERVER MATCH CONSTRUCTED STREAMING PATH="+st2); monitors[i].Monitor.baseURL = loginData.url; monitors[i].Monitor.imageMode = (versionCompare($rootScope.apiVersion, "1.30") == -1) ? "path" : "fid"; @@ -1652,7 +1652,7 @@ angular.module('zmApp.controllers') $ionicLoading.hide(); monitorsLoaded = 0; }); - }) + }); return d.promise; diff --git a/www/js/EventServer.js b/www/js/EventServer.js index b0d0c83f..ce5ef044 100644 --- a/www/js/EventServer.js +++ b/www/js/EventServer.js @@ -392,10 +392,12 @@ angular.module('zmApp.controllers') { "ios": { - "alert": true, - "badge": true, + "alert": "true", + "badge": "true", "sound": ld.soundOnPush, - "clearBadge": true + //"sound": "true", + "clearBadge": "true", + // "fcmSandbox": true } } @@ -412,9 +414,9 @@ angular.module('zmApp.controllers') { "android": { - "senderID": zm.gcmSenderId, + // "senderID": zm.gcmSenderId, "icon": "ic_stat_notification", - sound: ld.soundOnPush, + sound: "true", vibrate: ld.vibrateOnPush //"sound": android_media_file } diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js index a254bb2f..49cd60cd 100644 --- a/www/js/MontageCtrl.js +++ b/www/js/MontageCtrl.js @@ -1628,7 +1628,7 @@ angular.module('zmApp.controllers') multiPortZms = 0; } - ) + ); }); -- cgit v1.2.3 From faabddfe5d1e6e5c6acba52694d39dd4190b9aa7 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sat, 25 Nov 2017 13:00:26 -0500 Subject: nits --- www/js/app.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'www/js') diff --git a/www/js/app.js b/www/js/app.js index 0bca8099..15c6aeab 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -41,7 +41,7 @@ angular.module('zmApp', [ .constant('zm', { minAppVersion: '1.28.107', // if ZM is less than this, the app won't work recommendedAppVersion: '1.29', - minEventServerVersion: '0.9', + minEventServerVersion: '0.95', castAppId: 'BA30FB4C', alarmFlashTimer: 20000, // time to flash alarm gcmSenderId: '710936220256', -- cgit v1.2.3 From 9e0a713cd48e9724613d1c25d3824bed64207aa9 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sun, 26 Nov 2017 10:50:30 -0500 Subject: spacing to upgrade message --- www/js/EventServer.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'www/js') diff --git a/www/js/EventServer.js b/www/js/EventServer.js index ce5ef044..c07a3e06 100644 --- a/www/js/EventServer.js +++ b/www/js/EventServer.js @@ -166,7 +166,7 @@ angular.module('zmApp.controllers') $rootScope.zmPopup = $ionicPopup.alert( { title: $translate.instant('kEventServerVersionTitle'), - template: $translate.instant('kEventServerVersionBody1') + " " + str.version + ". " + $translate.instant('kEventServerVersionBody2') + + template: $translate.instant('kEventServerVersionBody1') + " " + str.version + ". " + $translate.instant('kEventServerVersionBody2') + " "+ zm.minEventServerVersion, okText: $translate.instant('kButtonOk'), cancelText: $translate.instant('kButtonCancel'), @@ -397,7 +397,7 @@ angular.module('zmApp.controllers') "sound": ld.soundOnPush, //"sound": "true", "clearBadge": "true", - // "fcmSandbox": true + //"fcmSandbox": "true" } } -- cgit v1.2.3 From 5bb274adac923461f361e683b65c7acbe42df0f9 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Thu, 7 Dec 2017 16:18:29 -0500 Subject: #91 - initial support - needs formatting --- www/js/DataModel.js | 9 ++++++++- www/js/EventCtrl.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+), 1 deletion(-) (limited to 'www/js') diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 078a2fe2..4fd3a791 100755 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -164,6 +164,7 @@ angular.module('zmApp.controllers') 'hideArchived': false, 'videoPlaybackSpeed': 2, 'enableGIFMP4': false, + 'enableThumbs': true, 'enableStrictSSL': false, 'enableSlowLoading': false, 'isFullScreen': false, @@ -994,10 +995,16 @@ angular.module('zmApp.controllers') if (typeof loginData.enableGIFMP4 == 'undefined') { - loginData.enableGIFMP4 = true; + loginData.enableGIFMP4 = false; } + if (typeof loginData.enableThumbs == 'undefined') { + + loginData.enableThumbs = true; + + } + if (typeof loginData.enableSlowLoading == 'undefined') { loginData.enableSlowLoading = false; diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index 8a8673e4..3468d988 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -65,9 +65,12 @@ angular.module('zmApp.controllers') $scope.typeOfFrames = $translate.instant('kShowTimeDiffFrames'); $scope.outlineMotion = false; $scope.outlineMotionParam = ""; + + var eventsListScrubHeight = eventsListScrubHeight; var eventsListDetailsHeight = eventsListDetailsHeight; + //--------------------------------------------------- // initial code //--------------------------------------------------- @@ -148,6 +151,14 @@ angular.module('zmApp.controllers') eventsListDetailsHeight = parseInt(zm.eventsListDetailsHeight * $rootScope.textScaleFactor); eventsListScrubHeight = parseInt(zm.eventsListScrubHeight * $rootScope.textScaleFactor); + + if (NVRDataModel.getLogin().enableThumbs) { + NVRDataModel.debug ("--> thumbnail means increasing row size"); + eventsListScrubHeight=370; + eventsListDetailsHeight=300; + + } + NVRDataModel.debug(">>>height of list/scrub set to " + eventsListDetailsHeight + " and " + eventsListScrubHeight); pageLoaded = false; @@ -2682,6 +2693,32 @@ angular.module('zmApp.controllers') }); + + + $scope.showThumbnail = function (b,f) { + + + $scope.thumbnailLarge=b+'/index.php?view=image&fid='+f; + $ionicModal.fromTemplateUrl('templates/image-modal.html', + { + scope: $scope, + animation: 'slide-in-up', + id: 'thumbnail', + }) + .then(function(modal) + { + $scope.modal = modal; + + + $scope.modal.show(); + + var ld = NVRDataModel.getLogin(); + + }); + + }; + + //-------------------------------------------------------- //This is called when we first tap on an event to see // the feed. It's important to instantiate ionicModal here -- cgit v1.2.3 From 21856d3106726668616fdf4b96e9a7b02ce69d42 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Fri, 8 Dec 2017 20:16:51 -0500 Subject: image fade in, placeholders, doubled image size during fetch for resolution, w/h tweaks #91 --- www/js/DataModel.js | 2 +- www/js/EventCtrl.js | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++- www/js/app.js | 4 ++- 3 files changed, 80 insertions(+), 3 deletions(-) (limited to 'www/js') diff --git a/www/js/DataModel.js b/www/js/DataModel.js index 4fd3a791..1b83ce48 100755 --- a/www/js/DataModel.js +++ b/www/js/DataModel.js @@ -2028,7 +2028,7 @@ angular.module('zmApp.controllers') } } - return "(Unknown)"; + return undefined; }, getImageMode: function (id) { diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index 3468d988..73c6c77d 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -155,7 +155,7 @@ angular.module('zmApp.controllers') if (NVRDataModel.getLogin().enableThumbs) { NVRDataModel.debug ("--> thumbnail means increasing row size"); eventsListScrubHeight=370; - eventsListDetailsHeight=300; + eventsListDetailsHeight=330; } @@ -380,6 +380,7 @@ angular.module('zmApp.controllers') // console.log ("WE GOT EVENTS="+JSON.stringify(data)); var myevents = data; + NVRDataModel.debug("EventCtrl: success, got " + myevents.length + " events"); var loginData = NVRDataModel.getLogin(); for (var i = 0; i < myevents.length; i++) @@ -418,6 +419,46 @@ angular.module('zmApp.controllers') myevents[i].Event.BasePath = computeBasePath(myevents[i]); myevents[i].Event.relativePath = computeRelativePath(myevents[i]); + // get thumbW/H + + var tempMon = NVRDataModel.getMonitorObject(myevents[i].Event.MonitorId); + if (tempMon != undefined) { + + var ratio; + var mw = parseInt(tempMon.Monitor.Width); + var mh = parseInt(tempMon.Monitor.Height); + var mo = Math.abs(parseInt(tempMon.Monitor.Orientation)); + + // scale by X if width > height + if (mw > mh ) { + ratio = mw / zm.thumbWidth; + myevents[i].Event.thumbWidth = 200; + myevents[i].Event.thumbHeight = Math.round(mh/ratio); + } + else { + + ratio = mh / zm.thumbWidth; + myevents[i].Event.thumbHeight = 200; + myevents[i].Event.thumbWidth = Math.round(mw/ratio); + + } + + if (mo == 90) { + var t = myevents[i].Event.thumbHeight; + myevents[i].Event.thumbWidth = myevents[i].Event.thumbHeight; + myevents[i].Event.thumbHeight = t; + + + } // swap + + console.log ("--------->" +"MW:"+myevents[i].Event.thumbWidth+ " MH:"+ myevents[i].Event.thumbHeight + " for Monitor:" + myevents[i].Event.MonitorName); + + + + + + } + // in multiserver BasePath is login url for frames // http://login.url/index.php?view=frame&eid=19696772&fid=21 @@ -2919,6 +2960,40 @@ angular.module('zmApp.controllers') myevents[i].Event.relativePath = computeRelativePath(myevents[i]); myevents[i].Event.height = eventsListDetailsHeight; + // get thumbW/H + + var tempMon = NVRDataModel.getMonitorObject(myevents[i].Event.MonitorId); + if (tempMon != undefined) { + + var ratio; + var mw = parseInt(tempMon.Monitor.Width); + var mh = parseInt(tempMon.Monitor.Height); + var mo = Math.abs(parseInt(tempMon.Monitor.Orientation)); + + // scale by X if width > height + if (mw > mh ) { + ratio = mw / zm.thumbWidth; + myevents[i].Event.thumbWidth = 200; + myevents[i].Event.thumbHeight = Math.round(mh/ratio); + } + else { + + ratio = mh / zm.thumbWidth; + myevents[i].Event.thumbHeight = 200; + myevents[i].Event.thumbWidth = Math.round(mw/ratio); + + } + + if (mo == 90) { + var t = myevents[i].Event.thumbHeight; + myevents[i].Event.thumbWidth = myevents[i].Event.thumbHeight; + myevents[i].Event.thumbHeight = t; + + + } // swap + } + + if (myevents[i].Event.imageMode == 'path') //if (1) myevents[i].Event.videoPath = myevents[i].Event.baseURL + "/events/" + myevents[i].Event.relativePath + myevents[i].Event.DefaultVideo; diff --git a/www/js/app.js b/www/js/app.js index 15c6aeab..a4fafc9e 100755 --- a/www/js/app.js +++ b/www/js/app.js @@ -29,6 +29,7 @@ angular.module('zmApp', [ 'jett.ionic.scroll.sista', 'uk.ac.soton.ecs.videogular.plugins.cuepoints', 'dcbImgFallback', + 'ngImageAppear' ]) @@ -102,7 +103,8 @@ angular.module('zmApp', [ maxGifWidth: 800.0, quantSample: 15, hashSecret: 'unused at the moment', - forceMontageReloadDelay: 3600 // 1 hr + forceMontageReloadDelay: 3600, // 1 hr, + thumbWidth:200 }) -- cgit v1.2.3 From 02b539d381517228fec72235c3b8c5a5659bd711 Mon Sep 17 00:00:00 2001 From: Pliable Pixels Date: Sat, 9 Dec 2017 12:41:42 -0500 Subject: #91 rotated image fix and other typos --- www/js/EventCtrl.js | 32 +++++++++++++++++++++----------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'www/js') diff --git a/www/js/EventCtrl.js b/www/js/EventCtrl.js index 73c6c77d..e12d2f32 100644 --- a/www/js/EventCtrl.js +++ b/www/js/EventCtrl.js @@ -427,7 +427,9 @@ angular.module('zmApp.controllers') var ratio; var mw = parseInt(tempMon.Monitor.Width); var mh = parseInt(tempMon.Monitor.Height); - var mo = Math.abs(parseInt(tempMon.Monitor.Orientation)); + var mo =parseInt(tempMon.Monitor.Orientation); + + myevents[i].Event.Rotation = ''; // scale by X if width > height if (mw > mh ) { @@ -443,10 +445,15 @@ angular.module('zmApp.controllers') } - if (mo == 90) { - var t = myevents[i].Event.thumbHeight; - myevents[i].Event.thumbWidth = myevents[i].Event.thumbHeight; - myevents[i].Event.thumbHeight = t; + if (mo != 0) { + /* + myevents[i].Event.Rotation = { + 'transform' : 'rotate('+mo+'deg'+')' + }; */ + + var tmp = myevents[i].Event.thumbHeight; + myevents[i].Event.thumbHeight = myevents[i].Event.thumbWidth; + myevents[i].Event.thumbWidth = tmp; } // swap @@ -2968,7 +2975,7 @@ angular.module('zmApp.controllers') var ratio; var mw = parseInt(tempMon.Monitor.Width); var mh = parseInt(tempMon.Monitor.Height); - var mo = Math.abs(parseInt(tempMon.Monitor.Orientation)); + var mo = parseInt(tempMon.Monitor.Orientation); // scale by X if width > height if (mw > mh ) { @@ -2983,13 +2990,16 @@ angular.module('zmApp.controllers') myevents[i].Event.thumbWidth = Math.round(mw/ratio); } + if (mo != 0) { - if (mo == 90) { - var t = myevents[i].Event.thumbHeight; - myevents[i].Event.thumbWidth = myevents[i].Event.thumbHeight; - myevents[i].Event.thumbHeight = t; - + /*myevents[i].Event.Rotation = { + 'transform' : 'rotate('+mo+'deg'+')' + }; */ + var tmp = myevents[i].Event.thumbHeight; + myevents[i].Event.thumbHeight = myevents[i].Event.thumbWidth; + myevents[i].Event.thumbWidth = tmp; + } // swap } -- cgit v1.2.3