import treeService from "./tree.js"; import linkService from "./link.js"; import treeCache from "./tree_cache.js"; import utils from "./utils.js"; function setupGlobalTooltip() { $(document).on("mouseenter", "a", mouseEnterHandler); $(document).on("mouseleave", "a", mouseLeaveHandler); // close any note tooltip after click, this fixes the problem that sometimes tooltips remained on the screen $(document).on("click", () => $('.note-tooltip').remove()); } function setupElementTooltip($el) { $el.on('mouseenter', mouseEnterHandler); $el.on('mouseleave', mouseLeaveHandler); } async function mouseEnterHandler() { const $link = $(this); if ($link.hasClass("no-tooltip-preview") || $link.hasClass("disabled") || $link.attr("data-action") === 'note-revision') { return; } // this is to avoid showing tooltip from inside CKEditor link editor dialog if ($link.closest(".ck-link-actions").length) { return; } let notePath = linkService.getNotePathFromUrl($link.attr("href")); if (!notePath) { notePath = $link.attr("data-note-path"); } if (!notePath) { return; } const noteId = treeService.getNoteIdFromNotePath(notePath); const note = await treeCache.getNote(noteId); const noteComplement = await treeCache.getNoteComplement(noteId); const html = '
").text(valueAttr.value); } else if (valueType === 'relation' && valueAttr.value) { $value = $(" | ").append(await linkService.createNoteLink(valueAttr.value)); } const $row = $(" |
").text(definitionAttr.name))
.append($value);
$table.append($row);
}
}
content += $table.prop('outerHTML');
}
if (note.type === 'text' && !utils.isHtmlEmpty(noteComplement.content)) {
content += ' ' + noteComplement.content + ' ';
}
else if (note.type === 'code' && noteComplement.content && noteComplement.content.trim()) {
content += $("") .text(noteComplement.content) .prop('outerHTML'); } else if (note.type === 'image') { content += $(" |
---|