mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 09:17:08 +08:00
FIX: Debounce group name validation correctly (#13757)
This commit is contained in:
parent
8bdec18d58
commit
7323c65d53
|
@ -57,52 +57,50 @@ export default Component.extend({
|
|||
);
|
||||
}
|
||||
|
||||
this.checkGroupName();
|
||||
this.checkGroupNameDebounced();
|
||||
|
||||
return this._failedInputValidation(
|
||||
I18n.t("admin.groups.new.name.checking")
|
||||
);
|
||||
},
|
||||
|
||||
checkGroupName() {
|
||||
discourseDebounce(
|
||||
this,
|
||||
function () {
|
||||
if (isEmpty(this.nameInput)) {
|
||||
return;
|
||||
checkGroupNameDebounced() {
|
||||
discourseDebounce(this, this._checkGroupName, 500);
|
||||
},
|
||||
|
||||
_checkGroupName() {
|
||||
if (isEmpty(this.nameInput)) {
|
||||
return;
|
||||
}
|
||||
|
||||
Group.checkName(this.nameInput)
|
||||
.then((response) => {
|
||||
const validationName = "uniqueNameValidation";
|
||||
|
||||
if (response.available) {
|
||||
this.set(
|
||||
validationName,
|
||||
EmberObject.create({
|
||||
ok: true,
|
||||
reason: I18n.t("admin.groups.new.name.available"),
|
||||
})
|
||||
);
|
||||
|
||||
this.set("disableSave", false);
|
||||
this.set("model.name", this.nameInput);
|
||||
} else {
|
||||
let reason;
|
||||
|
||||
if (response.errors) {
|
||||
reason = response.errors.join(" ");
|
||||
} else {
|
||||
reason = I18n.t("admin.groups.new.name.not_available");
|
||||
}
|
||||
|
||||
this.set(validationName, this._failedInputValidation(reason));
|
||||
}
|
||||
|
||||
Group.checkName(this.nameInput)
|
||||
.then((response) => {
|
||||
const validationName = "uniqueNameValidation";
|
||||
|
||||
if (response.available) {
|
||||
this.set(
|
||||
validationName,
|
||||
EmberObject.create({
|
||||
ok: true,
|
||||
reason: I18n.t("admin.groups.new.name.available"),
|
||||
})
|
||||
);
|
||||
|
||||
this.set("disableSave", false);
|
||||
this.set("model.name", this.nameInput);
|
||||
} else {
|
||||
let reason;
|
||||
|
||||
if (response.errors) {
|
||||
reason = response.errors.join(" ");
|
||||
} else {
|
||||
reason = I18n.t("admin.groups.new.name.not_available");
|
||||
}
|
||||
|
||||
this.set(validationName, this._failedInputValidation(reason));
|
||||
}
|
||||
})
|
||||
.catch(popupAjaxError);
|
||||
},
|
||||
500
|
||||
);
|
||||
})
|
||||
.catch(popupAjaxError);
|
||||
},
|
||||
|
||||
_failedInputValidation(reason) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user