summaryrefslogtreecommitdiff
path: root/www/js/DataModel.js
diff options
context:
space:
mode:
authorPliablePixels <pliablepixels@gmail.com>2015-09-14 14:36:13 -0400
committerPliablePixels <pliablepixels@gmail.com>2015-09-14 14:36:13 -0400
commit8d318ef588f10d1eb3a49c663373052f228c5680 (patch)
tree409eae1c1e2a5882f5fb2ed652702f93ce6382ee /www/js/DataModel.js
parent6b5c7cf6c3ee67efe3ee7842c1e12c6902f7f31e (diff)
Added feature to pin lock app
Diffstat (limited to 'www/js/DataModel.js')
-rw-r--r--www/js/DataModel.js96
1 files changed, 95 insertions, 1 deletions
diff --git a/www/js/DataModel.js b/www/js/DataModel.js
index ae4bee12..e42c96a7 100644
--- a/www/js/DataModel.js
+++ b/www/js/DataModel.js
@@ -1,5 +1,6 @@
/* jshint -W041 */
+
/* jslint browser: true*/
/* global cordova,StatusBar,angular,console */
@@ -7,7 +8,12 @@
// that many other controllers use
// It's grown over time. I guess I may have to split this into multiple services in the future
-angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ionicLoading', '$ionicBackdrop', '$fileLogger', 'zm','$rootScope','$ionicContentBanner', '$timeout',function ($http, $q, $ionicLoading, $ionicBackdrop,$fileLogger,zm, $rootScope,$ionicContentBanner, $timeout) {
+angular.module('zmApp.controllers').service('ZMDataModel',
+['$http', '$q', '$ionicLoading', '$ionicBackdrop', '$fileLogger', 'zm','$rootScope','$ionicContentBanner', '$timeout','$cordovaPinDialog', '$ionicPopup',
+ function
+ ($http, $q, $ionicLoading, $ionicBackdrop,$fileLogger,
+ zm, $rootScope,$ionicContentBanner, $timeout, $cordovaPinDialog,
+ $ionicPopup) {
var zmAppVersion="unknown";
var monitorsLoaded = 0;
@@ -28,6 +34,8 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion
'isUseAuth':true, // true if user wants ZM auth
'refreshSec':"1", // timer value for frame change in sec
'enableDebug':false, // if enabled with log messages with "debug"
+ 'usePin':false,
+ 'pinCode':'',
};
var configParams = {
'ZM_EVENT_IMAGE_DIGITS':'-1'
@@ -202,6 +210,18 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion
}
+ if (window.localStorage.getItem("usePin") != undefined) {
+ var pinValue = window.localStorage.getItem("usePin");
+ loginData.usePin = (pinValue == "1") ? true:false;
+ console.log("usePin " + loginData.usePin);
+
+ }
+
+ if (window.localStorage.getItem("pinCode") != undefined) {
+ loginData.pinCode =
+ window.localStorage.getItem("pinCode");
+
+ }
if (window.localStorage.getItem("keepAwake") != undefined) {
var awakevalue = window.localStorage.getItem("keepAwake");
@@ -292,6 +312,10 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion
window.localStorage.setItem("apiurl", loginData.apiurl);
window.localStorage.setItem("streamingurl", loginData.streamingurl);
window.localStorage.setItem("useSSL", loginData.useSSL?"1":"0");
+ window.localStorage.setItem("usePin", loginData.usePin?"1":"0");
+ window.localStorage.setItem("pinCode", loginData.pinCode);
+
+
window.localStorage.setItem("enableDebug", loginData.enableDebug?"1":"0");
window.localStorage.setItem("keepAwake", loginData.keepAwake?"1":"0");
window.localStorage.setItem("maxMontage", loginData.maxMontage);
@@ -358,7 +382,77 @@ angular.module('zmApp.controllers').service('ZMDataModel', ['$http', '$q', '$ion
// Grabs the computed auth key for streaming
// FIXME: Currently a hack - does a screen parse - convert to API based support
//-----------------------------------------------------------------------------
+ validatePin: function()
+ {
+
+ var d=$q.defer();
+ if (loginData.usePin)
+ {
+ zmDebug("Validating PIN...");
+ var pinMatch = false;
+
+ //<input type="number" pattern="[0-9]*">
+ $rootScope.pindata={};
+ var pinPrompt = $ionicPopup.show({
+ template: '<input type="number" pattern="[0-9]*" ng-model="$root.pindata.pin">',
+ title: 'PIN validation',
+ subtitle: 'Please confirm your PIN',
+ scope: $rootScope,
+ buttons: [
+ {
+ text: 'Ok',
+ type:'button-positive',
+ onTap: function(e)
+ {
+ if ($rootScope.pindata.pin != loginData.pinCode)
+ {
+ displayBanner("error",["Invalid PIN. Please try again"]);
+ zmLog("Invalid PIN entered ");
+ e.preventDefault();
+ $rootScope.pindata.pin="";
+ }
+ else
+ {
+ zmLog("PIN was correct");
+ d.resolve(true);
+ }
+
+ }
+ },
+ ]});
+ return (d.promise);
+ /*$cordovaPinDialog.prompt ('Enter PIN', 'PIN Confirm', ["OK"])
+ .then( function (result)
+ {
+ if (result.input1 != loginData.pinCode)
+ {
+ displayBanner("error",["Invalid PIN. Please try again"]);
+ zmLog("Invalid PIN entered, looping...");
+ d.resolve(false);
+ }
+ else
+ {
+ pinMatch = true;
+ zmLog("Valid PIN entered");
+ d.resolve(true);
+ }
+ },
+ function (error)
+ {
+ zmLog("PIN error handler. Should not come here");
+ d.resolve(false);
+ });*/
+
+
+
+ }
+ else
+ {
+ zmDebug("No PIN set, skipping");
+ }
+ },
+
getAuthKey: function ()
{
var d=$q.defer();