feat(note_language): update value of combobox

This commit is contained in:
Elian Doran 2025-03-04 18:30:43 +02:00
parent bccfeed431
commit 598586f735
No known key found for this signature in database

View File

@ -22,6 +22,19 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
private $noteLanguageDropdown!: JQuery<HTMLElement>; private $noteLanguageDropdown!: JQuery<HTMLElement>;
private $noteLanguageButton!: JQuery<HTMLElement>; private $noteLanguageButton!: JQuery<HTMLElement>;
private $noteLanguageDesc!: JQuery<HTMLElement>; private $noteLanguageDesc!: JQuery<HTMLElement>;
private locales: (Locale | "---")[];
constructor() {
super();
this.locales = [
{
id: "",
name: t("note_language.not_set")
},
"---",
...getAvailableLocales()
];
}
doRender() { doRender() {
this.$widget = $(TPL); this.$widget = $(TPL);
@ -40,16 +53,7 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
return; return;
} }
const locales: (Locale | "---")[] = [ for (const locale of this.locales) {
{
id: "",
name: t("note_language.not_set")
},
"---",
...getAvailableLocales()
];
for (const locale of locales) {
if (typeof locale === "object") { if (typeof locale === "object") {
const $title = $("<span>").text(locale.name); const $title = $("<span>").text(locale.name);
const $link = $('<a class="dropdown-item">') const $link = $('<a class="dropdown-item">')
@ -78,11 +82,13 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
} }
async refreshWithNote(note: FNote) { async refreshWithNote(note: FNote) {
this.$noteLanguageDesc.text(t("note_language.not_set")); const languageId = note.getLabelValue("language") ?? "";
const language = this.locales.find((l) => (typeof l === "object" && l.id === languageId)) as Locale;
this.$noteLanguageDesc.text(language.name);
} }
async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) { async entitiesReloadedEvent({ loadResults }: EventData<"entitiesReloaded">) {
if (loadResults.isNoteReloaded(this.noteId)) { if (loadResults.getAttributeRows().find((a) => a.noteId === this.noteId && a.name === "language")) {
this.refresh(); this.refresh();
} }
} }