/**
* @ngdoc directives
* @name Timepicker
* @module s4c.directives.timepicker.Timepicker
*
* @description
* `Timepicker` Controller do módulo de Timepicker
*
*
*/
(function () {
'use strict';
function timepickerCtrl($scope, $rootScope, $sce, localize) {
$scope.mudei = function (val) {
$scope.data = val;
};
}
timepickerCtrl.$inject = [
'$scope',
'$rootScope',
'$sce',
'localize'
];
function timepicker() {
return {
restrict: 'AE',
templateUrl: 'app/directives/timepicker/timepicker.html',
replace: true,
scope: {
data: '=data',
min: '=min',
max: '=max',
minTime: '=minTime',
maxTime: '=maxTime',
theme: '=theme',
pickdate: '=pickdate',
picktime: '=picktime',
format: '=format',
closeOnDateSelect: '=',
disabled: '@',
},
controller: timepickerCtrl,
link: function ($scope, $elem, $attrs, localize) {
$scope.res = $scope.$root.res;
$scope.time = $scope.data !== '*' ? $scope.data : '';
$scope.label = $attrs.label;
if ($scope.closeOnDateSelect === null || $scope.closeOnDateSelect === undefined) {
$scope.closeOnDateSelect = true;
}
if (typeof $scope.pickdate === undefined) {
$scope.pickdate = true;
}
if (typeof $scope.picktime === undefined) {
$scope.picktime = true;
}
if (typeof $scope.theme === undefined) {
$scope.theme = 'dark';
}
if (typeof $scope.format === undefined) {
$scope.format = 'd/m/Y H:m';
}
/**
* @method $watch
*/
$scope.$watch('data', function () {
if (typeof $scope.data === 'number' && !isNaN($scope.data)) {
$scope.data = moment($scope.data).format('D/M/Y H:m');
} else {
$scope.time = $scope.data !== '*' ? $scope.data : '';
}
var language;
if ($scope.res("COMUM_LOCALE") == "pt-BR") {
language = 'pt-BR';
} else {
language = 'en';
}
$scope.datetimepicker = $elem.find('#datetimepicker');
$scope.datetimepicker.datetimepicker({
scrollInput: false,
theme: $scope.theme,
format: $scope.format,
lang: language,
datepicker: $scope.pickdate,
timepicker: $scope.picktime,
closeOnDateSelect: $scope.closeOnDateSelect,
step: 15,
onShow: function () {
this.setOptions({
minDate: $scope.min ? $scope.min : false,
maxDate: $scope.max ? $scope.max : false,
minTime: $scope.minTime ? $scope.minTime : false,
maxTime: $scope.maxTime ? $scope.maxTime : false,
formatDate: 'd.m.Y',
});
},
onSelectTime: function () {
$scope.$apply();
}
});
});
}
};
}
angular.module('s4c.directives.timepicker', [
'datePicker',
'ui.date'
])
.directive('timepicker', timepicker);
}());