angular.module('focaModal') .controller('focaModalConfirmController', [ '$uibModalInstance', '$scope', 'textoModal', function($uibModalInstance, $scope, textoModal) { $scope.textoModal = textoModal; $scope.cancelar = function() { $uibModalInstance.dismiss(false); }; $scope.aceptar = function() { $uibModalInstance.close(true); }; } ]) .controller('focaModalAlertController', [ '$uibModalInstance', '$scope', 'textoModal', function($uibModalInstance, $scope, textoModal) { $scope.textoModal = textoModal; $scope.aceptar = function() { $uibModalInstance.close(true); }; } ]) .controller('focaModalFechaController', [ '$uibModalInstance', '$scope', 'parametros', function($uibModalInstance, $scope, parametros) { $scope.parametros = parametros; $scope.fecha = new Date(); $scope.options = {}; if (parametros.minDate) $scope.options.minDate = parametros.minDate; $scope.cancelar = function() { $uibModalInstance.dismiss(); }; $scope.aceptar = function() { $uibModalInstance.close($scope.fecha); }; } ]) .controller('focaModalPromptController', [ '$uibModalInstance', '$scope', 'options', 'focaModalService', function($uibModalInstance, $scope, options, focaModalService) { $scope.options = options; $scope.cancelar = function() { $uibModalInstance.dismiss(); }; $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(','); var result = true; arr.forEach(function(email) { var val = String(email).trim().toLowerCase(); if (!re.test(val)) result = false; }); return result; } } ]) .controller('focaModalMailController', [ '$scope', '$uibModalInstance', 'FileSaver', 'Blob', 'focaModalEnviarMailService', 'focaModalService', 'options', function($scope, $uibModalInstance, FileSaver, Blob, focaModalEnviarMailService, focaModalService, options) { var regexMail = /^(([^<>()\[\]\\.,;:\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,}))$/; $scope.descargado = false; $scope.correoEnviado = false; $scope.correoNoEnviado = false; $scope.esperando = false; $scope.titulo = options.titulo; $scope.mailCliente = options.envio.mailCliente; $scope.aceptar = function() { $uibModalInstance.close(); }; $scope.salir = function() { $uibModalInstance.close($scope.descargado); }; $scope.imprimir = function () { $scope.descargado = true; $scope.esperando = true; focaModalEnviarMailService .imprimirComprobante(options.descarga.url, options.options) .then(function(res) { var data = new Blob([res.data], {type: 'application/pdf'}); FileSaver.saveAs( data, options.descarga.nombre ); $scope.esperando = false; }); }; $scope.enviarCorreo = function(key) { if (key === 13) { if (!validarMail()) { focaModalService.alert('Ingrese email/s válido/s'); return; } $scope.descargado = true; $scope.esperando = true; Object.assign(options.options, {receiver: $scope.mailCliente}); focaModalEnviarMailService .enviarCorreo(options.envio.url, options.options) .then(function() { $scope.correoEnviado = true; $scope.esperando = false; }, function() { $scope.esperando = false; $scope.correoNoEnviado = true; }); } }; function validarMail() { var emails = $scope.mailCliente.split(','); var result = true; emails.forEach(function(email) { if (!regexMail.test(email.trim())) result = false; }); return result; } } ]);