mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Convert components/admin-user-field-item
to native class (#28174)
This was the last classic class in the `admin/` section 🎉
This commit is contained in:
parent
633a19fcc0
commit
5388f0a48f
@ -3,6 +3,7 @@ import { action } from "@ember/object";
|
|||||||
import { schedule } from "@ember/runloop";
|
import { schedule } from "@ember/runloop";
|
||||||
import { service } from "@ember/service";
|
import { service } from "@ember/service";
|
||||||
import { isEmpty } from "@ember/utils";
|
import { isEmpty } from "@ember/utils";
|
||||||
|
import { tagName } from "@ember-decorators/component";
|
||||||
import { Promise } from "rsvp";
|
import { Promise } from "rsvp";
|
||||||
import { popupAjaxError } from "discourse/lib/ajax-error";
|
import { popupAjaxError } from "discourse/lib/ajax-error";
|
||||||
import { i18n, propertyEqual } from "discourse/lib/computed";
|
import { i18n, propertyEqual } from "discourse/lib/computed";
|
||||||
@ -11,39 +12,41 @@ import discourseComputed from "discourse-common/utils/decorators";
|
|||||||
import I18n from "discourse-i18n";
|
import I18n from "discourse-i18n";
|
||||||
import UserField from "admin/models/user-field";
|
import UserField from "admin/models/user-field";
|
||||||
|
|
||||||
export default Component.extend(bufferedProperty("userField"), {
|
@tagName("")
|
||||||
adminCustomUserFields: service(),
|
export default class AdminUserFieldItem extends Component.extend(
|
||||||
dialog: service(),
|
bufferedProperty("userField")
|
||||||
|
) {
|
||||||
|
@service adminCustomUserFields;
|
||||||
|
@service dialog;
|
||||||
|
|
||||||
tagName: "",
|
isEditing = false;
|
||||||
isEditing: false,
|
|
||||||
|
|
||||||
cantMoveUp: propertyEqual("userField", "firstField"),
|
@propertyEqual("userField", "firstField") cantMoveUp;
|
||||||
cantMoveDown: propertyEqual("userField", "lastField"),
|
@propertyEqual("userField", "lastField") cantMoveDown;
|
||||||
|
|
||||||
userFieldsDescription: i18n("admin.user_fields.description"),
|
@i18n("admin.user_fields.description") userFieldsDescription;
|
||||||
|
|
||||||
@discourseComputed("buffered.field_type")
|
@discourseComputed("buffered.field_type")
|
||||||
bufferedFieldType(fieldType) {
|
bufferedFieldType(fieldType) {
|
||||||
return UserField.fieldTypeById(fieldType);
|
return UserField.fieldTypeById(fieldType);
|
||||||
},
|
}
|
||||||
|
|
||||||
didInsertElement() {
|
didInsertElement() {
|
||||||
this._super(...arguments);
|
super.didInsertElement(...arguments);
|
||||||
|
|
||||||
this._focusName();
|
this._focusName();
|
||||||
},
|
}
|
||||||
|
|
||||||
_focusName() {
|
_focusName() {
|
||||||
schedule("afterRender", () => {
|
schedule("afterRender", () => {
|
||||||
document.querySelector(".user-field-name")?.focus();
|
document.querySelector(".user-field-name")?.focus();
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
|
|
||||||
@discourseComputed("userField.field_type")
|
@discourseComputed("userField.field_type")
|
||||||
fieldName(fieldType) {
|
fieldName(fieldType) {
|
||||||
return UserField.fieldTypeById(fieldType)?.name;
|
return UserField.fieldTypeById(fieldType)?.name;
|
||||||
},
|
}
|
||||||
|
|
||||||
@discourseComputed(
|
@discourseComputed(
|
||||||
"userField.{editable,show_on_profile,show_on_user_card,searchable}"
|
"userField.{editable,show_on_profile,show_on_user_card,searchable}"
|
||||||
@ -64,18 +67,18 @@ export default Component.extend(bufferedProperty("userField"), {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return ret.join(", ");
|
return ret.join(", ");
|
||||||
},
|
}
|
||||||
|
|
||||||
@discourseComputed("buffered.requirement")
|
@discourseComputed("buffered.requirement")
|
||||||
editableDisabled(requirement) {
|
editableDisabled(requirement) {
|
||||||
return requirement === "for_all_users";
|
return requirement === "for_all_users";
|
||||||
},
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
changeRequirementType(requirement) {
|
changeRequirementType(requirement) {
|
||||||
this.buffered.set("requirement", requirement);
|
this.buffered.set("requirement", requirement);
|
||||||
this.buffered.set("editable", requirement === "for_all_users");
|
this.buffered.set("editable", requirement === "for_all_users");
|
||||||
},
|
}
|
||||||
|
|
||||||
async _confirmChanges() {
|
async _confirmChanges() {
|
||||||
return new Promise((resolve) => {
|
return new Promise((resolve) => {
|
||||||
@ -85,7 +88,7 @@ export default Component.extend(bufferedProperty("userField"), {
|
|||||||
didConfirm: () => resolve(true),
|
didConfirm: () => resolve(true),
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
},
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
async save() {
|
async save() {
|
||||||
@ -123,13 +126,13 @@ export default Component.extend(bufferedProperty("userField"), {
|
|||||||
this.commitBuffer();
|
this.commitBuffer();
|
||||||
})
|
})
|
||||||
.catch(popupAjaxError);
|
.catch(popupAjaxError);
|
||||||
},
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
edit() {
|
edit() {
|
||||||
this.set("isEditing", true);
|
this.set("isEditing", true);
|
||||||
this._focusName();
|
this._focusName();
|
||||||
},
|
}
|
||||||
|
|
||||||
@action
|
@action
|
||||||
cancel() {
|
cancel() {
|
||||||
@ -139,5 +142,5 @@ export default Component.extend(bufferedProperty("userField"), {
|
|||||||
this.rollbackBuffer();
|
this.rollbackBuffer();
|
||||||
this.set("isEditing", false);
|
this.set("isEditing", false);
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
});
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user