mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 10:26:08 +01:00 
			
		
		
		
	fix backlinks in day note subtree, fixes #3158
This commit is contained in:
		| @@ -86,7 +86,7 @@ export default class BacklinksWidget extends NoteContextAwareWidget { | ||||
|         this.clearItems(); | ||||
|  | ||||
|         // can't use froca since that would count only relations from loaded notes | ||||
|         const resp = await server.get(`notes/${this.noteId}/backlink-count`); | ||||
|         const resp = await server.get(`note-map/${this.noteId}/backlink-count`); | ||||
|  | ||||
|         if (!resp || !resp.count) { | ||||
|             this.toggle(false); | ||||
|   | ||||
| @@ -287,6 +287,27 @@ function findExcerpts(sourceNote, referencedNoteId) { | ||||
|     return excerpts; | ||||
| } | ||||
|  | ||||
| function getFilteredBacklinks(note) { | ||||
|     return note.getTargetRelations() | ||||
|         // search notes have "ancestor" relations which are not interesting | ||||
|         .filter(note => note.getNote().type !== 'search'); | ||||
| } | ||||
|  | ||||
| function getBacklinkCount(req) { | ||||
|     const {noteId} = req.params; | ||||
|  | ||||
|     const note = becca.getNote(noteId); | ||||
|  | ||||
|     if (!note) { | ||||
|         return [404, "Not found"]; | ||||
|     } | ||||
|     else { | ||||
|         return { | ||||
|             count: getFilteredBacklinks(note).length | ||||
|         }; | ||||
|     } | ||||
| } | ||||
|  | ||||
| function getBacklinks(req) { | ||||
|     const {noteId} = req.params; | ||||
|     const note = becca.getNote(noteId); | ||||
| @@ -295,11 +316,9 @@ function getBacklinks(req) { | ||||
|         return [404, `Note ${noteId} was not found`]; | ||||
|     } | ||||
|  | ||||
|     let backlinks = note.getTargetRelations(); | ||||
|  | ||||
|     let backlinksWithExcerptCount = 0; | ||||
|  | ||||
|     return backlinks.filter(note => !note.getNote().hasLabel('excludeFromNoteMap')).map(backlink => { | ||||
|     return getFilteredBacklinks(note).map(backlink => { | ||||
|         const sourceNote = backlink.note; | ||||
|  | ||||
|         if (sourceNote.type !== 'text' || backlinksWithExcerptCount > 50) { | ||||
| @@ -323,5 +342,6 @@ function getBacklinks(req) { | ||||
| module.exports = { | ||||
|     getLinkMap, | ||||
|     getTreeMap, | ||||
|     getBacklinkCount, | ||||
|     getBacklinks | ||||
| }; | ||||
|   | ||||
| @@ -305,21 +305,6 @@ function uploadModifiedFile(req) { | ||||
|     note.setContent(fileContent); | ||||
| } | ||||
|  | ||||
| function getBacklinkCount(req) { | ||||
|     const {noteId} = req.params; | ||||
|  | ||||
|     const note = becca.getNote(noteId); | ||||
|  | ||||
|     if (!note) { | ||||
|         return [404, "Not found"]; | ||||
|     } | ||||
|     else { | ||||
|         return { | ||||
|             count: note.getTargetRelations().filter(note => !note.getNote().hasLabel('excludeFromNoteMap')).length | ||||
|         }; | ||||
|     } | ||||
| } | ||||
|  | ||||
| module.exports = { | ||||
|     getNote, | ||||
|     updateNoteContent, | ||||
| @@ -334,6 +319,5 @@ module.exports = { | ||||
|     duplicateSubtree, | ||||
|     eraseDeletedNotesNow, | ||||
|     getDeleteNotesPreview, | ||||
|     uploadModifiedFile, | ||||
|     getBacklinkCount | ||||
|     uploadModifiedFile | ||||
| }; | ||||
|   | ||||
| @@ -264,7 +264,6 @@ function register(app) { | ||||
|     apiRoute(DELETE, '/api/notes/:noteId/revisions/:noteRevisionId', noteRevisionsApiRoute.eraseNoteRevision); | ||||
|     route(GET, '/api/notes/:noteId/revisions/:noteRevisionId/download', [auth.checkApiAuthOrElectron], noteRevisionsApiRoute.downloadNoteRevision); | ||||
|     apiRoute(PUT, '/api/notes/:noteId/restore-revision/:noteRevisionId', noteRevisionsApiRoute.restoreNoteRevision); | ||||
|     apiRoute(GET, '/api/notes/:noteId/backlink-count', notesApiRoute.getBacklinkCount); | ||||
|     apiRoute(POST, '/api/notes/relation-map', notesApiRoute.getRelationMap); | ||||
|     apiRoute(POST, '/api/notes/erase-deleted-notes-now', notesApiRoute.eraseDeletedNotesNow); | ||||
|     apiRoute(PUT, '/api/notes/:noteId/title', notesApiRoute.changeTitle); | ||||
| @@ -306,6 +305,7 @@ function register(app) { | ||||
|  | ||||
|     apiRoute(POST, '/api/note-map/:noteId/tree', noteMapRoute.getTreeMap); | ||||
|     apiRoute(POST, '/api/note-map/:noteId/link', noteMapRoute.getLinkMap); | ||||
|     apiRoute(GET, '/api/note-map/:noteId/backlink-count', noteMapRoute.getBacklinkCount); | ||||
|     apiRoute(GET, '/api/note-map/:noteId/backlinks', noteMapRoute.getBacklinks); | ||||
|  | ||||
|     apiRoute(GET, '/api/special-notes/inbox/:date', specialNotesRoute.getInboxNote); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user