feat(note_language): add checkbox

This commit is contained in:
Elian Doran 2025-03-04 21:04:50 +02:00
parent b150a05a55
commit d31ba6f47c
No known key found for this signature in database

View File

@ -34,6 +34,7 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
private $noteLanguageDropdown!: JQuery<HTMLElement>; private $noteLanguageDropdown!: JQuery<HTMLElement>;
private $noteLanguageDesc!: JQuery<HTMLElement>; private $noteLanguageDesc!: JQuery<HTMLElement>;
private locales: (Locale | "---")[]; private locales: (Locale | "---")[];
private currentLanguageId?: string;
constructor() { constructor() {
super(); super();
@ -85,9 +86,13 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
.append('<span class="check">&check;</span> ') .append('<span class="check">&check;</span> ')
.append($title) .append($title)
.on("click", () => { .on("click", () => {
const languageId = $link.attr("data-language") ?? ""; const languageId = $link.attr("data-language") ?? "";
this.save(languageId); this.save(languageId);
}) });
if (locale.id === this.currentLanguageId) {
$link.addClass("selected");
}
this.$noteLanguageDropdown.append($link); this.$noteLanguageDropdown.append($link);
} else { } else {
@ -105,8 +110,9 @@ export default class NoteLanguageWidget extends NoteContextAwareWidget {
} }
async refreshWithNote(note: FNote) { async refreshWithNote(note: FNote) {
const languageId = note.getLabelValue("language") ?? ""; const currentLanguageId = note.getLabelValue("language") ?? "";
const language = (this.locales.find((l) => (typeof l === "object" && l.id === languageId)) as Locale | null) ?? DEFAULT_LOCALE; const language = (this.locales.find((l) => (typeof l === "object" && l.id === currentLanguageId)) as Locale | null) ?? DEFAULT_LOCALE;
this.currentLanguageId = currentLanguageId;
this.$noteLanguageDesc.text(language.name); this.$noteLanguageDesc.text(language.name);
this.dropdown.hide(); this.dropdown.hide();
} }