diff --git a/addons/web/static/lib/tempusdominus/tempusdominus.js b/addons/web/static/lib/tempusdominus/tempusdominus.js index 80619bfe2da..6a1d9544fec 100644 --- a/addons/web/static/lib/tempusdominus/tempusdominus.js +++ b/addons/web/static/lib/tempusdominus/tempusdominus.js @@ -490,7 +490,7 @@ var DateTimePicker = function ($, moment) { DateTimePicker.prototype._change = function _change(e) { var val = $(e.target).val().trim(), parsedDate = val ? this._parseInputDate(val) : null; - this._setValue(parsedDate); + this._setValue(parsedDate, 0); // Odoo FIX: if a valid date is replaced by an invalid one, lib will crash, see https://github.com/tempusdominus/bootstrap-4/issues/223 e.stopImmediatePropagation(); return false; }; diff --git a/addons/web/static/src/js/public/public_root.js b/addons/web/static/src/js/public/public_root.js index f684df2b629..93e1c4fd92e 100644 --- a/addons/web/static/src/js/public/public_root.js +++ b/addons/web/static/src/js/public/public_root.js @@ -84,6 +84,8 @@ var PublicRoot = publicWidget.RootWidget.extend({ $('input, textarea').placeholder(); } + this.$el.children().on('error.datetimepicker', this._onDateTimePickerError.bind(this)); + return Promise.all(defs); }, @@ -316,6 +318,15 @@ var PublicRoot = publicWidget.RootWidget.extend({ _onDisableOnClick: function (ev) { $(ev.currentTarget).addClass('disabled'); }, + /** + * Library clears the wrong date format so just ignore error + * + * @private + * @param {Event} ev + */ + _onDateTimePickerError: function (ev) { + return false; + }, }); return { diff --git a/addons/website/static/src/js/menu/content.js b/addons/website/static/src/js/menu/content.js index 6b163b6b34f..9871f01b55b 100644 --- a/addons/website/static/src/js/menu/content.js +++ b/addons/website/static/src/js/menu/content.js @@ -25,6 +25,7 @@ var PagePropertiesDialog = weWidgets.Dialog.extend({ 'click input#visibility_password': '_onPasswordClicked', 'change input#visibility_password': '_onPasswordChanged', 'change select#visibility': '_onVisibilityChanged', + 'error.datetimepicker': '_onDateTimePickerError', }), /** @@ -423,6 +424,14 @@ var PagePropertiesDialog = weWidgets.Dialog.extend({ this.$('.show_group_id').toggleClass('d-none', ev.target.value !== 'restricted_group'); this.$('#visibility_password').attr('required', ev.target.value === 'password'); }, + /** + * Library clears the wrong date format so just ignore error + * + * @private + */ + _onDateTimePickerError: function (ev) { + return false; + }, /** * @private */