/**
* @ngdoc managers
* @name PlanejamentoManager
* @module s4c.managers.PlanejamentoManager
*
* @description
* `PlanejamentoManager` Componente para comunicação entre uma página html qualquer e o controller da diretiva
*
*
*/
(function () {
'use strict';
function PlanejamentoManager(MainState, PlanejamentoDesenhoService, MapaService) {
return {
'ativo': false,
'zindex': 30,
'marker': null,
/**
* @method abrir
* @param {*} payload
* @param {*} ponto
* @param {*} flag
*/
'abrir': function (payload, ponto, flag) {
this.fechar();
var self = this;
var planejamento = MainState.getDirective('planejamento');
var PlanejamentoManager = MainState.getManager('PlanejamentoManager');
var usuario = MainState.getManager('UserInfo');
if (this.ativo) {
planejamento.fecharPlanejamento();
}
if (!ponto && flag) {
PlanejamentoManager.ativo = true;
planejamento.ativo = true;
planejamento.abrirPlanejamento({
draggable: function () {
},
marker: {
getLatLng: function () {
return L.latLng(
JSON.parse(payload.geojson).coordinates.reverse()
);
}
}
}, payload, usuario);
} else if ((!ponto && !flag) && !payload) {
MapaService.colocarIcon(function (obj) {
self.marker = obj.marker;
PlanejamentoManager.ativo = true;
planejamento.ativo = true;
planejamento.abrirPlanejamento(obj, payload, usuario);
});
} else {
PlanejamentoManager.ativo = true;
planejamento.ativo = true;
planejamento.abrirPlanejamento(ponto, payload, usuario);
}
MainState.detalhamentosAtivos.planejamento = this;
},
/**
* @method fechar
* @param {*} limpar
*/
'fechar': function (limpar) {
PlanejamentoDesenhoService.state.isVisible = false;
var planejamento = MainState.getDirective('planejamento');
var PlanejamentoManager = MainState.getManager('PlanejamentoManager');
var usuario = MainState.getManager('UserInfo');
var desenhando = planejamento.fecharPlanejamento();
if (this.marker) {
this.marker._map.removeLayer(this.marker);
}
if (desenhando) {
MapaService.removerControleDesenho();
MapaService.removerPontosPlanejamento();
}
this.ativo = false;
this.marker = null;
delete MainState.detalhamentosAtivos.planejamento;
},
/**
* @method ativarCamada
* @param {*} obj
* @param {*} cb
*/
'ativarCamada': function (obj, cb) {
MapaService.ativarCamada(obj, cb);
},
/**
* @method desativarCamada
* @param {*} obj
* @param {*} camada
*/
'desativarCamada': function (obj, camada) {
MapaService.desativarCamada(obj, camada);
},
/**
* @method ativarKml
* @param {*} obj
* @param {*} cb
*/
'ativarKml': function (obj, cb) {
MapaService.ativarKml(obj, cb);
},
/**
* @method pegarGeometrias
*/
'pegarGeometrias': function () {
return MapaService.pegarGeometrias();
},
/**
* @method pegarPontosDaRota
*/
'pegarPontosDaRota': function () {
return MapaService.pegarPontosDaRota()
}
};
}
PlanejamentoManager.$inject = ['MainState', 'PlanejamentoDesenhoService', 'MapaService'];
angular.module('s4c.managers')
.service('PlanejamentoManager', PlanejamentoManager);
})();