right context menu on note map

This commit is contained in:
zadam 2021-09-24 21:40:02 +02:00
parent 3d9260c974
commit fdb7b7721d
4 changed files with 37 additions and 25 deletions

View File

@ -1,5 +1,5 @@
import treeService from './tree.js';
import contextMenu from "./context_menu.js";
import linkContextMenuService from "./link_context_menu.js";
import appContext from "./app_context.js";
import froca from "./froca.js";
import utils from "./utils.js";
@ -128,29 +128,7 @@ function linkContextMenu(e) {
e.preventDefault();
contextMenu.show({
x: e.pageX,
y: e.pageY,
items: [
{title: "Open note in a new tab", command: "openNoteInNewTab", uiIcon: "empty"},
{title: "Open note in a new split", command: "openNoteInNewSplit", uiIcon: "dock-right"},
{title: "Open note in a new window", command: "openNoteInNewWindow", uiIcon: "window-open"}
],
selectMenuItemHandler: ({command}) => {
if (command === 'openNoteInNewTab') {
appContext.tabManager.openTabWithNoteWithHoisting(notePath);
}
else if (command === 'openNoteInNewSplit') {
const subContexts = appContext.tabManager.getActiveContext().getSubContexts();
const {ntxId} = subContexts[subContexts.length - 1];
appContext.triggerCommand("openNewNoteSplit", {ntxId, notePath});
}
else if (command === 'openNoteInNewWindow') {
appContext.triggerCommand('openInWindow', {notePath, hoistedNoteId: 'root'});
}
}
});
linkContextMenuService.openContextMenu(notePath, e);
}
async function loadReferenceLinkTitle(noteId, $el) {

View File

@ -0,0 +1,32 @@
import contextMenu from "./context_menu.js";
import appContext from "./app_context.js";
function openContextMenu(notePath, e) {
contextMenu.show({
x: e.pageX,
y: e.pageY,
items: [
{title: "Open note in a new tab", command: "openNoteInNewTab", uiIcon: "empty"},
{title: "Open note in a new split", command: "openNoteInNewSplit", uiIcon: "dock-right"},
{title: "Open note in a new window", command: "openNoteInNewWindow", uiIcon: "window-open"}
],
selectMenuItemHandler: ({command}) => {
if (command === 'openNoteInNewTab') {
appContext.tabManager.openTabWithNoteWithHoisting(notePath);
}
else if (command === 'openNoteInNewSplit') {
const subContexts = appContext.tabManager.getActiveContext().getSubContexts();
const {ntxId} = subContexts[subContexts.length - 1];
appContext.triggerCommand("openNewNoteSplit", {ntxId, notePath});
}
else if (command === 'openNoteInNewWindow') {
appContext.triggerCommand('openInWindow', {notePath, hoistedNoteId: 'root'});
}
}
});
}
export default {
openContextMenu
}

View File

@ -4,6 +4,7 @@ import attributeService from "../services/attributes.js";
import hoistedNoteService from "../services/hoisted_note.js";
import appContext from "../services/app_context.js";
import NoteContextAwareWidget from "./note_context_aware_widget.js";
import linkContextMenuService from "../services/link_context_menu.js";
const TPL = `<div class="note-map-widget" style="position: relative;">
<style>
@ -106,7 +107,8 @@ export default class NoteMapWidget extends NoteContextAwareWidget {
.linkDirectionalArrowRelPos(1)
.linkWidth(1)
.linkColor(() => this.css.mutedTextColor)
.onNodeClick(node => appContext.tabManager.getActiveContext().setNote(node.id));
.onNodeClick(node => appContext.tabManager.getActiveContext().setNote(node.id))
.onNodeRightClick((node, e) => linkContextMenuService.openContextMenu(node.id, e));
if (this.mapType === 'link') {
this.graph