diff --git a/apps/client/src/translations/en/translation.json b/apps/client/src/translations/en/translation.json index 35e835e30..f3693e853 100644 --- a/apps/client/src/translations/en/translation.json +++ b/apps/client/src/translations/en/translation.json @@ -1968,5 +1968,8 @@ }, "table_context_menu": { "delete_row": "Delete row" + }, + "board_view": { + "delete-note": "Delete Note" } } diff --git a/apps/client/src/widgets/view_widgets/board_view/context_menu.ts b/apps/client/src/widgets/view_widgets/board_view/context_menu.ts new file mode 100644 index 000000000..6ef692f5b --- /dev/null +++ b/apps/client/src/widgets/view_widgets/board_view/context_menu.ts @@ -0,0 +1,28 @@ +import contextMenu from "../../../menus/context_menu.js"; +import branches from "../../../services/branches.js"; +import { t } from "../../../services/i18n.js"; + +export function showNoteContextMenu($container: JQuery) { + $container.on("contextmenu", ".board-note", (event) => { + event.preventDefault(); + event.stopPropagation(); + + const $el = $(event.currentTarget); + const noteId = $el.data("note-id"); + const branchId = $el.data("branch-id"); + if (!noteId) return; + + contextMenu.show({ + x: event.pageX, + y: event.pageY, + items: [ + { + title: t("board_view.delete-note"), + uiIcon: "bx bx-trash", + handler: () => branches.deleteNotes([ branchId ], false, false) + } + ], + selectMenuItemHandler: () => {} + }); + }); +} diff --git a/apps/client/src/widgets/view_widgets/board_view/index.ts b/apps/client/src/widgets/view_widgets/board_view/index.ts index 21f2c2105..f399dca03 100644 --- a/apps/client/src/widgets/view_widgets/board_view/index.ts +++ b/apps/client/src/widgets/view_widgets/board_view/index.ts @@ -7,6 +7,7 @@ import noteCreateService from "../../../services/note_create"; import appContext, { EventData } from "../../../components/app_context"; import { BoardData } from "./config"; import SpacedUpdate from "../../../services/spaced_update"; +import { showNoteContextMenu } from "./context_menu"; const TPL = /*html*/`
@@ -133,6 +134,7 @@ export default class BoardView extends ViewMode { this.$root = $(TPL); setupHorizontalScrollViaWheel(this.$root); this.$container = this.$root.find(".board-view-container"); + showNoteContextMenu(this.$container); this.spacedUpdate = new SpacedUpdate(() => this.onSave(), 5_000); this.persistentData = { columns: []