[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>
This commit is contained in:
@@ -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();
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user