unified opening of external links in new tab (doubleclick in editor, singleclick in preview tooltip)

This commit is contained in:
azivner 2017-12-23 07:48:59 -05:00
parent b171ce27bb
commit 3c3117e22f

View File

@ -38,28 +38,38 @@ const link = (function() {
return noteLink; return noteLink;
} }
function goToInternalNote(e) { function goToLink(e) {
const linkEl = $(e.target); e.preventDefault();
let noteId = linkEl.attr("note-path");
if (!noteId) { const linkEl = $(e.target);
noteId = getNotePathFromLink(linkEl.attr('href')); const notePath = linkEl.attr("note-path") ? linkEl.attr("note-path") : linkEl.attr('href');
if (!notePath) {
return;
} }
if (noteId) { if (notePath.startsWith('http')) {
noteTree.activateNode(noteId); window.open(notePath, '_blank');
// this is quite ugly hack, but it seems like we can't close the tooltip otherwise return;
$("[role='tooltip']").remove(); }
if (glob.activeDialog) { const noteId = getNotePathFromLink(notePath);
try {
glob.activeDialog.dialog('close'); if (!noteId) {
} return;
catch (e) {} }
noteTree.activateNode(noteId);
// this is quite ugly hack, but it seems like we can't close the tooltip otherwise
$("[role='tooltip']").remove();
if (glob.activeDialog) {
try {
glob.activeDialog.dialog('close');
} }
catch (e) {}
e.preventDefault();
} }
} }
@ -79,9 +89,9 @@ const link = (function() {
// when click on link popup, in case of internal link, just go the the referenced note instead of default behavior // when click on link popup, in case of internal link, just go the the referenced note instead of default behavior
// of opening the link in new window/tab // of opening the link in new window/tab
$(document).on('click', "a[action='note']", goToInternalNote); $(document).on('click', "a[action='note']", goToLink);
$(document).on('click', 'div.popover-content a, div.ui-tooltip-content', goToInternalNote); $(document).on('click', 'div.popover-content a, div.ui-tooltip-content', goToLink);
$(document).on('dblclick', '#note-detail a, div.ui-tooltip-content', goToInternalNote); $(document).on('dblclick', '#note-detail a, div.ui-tooltip-content', goToLink);
return { return {
getNodePathFromLabel, getNodePathFromLabel,