diff --git a/addons/web/static/src/js/chrome/search_inputs.js b/addons/web/static/src/js/chrome/search_inputs.js index a2923d1a607..59126ecb37c 100644 --- a/addons/web/static/src/js/chrome/search_inputs.js +++ b/addons/web/static/src/js/chrome/search_inputs.js @@ -341,7 +341,8 @@ var BooleanField = SelectionField.extend(/** @lends instance.web.search.BooleanF */ var DateField = Field.extend(/** @lends instance.web.search.DateField# */{ value_from: function (facetValue) { - return time.date_to_str(facetValue.get('value')); + var serverFormat = (this.attrs && this.attrs.type === 'datetime') ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD'; + return facetValue.get('valueAsMoment').clone().format(serverFormat); }, complete: function (needle) { // Make sure the needle has a correct format before the creation of the moment object. See @@ -355,6 +356,7 @@ var DateField = Field.extend(/** @lends instance.web.search.DateField# */{ } var m = moment(v, t === 'datetime' ? 'YYYY-MM-DD HH:mm:ss' : 'YYYY-MM-DD'); + if (!m.isValid()) { return $.when(null); } var date_string = field_utils.format[t](m, {type: t}); var label = _.str.sprintf(_.str.escapeHTML( @@ -366,7 +368,7 @@ var DateField = Field.extend(/** @lends instance.web.search.DateField# */{ facet: { category: this.attrs.string, field: this, - values: [{label: date_string, value: m.toDate()}] + values: [{label: date_string, value: m.toDate(), valueAsMoment: m}] } }]); } @@ -383,11 +385,7 @@ var DateField = Field.extend(/** @lends instance.web.search.DateField# */{ * @class * @extends instance.web.DateField */ -var DateTimeField = DateField.extend(/** @lends instance.web.search.DateTimeField# */{ - value_from: function (facetValue) { - return time.datetime_to_str(facetValue.get('value')); - } -}); +var DateTimeField = DateField; var ManyToOneField = CharField.extend({ default_operator: {},