summaryrefslogtreecommitdiff
path: root/addons/web/static/src
diff options
context:
space:
mode:
authorDhruv Patel <dhp@odoo.com>2020-06-23 10:10:40 +0000
committerAaron Bohy <aab@odoo.com>2020-06-23 12:45:10 +0000
commit8a1e1c0c4cac3034bf6caada0004680942b04703 (patch)
treea7bfd30589d359144f0840a7969a3717726f3e75 /addons/web/static/src
parentf1b7a2b1472e3e27b8e37032a231274f3c1c03c1 (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')
-rw-r--r--addons/web/static/src/js/fields/basic_fields.js8
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();
}
};