trilium/src/public/javascripts/entities/note_short.js

80 lines
1.9 KiB
JavaScript
Raw Normal View History

class NoteShort {
constructor(treeCache, row) {
this.treeCache = treeCache;
this.noteId = row.noteId;
this.title = row.title;
this.isProtected = row.isProtected;
this.type = row.type;
this.mime = row.mime;
this.hideInAutocomplete = row.hideInAutocomplete;
}
2018-03-26 11:25:17 +08:00
isJson() {
return this.mime === "application/json";
}
async getBranches() {
const branches = [];
for (const parentNoteId of this.treeCache.parents[this.noteId]) {
branches.push(await this.treeCache.getBranchByChildParent(this.noteId, parentNoteId));
}
return branches;
}
hasChildren() {
return this.treeCache.children[this.noteId]
&& this.treeCache.children[this.noteId].length > 0;
}
async getChildBranches() {
if (!this.treeCache.children[this.noteId]) {
2018-04-11 09:08:00 +08:00
return [];
}
const branches = [];
for (const childNoteId of this.treeCache.children[this.noteId]) {
branches.push(await this.treeCache.getBranchByChildParent(childNoteId, this.noteId));
}
return branches;
}
async __getNotes(noteIds) {
if (!noteIds) {
return [];
}
const notes = [];
for (const noteId of noteIds) {
notes.push(await this.treeCache.getNote(noteId));
}
return notes;
}
async getParentNotes() {
return this.__getNotes(this.treeCache.parents[this.noteId]);
}
async getChildNotes() {
return this.__getNotes(this.treeCache.children[this.noteId]);
}
get toString() {
return `Note(noteId=${this.noteId}, title=${this.title})`;
}
2018-04-08 20:21:49 +08:00
get dto() {
const dto = Object.assign({}, this);
delete dto.treeCache;
delete dto.hideInAutocomplete;
return dto;
}
}
export default NoteShort;