summaryrefslogtreecommitdiff
path: root/www/js/MonitorCtrl.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/MonitorCtrl.js')
-rw-r--r--www/js/MonitorCtrl.js199
1 files changed, 164 insertions, 35 deletions
diff --git a/www/js/MonitorCtrl.js b/www/js/MonitorCtrl.js
index 8b60c1a4..7efe3e33 100644
--- a/www/js/MonitorCtrl.js
+++ b/www/js/MonitorCtrl.js
@@ -5,7 +5,7 @@
// controller for Monitor View
// refer to comments in EventCtrl for the modal stuff. They are almost the same
-angular.module('zmApp.controllers').controller('zmApp.MonitorCtrl', ['$ionicPopup', '$scope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$ionicLoading', '$ionicModal', '$state', '$http', function ($ionicPopup,$scope, ZMDataModel, message, $ionicSideMenuDelegate, $ionicLoading, $ionicModal, $state, $http, $rootScope) {
+angular.module('zmApp.controllers').controller('zmApp.MonitorCtrl', ['$ionicPopup', '$scope', 'ZMDataModel', 'message', '$ionicSideMenuDelegate', '$ionicLoading', '$ionicModal', '$state', '$http', function ($ionicPopup, $scope, ZMDataModel, message, $ionicSideMenuDelegate, $ionicLoading, $ionicModal, $state, $http, $rootScope) {
$scope.monitors = [];
@@ -26,13 +26,142 @@ angular.module('zmApp.controllers').controller('zmApp.MonitorCtrl', ['$ionicPopu
});
};
- $scope.notSupported = function()
- {
+
+ $scope.changeConfig = function (monitorName, monitorId, enabled, func) {
+ var checked = "false";
+ console.log("called with " + monitorId + ":" + enabled + ":" + func);
+ if (enabled == '1') checked = "true";
+
+ $scope.monFunctions = [
+ {
+ text: "Modect",
+ value: "Modect"
+ },
+ {
+ text: "Mocord",
+ value: "Mocord"
+ },
+ {
+ text: "Record",
+ value: "Record"
+ },
+ {
+ text: "Nodect",
+ value: "Nodect"
+ },
+ {
+ text: "Monitor",
+ value: "Monitor"
+ },
+ {
+ text: "None",
+ value: "None"
+ }
+ ];
+ //$scope.monFunctions = monFunctions;
+ $scope.monfunc = {
+ myfunc: func,
+ myenabled: checked
+ };
+
+ var getConfig = $ionicPopup.show({
+ scope: $scope,
+ template: '<ion-toggle ng-model="monfunc.myenabled" ng-checked="{{monfunc.myenabled}}" toggle-class="toggle-calm">Enabled</ion-toggle><ion-radio ng-repeat="item in monFunctions" ng-value="item.value" ng-model="monfunc.myfunc"> {{item.text}} </ion-radio>',
+
+
+ title: 'Change Settings for ' + monitorName,
+
+ buttons: [
+ {
+ text: 'Cancel',
+
+ },
+ {
+ text: 'Save',
+ onTap: function (e) {
+ console.log("YOU SELECTED " + $scope.monfunc.myenabled + $scope.monfunc.myfunc);
+ var loginData = ZMDataModel.getLogin();
+ var apiRestart = loginData.apiurl + "/states/change/restart.json";
+ var apiMon = loginData.apiurl + "/monitors/" + monitorId + ".json";
+
+ console.log("VARS: " + apiRestart + ">>" + apiMon);
+
+ var isEnabled = "";
+ isEnabled = ($scope.monfunc.myenabled == true) ? '1' : '0';
+
+ $http({
+ url: apiMon,
+ method: 'post',
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Accept': '*/*',
+ },
+ transformRequest: function (obj) {
+ var str = [];
+ for (var p in obj)
+ str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
+ var foo = str.join("&");
+ console.log("****RETURNING " + foo);
+ return foo;
+ },
+ data: {
+ 'Monitor[Function]': $scope.monfunc.myfunc,
+ 'Monitor[Enabled]': isEnabled,
+ }
+
+ })
+
+ .success(function () {
+
+ $ionicLoading.show({
+ template: "Successfully changed Monitor. Please wait, restarting ZoneMinder...",
+ noBackdrop: true,
+ duration: 60000,
+ });
+ $http.post(apiRestart)
+ .then(function (success) {
+ $ionicLoading.hide();
+ var refresh = ZMDataModel.getMonitors(1);
+ refresh.then(function (data) {
+ $scope.monitors = data;
+ $scope.$broadcast('scroll.refreshComplete');
+ });
+
+ },
+ function (error) {
+ $ionicLoading.hide();
+
+ }
+ );
+
+ })
+ .error(function (data, status, headers, config) {
+ $ionicLoading.show({
+ template: "Error changing Monitor. Please check ZM logs...",
+ noBackdrop: true,
+ duration: 3000,
+ });
+ });
+
+
+
+
+ }
+
+
+
+ },
+ ]
+ });
+
+ };
+
+ $scope.notSupported = function () {
$ionicPopup.alert({
- title: 'In a Galaxy Far Far Away...',
- template: 'This feature will be supported sometime in the future.'
- });
+ title: 'In a Galaxy Far Far Away...',
+ template: 'This feature will be supported sometime in the future.'
+ });
};
@@ -72,38 +201,38 @@ angular.module('zmApp.controllers').controller('zmApp.MonitorCtrl', ['$ionicPopu
$scope.openModal = function (mid) {
console.log("Open Monitor Modal");
- $scope.monitorId = mid;
- $scope.LoginData = ZMDataModel.getLogin();
- $scope.rand = Math.floor(Math.random() * (999999 - 111111 + 1)) + 111111;
+ $scope.monitorId = mid;
+ $scope.LoginData = ZMDataModel.getLogin();
+ $scope.rand = Math.floor(Math.random() * (999999 - 111111 + 1)) + 111111;
- // This is a modal to show the monitor footage
- $ionicModal.fromTemplateUrl('templates/monitors-modal.html', {
- scope: $scope,
- animation: 'slide-in-up'
- })
- .then(function (modal) {
- $scope.modal = modal;
-
- $ionicLoading.show({
- template: "please wait...",
- noBackdrop: true,
- duration: 15000
+ // This is a modal to show the monitor footage
+ $ionicModal.fromTemplateUrl('templates/monitors-modal.html', {
+ scope: $scope,
+ animation: 'slide-in-up'
+ })
+ .then(function (modal) {
+ $scope.modal = modal;
+
+ $ionicLoading.show({
+ template: "please wait...",
+ noBackdrop: true,
+ duration: 15000
+ });
+ $scope.modal.show();
});
- $scope.modal.show();
- });
};
$scope.closeModal = function () {
- console.log("Close & Destroy Monitor Modal");
- $scope.modal.remove();
+ console.log("Close & Destroy Monitor Modal");
+ $scope.modal.remove();
};
//Cleanup the modal when we're done with it!
$scope.$on('$destroy', function () {
- console.log("Destroy Monitor Modal");
- $scope.modal.remove();
-});
+ console.log("Destroy Monitor Modal");
+ $scope.modal.remove();
+ });
@@ -112,14 +241,14 @@ angular.module('zmApp.controllers').controller('zmApp.MonitorCtrl', ['$ionicPopu
$scope.monitors = message;
$scope.doRefresh = function () {
- console.log("***Pull to Refresh");
- $scope.monitors = [];
+ console.log("***Pull to Refresh");
+ $scope.monitors = [];
- var refresh = ZMDataModel.getMonitors(1);
- refresh.then(function (data) {
- $scope.monitors = data;
- $scope.$broadcast('scroll.refreshComplete');
- });
+ var refresh = ZMDataModel.getMonitors(1);
+ refresh.then(function (data) {
+ $scope.monitors = data;
+ $scope.$broadcast('scroll.refreshComplete');
+ });
};