/**
* @ngdoc directives
* @name ZonasDeObservacaoFilter
* @module s4c.directives.ZonasDeObservacaoFilter.ZonasDeObservacaoFilter
*
* @description
* `ZonasDeObservacaoFilter` Controller do Filtro do módulo de Zona de Observação
*
*
*/
(function () {
'use strict';
angular.module('s4c.components.zonas-de-observacao', [])
.directive('zonasDeObservacaoFilter', ZonasDeObservacaoFilter);
ZonasDeObservacaoFilter.$inject = [
'ZonasDeObservacaoFilter',
'PermissoesService'
];
function ZonasDeObservacaoFilter(ZonasDeObservacaoFilter, PermissoesService) {
return {
restrict: 'E',
templateUrl: 'app/directives/zonas-de-observacao-filter/zonas-de-observacao-filter.html',
replace: true,
scope: {},
link: function ($scope, $elem, $attrs) {
$scope.res = $scope.$root.res;
angular.extend($scope, {
applyFilter: applyFilter
});
var instance = ZonasDeObservacaoFilter.getInstance($attrs.id);
instance.dataRange = _timeSet();
$scope.dataRange = _timeSet();
PermissoesService.getPermissoes().then(function (perms) {
$scope.permissoesVisualizacao = perms.permissoesVisualizacao;
$scope.permissoesCriacao = perms.permissoesCriacao;
$scope.permissoesEdicao = perms.permissoesEdicao;
$scope.permissoesRemocao = perms.permissoesRemocao;
});
$scope.hasPermission = function () {
return $scope.permissoesVisualizacao.zonaObservacaoPublica;
}
/**
* @method _timeSet
*/
function _timeSet() {
return {
start: moment().subtract(1, 'day').startOf('day').format('D/MM/YYYY HH:mm'),
end: moment().endOf('day').format('D/MM/YYYY HH:mm')
}
};
/**
* @method _setTimeWindow
*/
function _setTimeWindow() {
var start = $scope.dataRange.start;
var end = ($scope.dataRange.end) ? $scope.dataRange.end :
moment().endOf('day').format('D/MM/YYYY HH:mm');
instance.dataRange = {
start: start,
end: end
};
$scope.dataRange = {
start: start,
end: end
};
}
/**
* @method applyFilter
* @param {*} toggle
*/
function applyFilter(toggle) {
_setTimeWindow();
instance.trigger('filterChanged');
if (!toggle) {
$scope.$parent.toogleFilter();
}
}
}
};
}
}());