/**
* @ngdoc directives
* @name RotasOlimpicasFilter
* @module s4c.directives.rotasOlimpicasFilter.RotasOlimpicasFilter
*
* @description
* `RotasOlimpicasFilter` Controller do Filtro da funcionalidade de Rotas Olímpicas
*
*/
(function () {
'use strict';
function RotasOlimpicasFilter(RotasOlimpicasFilter) {
return {
restrict: 'E',
templateUrl: 'app/directives/rotas-olimpicas-filter/rotas-olimpicas-filter.html',
replace: true,
scope: {},
link: function ($scope, $elem, $attrs) {
angular.extend($scope, {
applyFilter: applyFilter
});
var instance = RotasOlimpicasFilter.getInstance($attrs.id);
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) {
_setTimeWindow();
instance.trigger('filterChanged');
if (!toggle) {
$scope.$parent.toogleFilter();
}
}
}
};
}
RotasOlimpicasFilter.$inject = ['RotasOlimpicasFilter'];
angular.module('s4c.components.rotas-olimpicas')
.directive('rotasOlimpicasFilter', RotasOlimpicasFilter);
}());