mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 02:16:05 +01:00 
			
		
		
		
	converting note properties to methods
This commit is contained in:
		| @@ -337,11 +337,11 @@ describe("Search", () => { | ||||
|  | ||||
|         const searchContext = new SearchContext(); | ||||
|  | ||||
|         let searchResults = searchService.findResultsWithQuery('#city AND note.ancestors.title = Europe', searchContext); | ||||
|         let searchResults = searchService.findResultsWithQuery('#city AND note.getAncestors().title = Europe', searchContext); | ||||
|         expect(searchResults.length).toEqual(1); | ||||
|         expect(findNoteByTitle(searchResults, "Prague")).toBeTruthy(); | ||||
|  | ||||
|         searchResults = searchService.findResultsWithQuery('#city AND note.ancestors.title = Asia', searchContext); | ||||
|         searchResults = searchService.findResultsWithQuery('#city AND note.getAncestors().title = Asia', searchContext); | ||||
|         expect(searchResults.length).toEqual(1); | ||||
|         expect(findNoteByTitle(searchResults, "Taipei")).toBeTruthy(); | ||||
|     }); | ||||
|   | ||||
| @@ -115,7 +115,7 @@ function attributeDeleted(attribute) { | ||||
|  | ||||
|     if (note) { | ||||
|         // first invalidate and only then remove the attribute (otherwise invalidation wouldn't be complete) | ||||
|         if (attribute.isAffectingSubtree || note.isTemplate) { | ||||
|         if (attribute.isAffectingSubtree || note.isTemplate()) { | ||||
|             note.invalidateSubTree(); | ||||
|         } else { | ||||
|             note.invalidateThisCache(); | ||||
| @@ -143,7 +143,7 @@ function attributeUpdated(attribute) { | ||||
|     const note = becca.notes[attribute.noteId]; | ||||
|  | ||||
|     if (note) { | ||||
|         if (attribute.isAffectingSubtree || note.isTemplate) { | ||||
|         if (attribute.isAffectingSubtree || note.isTemplate()) { | ||||
|             note.invalidateSubTree(); | ||||
|         } else { | ||||
|             note.invalidateThisCache(); | ||||
|   | ||||
| @@ -9,7 +9,7 @@ function isNotePathArchived(notePath) { | ||||
|     const noteId = notePath[notePath.length - 1]; | ||||
|     const note = becca.notes[noteId]; | ||||
|  | ||||
|     if (note.isArchived) { | ||||
|     if (note.isArchived()) { | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
| @@ -17,7 +17,7 @@ function isNotePathArchived(notePath) { | ||||
|         const note = becca.notes[notePath[i]]; | ||||
|  | ||||
|         // this is going through parents so archived must be inheritable | ||||
|         if (note.hasInheritableOwnedArchivedLabel) { | ||||
|         if (note.hasInheritableOwnedArchivedLabel()) { | ||||
|             return true; | ||||
|         } | ||||
|     } | ||||
|   | ||||
| @@ -79,7 +79,7 @@ class Note extends AbstractEntity { | ||||
|         // ------ Derived attributes ------ | ||||
|  | ||||
|         /** @param {boolean} */ | ||||
|         this.isDecrypted = !row.isProtected || row.isContentAvailable; | ||||
|         this.isDecrypted = !this.isProtected; | ||||
|  | ||||
|         this.decrypt(); | ||||
|  | ||||
| @@ -87,7 +87,7 @@ class Note extends AbstractEntity { | ||||
|         this.flatTextCache = null; | ||||
|     } | ||||
|  | ||||
|     get isContentAvailable() { | ||||
|     isContentAvailable() { | ||||
|         return !this.noteId // new note which was not encrypted yet | ||||
|             || !this.isProtected | ||||
|             || protectedSessionService.isProtectedSessionAvailable() | ||||
| @@ -568,11 +568,11 @@ class Note extends AbstractEntity { | ||||
|         return attrs.length > 0 ? attrs[0] : null; | ||||
|     } | ||||
|  | ||||
|     get isArchived() { | ||||
|     isArchived() { | ||||
|         return this.hasAttribute('label', 'archived'); | ||||
|     } | ||||
|  | ||||
|     get hasInheritableOwnedArchivedLabel() { | ||||
|     hasInheritableOwnedArchivedLabel() { | ||||
|         return !!this.ownedAttributes.find(attr => attr.type === 'label' && attr.name === 'archived' && attr.isInheritable); | ||||
|     } | ||||
|  | ||||
| @@ -581,7 +581,7 @@ class Note extends AbstractEntity { | ||||
|     resortParents() { | ||||
|         this.parentBranches.sort((a, b) => | ||||
|             a.branchId.startsWith('virt-') | ||||
|             || a.parentNote.hasInheritableOwnedArchivedLabel ? 1 : -1); | ||||
|             || a.parentNote.hasInheritableOwnedArchivedLabel() ? 1 : -1); | ||||
|  | ||||
|         this.parents = this.parentBranches.map(branch => branch.parentNote); | ||||
|     } | ||||
| @@ -593,7 +593,7 @@ class Note extends AbstractEntity { | ||||
|      * | ||||
|      * @return {string} - returns flattened textual representation of note, prefixes and attributes | ||||
|      */ | ||||
|     get flatText() { | ||||
|     getFlatText() { | ||||
|         if (!this.flatTextCache) { | ||||
|             this.flatTextCache = this.noteId + ' ' + this.type + ' ' + this.mime + ' '; | ||||
|  | ||||
| @@ -674,16 +674,16 @@ class Note extends AbstractEntity { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     get isTemplate() { | ||||
|     isTemplate() { | ||||
|         return !!this.targetRelations.find(rel => rel.name === 'template'); | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} */ | ||||
|     get subtreeNotesIncludingTemplated() { | ||||
|     getSubtreeNotesIncludingTemplated() { | ||||
|         const arr = [[this]]; | ||||
|  | ||||
|         for (const childNote of this.children) { | ||||
|             arr.push(childNote.subtreeNotesIncludingTemplated); | ||||
|             arr.push(childNote.getSubtreeNotesIncludingTemplated()); | ||||
|         } | ||||
|  | ||||
|         for (const targetRelation of this.targetRelations) { | ||||
| @@ -691,7 +691,7 @@ class Note extends AbstractEntity { | ||||
|                 const note = targetRelation.note; | ||||
|  | ||||
|                 if (note) { | ||||
|                     arr.push(note.subtreeNotesIncludingTemplated); | ||||
|                     arr.push(note.getSubtreeNotesIncludingTemplated()); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| @@ -700,23 +700,23 @@ class Note extends AbstractEntity { | ||||
|     } | ||||
|  | ||||
|     /** @return {Note[]} */ | ||||
|     get subtreeNotes() { | ||||
|     getSubtreeNotes() { | ||||
|         const arr = [[this]]; | ||||
|  | ||||
|         for (const childNote of this.children) { | ||||
|             arr.push(childNote.subtreeNotes); | ||||
|             arr.push(childNote.getSubtreeNotes()); | ||||
|         } | ||||
|  | ||||
|         return arr.flat(); | ||||
|     } | ||||
|  | ||||
|     /** @return {String[]} */ | ||||
|     get subtreeNoteIds() { | ||||
|         return this.subtreeNotes.map(note => note.noteId); | ||||
|     getSubtreeNoteIds() { | ||||
|         return this.getSubtreeNotes().map(note => note.noteId); | ||||
|     } | ||||
|  | ||||
|     getDescendantNoteIds() { | ||||
|         return this.subtreeNoteIds; | ||||
|         return this.getSubtreeNoteIds(); | ||||
|     } | ||||
|  | ||||
|     get parentCount() { | ||||
| @@ -767,7 +767,7 @@ class Note extends AbstractEntity { | ||||
|         return this.getAttributes().length; | ||||
|     } | ||||
|  | ||||
|     get ancestors() { | ||||
|     getAncestors() { | ||||
|         if (!this.ancestorCache) { | ||||
|             const noteIds = new Set(); | ||||
|             this.ancestorCache = []; | ||||
| @@ -778,7 +778,7 @@ class Note extends AbstractEntity { | ||||
|                     noteIds.add(parent.noteId); | ||||
|                 } | ||||
|  | ||||
|                 for (const ancestorNote of parent.ancestors) { | ||||
|                 for (const ancestorNote of parent.getAncestors()) { | ||||
|                     if (!noteIds.has(ancestorNote.noteId)) { | ||||
|                         this.ancestorCache.push(ancestorNote); | ||||
|                         noteIds.add(ancestorNote.noteId); | ||||
| @@ -796,7 +796,7 @@ class Note extends AbstractEntity { | ||||
|  | ||||
|     /** @return {Note[]} - returns only notes which are templated, does not include their subtrees | ||||
|      *                     in effect returns notes which are influenced by note's non-inheritable attributes */ | ||||
|     get templatedNotes() { | ||||
|     getTemplatedNotes() { | ||||
|         const arr = [this]; | ||||
|  | ||||
|         for (const targetRelation of this.targetRelations) { | ||||
|   | ||||
| @@ -64,7 +64,7 @@ function buildRewardMap(note) { | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     for (const ancestorNote of note.ancestors) { | ||||
|     for (const ancestorNote of note.getAncestors()) { | ||||
|         if (ancestorNote.noteId === 'root') { | ||||
|             continue; | ||||
|         } | ||||
| @@ -249,7 +249,7 @@ async function findSimilarNotes(noteId) { | ||||
|  | ||||
|     const rewardMap = buildRewardMap(baseNote); | ||||
|     let ancestorRewardCache = {}; | ||||
|     const ancestorNoteIds = new Set(baseNote.ancestors.map(note => note.noteId)); | ||||
|     const ancestorNoteIds = new Set(baseNote.getAncestors().map(note => note.noteId)); | ||||
|     ancestorNoteIds.add(baseNote.noteId); | ||||
|  | ||||
|     let displayRewards = false; | ||||
|   | ||||
| @@ -308,8 +308,8 @@ class NoteShort { | ||||
|                 return a.isInHoistedSubTree ? -1 : 1; | ||||
|             } else if (a.isSearch !== b.isSearch) { | ||||
|                 return a.isSearch ? 1 : -1; | ||||
|             } else if (a.isArchived !== b.isArchived) { | ||||
|                 return a.isArchived ? 1 : -1; | ||||
|             } else if (a.isArchived() !== b.isArchived()) { | ||||
|                 return a.isArchived() ? 1 : -1; | ||||
|             } else { | ||||
|                 return a.notePath.length - b.notePath.length; | ||||
|             } | ||||
|   | ||||
| @@ -100,7 +100,7 @@ export default class NotePathsWidget extends TabAwareWidget { | ||||
|             icons.push(`<span class="bx bx-trending-up" title="This path is outside of hoisted note and you would have to unhoist."></span>`); | ||||
|         } | ||||
|  | ||||
|         if (notePathRecord.isArchived) { | ||||
|         if (notePathRecord.isArchived()) { | ||||
|             $noteLink.addClass("path-archived"); | ||||
|  | ||||
|             icons.push(`<span class="bx bx-archive" title="Archived"></span>`); | ||||
|   | ||||
| @@ -195,7 +195,7 @@ function changeTitle(req) { | ||||
|         return [404, `Note ${noteId} has not been found`]; | ||||
|     } | ||||
|  | ||||
|     if (!note.isContentAvailable) { | ||||
|     if (!note.isContentAvailable()) { | ||||
|         return [400, `Note ${noteId} is not available for change`]; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -182,7 +182,7 @@ function searchFromRelation(note, relationName) { | ||||
|         return []; | ||||
|     } | ||||
|  | ||||
|     if (!note.isContentAvailable) { | ||||
|     if (!note.isContentAvailable()) { | ||||
|         log.info(`Note ${scriptNote.noteId} is not available outside of protected session.`); | ||||
|  | ||||
|         return []; | ||||
|   | ||||
| @@ -29,7 +29,7 @@ function getSubtreeSize(req) { | ||||
|         return [404, `Note ${noteId} was not found.`]; | ||||
|     } | ||||
|  | ||||
|     const subTreeNoteIds = note.subtreeNotes.map(note => note.noteId); | ||||
|     const subTreeNoteIds = note.getSubtreeNotes().map(note => note.noteId); | ||||
|  | ||||
|     sql.fillParamList(subTreeNoteIds); | ||||
|  | ||||
|   | ||||
| @@ -89,7 +89,7 @@ eventService.subscribe(eventService.ENTITY_CREATED, ({ entityName, entity }) => | ||||
|                 const note = becca.notes[entity.noteId]; | ||||
|  | ||||
|                 if (note) { | ||||
|                     for (const noteId of note.subtreeNoteIds) { | ||||
|                     for (const noteId of note.getSubtreeNoteIds()) { | ||||
|                         treeService.sortNotesByTitle(noteId); | ||||
|                     } | ||||
|                 } | ||||
|   | ||||
| @@ -475,7 +475,7 @@ function saveNoteRevision(note) { | ||||
| function updateNote(noteId, noteUpdates) { | ||||
|     const note = becca.getNote(noteId); | ||||
|  | ||||
|     if (!note.isContentAvailable) { | ||||
|     if (!note.isContentAvailable()) { | ||||
|         throw new Error(`Note ${noteId} is not available for change!`); | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -4,7 +4,7 @@ const log = require('./log'); | ||||
| const becca = require("../becca/becca.js"); | ||||
|  | ||||
| function executeNote(note, apiParams) { | ||||
|     if (!note.isJavaScript() || note.getScriptEnv() !== 'backend' || !note.isContentAvailable) { | ||||
|     if (!note.isJavaScript() || note.getScriptEnv() !== 'backend' || !note.isContentAvailable()) { | ||||
|         log.info(`Cannot execute note ${note.noteId} "${note.title}", note must be of type "Code: JS frontend"`); | ||||
|  | ||||
|         return; | ||||
| @@ -105,7 +105,7 @@ function getScriptBundleForFrontend(note) { | ||||
| } | ||||
|  | ||||
| function getScriptBundle(note, root = true, scriptEnv = null, includedNoteIds = [], backendOverrideContent = null) { | ||||
|     if (!note.isContentAvailable) { | ||||
|     if (!note.isContentAvailable()) { | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -23,7 +23,7 @@ class AncestorExp extends Expression { | ||||
|             return new NoteSet([]); | ||||
|         } | ||||
|  | ||||
|         const subTreeNoteSet = new NoteSet(ancestorNote.subtreeNotes).intersection(inputNoteSet); | ||||
|         const subTreeNoteSet = new NoteSet(ancestorNote.getSubtreeNotes()).intersection(inputNoteSet); | ||||
|  | ||||
|         if (!this.ancestorDepthComparator) { | ||||
|             return subTreeNoteSet; | ||||
|   | ||||
| @@ -25,10 +25,10 @@ class AttributeExistsExp extends Expression { | ||||
|  | ||||
|             if (inputNoteSet.hasNoteId(note.noteId)) { | ||||
|                 if (attr.isInheritable) { | ||||
|                     resultNoteSet.addAll(note.subtreeNotesIncludingTemplated); | ||||
|                     resultNoteSet.addAll(note.getSubtreeNotesIncludingTemplated()); | ||||
|                 } | ||||
|                 else if (note.isTemplate) { | ||||
|                     resultNoteSet.addAll(note.templatedNotes); | ||||
|                 else if (note.isTemplate()) { | ||||
|                     resultNoteSet.addAll(note.getTemplatedNotes()); | ||||
|                 } | ||||
|                 else { | ||||
|                     resultNoteSet.add(note); | ||||
|   | ||||
| @@ -18,7 +18,7 @@ class DescendantOfExp extends Expression { | ||||
|         const subTreeNoteSet = new NoteSet(); | ||||
|  | ||||
|         for (const note of subResNoteSet.notes) { | ||||
|             subTreeNoteSet.addAll(note.subtreeNotes); | ||||
|             subTreeNoteSet.addAll(note.getSubtreeNotes()); | ||||
|         } | ||||
|  | ||||
|         return inputNoteSet.intersection(subTreeNoteSet); | ||||
|   | ||||
| @@ -23,10 +23,10 @@ class LabelComparisonExp extends Expression { | ||||
|  | ||||
|             if (inputNoteSet.hasNoteId(note.noteId) && this.comparator(value)) { | ||||
|                 if (attr.isInheritable) { | ||||
|                     resultNoteSet.addAll(note.subtreeNotesIncludingTemplated); | ||||
|                     resultNoteSet.addAll(note.getSubtreeNotesIncludingTemplated()); | ||||
|                 } | ||||
|                 else if (note.isTemplate) { | ||||
|                     resultNoteSet.addAll(note.templatedNotes); | ||||
|                 else if (note.isTemplate()) { | ||||
|                     resultNoteSet.addAll(note.getTemplatedNotes()); | ||||
|                 } | ||||
|                 else { | ||||
|                     resultNoteSet.add(note); | ||||
|   | ||||
| @@ -129,7 +129,7 @@ class BeccaFlatTextExp extends Expression { | ||||
|  | ||||
|         for (const note of noteSet.notes) { | ||||
|             for (const token of this.tokens) { | ||||
|                 if (note.flatText.includes(token)) { | ||||
|                 if (note.getFlatText().includes(token)) { | ||||
|                     candidateNotes.push(note); | ||||
|                     break; | ||||
|                 } | ||||
|   | ||||
| @@ -24,9 +24,9 @@ class RelationWhereExp extends Expression { | ||||
|  | ||||
|                 if (subResNoteSet.hasNote(attr.targetNote)) { | ||||
|                     if (attr.isInheritable) { | ||||
|                         candidateNoteSet.addAll(note.subtreeNotesIncludingTemplated); | ||||
|                     } else if (note.isTemplate) { | ||||
|                         candidateNoteSet.addAll(note.templatedNotes); | ||||
|                         candidateNoteSet.addAll(note.getSubtreeNotesIncludingTemplated()); | ||||
|                     } else if (note.isTemplate()) { | ||||
|                         candidateNoteSet.addAll(note.getTemplatedNotes()); | ||||
|                     } else { | ||||
|                         candidateNoteSet.add(note); | ||||
|                     } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user