mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
prefixes are now displayed also in all autocompletes and recent notes
This commit is contained in:
parent
69f77ac439
commit
8bd76721ad
@ -60,8 +60,10 @@ const jumpToNote = (function() {
|
|||||||
|
|
||||||
noteDetailEl.summernote('editor.restoreRange');
|
noteDetailEl.summernote('editor.restoreRange');
|
||||||
|
|
||||||
|
const noteId = treeUtils.getNoteIdFromNotePath(notePath);
|
||||||
|
|
||||||
noteDetailEl.summernote('createLink', {
|
noteDetailEl.summernote('createLink', {
|
||||||
text: noteTree.getNoteTitle(notePath),
|
text: noteTree.getNoteTitle(noteId),
|
||||||
url: 'app#' + notePath,
|
url: 'app#' + notePath,
|
||||||
isNewWindow: true
|
isNewWindow: true
|
||||||
});
|
});
|
||||||
|
@ -48,7 +48,7 @@ const recentNotes = (function() {
|
|||||||
const recNotes = list.filter(note => note !== noteTree.getCurrentNotePath());
|
const recNotes = list.filter(note => note !== noteTree.getCurrentNotePath());
|
||||||
|
|
||||||
$.each(recNotes, (key, valueNotePath) => {
|
$.each(recNotes, (key, valueNotePath) => {
|
||||||
const noteTitle = treeUtils.getFullNameForPath(valueNotePath);
|
const noteTitle = noteTree.getNotePathTitle(valueNotePath);
|
||||||
|
|
||||||
const option = $("<option></option>")
|
const option = $("<option></option>")
|
||||||
.attr("value", valueNotePath)
|
.attr("value", valueNotePath)
|
||||||
@ -82,8 +82,9 @@ const recentNotes = (function() {
|
|||||||
|
|
||||||
function addLinkBasedOnRecentNotes() {
|
function addLinkBasedOnRecentNotes() {
|
||||||
const notePath = getSelectedNotePath();
|
const notePath = getSelectedNotePath();
|
||||||
|
const noteId = treeUtils.getNoteIdFromNotePath(notePath);
|
||||||
|
|
||||||
const linkTitle = noteTree.getNoteTitle(notePath);
|
const linkTitle = noteTree.getNoteTitle(noteId);
|
||||||
|
|
||||||
dialogEl.dialog("close");
|
dialogEl.dialog("close");
|
||||||
|
|
||||||
|
@ -22,8 +22,10 @@ const link = (function() {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function createNoteLink(noteId, noteTitle) {
|
function createNoteLink(notePath, noteTitle) {
|
||||||
if (!noteTitle) {
|
if (!noteTitle) {
|
||||||
|
const noteId = treeUtils.getNoteIdFromNotePath(notePath);
|
||||||
|
|
||||||
noteTitle = noteTree.getNoteTitle(noteId);
|
noteTitle = noteTree.getNoteTitle(noteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -31,7 +33,7 @@ const link = (function() {
|
|||||||
href: 'javascript:',
|
href: 'javascript:',
|
||||||
text: noteTitle
|
text: noteTitle
|
||||||
}).attr('action', 'note')
|
}).attr('action', 'note')
|
||||||
.attr('note-path', noteId);
|
.attr('note-path', notePath);
|
||||||
|
|
||||||
return noteLink;
|
return noteLink;
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ const noteTree = (function() {
|
|||||||
const parentListEl = $("#parent-list");
|
const parentListEl = $("#parent-list");
|
||||||
|
|
||||||
let startNoteTreeId = null;
|
let startNoteTreeId = null;
|
||||||
let treeLoadTime = null;
|
|
||||||
let notesTreeMap = {};
|
let notesTreeMap = {};
|
||||||
|
|
||||||
let parentToChildren = {};
|
let parentToChildren = {};
|
||||||
@ -14,32 +13,33 @@ const noteTree = (function() {
|
|||||||
let parentChildToNoteTreeId = {};
|
let parentChildToNoteTreeId = {};
|
||||||
let noteIdToTitle = {};
|
let noteIdToTitle = {};
|
||||||
|
|
||||||
function getTreeLoadTime() {
|
|
||||||
return treeLoadTime;
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNoteTreeId(parentNoteId, childNoteId) {
|
function getNoteTreeId(parentNoteId, childNoteId) {
|
||||||
const key = parentNoteId + "-" + childNoteId;
|
const key = parentNoteId + "-" + childNoteId;
|
||||||
|
|
||||||
const noteTreeId = parentChildToNoteTreeId[key];
|
// this can return undefined and client code should deal with it somehow
|
||||||
|
|
||||||
if (!noteTreeId) {
|
return parentChildToNoteTreeId[key];
|
||||||
console.trace();
|
|
||||||
|
|
||||||
throw new Error("Can't find note tree id for parent=" + parentNoteId + ", child=" + childNoteId);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return noteTreeId;
|
function getNoteTitle(noteId, parentNoteId = null) {
|
||||||
}
|
let title = noteIdToTitle[noteId];
|
||||||
|
|
||||||
function getNoteTitle(notePath) {
|
|
||||||
const noteId = treeUtils.getNoteIdFromNotePath(notePath);
|
|
||||||
const title = noteIdToTitle[noteId];
|
|
||||||
|
|
||||||
if (!title) {
|
if (!title) {
|
||||||
throw new Error("Can't find title for noteId='" + noteId + "'");
|
throw new Error("Can't find title for noteId='" + noteId + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (parentNoteId !== null) {
|
||||||
|
const noteTreeId = getNoteTreeId(parentNoteId, noteId);
|
||||||
|
|
||||||
|
if (noteTreeId) {
|
||||||
|
const noteTree = notesTreeMap[noteTreeId];
|
||||||
|
|
||||||
|
if (noteTree.prefix) {
|
||||||
|
title = noteTree.prefix + ' - ' + title;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return title;
|
return title;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -286,8 +286,12 @@ const noteTree = (function() {
|
|||||||
function getNotePathTitle(notePath) {
|
function getNotePathTitle(notePath) {
|
||||||
const titlePath = [];
|
const titlePath = [];
|
||||||
|
|
||||||
for (const path of notePath.split('/')) {
|
let parentNoteId = 'root';
|
||||||
titlePath.push(getNoteTitle(path));
|
|
||||||
|
for (const noteId of notePath.split('/')) {
|
||||||
|
titlePath.push(getNoteTitle(noteId, parentNoteId));
|
||||||
|
|
||||||
|
parentNoteId = noteId;
|
||||||
}
|
}
|
||||||
|
|
||||||
return titlePath.join(' / ');
|
return titlePath.join(' / ');
|
||||||
@ -476,7 +480,6 @@ const noteTree = (function() {
|
|||||||
function loadTree() {
|
function loadTree() {
|
||||||
return server.get('tree').then(resp => {
|
return server.get('tree').then(resp => {
|
||||||
startNoteTreeId = resp.start_note_tree_id;
|
startNoteTreeId = resp.start_note_tree_id;
|
||||||
treeLoadTime = resp.tree_load_time;
|
|
||||||
|
|
||||||
if (document.location.hash) {
|
if (document.location.hash) {
|
||||||
startNoteTreeId = document.location.hash.substr(1); // strip initial #
|
startNoteTreeId = document.location.hash.substr(1); // strip initial #
|
||||||
@ -531,7 +534,7 @@ const noteTree = (function() {
|
|||||||
|
|
||||||
for (const childNoteId of parentToChildren[parentNoteId]) {
|
for (const childNoteId of parentToChildren[parentNoteId]) {
|
||||||
const childNotePath = (notePath ? (notePath + '/') : '') + childNoteId;
|
const childNotePath = (notePath ? (notePath + '/') : '') + childNoteId;
|
||||||
const childTitlePath = (titlePath ? (titlePath + ' / ') : '') + getNoteTitle(childNoteId);
|
const childTitlePath = (titlePath ? (titlePath + ' / ') : '') + getNoteTitle(childNoteId, parentNoteId);
|
||||||
|
|
||||||
autocompleteItems.push({
|
autocompleteItems.push({
|
||||||
value: childTitlePath + ' (' + childNotePath + ')',
|
value: childTitlePath + ' (' + childNotePath + ')',
|
||||||
@ -608,7 +611,6 @@ const noteTree = (function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
getTreeLoadTime,
|
|
||||||
reload,
|
reload,
|
||||||
collapseTree,
|
collapseTree,
|
||||||
scrollToCurrentNote,
|
scrollToCurrentNote,
|
||||||
@ -623,6 +625,6 @@ const noteTree = (function() {
|
|||||||
createNewTopLevelNote,
|
createNewTopLevelNote,
|
||||||
createNote,
|
createNote,
|
||||||
setPrefix,
|
setPrefix,
|
||||||
getNodesByNoteTreeId
|
getNotePathTitle
|
||||||
};
|
};
|
||||||
})();
|
})();
|
@ -67,7 +67,7 @@ const server = (function() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return await $.ajax(options).catch(e => {
|
return await $.ajax(options).catch(e => {
|
||||||
showError("Error when calling " + method + " " + url + ": " + e);
|
showError("Error when calling " + method + " " + url + ": " + e.status + " - " + e.statusText);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -17,13 +17,6 @@ const treeUtils = (function() {
|
|||||||
return path[path.length - 1];
|
return path[path.length - 1];
|
||||||
}
|
}
|
||||||
|
|
||||||
function getFullNameForPath(notePath) {
|
|
||||||
const path = notePath.split("/");
|
|
||||||
const titlePath = path.map(noteId => noteTree.getNoteTitle(noteId));
|
|
||||||
|
|
||||||
return titlePath.join(" > ");
|
|
||||||
}
|
|
||||||
|
|
||||||
function getNotePath(node) {
|
function getNotePath(node) {
|
||||||
const path = [];
|
const path = [];
|
||||||
|
|
||||||
@ -50,7 +43,6 @@ const treeUtils = (function() {
|
|||||||
return {
|
return {
|
||||||
getParentProtectedStatus,
|
getParentProtectedStatus,
|
||||||
getNodeByKey,
|
getNodeByKey,
|
||||||
getFullNameForPath,
|
|
||||||
getNotePath,
|
getNotePath,
|
||||||
getNoteIdFromNotePath,
|
getNoteIdFromNotePath,
|
||||||
setNodeTitleWithPrefix
|
setNodeTitleWithPrefix
|
||||||
|
@ -31,8 +31,7 @@ router.get('/', auth.checkApiAuth, async (req, res, next) => {
|
|||||||
|
|
||||||
res.send({
|
res.send({
|
||||||
notes: notes,
|
notes: notes,
|
||||||
start_note_tree_id: await options.getOption('start_note_tree_id'),
|
start_note_tree_id: await options.getOption('start_note_tree_id')
|
||||||
tree_load_time: utils.nowTimestamp()
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user