service.js 4.67 KB
angular.module('focaModal')
    .factory('focaModalService', [
        '$uibModal', 'API_ENDPOINT', '$http',
        function($uibModal, API_ENDPOINT, $http) {
            return {
                confirm: function(textoModal) {
                    return $uibModal.open({
                        templateUrl: 'modal-confirm.html',
                        controller: 'focaModalConfirmController',
                        animation: false,
                        backdrop: false,
                        resolve: { textoModal: function() { return textoModal; } }
                    })
                        .result.then(
                            function(resultado) {
                                return resultado;
                            }
                        );
                },
                alert: function(textoModal) {
                    return $uibModal.open({
                        templateUrl: 'modal-alert.html',
                        controller: 'focaModalAlertController',
                        animation: false,
                        backdrop: false,
                        resolve: { textoModal: function() { return textoModal; } }
                    })
                        .result.then(
                            function(resultado) {
                                return resultado;
                            }
                        );
                },
                modal: function(parametrosModal) {
                    parametrosModal.size = (typeof parametrosModal.size  === 'undefined') ?
                        'lg' : parametrosModal.size;

                    return $uibModal.open({
                        templateUrl: 'foca-modal.html',
                        controller: 'focaModalController',
                        size: parametrosModal.size,
                        resolve: {
                            parametrosModal: function() { return parametrosModal; }
                        }
                    })
                        .result.then(
                            function(resultado) {
                                return resultado;
                            }
                        );
                },
                getEntidad: function(filters, query, tipo, json) {
                    if (tipo === 'POST') {
                        return $http.post(API_ENDPOINT.URL + query, json);
                    } else {
                        return $http.get(API_ENDPOINT.URL + query, {nombre: filters});
                    }
                },
                modalFecha: function(parametros) {
                    return $uibModal.open({
                        templateUrl: 'foca-fecha.html',
                        controller: 'focaModalFechaController',
                        size: 'md',
                        resolve: {
                            parametros: function() { return parametros; }
                        }
                    })
                    .result.then(
                        function(resultado) {
                            return resultado;
                        }
                    );
                },
                prompt: function(options) {
                    return $uibModal.open({
                        templateUrl: 'modal-prompt.html',
                        controller: 'focaModalPromptController',
                        size: 'md',
                        resolve: {
                            options: function() {return options;},
                        }
                    })
                    .result.then(
                        function(resultado) {
                            return resultado;
                        }
                    );
                },
                mail: function(options) {
                    return $uibModal.open({
                        templateUrl: 'modal-mail.html',
                        controller: 'focaModalMailController',
                        size: 'md',
                        resolve: {
                            options: function() {return options;},
                        }
                    })
                    .result.then(
                        function(resultado) {
                            return resultado;
                        }
                    );
                },
                imprimirComprobante: function(url, options) {
                    return $http.post(
                        API_ENDPOINT.URL + url,
                        options,
                        {responseType: 'arraybuffer'}
                    );
                },
                enviarCorreo: function(url, options) {
                    return $http.post(API_ENDPOINT.URL + url, options);
                }
            };
        }
    ]);