service.js 2.78 KB
angular.module('focaBotoneraLateral')
    .service('focaBotoneraLateralService', ['$localStorage',
    function($localStorage) {

        this.botones = {
            teclado: true,
            salir: false,
            cancelar: false,
            pausar: false,
            guardar: false,
            guardando: false,
            funcionGuardar: undefined,
            pathCancelar: undefined,
            custom: []
        };

        this.pausarData = {
            label: '',
            val: ''
        };

        this.rutasPausadas = {
            label: 'rutas',
            val: []
        };

        this.showTeclado = function(value) {
            this.botones.teclado = value;
        };
        this.showSalir = function(value) {
            this.botones.custom = [];
            this.botones.salir = value;
        };
        this.showPausar = function(value) {
            this.botones.custom = [];
            this.botones.pausar = value;
        };
        this.setPausarData = function(obj) {
            this.pausarData = obj;
        };
        this.setRutasPausadas = function(obj) {
            var auxArray = [];
            this.rutasPausadas.val.push(obj.val);
            angular.forEach(this.rutasPausadas.val, function(ruta) {
                var exists = false;
                angular.forEach(auxArray, function(val2) {
                  if(angular.equals(ruta, val2)){ exists = true }; 
                });
                if(exists == false && ruta !== "") { auxArray.push(ruta); }
              });
              
              this.rutasPausadas.val = auxArray;
        };
        this.showCancelar = function(value, path) {
            this.botones.custom = [];
            this.botones.cancelar = value;
            this.botones.pathCancelar = (path) ? path : undefined;
        };
        this.showGuardar = function(value, funcion) {
            angular.element('#guardar').removeClass('guardado');
            this.botones.custom = [];
            this.botones.guardar = value;
            if (value) this.botones.funcionGuardar = funcion;
        };
        this.addCustomButton = function(title, funcion) {
            this.botones.custom.push({
                title: title,
                funcion: funcion
            });
        };
        this.startGuardar = function() {
            this.botones.guardando = true;
        };
        this.endGuardar = function(guardado) {
            this.botones.guardando = false;
            if (guardado) angular.element('#guardar').addClass('guardado');
        };

        this.setLSItem = function() {
            $localStorage[this.pausarData.label] = JSON.stringify(this.pausarData.val);
        };

        this.setLSRuta = function() {
            $localStorage[this.rutasPausadas.label] = JSON.stringify(this.rutasPausadas.val);
        };
    }]);