diff options
| author | Romain Derie <rde@odoo.com> | 2020-10-22 09:53:34 +0000 |
|---|---|---|
| committer | Romain Derie <rde@odoo.com> | 2020-11-05 14:18:52 +0000 |
| commit | bcfbc3ea11814931c5d1f8ce3c44b1756bbfc439 (patch) | |
| tree | 6569d6da10618c779c278fc9e2fb2e86f8a75d17 /addons/website/static/src | |
| parent | 631030ae179c65ae0d99603046b5a09ffe00c408 (diff) | |
[FIX] web: prevent crashes from tempusdominus
The BS4 tempusdominus lib has 2 issues within Odoo:
1. On wrong string formating (eg typing "33"), the lib would trigger its own
error "datetimepicker.error" that would be catch in our crash manager making
it display a modal error.
This is generally handled by catching that event and preventing it to bubble
to the crash manager, see:
Datepicker widget: https://github.com/odoo/odoo/blame/00b61c752e2cf514fdfb291ee36344e5af3b04dc/addons/web/static/src/js/widgets/date_picker.js#L128
OWL datepicker widget: https://github.com/odoo/odoo/blame/00b61c752e2cf514fdfb291ee36344e5af3b04dc/addons/web/static/src/js/components/datepicker.js#L43
Snippets options: https://github.com/odoo/odoo/blame/00b61c752e2cf514fdfb291ee36344e5af3b04dc/addons/web_editor/static/src/js/editor/snippets.options.js#L1646
2. If there is a valid date, and an user enter an unvalid date, the lib crashed
by throwing `Cannot read property 'format' of undefined'`.
Datepicker widget: https://github.com/odoo/odoo/blame/00b61c752e2cf514fdfb291ee36344e5af3b04dc/addons/web/static/src/js/widgets/date_picker.js#L94 (fbbfa6ddca and 5481c429efb)
OWL datepicker widget: https://github.com/odoo/odoo/blame/00b61c752e2cf514fdfb291ee36344e5af3b04dc/addons/web/static/src/js/components/datepicker.js#L149
Snippets options: https://github.com/odoo/odoo/blame/00b61c752e2cf514fdfb291ee36344e5af3b04dc/addons/web_editor/static/src/js/editor/snippets.options.js#L1617
Note that the issue was reported at https://github.com/tempusdominus/bootstrap-4/issues/223
Those errors can be seen for instance in Page Properties dialog (publish date
field) and in the form builder snippet if you add a date(time) field.
task-2335403
closes odoo/odoo#60514
Signed-off-by: Romain Derie <rdeodoo@users.noreply.github.com>
Diffstat (limited to 'addons/website/static/src')
| -rw-r--r-- | addons/website/static/src/js/menu/content.js | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/addons/website/static/src/js/menu/content.js b/addons/website/static/src/js/menu/content.js index dac8087bd73..4ba5eb664e7 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', }), /** @@ -425,6 +426,14 @@ var PagePropertiesDialog = weWidgets.Dialog.extend({ 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 */ _onPasswordClicked: function (ev) { |
