diff --git a/src/js/controller.js b/src/js/controller.js index 258f8a1..72d074f 100644 --- a/src/js/controller.js +++ b/src/js/controller.js @@ -34,17 +34,32 @@ angular.module('focaModal') } ]) .controller('focaModalPromptController', [ - '$uibModalInstance', '$scope', 'titulo', 'initValue', 'textarea', 'readonly', - function($uibModalInstance, $scope, titulo, initValue, textarea, readonly) { - $scope.readonly = readonly; - $scope.textarea = textarea; - $scope.titulo = titulo; - $scope.value = initValue; + '$uibModalInstance', '$scope', 'options', 'focaModalService', + function($uibModalInstance, $scope, options, focaModalService) { + + $scope.options = options; $scope.cancelar = function() { $uibModalInstance.dismiss(); }; - $scope.aceptar = function() { - $uibModalInstance.close($scope.value); + $scope.aceptar = function(key) { + if (key === 13) { + if(options.email && !validateEmails($scope.options.value)) { + focaModalService.alert('Ingrese email/s vĂ¡lido/s'); + return; + } + + $uibModalInstance.close($scope.options.value); + } }; + + function validateEmails(emails) { + var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; + var arr = emails.split(','); + + arr.forEach(function(email) { + if(!re.test(String(email).trim().toLowerCase())) return false; + }); + return true; + } } ]); diff --git a/src/js/controllerModal.js b/src/js/controllerModal.js index eed4e01..ece1e59 100644 --- a/src/js/controllerModal.js +++ b/src/js/controllerModal.js @@ -135,7 +135,7 @@ angular.module('focaModal') return true; } return false; - } + }; function calcularPages(paginaActual) { var paginas = []; diff --git a/src/js/service.js b/src/js/service.js index 71d12f9..c41cb15 100644 --- a/src/js/service.js +++ b/src/js/service.js @@ -1,5 +1,5 @@ angular.module('focaModal') - .factory('focaModalService', [ + .service('focaModalService', [ '$uibModal', 'API_ENDPOINT', '$http', function($uibModal, API_ENDPOINT, $http) { return { @@ -71,18 +71,23 @@ angular.module('focaModal') } ); }, - prompt: function(titulo, initValue, textarea, readonly){ - textarea = textarea ? true : false; - readonly = readonly ? true : false; + prompt: function(options) { + //DEFAULT VALUES + var defaultValues = { + titulo: '', + value: '', + textarea: false, + readonly: false, + email: false + }; + options = Object.assign(defaultValues, options); + return $uibModal.open({ templateUrl: 'modal-prompt.html', controller: 'focaModalPromptController', size: 'md', resolve: { - titulo: function() {return titulo;}, - initValue: function() {return initValue;}, - textarea: function() {return textarea;}, - readonly: function() {return readonly;} + options: function() {return options;}, } }) .result.then( diff --git a/src/views/modal-prompt.html b/src/views/modal-prompt.html index 5be0bbb..1c27dd2 100644 --- a/src/views/modal-prompt.html +++ b/src/views/modal-prompt.html @@ -1,22 +1,24 @@