2024-10-14 13:19:53 +08:00
|
|
|
import { tracked } from "@glimmer/tracking";
|
2019-10-30 03:23:50 +08:00
|
|
|
import EmberObject from "@ember/object";
|
2015-08-08 03:08:27 +08:00
|
|
|
import { i18n } from "discourse/lib/computed";
|
2023-10-11 02:38:59 +08:00
|
|
|
import RestModel from "discourse/models/rest";
|
2015-07-29 00:29:40 +08:00
|
|
|
|
2023-03-17 18:18:42 +08:00
|
|
|
export default class UserField extends RestModel {
|
|
|
|
static fieldTypes() {
|
2014-12-13 02:28:20 +08:00
|
|
|
if (!this._fieldTypes) {
|
|
|
|
this._fieldTypes = [
|
2015-07-29 00:29:40 +08:00
|
|
|
UserFieldType.create({ id: "text" }),
|
|
|
|
UserFieldType.create({ id: "confirm" }),
|
|
|
|
UserFieldType.create({ id: "dropdown", hasOptions: true }),
|
2021-06-29 14:29:25 +08:00
|
|
|
UserFieldType.create({ id: "multiselect", hasOptions: true }),
|
2014-12-13 02:28:20 +08:00
|
|
|
];
|
|
|
|
}
|
|
|
|
|
|
|
|
return this._fieldTypes;
|
2023-03-17 18:18:42 +08:00
|
|
|
}
|
2014-09-25 23:32:08 +08:00
|
|
|
|
2023-03-17 18:18:42 +08:00
|
|
|
static fieldTypeById(id) {
|
2014-12-13 02:28:20 +08:00
|
|
|
return this.fieldTypes().findBy("id", id);
|
2023-03-17 18:18:42 +08:00
|
|
|
}
|
2024-10-14 13:19:53 +08:00
|
|
|
|
|
|
|
@tracked field_type;
|
|
|
|
@tracked editable;
|
|
|
|
@tracked show_on_profile;
|
|
|
|
@tracked show_on_user_card;
|
|
|
|
@tracked searchable;
|
|
|
|
|
|
|
|
get fieldTypeName() {
|
|
|
|
return UserField.fieldTypes().find((ft) => ft.id === this.field_type).name;
|
|
|
|
}
|
2023-03-17 18:18:42 +08:00
|
|
|
}
|
2014-09-25 23:32:08 +08:00
|
|
|
|
2023-03-17 18:18:42 +08:00
|
|
|
class UserFieldType extends EmberObject {
|
|
|
|
@i18n("id", "admin.user_fields.field_types.%@") name;
|
|
|
|
}
|