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 @@
-
+