axelor / axelor-open-platform

Open source Java framework for business application development
http://axelor.com
Other
391 stars 298 forks source link

Angular.js date filter overriding issue #85

Open Cedric-Guerrier opened 3 years ago

Cedric-Guerrier commented 3 years ago

I use angular.js date filter in template for transforming long in date like {{record.duration * 1000 | date: 'HH:mm' : '+0000'}}. With latest version 5.4.0 this filter is broken. The override angular.js date filter seems to be the origin :

  // override angular.js date filter
  ui.filter('date', function() {
    return function(value, format) {
      if (!value || !value.match(/\d{4,}\D\d{2}\D\d{2}/)) {
        return value;
      }
      if (format === undefined || format == null) {
        return value && value.length > 10 ? formatDateTime(value) : formatDate(value);
      }
      return moment(value).locale(getBrowserLocale()).format(format);
    };
  });

Maybe update test "if (!value || !value.match(/\d{4,}\D\d{2}\D\d{2}/))" like "if (!value || ( typeof value == "string" && !value.match(/\d{4,}\D\d{2}\D\d{2}/) ) )"

Axelor Open Platform version 5.4.0

Regards