mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
44 lines
1.2 KiB
JavaScript
44 lines
1.2 KiB
JavaScript
import attributeService from "../services/attributes.js";
|
|
import SwitchWidget from "./switch.js";
|
|
|
|
export default class BookmarkSwitchWidget extends SwitchWidget {
|
|
doRender() {
|
|
super.doRender();
|
|
|
|
this.$switchOnName.text("Bookmark");
|
|
this.$switchOnButton.attr("title", "Bookmark this note to the left side panel");
|
|
|
|
this.$switchOffName.text("Bookmark");
|
|
this.$switchOffButton.attr("title", "Remove bookmark");
|
|
}
|
|
|
|
async switchOff() {
|
|
for (const label of this.note.getLabels('bookmarked')) {
|
|
await attributeService.removeAttributeById(this.noteId, label.attributeId);
|
|
}
|
|
}
|
|
|
|
switchOn() {
|
|
return attributeService.setLabel(this.noteId, 'bookmarked');
|
|
}
|
|
|
|
refreshWithNote(note) {
|
|
const isBookmarked = note.hasLabel('bookmarked');
|
|
|
|
this.$switchOn.toggle(!isBookmarked);
|
|
this.$switchOff.toggle(isBookmarked);
|
|
}
|
|
|
|
entitiesReloadedEvent({loadResults}) {
|
|
for (const attr of loadResults.getAttributes()) {
|
|
if (attr.type === 'label'
|
|
&& attr.name === 'bookmarked'
|
|
&& attributeService.isAffecting(attr, this.note)) {
|
|
|
|
this.refresh();
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|