diff --git a/src/public/app/layouts/desktop_layout.js b/src/public/app/layouts/desktop_layout.js index 0f420a2e9..4f99f0f26 100644 --- a/src/public/app/layouts/desktop_layout.js +++ b/src/public/app/layouts/desktop_layout.js @@ -40,7 +40,7 @@ import NotePathsWidget from "../widgets/ribbon_widgets/note_paths.js"; import SimilarNotesWidget from "../widgets/ribbon_widgets/similar_notes.js"; import RightPaneContainer from "../widgets/containers/right_pane_container.js"; import EditButton from "../widgets/buttons/edit_button.js"; -import CalendarMenuWidget from "../widgets/buttons/calendar_menu.js"; +import CalendarWidget from "../widgets/buttons/calendar.js"; import EditedNotesWidget from "../widgets/ribbon_widgets/edited_notes.js"; import OpenNoteButtonWidget from "../widgets/buttons/open_note_button_widget.js"; import MermaidWidget from "../widgets/mermaid.js"; @@ -78,7 +78,7 @@ export default class DesktopLayout { .icon("bx-history") .title("Show recent changes") .command("showRecentChanges")) - .child(new CalendarMenuWidget()) + .child(new CalendarWidget()) .child(new SpacerWidget(40, 0)) .child(new FlexContainer("column") .id("plugin-buttons") diff --git a/src/public/app/widgets/bookmark_buttons.js b/src/public/app/widgets/bookmark_buttons.js index 49b4ad0c5..4a46d4d4f 100644 --- a/src/public/app/widgets/bookmark_buttons.js +++ b/src/public/app/widgets/bookmark_buttons.js @@ -1,6 +1,7 @@ import FlexContainer from "./containers/flex_container.js"; import searchService from "../services/search.js"; import OpenNoteButtonWidget from "./buttons/open_note_button_widget.js"; +import BookmarkFolderWidget from "./buttons/bookmark_folder.js"; export default class BookmarkButtons extends FlexContainer { constructor() { @@ -10,7 +11,7 @@ export default class BookmarkButtons extends FlexContainer { } async refresh() { - const bookmarkedNotes = await searchService.searchForNotes("#bookmarked"); + const bookmarkedNotes = await searchService.searchForNotes("#bookmarked or #bookmarkFolder"); this.$widget.empty(); this.children = []; @@ -19,7 +20,9 @@ export default class BookmarkButtons extends FlexContainer { for (const note of bookmarkedNotes) { this.noteIds.push(note.noteId); - const buttonWidget = new OpenNoteButtonWidget().targetNote(note.noteId); + const buttonWidget = note.hasLabel("bookmarkFolder") + ? new BookmarkFolderWidget(note) + : new OpenNoteButtonWidget().targetNote(note.noteId); this.child(buttonWidget); @@ -34,7 +37,7 @@ export default class BookmarkButtons extends FlexContainer { } entitiesReloadedEvent({loadResults}) { - if (loadResults.getAttributes().find(attr => attr.type === 'label' && attr.name === 'bookmarked')) { + if (loadResults.getAttributes().find(attr => attr.type === 'label' && ['bookmarked', 'bookmarkFolder'].includes(attr.name))) { this.refresh(); } diff --git a/src/public/app/widgets/buttons/bookmark_folder.js b/src/public/app/widgets/buttons/bookmark_folder.js new file mode 100644 index 000000000..f6ad7549a --- /dev/null +++ b/src/public/app/widgets/buttons/bookmark_folder.js @@ -0,0 +1,82 @@ +import RightDropdownButtonWidget from "./right_dropdown_button.js"; +import linkService from "../../services/link.js"; + +const DROPDOWN_TPL = ` +
`; + +export default class BookmarkFolderWidget extends RightDropdownButtonWidget { + constructor(note) { + super(note.getIcon(), note.title, DROPDOWN_TPL); + + this.note = note; + } + + doRender() { + super.doRender(); + + this.$parentNote = this.$dropdownContent.find('.parent-note'); + this.$childrenNotes = this.$dropdownContent.find('.children-notes'); + + // this.$dropdownContent.on("click", "a", () => this.hideDropdown()); + } + + async dropdownShown() { + this.$parentNote.empty(); + this.$childrenNotes.empty(); + + this.$parentNote.append( + (await linkService.createNoteLink(this.note.noteId, {showTooltip: false})) + .addClass("note-link") + ); + + for (const childNote of await this.note.getChildNotes()) { + this.$childrenNotes.append( + $("