diff --git a/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.js b/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.js index bfef855dab1..78c767ea3d6 100644 --- a/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.js +++ b/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.js @@ -1,7 +1,7 @@ /** @odoo-module **/ import { _t } from "../l10n/translation"; -import { Component, useState } from "@odoo/owl"; +import { Component, useRef, useState } from "@odoo/owl"; import { Dialog } from "../dialog/dialog"; import { Domain } from "@web/core/domain"; import { DomainSelector } from "../domain_selector/domain_selector"; @@ -13,6 +13,7 @@ export class DomainSelectorDialog extends Component { this.orm = useService("orm"); this.user = useService("user"); this.state = useState({ domain: this.props.domain }); + this.confirmButtonRef = useRef("confirm"); } get confirmButtonText() { @@ -50,12 +51,16 @@ export class DomainSelectorDialog extends Component { } async onConfirm() { + this.confirmButtonRef.el.disabled = true; try { let domain = new Domain(this.state.domain); const evalContext = { ...this.user.context, ...this.props.context }; domain = domain.toList(evalContext); await this.orm.silent.searchCount(this.props.resModel, domain, { limit: 1 }); } catch { + if (this.confirmButtonRef.el) { + this.confirmButtonRef.el.disabled = false; + } this.notification.add(this.env._t("Domain is invalid. Please correct it"), { type: "danger", }); diff --git a/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.xml b/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.xml index 7630d65e94d..98f4d6f12e7 100644 --- a/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.xml +++ b/addons/web/static/src/core/domain_selector_dialog/domain_selector_dialog.xml @@ -10,7 +10,7 @@ - +