input_date.ts 970 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. ///<reference path="../../../headers/common.d.ts" />
  2. import _ from 'lodash';
  3. import angular from 'angular';
  4. import moment from 'moment';
  5. export function inputDateDirective() {
  6. return {
  7. restrict: 'A',
  8. require: 'ngModel',
  9. link: function ($scope, $elem, attrs, ngModel) {
  10. var format = 'YYYY-MM-DD HH:mm:ss';
  11. var fromUser = function (text) {
  12. if (text.indexOf('now') !== -1) {
  13. return text;
  14. }
  15. var parsed;
  16. if ($scope.ctrl.isUtc) {
  17. parsed = moment.utc(text, format);
  18. } else {
  19. parsed = moment(text, format);
  20. }
  21. return parsed.isValid() ? parsed : undefined;
  22. };
  23. var toUser = function (currentValue) {
  24. if (moment.isMoment(currentValue)) {
  25. return currentValue.format(format);
  26. } else {
  27. return currentValue;
  28. }
  29. };
  30. ngModel.$parsers.push(fromUser);
  31. ngModel.$formatters.push(toUser);
  32. }
  33. };
  34. }