search (note) fixes

This commit is contained in:
azivner 2018-08-14 22:50:05 +02:00
parent 16535f6a73
commit ff5b84db10
4 changed files with 19 additions and 4 deletions

View File

@ -357,6 +357,7 @@ function initFancyTree(tree) {
dnd: dragAndDropSetup,
lazyLoad: function(event, data) {
const noteId = data.node.data.noteId;
data.result = treeCache.getNote(noteId).then(note => treeBuilder.prepareBranch(note));
},
clones: {

View File

@ -74,12 +74,17 @@ async function prepareRealBranch(parentNote) {
async function prepareSearchBranch(note) {
const fullNote = await noteDetailService.loadNote(note.noteId);
const results = await server.get('search/' + encodeURIComponent(fullNote.jsonContent.searchString));
const results = (await server.get('search/' + encodeURIComponent(fullNote.jsonContent.searchString)))
.filter(res => res.noteId !== note.noteId); // this is necessary because title of the search note is often the same as the search text which would match and create circle
const noteIds = results.map(res => res.noteId);
console.log("result: ", results);
// force to load all the notes at once instead of one by one
await treeCache.getNotes(noteIds);
const notes = await treeCache.getNotes(noteIds);
console.log("NOTES", notes);
for (const result of results) {
const origBranch = await treeCache.getBranch(result.branchId);
@ -95,6 +100,8 @@ async function prepareSearchBranch(note) {
treeCache.addBranch(branch);
}
console.log("fullNote", fullNote);
return await prepareRealBranch(fullNote);
}

View File

@ -38,7 +38,7 @@ async function searchNotes(req) {
let results;
if (labelFiltersNoteIds && searchTextResults) {
results = labelFiltersNoteIds.filter(item => searchTextResults.includes(item.noteId));
results = searchTextResults.filter(item => labelFiltersNoteIds.includes(item.noteId));
}
else if (labelFiltersNoteIds) {
results = labelFiltersNoteIds.map(noteCacheService.getNotePath).filter(res => !!res);
@ -64,6 +64,7 @@ async function getFullTextResults(searchText) {
FROM notes
WHERE isDeleted = 0
AND isProtected = 0
AND type IN ('text', 'code')
AND ${tokenSql.join(' AND ')}`);
return noteIds;

View File

@ -3,6 +3,7 @@ const scriptService = require('./script');
const treeService = require('./tree');
const messagingService = require('./messaging');
const repository = require('./repository');
const log = require('./log');
async function runAttachedRelations(note, relationName, originEntity) {
const attributes = await note.getAttributes();
@ -11,7 +12,12 @@ async function runAttachedRelations(note, relationName, originEntity) {
for (const relation of runRelations) {
const scriptNote = await relation.getTargetNote();
await scriptService.executeNote(scriptNote, originEntity);
if (scriptNote) {
await scriptService.executeNote(scriptNote, originEntity);
}
else {
log.error(`Target note ${relation.value} of atttribute ${relation.attributeId} has not been found.`);
}
}
}