/**
* @ngdoc directives
* @name RotasFilter
* @module s4c.directives.rotasFilter.RotasFilter
*
* @description
* `RotasFilter` Controller do Filtro do módulo de Rotas
*
*
*/
(function () {
'use strict';
function RotasFilter(RotasFilter, Departamento, localize) {
return {
restrict: 'E',
templateUrl: 'app/directives/rotas-filter/rotas-filter.html',
replace: true,
scope: {},
link: function ($scope, $elem, $attrs) {
$scope.res = $scope.$root.res;
angular.extend($scope, {
applyFilter: applyFilter,
marcarDesmarcarTodos: marcarDesmarcarTodos
});
$scope.marcar_todos = true;
var instance = RotasFilter.getInstance($attrs.id);
Departamento
.getAgencias()
.then(function (departamentos) {
instance.agencias = _.map(departamentos, function (departamento) {
departamento.ativo = true;
return departamento;
});
$scope.agencias = instance.agencias;
});
instance.dataRange = _timeSet();
$scope.dataRange = {
start: moment().subtract(1, 'day').startOf('day').format('D/MM - HH:mm'),
end: moment().endOf('day').format('D/MM - HH:mm')
};
/**
* @method _timeSet
*/
function _timeSet() {
return {
start: moment().subtract(1, 'day').startOf('day').format(),
end: moment().endOf('day').format()
}
};
/**
* @method _setTimeWindow
*/
function _setTimeWindow() {
var start = ($scope.dataRange.start) ?
moment($scope.dataRange.start, 'D/MM - HH:mm').format() :
null;
var end = ($scope.dataRange.end) ?
moment($scope.dataRange.end, 'D/MM - HH:mm').format() :
null;
instance.dataRange = {
start: start,
end: end
};
}
/**
* @method applyFilter
* @param {*} toggle
*/
function applyFilter(toggle) {
instance.trigger('filterChanged');
if (!toggle) {
$scope.$parent.toogleFilter();
}
}
/**
* @method marcarDesmarcarTodos
*/
function marcarDesmarcarTodos() {
if ($scope.marcar_todos) {
angular.forEach($scope.agencias, function (agencia) {
agencia.ativo = false;
});
} else {
angular.forEach($scope.agencias, function (agencia) {
agencia.ativo = true;
});
}
}
}
};
}
RotasFilter.$inject = ['RotasFilter', 'Departamento', 'localize'];
angular.module('s4c.components.rotas')
.directive('rotasFilter', RotasFilter);
}());