summaryrefslogtreecommitdiff
path: root/www
diff options
context:
space:
mode:
Diffstat (limited to 'www')
-rw-r--r--www/js/DataModel.js100
-rw-r--r--www/js/LoginCtrl.js5
-rw-r--r--www/js/MontageCtrl.js121
3 files changed, 102 insertions, 124 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index 2c1fe144..12d172b7 100644
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -52,6 +52,10 @@ angular.module('zmApp.controllers')
'onTapScreen':'events',
'enableh264':true,
'gapless':false,
+ 'montageOrder':'',
+ 'montageHiddenOrder':'',
+ 'montageArraySize':'0',
+
};
@@ -62,6 +66,25 @@ angular.module('zmApp.controllers')
'ZM_PATH_ZMS':''
};
+ function isEmpty(obj) {
+
+ // null and undefined are "empty"
+ if (obj == null) return true;
+
+ // Assume if it has a length property with a non-zero value
+ // that that property is correct.
+ if (obj.length > 0) return false;
+ if (obj.length === 0) return true;
+
+ // Otherwise, does it have any properties of its own?
+ // Note that this doesn't handle
+ // toString and valueOf enumeration bugs in IE < 9
+ for (var key in obj) {
+ if (hasOwnProperty.call(obj, key)) return false;
+ }
+
+ return true;
+ }
//--------------------------------------------------------------------------
// uses fileLogger to write logs to file for later investigation
@@ -70,6 +93,18 @@ angular.module('zmApp.controllers')
{
$fileLogger.log(logtype, val);
}
+
+
+ function setLogin(newLogin)
+ {
+ loginData = newLogin;
+
+
+ zmLog("Saving all parameters to storage");
+ zmDebug ("DataModel/setLogin: writing " + JSON.stringify(newLogin));
+
+ $localstorage.setObject('defaultServer', loginData);
+ }
// separate out a debug so we don't do this if comparison for normal logs
function zmDebug(val)
@@ -140,6 +175,19 @@ angular.module('zmApp.controllers')
zmLog("ZMData init: checking for stored variables & setting up log file");
+ var loadedData = $localstorage.getObject('defaultServer');
+ if (!isEmpty(loadedData))
+ {
+ loginData = loadedData;
+ zmLog ("DataModel init recovered this loginData as " + JSON.stringify(loginData));
+ }
+ else
+ {
+ zmLog ("defaultServer configuration NOT found. Keeping login at defaults");
+ }
+
+ /*
+
if (window.localStorage.getItem("enableDebug") != undefined) {
var dbgvalue = window.localStorage.getItem("enableDebug");
loginData.enableDebug = (dbgvalue == "1") ? true:false;
@@ -341,7 +389,7 @@ angular.module('zmApp.controllers')
loginData.keepAwake = (awakevalue == "1") ? true:false;
console.log("keepAwake " + loginData.keepAwake);
- }
+ } */
monitorsLoaded = 0;
console.log("Getting out of ZMDataModel init");
@@ -441,21 +489,18 @@ angular.module('zmApp.controllers')
}
- },
+ },
//--------------------------------------------------------------------------
// writes all params to local storage. FIXME: Move all of this into a JSON
// object
//--------------------------------------------------------------------------
setLogin: function (newLogin) {
- loginData = newLogin;
- zmLog("Saving all parameters to storage");
- zmDebug ("DataModel/setLogin: writing " + JSON.stringify(newLogin));
-
- $localstorage.setObject('myserver', newLogin);
+ setLogin(newLogin);
+ /*
window.localStorage.setItem("username", loginData.username);
window.localStorage.setItem("password", loginData.password);
window.localStorage.setItem("url", loginData.url);
@@ -463,8 +508,8 @@ angular.module('zmApp.controllers')
window.localStorage.setItem("streamingurl", loginData.streamingurl);
window.localStorage.setItem("eventServer", loginData.eventServer);
window.localStorage.setItem("eventServerMonitors", loginData.eventServerMonitors);
- window.localStorage.setItem("eventServerInterval", loginData.eventServerInterval);
-
+ window.localStorage.setItem("eventServerInterval", loginData.eventServerInterval);
+ window.localStorage.setItem("maxFPS", loginData.maxFPS);
@@ -494,23 +539,9 @@ angular.module('zmApp.controllers')
console.log ("***** SETTING ISUSEAUTH TO " + loginData.isUseAuth);
+ */
-
- if (loginData.maxFPS > 30) {
- console.log("MAXFPS Too high, maxing to 30");
- loginData.maxFPS = "30";
- }
- window.localStorage.setItem("maxFPS", loginData.maxFPS);
-
- if (!loginData.maxMontage) {
- console.log("INVALID MONTAGE NUM");
- loginData.maxMontage = "10";
- }
-
- if (parseInt(loginData.maxMontage) <= 0) {
- console.log("*** MAXMONTAGE TOO LOW ***");
- loginData.maxMontage = 1;
- }
+
},
//-------------------------------------------------------
@@ -708,7 +739,8 @@ angular.module('zmApp.controllers')
// First let's check if the user already has a saved monitor order
var i;
- if (window.localStorage.getItem("montageOrder") == undefined) {
+ if (loginData.montageOrder == '') {
+ //if (window.localStorage.getItem("montageOrder") == undefined) {
for (i = 0; i < monitors.length; i++) {
montageOrder[i] = i; // order to show is order ZM returns
@@ -721,8 +753,8 @@ angular.module('zmApp.controllers')
} else
// there is a saved order
{
- var myorder = window.localStorage.getItem("montageOrder");
- var myhiddenorder = window.localStorage.getItem("montageHiddenOrder");
+ var myorder = loginData.montageOrder;
+ var myhiddenorder = loginData.montageHiddenOrder;
zmDebug("MontageCtrl: Montage order is " + myorder);
@@ -741,10 +773,14 @@ angular.module('zmApp.controllers')
montageOrder[i] = i; // order to show is order ZM returns
hiddenOrder[i] = 0; // don't hide them
}
- window.localStorage.setItem("montageOrder",
- montageOrder.toString());
- window.localStorage.setItem("montageHiddenOrder",
- hiddenOrder.toString());
+
+ loginData.montageOrder = montageOrder.toString();
+ loginData.montageHiddenOrder = hiddenOrder.toString();
+ setLogin(loginData);
+ //window.localStorage.setItem("montageOrder",
+ // montageOrder.toString());
+ // window.localStorage.setItem("montageHiddenOrder",
+ // hiddenOrder.toString());
}
diff --git a/www/js/LoginCtrl.js b/www/js/LoginCtrl.js
index 17a6daf0..6c9234c4 100644
--- a/www/js/LoginCtrl.js
+++ b/www/js/LoginCtrl.js
@@ -239,6 +239,11 @@ angular.module('zmApp.controllers').controller('zmApp.LoginCtrl', ['$scope', '$r
if (!$scope.loginData.password) $scope.loginData.password = "x";
ZMDataModel.zmLog("Authentication is disabled, setting dummy user & pass");
}
+
+ if (parseInt($scope.loginData.maxMontage) <=0)
+ {
+ $scope.loginData.maxMontage ="10";
+ }
ZMDataModel.setLogin($scope.loginData);
diff --git a/www/js/MontageCtrl.js b/www/js/MontageCtrl.js
index 169d79b7..2e5feb8c 100644
--- a/www/js/MontageCtrl.js
+++ b/www/js/MontageCtrl.js
@@ -13,9 +13,8 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
// Controller main
//---------------------------------------------------------------------
- console.log("******** HAVE ALL MONITORS");
- var isLongPressActive = false;
+ var isLongPressActive = false;
$scope.isReorder = false;
var intervalHandleMontage; // will hold image resize timer on long press
var montageIndex = 0; // will hold monitor ID to scale in timer
@@ -50,6 +49,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
$scope.MontageMonitors = ZMDataModel.applyMontageMonitorPrefs (message, 1)[0];
+ var loginData = ZMDataModel.getLogin();
// --------------------------------------------------------
// Handling of back button in case modal is open should
@@ -104,89 +104,13 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
- /*
-
- // First let's check if the user already has a saved monitor order
- var i;
- if (window.localStorage.getItem("montageOrder") == undefined) {
-
- for (i = 0; i < $scope.monitors.length; i++) {
- montageOrder[i] = i; // order to show is order ZM returns
- hiddenOrder[i] = 0; // don't hide them
- }
- console.log("Order string is " + montageOrder.toString());
- console.log("Hiddent string is " + hiddenOrder.toString());
-
- ZMDataModel.zmLog("Stored montage order does not exist");
- } else
- // there is a saved order
- {
- var myorder = window.localStorage.getItem("montageOrder");
- var myhiddenorder = window.localStorage.getItem("montageHiddenOrder");
-
-
- ZMDataModel.zmDebug("MontageCtrl: Montage order is " + myorder);
- ZMDataModel.zmDebug("MontageCtrl: Hidden order is " + myhiddenorder);
- if (myorder) montageOrder = myorder.split(",");
- if (myhiddenorder) hiddenOrder = myhiddenorder.split(",");
-
- // handle add/delete monitors after the array has been
- // saved
-
- if ($scope.monitors.length != montageOrder.length) {
- ZMDataModel.zmLog("Monitors array length different from stored hidden/order array. It's possible monitors were added/removed. Resetting...");
- montageOrder = [];
- hiddenOrder = [];
- for (i = 0; i < $scope.monitors.length; i++) {
- montageOrder[i] = i; // order to show is order ZM returns
- hiddenOrder[i] = 0; // don't hide them
- }
- window.localStorage.setItem("montageOrder",
- montageOrder.toString());
- window.localStorage.setItem("montageHiddenOrder",
- hiddenOrder.toString());
-
-
- }
-
- } // at this stage, the monitor arrangement is not matching
- // the montage order. Its in true order. Let us first process the hiddenOrder part
- // now
-
- for (i = 0; i < montageOrder.length; i++) {
- montageOrder[i] = parseInt(montageOrder[i]);
- hiddenOrder[i] = parseInt(hiddenOrder[i]);
- // $scope.monitors[i].Monitor.sortOrder = montageOrder[i];
- // FIXME: This will briefly show and then hide
- // disabled monitors
- if (hiddenOrder[i] == 1) {
- // $scope.monitors[i].Monitor.listDisplay='noshow';
-
- if ($scope.monitors[i] !== undefined)
- $scope.monitors[i].Monitor.listDisplay = 'noshow';
- ZMDataModel.zmLog("Monitor " + i + " is marked as hidden in montage");
- } else {
- if ($scope.monitors[i] !== undefined)
- $scope.monitors[i].Monitor.listDisplay = 'show';
- }
- } */
-
-
-
- // now arrange monitors according to montage order
- // FIXME: Incredibly horrible logic
- // I really need to organize this properly into one structure
-
- // empty out monitors as I'll need to insert them as per montageOrder
- // remember to assign
-
-
// Do we have a saved montage array size? No?
- if (window.localStorage.getItem("montageArraySize") == undefined) {
+ // if (window.localStorage.getItem("montageArraySize") == undefined) {
+ if (loginData.montageArraySize == '0') {
for (var i = 0; i < $scope.monitors.length; i++) {
$scope.monitorSize.push(ZMDataModel.getMontageSize());
@@ -194,7 +118,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
}
} else // recover previous settings
{
- var msize = window.localStorage.getItem("montageArraySize");
+ var msize = loginData.montageArraySize;
console.log("MontageArrayString is=>" + msize);
$scope.monitorSize = msize.split(":");
var j;
@@ -325,6 +249,7 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
$scope.reloadReorder = function () {
var refresh = ZMDataModel.getMonitors(1);
+
refresh.then(function (data) {
$scope.monitors = data;
$scope.MontageMonitors = data;
@@ -335,17 +260,24 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
montageOrder[i] = i;
hiddenOrder[i] = 0;
}
- window.localStorage.setItem("montageOrder", montageOrder.toString());
- window.localStorage.setItem("montageHiddenOrder", hiddenOrder.toString());
+
+ loginData.montageOrder = montageOrder.toString();
+ loginData.montageHiddenOrder = hiddenOrder.toString();
+ ZMDataModel.setLogin(loginData);
+ //window.localStorage.setItem("montageOrder", montageOrder.toString());
+ //window.localStorage.setItem("montageHiddenOrder", hiddenOrder.toString());
ZMDataModel.zmLog("Montage order saved on refresh: " + montageOrder.toString() + " and hidden order: " + hiddenOrder.toString());
});
};
$scope.saveReorder = function () {
- window.localStorage.setItem("montageOrder", montageOrder.toString());
- window.localStorage.setItem("montageHiddenOrder",
- hiddenOrder.toString());
+ loginData.montageOrder = montageOrder.toString();
+ loginData.montageHiddenOrder = hiddenOrder.toString();
+ ZMDataModel.setLogin(loginData);
+ //window.localStorage.setItem("montageOrder", montageOrder.toString());
+ // window.localStorage.setItem("montageHiddenOrder",
+ // hiddenOrder.toString());
console.log("Saved " + montageOrder.toString());
ZMDataModel.zmLog("User press OK. Saved Monitor Order as: " +
montageOrder.toString() +
@@ -356,7 +288,8 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
$scope.cancelReorder = function () {
// user tapped cancel
var i, myhiddenorder;
- if (window.localStorage.getItem("montageOrder") == undefined) {
+ if (loginData.montageOrder == '') {
+ //if (window.localStorage.getItem("montageOrder") == undefined) {
for (i = 0; i < $scope.MontageMonitors.length; i++) {
montageOrder[i] = i;
hiddenOrder[i] = 0;
@@ -365,14 +298,14 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
ZMDataModel.zmLog("User press Cancel. Reset Monitor Order to: " + montageOrder.toString());
} else // montageOrder exists
{
- var myorder = window.localStorage.getItem("montageOrder");
+ var myorder = loginData.montageOrder;
- if (window.localStorage.getItem("montageHiddenOrder") == undefined) {
+ if (loginData.montageHiddenOrder=='') {
for (i = 0; i < $scope.MontageMonitors.length; i++) {
hiddenOrder[i] = 0;
}
} else {
- myhiddenorder = window.localStorage.getItem("montageHiddenOrder");
+ myhiddenorder = loginData.montageHiddenOrder;
hiddenOrder = myhiddenorder.split(",");
}
@@ -666,7 +599,9 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
}
monsizestring = monsizestring.slice(0, -1); // kill last :
console.log("Setting monsize string:" + monsizestring);
- window.localStorage.setItem("montageArraySize", monsizestring);
+ loginData.montageArraySize = monsizestring;
+ ZMDataModel.setLogin(loginData);
+ //window.localStorage.setItem("montageArraySize", monsizestring);
}
//---------------------------------------------------------------------
@@ -799,7 +734,9 @@ angular.module('zmApp.controllers').controller('zmApp.MontageCtrl', ['$scope', '
}
monsizestring = monsizestring.slice(0, -1); // kill last :
console.log("Setting monsize string:" + monsizestring);
- window.localStorage.setItem("montageArraySize", monsizestring);
+ loginData.montageArraySize = monsizestring;
+ ZMDataModel.setLogin(loginData);
+ //window.localStorage.setItem("montageArraySize", monsizestring);
sizeInProgress = false;
}