From db7e083a21d00e8a978d8565ab52eb8a0a2bc764 Mon Sep 17 00:00:00 2001 From: zadam Date: Wed, 8 May 2019 19:10:45 +0200 Subject: [PATCH] ctrl-click opens new tab --- src/public/javascripts/services/link.js | 17 ++++++++++++++++- src/public/javascripts/services/tree.js | 11 +++++++---- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/public/javascripts/services/link.js b/src/public/javascripts/services/link.js index 8074b5dd1..ee63e50fe 100644 --- a/src/public/javascripts/services/link.js +++ b/src/public/javascripts/services/link.js @@ -50,7 +50,12 @@ function goToLink(e) { const notePath = getNotePathFromLink($link); if (notePath) { - treeService.activateNote(notePath); + if (e.ctrlKey) { + noteDetailService.loadNoteDetail(notePath.split("/").pop(), true); + } + else { + treeService.activateNote(notePath); + } } else { const address = $link.attr('href'); @@ -127,6 +132,16 @@ $(document).on('contextmenu', ".note-detail-render a", noteContextMenu); $(document).on('click', "a[data-action='note']", goToLink); $(document).on('click', 'div.popover-content a, div.ui-tooltip-content a', goToLink); $(document).on('dblclick', '.note-detail-text a', goToLink); +$(document).on('click', '.note-detail-text a', function (e) { + const notePath = getNotePathFromLink($(e.target)); + if (notePath && e.ctrlKey) { + // if it's a ctrl-click, then we open on new tab, otherwise normal flow (CKEditor opens link-editing dialog) + e.preventDefault(); + + noteDetailService.loadNoteDetail(notePath.split("/").pop(), true); + } +}); + $(document).on('click', '.note-detail-render a', goToLink); $(document).on('click', '.note-detail-text.ck-read-only a', goToLink); $(document).on('click', 'span.ck-button__label', e => { diff --git a/src/public/javascripts/services/tree.js b/src/public/javascripts/services/tree.js index 4a473bcd4..5b7ee2384 100644 --- a/src/public/javascripts/services/tree.js +++ b/src/public/javascripts/services/tree.js @@ -400,15 +400,18 @@ function initFancyTree(tree) { const node = data.node; if (targetType === 'title' || targetType === 'icon') { - if (!event.ctrlKey) { + if (event.shiftKey) { + node.setSelected(!node.isSelected()); + } + else if (event.ctrlKey) { + noteDetailService.loadNoteDetail(node.data.noteId, true); + } + else { node.setActive(); node.setSelected(true); clearSelectedNodes(); } - else { - node.setSelected(!node.isSelected()); - } return false; }