angular.module('focaModal') .controller('focaModalMailController', [ '$scope', '$uibModalInstance', 'FileSaver', 'Blob', 'focaModalService', 'options', function($scope, $uibModalInstance, FileSaver, Blob, 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; focaModalService .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}); focaModalService .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; } } ]);