summaryrefslogtreecommitdiff
path: root/www/js/WizardCtrl.js
diff options
context:
space:
mode:
Diffstat (limited to 'www/js/WizardCtrl.js')
-rw-r--r--www/js/WizardCtrl.js195
1 files changed, 188 insertions, 7 deletions
diff --git a/www/js/WizardCtrl.js b/www/js/WizardCtrl.js
index d1bd9da9..8fe01e33 100644
--- a/www/js/WizardCtrl.js
+++ b/www/js/WizardCtrl.js
@@ -2,26 +2,183 @@
/* jslint browser: true*/
/* global cordova,StatusBar,angular,console, Masonry, URI */
-angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$rootScope', '$ionicModal', 'ZMDataModel','$ionicSideMenuDelegate', '$ionicHistory', '$state', '$ionicPopup', 'SecuredPopups',function ($scope, $rootScope, $ionicModal, ZMDataModel,$ionicSideMenuDelegate, $ionicHistory, $state, $ionicPopup, SecuredPopups) {
+angular.module('zmApp.controllers').controller('zmApp.WizardCtrl', ['$scope', '$rootScope', '$ionicModal', 'ZMDataModel','$ionicSideMenuDelegate', '$ionicHistory', '$state', '$ionicPopup', 'SecuredPopups', '$http','$q','zm',function ($scope, $rootScope, $ionicModal, ZMDataModel,$ionicSideMenuDelegate, $ionicHistory, $state, $ionicPopup, SecuredPopups, $http, $q,zm) {
$scope.openMenu = function () {
$ionicSideMenuDelegate.toggleLeft();
};
+
+
+ function login (u,zmu,zmp)
+ {
+ var d = $q.defer();
+
+ $http({
+ method: 'POST',
+ //withCredentials: true,
+ url: u,
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Accept': 'application/json',
+ },
+ transformRequest: function (obj) {
+ var str = [];
+ for (var p in obj)
+ str.push(encodeURIComponent(p) + "=" +
+ encodeURIComponent(obj[p]));
+ var params = str.join("&");
+ return params;
+ },
+ data: {
+ username: zmu,
+ password: zmp,
+ action: "login",
+ view: "console"
+ }
+ })
+ .success (function (data, status,headers){
+ console.log ("LOOKING FOR " + zm.loginScreenString);
+ //console.log ("DATA RECEIVED " + JSON.stringify(data));
+ if (data.indexOf(zm.loginScreenString) == -1)
+ {
+ d.resolve(true);
+ return d.promise;
+ }
+ else
+ {
+ console.log ("************ERROR");
+ d.reject(false);
+ return d.promise;
+ }
+ });
+
+ return d.promise;
+
+ }
+ function logout(u)
+ {
+ var d = $q.defer();
+
+ $http({
+ method: 'POST',
+ url: u,
+ headers: {
+ 'Content-Type': 'application/x-www-form-urlencoded',
+ 'Accept': 'application/json',
+ },
+ transformRequest: function (obj) {
+ var str = [];
+ for (var p in obj)
+ str.push(encodeURIComponent(p) + "=" +
+ encodeURIComponent(obj[p]));
+ var params = str.join("&");
+ return params;
+ },
+
+ data: {
+ action: "logout",
+ view: "login"
+ }
+ })
+ .finally (function (ans) {
+ return d.resolve(true);
+
+ });
+
+
+ return d.promise;
+
+ }
+
+ $scope.exitValidate = function()
+ {
+ $rootScope.authSession = 'undefined';
+ $rootScope.zmCookie = '';
+
+ $scope.portalValidText = "";
+ $scope.apiValidateText = "";
+ $scope.streamingValidateText = "";
+ $scope.wizard.fqportal = "";
+
+ var d = $q.defer();
+
+ var c = URI.parse ($scope.wizard.portalurl);
+
+ var b ="";
+ if ($scope.wizard.useauth && $scope.wizard.usebasicauth)
+ {
+ b = $scope.wizard.basicuser+":"+$scope.wizard.basicpassword+"@";
+ console.log ("B="+b);
+ }
+ var u = c.scheme+"://"+b+c.host;
+ if (c.port) u+= ":"+c.port;
+ if (c.path) u+= c.path;
+
+
+ if (u.slice(-1) == '/') {
+ u = u.slice(0, -1);
+
+ }
+
+ $scope.fqportal = u;
+
+ u = u+'/index.php';
+ ZMDataModel.zmLog ("Wizard: login url is " + u);
+
+ // now lets login
+
+ var zmu = "x";
+ var zmp = "x";
+ if ($scope.wizard.usezmauth)
+ {
+ zmu = $scope.wizard.zmuser;
+ zmp = $scope.wizard.zmpassword;
+ }
+
+ // logout first for the adventurers amongst us who must
+ // use it even after logging in
+ ZMDataModel.zmLog ("zmWizard: logging out");
+ logout(u)
+ .then ( function (ans)
+ {
+ // login now
+ ZMDataModel.zmLog ("zmWizard: logging in with "+u+" "+zmu+":"+zmp);
+ login(u,zmu,zmp)
+ .then ( function (success){
+ ZMDataModel.zmLog ("zmWizard: login succeeded");
+ $scope.wizard.portalValidText = "Portal login was successful";
+ $scope.wizard.portalColor = "#16a085";
+ return d.resolve(true);
+ },
+ function (error) {
+ ZMDataModel.zmLog ("zmWizard: login failed");
+ $scope.wizard.portalValidText = "Portal login was unsuccessful";
+ $scope.wizard.portalColor = "#e74c3c";
+ return d.resolve(false);
+
+ });
+
+
+ });//finally
+ return d.promise;
+ };
//--------------------------------------------------------------------------
// tags a protocol
//--------------------------------------------------------------------------
- function addhttp(url) {
+ function checkscheme(url) {
if ((!/^(f|ht)tps?:\/\//i.test(url)) && (url != "")) {
- url = "http://" + url;
+ return false;
}
- return url;
+ else
+ return true;
}
+
//--------------------------------------------------------------------------
// exit validator for auth wizard
//--------------------------------------------------------------------------
@@ -92,8 +249,19 @@ $scope.openMenu = function () {
return false;
}
+ if ( !checkscheme($scope.wizard.portalurl))
+ {
+ $rootScope.zmPopup = SecuredPopups.show('show',{
+ title: 'Whoops!',
+ template: 'Please specify http:// or https:// in the url',
+ buttons: [{text: 'Ok'}]
+
+ });
+ return false;
+ }
+
$scope.wizard.portalurl = $scope.wizard.portalurl.toLowerCase().trim();
- $scope.wizard.portalurl = addhttp($scope.wizard.portalurl);
+
ZMDataModel.zmLog ("Wizard: stripped url:"+$scope.wizard.portalurl);
var c = URI.parse ($scope.wizard.portalurl);
@@ -121,7 +289,7 @@ $scope.openMenu = function () {
$scope.wizard.portalurl = c.scheme+"://";
if (c.host) $scope.wizard.portalurl += c.host;
- if (c.port) $scope.wizard.portalurl += ":"+c.host;
+ if (c.port) $scope.wizard.portalurl += ":"+c.port;
if (c.path) $scope.wizard.portalurl += c.path;
ZMDataModel.zmLog ("Wizard: normalized url:"+$scope.wizard.portalurl);
return true;
@@ -170,7 +338,20 @@ $scope.openMenu = function () {
basicuser : "",
basicpassword : "",
zmuser : "",
- zmpassword : ""
+ zmpassword : "",
+ ///////////////////////
+ loginURL: "",
+ apiURL: "",
+ streamingURL: "",
+ fqportal:"",
+ portalValidText:"",
+ portalColor:"",
+ apiValidText:"",
+ apiColor:"",
+ streamingValidText:"",
+ streamingColor:"",
+
+
};
});