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