summaryrefslogtreecommitdiff
path: root/www/js/ModalCtrl.js
diff options
context:
space:
mode:
authorPliablePixels <pliablepixels@gmail.com>2015-07-16 11:23:38 -0400
committerPliablePixels <pliablepixels@gmail.com>2015-07-16 11:23:38 -0400
commit61afc8d7011f8a741b2583708ac1834e8eec44c2 (patch)
tree436d709de6ba9e9ffd845a83c01c45ee342e8ad1 /www/js/ModalCtrl.js
parent82a0ec7a39ec49fb028876368014600a665f253c (diff)
moved saveImageToPhone to Modal - it was not working because button range was out of scope of modal controller range.
Diffstat (limited to 'www/js/ModalCtrl.js')
-rw-r--r--www/js/ModalCtrl.js85
1 files changed, 82 insertions, 3 deletions
diff --git a/www/js/ModalCtrl.js b/www/js/ModalCtrl.js
index c5d1f512..01b8e27c 100644
--- a/www/js/ModalCtrl.js
+++ b/www/js/ModalCtrl.js
@@ -10,7 +10,6 @@ angular.module('zmApp.controllers').controller('ModalCtrl', ['$scope', '$rootSco
console.log("**** INSIDE MODAL CTRL, recomputing rand *****");
$scope.rand = Math.floor((Math.random() * 100000) + 1);
- $rootScope.tempmid = $scope.monitorId;
//$state.go($state.current, {}, {reload: true});
// This holds the PTZ menu control
@@ -225,12 +224,17 @@ angular.module('zmApp.controllers').controller('ModalCtrl', ['$scope', '$rootSco
};
+ $scope.saveImageToPhone2=function(mid)
+ {
+ console.log ("TEST");
+ };
+
$scope.onSwipeLeft = function(m,d)
{
console.log ("SWIPED LEFT");
console.log ("Next Monitor ID is " + ZMDataModel.getNextMonitor(m,d));
$scope.monitorId = ZMDataModel.getNextMonitor(m,d);
- $rootScope.tempmid = $scope.monitorId; //FIXME: Hack
+
$ionicLoading.hide();
$ionicLoading.show({
@@ -246,7 +250,6 @@ angular.module('zmApp.controllers').controller('ModalCtrl', ['$scope', '$rootSco
console.log ("SWIPED RIGHT");
console.log ("Next Monitor ID is " + ZMDataModel.getNextMonitor(m,d));
$scope.monitorId = ZMDataModel.getNextMonitor(m,d);
- $rootScope.tempmid = $scope.monitorId;
$ionicLoading.show({
template: "please wait...",
@@ -255,5 +258,81 @@ angular.module('zmApp.controllers').controller('ModalCtrl', ['$scope', '$rootSco
});
};
+ //-----------------------------------------------------------------------
+ // Sucess/Error handlers for saving a snapshot of the
+ // monitor image to phone storage
+ //-----------------------------------------------------------------------
+
+ function SaveSuccess() {
+ $ionicLoading.show({
+ template: "done!",
+ noBackdrop: true,
+ duration: 1000
+ });
+ console.log("***SUCCESS");
+ }
+
+ function SaveError(e) {
+ $ionicLoading.show({
+ template: "error - could not save",
+ noBackdrop: true,
+ duration: 2000
+ });
+ ZMDataModel.zmLog("Error saving image: " + e.message);
+ console.log("***ERROR");
+ }
+
+ //-----------------------------------------------------------------------
+ // Saves a snapshot of the monitor image to phone storage
+ //-----------------------------------------------------------------------
+
+
+ $scope.saveImageToPhone = function (mid) {
+ $ionicLoading.show({
+ template: "saving snapshot..",
+ noBackdrop: true,
+ duration: zm.httpTimeout
+ });
+
+ console.log("IMAGE CAPTURE INSIDE MODAL");
+ var canvas, context, imageDataUrl, imageData;
+ var loginData = ZMDataModel.getLogin();
+ var url = loginData.streamingurl +
+ '/cgi-bin/zms?mode=single&monitor=' + mid +
+ '&user=' + loginData.username +
+ '&pass=' + loginData.password;
+ ZMDataModel.zmLog("SavetoPhone:Trying to save image from " + url);
+
+ var img = new Image();
+ img.onload = function () {
+ canvas = document.createElement('canvas');
+ canvas.width = img.width;
+ canvas.height = img.height;
+ context = canvas.getContext('2d');
+ context.drawImage(img, 0, 0);
+ try {
+ imageDataUrl = canvas.toDataURL('image/jpeg', 1.0);
+ imageData = imageDataUrl.replace(/data:image\/jpeg;base64,/, '');
+ cordova.exec(
+ SaveSuccess,
+ SaveError,
+ 'Canvas2ImagePlugin',
+ 'saveImageDataToLibrary', [imageData]
+ );
+ } catch (e) {
+
+ SaveError(e.message);
+ }
+ };
+ try {
+ img.src = url;
+ } catch (e) {
+ SaveError(e.message);
+
+ }
+ };
+
+
+
}]);