From c9bb3a2a3e2809a1c2a70d222037529188d95b48 Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Tue, 15 Sep 2015 16:45:08 -0500 Subject: [PATCH 1/3] FS-8102 #resolve #comment Add auto-provision/config support to VC Add support for loading config from external json. config.json in the base path of VC will allow over-ride of arbitrary settings and setting of arbitrary data in the verto.data data store. add ability to specify autologin flag in the configs. add autocall to config.json and make it actually autocall. additionally refactor the call function so that it will actually call something. --- html5/verto/verto_communicator/Gruntfile.js | 1 + .../verto/verto_communicator/src/config.json | 4 ++ .../verto_communicator/src/config.json.sample | 13 ++++ .../verto_communicator/src/contributors.txt | 3 +- .../controllers/DialPadController.js | 25 +++++-- .../controllers/LoginController.js | 71 +++++++++++++------ 6 files changed, 90 insertions(+), 27 deletions(-) create mode 100644 html5/verto/verto_communicator/src/config.json create mode 100644 html5/verto/verto_communicator/src/config.json.sample diff --git a/html5/verto/verto_communicator/Gruntfile.js b/html5/verto/verto_communicator/Gruntfile.js index cef6d68276..13ad96523d 100644 --- a/html5/verto/verto_communicator/Gruntfile.js +++ b/html5/verto/verto_communicator/Gruntfile.js @@ -281,6 +281,7 @@ module.exports = function (grunt) { src: [ '*.{ico,png,txt}', '*.html', + '*.json', 'partials/**/*.html', 'images/{,*/}*.{webp}', 'css/fonts/{,*/}*.*', diff --git a/html5/verto/verto_communicator/src/config.json b/html5/verto/verto_communicator/src/config.json new file mode 100644 index 0000000000..e7b09aae95 --- /dev/null +++ b/html5/verto/verto_communicator/src/config.json @@ -0,0 +1,4 @@ +{ + "login": "1008", + "password": "1234" +} diff --git a/html5/verto/verto_communicator/src/config.json.sample b/html5/verto/verto_communicator/src/config.json.sample new file mode 100644 index 0000000000..a905c6161d --- /dev/null +++ b/html5/verto/verto_communicator/src/config.json.sample @@ -0,0 +1,13 @@ +{ + "extension": "3500", + "name": "Ken Rice", + "email": "krice@freeswitch.org", + "cid": "1008", + "textTo": "1000", + "login": "1008", + "password": "1234", + "autologin": "true", + "autocall": "3500", + "googlelogin": "true", + "wsURL": "wss://gamma.tollfreegateway.com/wss2" +} diff --git a/html5/verto/verto_communicator/src/contributors.txt b/html5/verto/verto_communicator/src/contributors.txt index cf34cd6bd0..bc309438b2 100644 --- a/html5/verto/verto_communicator/src/contributors.txt +++ b/html5/verto/verto_communicator/src/contributors.txt @@ -2,5 +2,6 @@ "Jonatas Oliveira ", "Ítalo Rossi ", "Stefan Yohansson ", - "João Mesquita " + "João Mesquita ", + "Ken Rice " ] diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/DialPadController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/DialPadController.js index dde658af16..8c7589c93d 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/DialPadController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/DialPadController.js @@ -31,7 +31,18 @@ * fill dialpad via querystring [?autocall=\d+] */ if ($location.search().autocall) { - $rootScope.dialpadNumber = $location.search().autocall; + $rootScope.dialpadNumber = $location.search().autocall; + delete $location.search().autocall; + call($rootScope.dialpadNumber); + } + + /** + * fill in dialpad via config.json + */ + if ('autocall' in verto.data) { + $rootScope.dialpadNumber = verto.data.autocall; + delete verto.data.autocall; + call($rootScope.dialpadNumber); } /** @@ -49,10 +60,7 @@ verto.data.call.transfer($rootScope.dialpadNumber); }; - /** - * Call to the number in the $rootScope.dialpadNumber. - */ - $rootScope.call = function(extension) { + function call(extension) { storage.data.onHold = false; storage.data.cur_call = 0; $rootScope.dialpadNumber = extension; @@ -79,6 +87,13 @@ CallHistory.add($rootScope.dialpadNumber, 'outbound'); $location.path('/incall'); } + + /** + * Call to the number in the $rootScope.dialpadNumber. + */ + $rootScope.call = function(extension) { + return call(extension); + } } ]); diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js index 6ea36372cf..8cb88aa7f1 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js @@ -1,25 +1,54 @@ (function() { - 'use strict'; + 'use strict'; - angular - .module('vertoControllers') - .controller('LoginController', ['$scope', '$http', '$location', - 'verto', - function($scope, $http, $location, verto) { - $scope.checkBrowser(); + angular + .module('vertoControllers') + .controller('LoginController', ['$scope', '$http', '$location', 'verto', + function($scope, $http, $location, verto) { + $scope.checkBrowser(); - /** - * using stored data (localStorage) for logon - */ - verto.data.name = $scope.storage.data.name; - verto.data.email = $scope.storage.data.email; - if ($scope.storage.data.login != '' && $scope.storage.data.password != '') { - verto.data.login = $scope.storage.data.login; - verto.data.password = $scope.storage.data.password; - } + /* + * Load the Configs before logging in + * with cache buster + */ + + $http.get(window.location.pathname + '/config.json?cachebuster=' + Math.floor((Math.random()*1000000)+1)) + .success(function(data) { + + /* save these for later as we're about to possibly over write them */ + var name = verto.data.name; + var email = verto.data.email; + + angular.extend(verto.data, data); + + /** + * use stored data (localStorage) for login, allow config.json to take precedence + */ + + if (name != '' && data.name == '') { + verto.data.name = name; + } + if (email != '' && data.email == '') { + verto.data.email = email; + } + if (verto.data.login == '' && verto.data.password == '' && $scope.storage.data.login != '' && $scope.storage.data.password != '') { + verto.data.login = $scope.storage.data.login; + verto.data.password = $scope.storage.data.password; + } + + if (verto.data.autologin == "true" && !verto.data.autologin_done) { + console.debug("auto login per config.json"); + verto.data.autologin_done = true; + $scope.login(); + } + }); + + verto.data.name = $scope.storage.data.name; + verto.data.email = $scope.storage.data.email; + + console.debug('Executing LoginController.'); + } + ]); + +})(); - console.debug('Executing LoginController.'); - } - ]); - -})(); \ No newline at end of file From ab4d024bc373bcc7195297a337f9ff2df9d1da01 Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Mon, 14 Sep 2015 22:55:53 -0500 Subject: [PATCH 2/3] FS-8183 #resolve #comment add google api logins to Verto Communicator --- html5/verto/verto_communicator/bower.json | 1 + html5/verto/verto_communicator/src/index.html | 3 +- .../src/partials/login.html | 12 ++++-- .../src/vertoApp/vertoApp.module.js | 3 +- .../controllers/LoginController.js | 7 +++- .../controllers/MainController.js | 38 +++++++++++++++++++ 6 files changed, 58 insertions(+), 6 deletions(-) diff --git a/html5/verto/verto_communicator/bower.json b/html5/verto/verto_communicator/bower.json index 623a51d1cc..c69b4785d5 100644 --- a/html5/verto/verto_communicator/bower.json +++ b/html5/verto/verto_communicator/bower.json @@ -32,6 +32,7 @@ "angular-prompt": "~1.1.1", "angular-animate": "~1.3.15", "angular-cookies": "~1.3.15", + "angular-directive.g-signin": "~0.1.2", "jquery": "~2.1.4", "angular-fullscreen": "~1.0.1", "ngstorage": "~0.3.9", diff --git a/html5/verto/verto_communicator/src/index.html b/html5/verto/verto_communicator/src/index.html index 0719ad4e9c..5945f72fe5 100644 --- a/html5/verto/verto_communicator/src/index.html +++ b/html5/verto/verto_communicator/src/index.html @@ -71,6 +71,7 @@ + @@ -121,9 +122,9 @@ - + diff --git a/html5/verto/verto_communicator/src/partials/login.html b/html5/verto/verto_communicator/src/partials/login.html index 9df7ba184b..42a1edbe55 100644 --- a/html5/verto/verto_communicator/src/partials/login.html +++ b/html5/verto/verto_communicator/src/partials/login.html @@ -4,6 +4,7 @@

Login

+

Verify the fields bellow and try again.

@@ -45,9 +46,14 @@
-
- Settings - + +
+ +
+
+ + +
diff --git a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js index c12eee4d6b..5895ed2830 100644 --- a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js +++ b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js @@ -13,6 +13,7 @@ 'cgPrompt', '720kb.tooltips', 'ui.gravatar', + 'directive.g+signin', ]); vertoApp.config(['$routeProvider', 'gravatarServiceProvider', @@ -95,4 +96,4 @@ } ]); -})(); \ No newline at end of file +})(); diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js index 8cb88aa7f1..4277898618 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/LoginController.js @@ -3,7 +3,7 @@ angular .module('vertoControllers') - .controller('LoginController', ['$scope', '$http', '$location', 'verto', + .controller('LoginController', ['$scope', '$http', '$location', 'verto', function($scope, $http, $location, verto) { $scope.checkBrowser(); @@ -19,6 +19,11 @@ var name = verto.data.name; var email = verto.data.email; + console.debug("googlelogin: " + data.googlelogin); + if (data.googlelogin){ + $scope.googlelogin = data.googlelogin; + } + angular.extend(verto.data, data); /** diff --git a/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js b/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js index f7e3d5bb91..afeb770bd1 100644 --- a/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js +++ b/html5/verto/verto_communicator/src/vertoControllers/controllers/MainController.js @@ -88,6 +88,10 @@ var disconnectCallback = function(v, connected) { console.debug('Redirecting to login page.'); storage.reset(); + if (typeof gapi !== 'undefined'){ + console.debug(gapi); + gapi.auth.signOut(); + } $location.path('/login'); }; @@ -277,6 +281,40 @@ }); + $scope.$on('event:google-plus-signin-success', function (event,authResult) { + // Send login to server or save into cookie + console.log('Google+ Login Success'); + console.log(authResult); + gapi.client.load('plus', 'v1', gapiClientLoaded); + }); + + function gapiClientLoaded() { + gapi.client.plus.people.get({userId: 'me'}).execute(handleEmailResponse); + } + + function handleEmailResponse(resp){ + var primaryEmail; + for (var i=0; i < resp.emails.length; i++) { + if (resp.emails[i].type === 'account') primaryEmail = resp.emails[i].value; + } + console.debug("Primary Email: " + primaryEmail ); + console.debug("display name: " + resp.displayName); + console.debug("imageurl: " + resp.image.url); + console.debug(resp); + console.debug(verto.data); + verto.data.email = primaryEmail; + verto.data.name = resp.displayName; + storage.data.name = verto.data.name; + storage.data.email = verto.data.email; + + $scope.login(); + } + + $scope.$on('event:google-plus-signin-failure', function (event,authResult) { + // Auth failure or signout detected + console.log('Google+ Login Failure'); + }); + $rootScope.callActive = function(data) { verto.data.mutedMic = storage.data.mutedMic; verto.data.mutedVideo = storage.data.mutedVideo; From 34d72cba985247531c3745d649cc5b1947bc3f48 Mon Sep 17 00:00:00 2001 From: Ken Rice Date: Sun, 20 Sep 2015 00:28:29 -0500 Subject: [PATCH 3/3] remove unused code --- .../verto/verto_communicator/src/vertoApp/vertoApp.module.js | 5 ----- 1 file changed, 5 deletions(-) diff --git a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js index 5895ed2830..2c7cffc381 100644 --- a/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js +++ b/html5/verto/verto_communicator/src/vertoApp/vertoApp.module.js @@ -34,11 +34,6 @@ templateUrl: 'partials/incall.html', controller: 'InCallController' }). - /*when('/contributors', { - title: 'Contributors', - templateUrl: 'partials/contributors.html', - controller: 'ContributorsController', - }).*/ when('/browser-upgrade', { title: '', templateUrl: 'partials/browser_upgrade.html',