/**
* @ngdoc directives
* @name MensageriaFilterService
* @module s4c.directives.MensageriaFilter.mensageriafilterService
*
* @description
* `MensageriaFilterService` Componente para acesso ao api do backend e/ou comunicação entre controllers
*
*
*/
(function () {
angular.module('s4c.components.mensageria-filter')
.factory('MensageriaFilter', MensageriaFilter);
MensageriaFilter.$inject = [
'MensageriaService',
'localize'
];
function MensageriaFilter() {
var service = {
_filtros: {},
getInstance: getInstance
};
function getInstance(id) {
if (!service._filtros[id]) {
service._filtros[id] = new Service()
}
return service._filtros[id];
}
function Service() {
var self = this;
angular.extend(self, {
on: on,
filters: {},
trigger: trigger,
filtrar: filtrar,
events: {
'filterChanged': []
}
});
function on(eventName, callback) {
self.events[eventName].push(callback);
}
function trigger(eventName) {
_.each(self.events[eventName], function (callback) {
callback();
});
}
/**
* @method filtrar
* @param {*} usuario
*/
function filtrar(usuario) {
if (self.filters.departamento > -1) {
if (usuario.DepartamentoId !== self.filters.departamento) {
return false
}
}
if (self.filters.perfil > -1) {
if (!_.includes(usuario.perfis, self.filters.perfil)) {
return false;
}
}
if (self.filters.status > -1) {
if (usuario.online != self.filters.status) {
return false;
}
}
return true;
}
}
return service;
}
}());