import moment from 'moment'; import * as dateMath from 'app/core/utils/datemath'; export function inputDateDirective() { return { restrict: 'A', require: 'ngModel', link: function($scope, $elem, attrs, ngModel) { var format = 'YYYY-MM-DD HH:mm:ss'; var fromUser = function(text) { if (text.indexOf('now') !== -1) { if (!dateMath.isValid(text)) { ngModel.$setValidity('error', false); return undefined; } ngModel.$setValidity('error', true); return text; } var parsed; if ($scope.ctrl.isUtc) { parsed = moment.utc(text, format); } else { parsed = moment(text, format); } if (!parsed.isValid()) { ngModel.$setValidity('error', false); return undefined; } ngModel.$setValidity('error', true); return parsed; }; var toUser = function(currentValue) { if (moment.isMoment(currentValue)) { return currentValue.format(format); } else { return currentValue; } }; ngModel.$parsers.push(fromUser); ngModel.$formatters.push(toUser); }, }; }