diff options
| author | Dhruv Patel <dhp@odoo.com> | 2020-06-23 10:10:40 +0000 |
|---|---|---|
| committer | Aaron Bohy <aab@odoo.com> | 2020-06-23 12:45:10 +0000 |
| commit | 8a1e1c0c4cac3034bf6caada0004680942b04703 (patch) | |
| tree | a7bfd30589d359144f0840a7969a3717726f3e75 /addons/web/static/src/js | |
| parent | f1b7a2b1472e3e27b8e37032a231274f3c1c03c1 (diff) | |
[FIX] web: daterangepicker not working in firefox
A recent commit [1] made the daterangepicker automatically close
itself on scroll events. However, in firefox, a scroll event is
triggered when the daterangepicker opens. This event is triggered
inside the picker itself. As a consequence, the picker is closed
directly. This commit solves the issue by only closing it on scroll
events occurring outside the picker.
[1] https://github.com/odoo/odoo/commit/e6730c6e928587cd7438340cc101c57fee34220b
closes odoo/odoo#53497
Task: 2282571
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
Diffstat (limited to 'addons/web/static/src/js')
| -rw-r--r-- | addons/web/static/src/js/fields/basic_fields.js | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/addons/web/static/src/js/fields/basic_fields.js b/addons/web/static/src/js/fields/basic_fields.js index 7ef6a10368d..0a58d9e4895 100644 --- a/addons/web/static/src/js/fields/basic_fields.js +++ b/addons/web/static/src/js/fields/basic_fields.js @@ -595,10 +595,6 @@ var LinkButton = AbstractField.extend({ var FieldDateRange = InputField.extend({ className: 'o_field_date_range', - events: Object.assign({}, InputField.prototype.events, { - 'show.daterangepicker': '_onDateRangePickerShow', - 'hide.daterangepicker': '_onDateRangePickerHide', - }), tagName: 'span', jsLibs: [ '/web/static/lib/daterangepicker/daterangepicker.js', @@ -702,6 +698,8 @@ var FieldDateRange = InputField.extend({ this.$el.daterangepicker(this.dateRangePickerOptions); this.$el.on('apply.daterangepicker', this._applyChanges.bind(this)); + this.$el.on('show.daterangepicker', this._onDateRangePickerShow.bind(this)); + this.$el.on('hide.daterangepicker', this._onDateRangePickerHide.bind(this)); this.$el.off('keyup.daterangepicker'); this.$pickerContainer = this.$el.data('daterangepicker').container; @@ -740,7 +738,7 @@ var FieldDateRange = InputField.extend({ */ _onDateRangePickerShow() { this._onScroll = ev => { - if (ev.target !== this.$el.data('daterangepicker').element.get(0)) { + if (!this.$pickerContainer.get(0).contains(ev.target)) { this.$el.data('daterangepicker').hide(); } }; |
