mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 09:58:32 +02:00
load ancestors and templates when receiving sync from backend
This commit is contained in:
parent
48c57c7ce7
commit
debce78c7f
@ -1039,7 +1039,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getAttribute"><span class="type-signature">(async) </span>getAttribute<span class="signature">(type, name)</span><span class="type-signature"> → {Promise.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
<h4 class="name" id="getAttribute"><span class="type-signature"></span>getAttribute<span class="signature">(type, name)</span><span class="type-signature"> → {<a href="Attribute.html">Attribute</a>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1199,7 +1199,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<<a href="Attribute.html">Attribute</a>></span>
|
<span class="param-type"><a href="Attribute.html">Attribute</a></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -1217,7 +1217,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getAttributes"><span class="type-signature">(async) </span>getAttributes<span class="signature">(type<span class="signature-attributes">opt</span>, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<Array.<<a href="Attribute.html">Attribute</a>>>}</span></h4>
|
<h4 class="name" id="getAttributes"><span class="type-signature"></span>getAttributes<span class="signature">(type<span class="signature-attributes">opt</span>, name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Array.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1399,7 +1399,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Attribute.html">Attribute</a>>></span>
|
<span class="param-type">Array.<<a href="Attribute.html">Attribute</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -1417,7 +1417,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getAttributeValue"><span class="type-signature">(async) </span>getAttributeValue<span class="signature">(type, name)</span><span class="type-signature"> → {Promise.<string>}</span></h4>
|
<h4 class="name" id="getAttributeValue"><span class="type-signature"></span>getAttributeValue<span class="signature">(type, name)</span><span class="type-signature"> → {string}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1577,7 +1577,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<string></span>
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -1595,7 +1595,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getBranches"><span class="type-signature">(async) </span>getBranches<span class="signature">()</span><span class="type-signature"> → {Promise.<Array.<<a href="Branch.html">Branch</a>>>}</span></h4>
|
<h4 class="name" id="getBranches"><span class="type-signature"></span>getBranches<span class="signature">()</span><span class="type-signature"> → {Array.<<a href="Branch.html">Branch</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1679,7 +1679,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Branch.html">Branch</a>>></span>
|
<span class="param-type">Array.<<a href="Branch.html">Branch</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -1799,7 +1799,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getChildBranches"><span class="type-signature">(async) </span>getChildBranches<span class="signature">()</span><span class="type-signature"> → {Promise.<Array.<<a href="Branch.html">Branch</a>>>}</span></h4>
|
<h4 class="name" id="getChildBranches"><span class="type-signature"></span>getChildBranches<span class="signature">()</span><span class="type-signature"> → {Array.<<a href="Branch.html">Branch</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -1883,7 +1883,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Branch.html">Branch</a>>></span>
|
<span class="param-type">Array.<<a href="Branch.html">Branch</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -2105,7 +2105,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getLabel"><span class="type-signature">(async) </span>getLabel<span class="signature">(name)</span><span class="type-signature"> → {Promise.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
<h4 class="name" id="getLabel"><span class="type-signature"></span>getLabel<span class="signature">(name)</span><span class="type-signature"> → {<a href="Attribute.html">Attribute</a>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2242,7 +2242,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<<a href="Attribute.html">Attribute</a>></span>
|
<span class="param-type"><a href="Attribute.html">Attribute</a></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -2260,7 +2260,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getLabelDefinitions"><span class="type-signature">(async) </span>getLabelDefinitions<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<Array.<<a href="Attribute.html">Attribute</a>>>}</span></h4>
|
<h4 class="name" id="getLabelDefinitions"><span class="type-signature"></span>getLabelDefinitions<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Array.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2409,7 +2409,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Attribute.html">Attribute</a>>></span>
|
<span class="param-type">Array.<<a href="Attribute.html">Attribute</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -2427,7 +2427,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getLabels"><span class="type-signature">(async) </span>getLabels<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<Array.<<a href="Attribute.html">Attribute</a>>>}</span></h4>
|
<h4 class="name" id="getLabels"><span class="type-signature"></span>getLabels<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Array.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2576,7 +2576,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Attribute.html">Attribute</a>>></span>
|
<span class="param-type">Array.<<a href="Attribute.html">Attribute</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -2594,7 +2594,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getLabelValue"><span class="type-signature">(async) </span>getLabelValue<span class="signature">(name)</span><span class="type-signature"> → {Promise.<string>}</span></h4>
|
<h4 class="name" id="getLabelValue"><span class="type-signature"></span>getLabelValue<span class="signature">(name)</span><span class="type-signature"> → {string}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -2731,7 +2731,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<string></span>
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -4361,7 +4361,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getParentNotes"><span class="type-signature">(async) </span>getParentNotes<span class="signature">()</span><span class="type-signature"> → {Promise.<Array.<<a href="NoteShort.html">NoteShort</a>>>}</span></h4>
|
<h4 class="name" id="getParentNotes"><span class="type-signature"></span>getParentNotes<span class="signature">()</span><span class="type-signature"> → {Array.<<a href="NoteShort.html">NoteShort</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -4445,7 +4445,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="NoteShort.html">NoteShort</a>>></span>
|
<span class="param-type">Array.<<a href="NoteShort.html">NoteShort</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -4463,7 +4463,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getRelation"><span class="type-signature">(async) </span>getRelation<span class="signature">(name)</span><span class="type-signature"> → {Promise.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
<h4 class="name" id="getRelation"><span class="type-signature"></span>getRelation<span class="signature">(name)</span><span class="type-signature"> → {<a href="Attribute.html">Attribute</a>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -4600,7 +4600,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<<a href="Attribute.html">Attribute</a>></span>
|
<span class="param-type"><a href="Attribute.html">Attribute</a></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -4618,7 +4618,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getRelationDefinitions"><span class="type-signature">(async) </span>getRelationDefinitions<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<Array.<<a href="Attribute.html">Attribute</a>>>}</span></h4>
|
<h4 class="name" id="getRelationDefinitions"><span class="type-signature"></span>getRelationDefinitions<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Array.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -4767,7 +4767,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Attribute.html">Attribute</a>>></span>
|
<span class="param-type">Array.<<a href="Attribute.html">Attribute</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -4785,7 +4785,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getRelations"><span class="type-signature">(async) </span>getRelations<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Promise.<Array.<<a href="Attribute.html">Attribute</a>>>}</span></h4>
|
<h4 class="name" id="getRelations"><span class="type-signature"></span>getRelations<span class="signature">(name<span class="signature-attributes">opt</span>)</span><span class="type-signature"> → {Array.<<a href="Attribute.html">Attribute</a>>}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -4934,7 +4934,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<Array.<<a href="Attribute.html">Attribute</a>>></span>
|
<span class="param-type">Array.<<a href="Attribute.html">Attribute</a>></span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -5273,7 +5273,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="getRelationValue"><span class="type-signature">(async) </span>getRelationValue<span class="signature">(name)</span><span class="type-signature"> → {Promise.<string>}</span></h4>
|
<h4 class="name" id="getRelationValue"><span class="type-signature"></span>getRelationValue<span class="signature">(name)</span><span class="type-signature"> → {string}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -5410,7 +5410,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<string></span>
|
<span class="param-type">string</span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -5534,7 +5534,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="hasAttribute"><span class="type-signature">(async) </span>hasAttribute<span class="signature">(type, name)</span><span class="type-signature"> → {Promise.<boolean>}</span></h4>
|
<h4 class="name" id="hasAttribute"><span class="type-signature"></span>hasAttribute<span class="signature">(type, name)</span><span class="type-signature"> → {boolean}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -5694,7 +5694,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<boolean></span>
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -5814,7 +5814,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="hasLabel"><span class="type-signature">(async) </span>hasLabel<span class="signature">(name)</span><span class="type-signature"> → {Promise.<boolean>}</span></h4>
|
<h4 class="name" id="hasLabel"><span class="type-signature"></span>hasLabel<span class="signature">(name)</span><span class="type-signature"> → {boolean}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -5951,7 +5951,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<boolean></span>
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
@ -6457,7 +6457,7 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h4 class="name" id="hasRelation"><span class="type-signature">(async) </span>hasRelation<span class="signature">(name)</span><span class="type-signature"> → {Promise.<boolean>}</span></h4>
|
<h4 class="name" id="hasRelation"><span class="type-signature"></span>hasRelation<span class="signature">(name)</span><span class="type-signature"> → {boolean}</span></h4>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -6594,7 +6594,7 @@
|
|||||||
</dt>
|
</dt>
|
||||||
<dd>
|
<dd>
|
||||||
|
|
||||||
<span class="param-type">Promise.<boolean></span>
|
<span class="param-type">boolean</span>
|
||||||
|
|
||||||
|
|
||||||
</dd>
|
</dd>
|
||||||
|
@ -136,8 +136,8 @@ class NoteShort {
|
|||||||
return Object.values(this.parentToBranch);
|
return Object.values(this.parentToBranch);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<Branch[]>} */
|
/** @returns {Branch[]} */
|
||||||
async getBranches() {
|
getBranches() {
|
||||||
const branchIds = Object.values(this.parentToBranch);
|
const branchIds = Object.values(this.parentToBranch);
|
||||||
|
|
||||||
return this.treeCache.getBranches(branchIds);
|
return this.treeCache.getBranches(branchIds);
|
||||||
@ -148,8 +148,8 @@ class NoteShort {
|
|||||||
return this.children.length > 0;
|
return this.children.length > 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<Branch[]>} */
|
/** @returns {Branch[]} */
|
||||||
async getChildBranches() {
|
getChildBranches() {
|
||||||
// don't use Object.values() to guarantee order
|
// don't use Object.values() to guarantee order
|
||||||
const branchIds = this.children.map(childNoteId => this.childToBranch[childNoteId]);
|
const branchIds = this.children.map(childNoteId => this.childToBranch[childNoteId]);
|
||||||
|
|
||||||
@ -161,9 +161,9 @@ class NoteShort {
|
|||||||
return this.parents;
|
return this.parents;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {Promise<NoteShort[]>} */
|
/** @returns {NoteShort[]} */
|
||||||
async getParentNotes() {
|
getParentNotes() {
|
||||||
return await this.treeCache.getNotes(this.parents);
|
return this.treeCache.getNotesFromCache(this.parents);
|
||||||
}
|
}
|
||||||
|
|
||||||
/** @returns {string[]} */
|
/** @returns {string[]} */
|
||||||
@ -192,9 +192,9 @@ class NoteShort {
|
|||||||
/**
|
/**
|
||||||
* @param {string} [type] - (optional) attribute type to filter
|
* @param {string} [type] - (optional) attribute type to filter
|
||||||
* @param {string} [name] - (optional) attribute name to filter
|
* @param {string} [name] - (optional) attribute name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's attributes, including inherited ones
|
* @returns {Attribute[]} all note's attributes, including inherited ones
|
||||||
*/
|
*/
|
||||||
async getAttributes(type, name) {
|
getAttributes(type, name) {
|
||||||
const ownedAttributes = this.getOwnedAttributes();
|
const ownedAttributes = this.getOwnedAttributes();
|
||||||
|
|
||||||
const attrArrs = [
|
const attrArrs = [
|
||||||
@ -202,16 +202,16 @@ class NoteShort {
|
|||||||
];
|
];
|
||||||
|
|
||||||
for (const templateAttr of ownedAttributes.filter(oa => oa.type === 'relation' && oa.name === 'template')) {
|
for (const templateAttr of ownedAttributes.filter(oa => oa.type === 'relation' && oa.name === 'template')) {
|
||||||
const templateNote = await this.treeCache.getNote(templateAttr.value);
|
const templateNote = this.treeCache.getNoteFromCache(templateAttr.value);
|
||||||
|
|
||||||
if (templateNote) {
|
if (templateNote) {
|
||||||
attrArrs.push(await templateNote.getAttributes());
|
attrArrs.push(templateNote.getAttributes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (this.noteId !== 'root') {
|
if (this.noteId !== 'root') {
|
||||||
for (const parentNote of await this.getParentNotes()) {
|
for (const parentNote of this.getParentNotes()) {
|
||||||
attrArrs.push(await parentNote.getInheritableAttributes());
|
attrArrs.push(parentNote.getInheritableAttributes());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -232,8 +232,8 @@ class NoteShort {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async getInheritableAttributes() {
|
getInheritableAttributes() {
|
||||||
const attrs = await this.getAttributes();
|
const attrs = this.getAttributes();
|
||||||
|
|
||||||
return attrs.filter(attr => attr.isInheritable);
|
return attrs.filter(attr => attr.isInheritable);
|
||||||
}
|
}
|
||||||
@ -248,18 +248,18 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - label name to filter
|
* @param {string} [name] - label name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's labels (attributes with type label), including inherited ones
|
* @returns {Attribute[]} all note's labels (attributes with type label), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getLabels(name) {
|
getLabels(name) {
|
||||||
return await this.getAttributes(LABEL, name);
|
return this.getAttributes(LABEL, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - label name to filter
|
* @param {string} [name] - label name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's label definitions, including inherited ones
|
* @returns {Attribute[]} all note's label definitions, including inherited ones
|
||||||
*/
|
*/
|
||||||
async getLabelDefinitions(name) {
|
getLabelDefinitions(name) {
|
||||||
return await this.getAttributes(LABEL_DEFINITION, name);
|
return this.getAttributes(LABEL_DEFINITION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -272,27 +272,27 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - relation name to filter
|
* @param {string} [name] - relation name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's relations (attributes with type relation), including inherited ones
|
* @returns {Attribute[]} all note's relations (attributes with type relation), including inherited ones
|
||||||
*/
|
*/
|
||||||
async getRelations(name) {
|
getRelations(name) {
|
||||||
return await this.getAttributes(RELATION, name);
|
return this.getAttributes(RELATION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} [name] - relation name to filter
|
* @param {string} [name] - relation name to filter
|
||||||
* @returns {Promise<Attribute[]>} all note's relation definitions including inherited ones
|
* @returns {Attribute[]} all note's relation definitions including inherited ones
|
||||||
*/
|
*/
|
||||||
async getRelationDefinitions(name) {
|
getRelationDefinitions(name) {
|
||||||
return await this.getAttributes(RELATION_DEFINITION, name);
|
return this.getAttributes(RELATION_DEFINITION, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<boolean>} true if note has an attribute with given type and name (including inherited)
|
* @returns {boolean} true if note has an attribute with given type and name (including inherited)
|
||||||
*/
|
*/
|
||||||
async hasAttribute(type, name) {
|
hasAttribute(type, name) {
|
||||||
return !!await this.getAttribute(type, name);
|
return !!this.getAttribute(type, name);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -318,10 +318,10 @@ class NoteShort {
|
|||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<Attribute>} attribute of given type and name. If there's more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.
|
* @returns {Attribute} attribute of given type and name. If there's more such attributes, first is returned. Returns null if there's no such attribute belonging to this note.
|
||||||
*/
|
*/
|
||||||
async getAttribute(type, name) {
|
getAttribute(type, name) {
|
||||||
const attributes = await this.getAttributes(type, name);
|
const attributes = this.getAttributes(type, name);
|
||||||
|
|
||||||
return attributes.length > 0 ? attributes[0] : 0;
|
return attributes.length > 0 ? attributes[0] : 0;
|
||||||
}
|
}
|
||||||
@ -340,10 +340,10 @@ class NoteShort {
|
|||||||
/**
|
/**
|
||||||
* @param {string} type - attribute type (label, relation, etc.)
|
* @param {string} type - attribute type (label, relation, etc.)
|
||||||
* @param {string} name - attribute name
|
* @param {string} name - attribute name
|
||||||
* @returns {Promise<string>} attribute value of given type and name or null if no such attribute exists.
|
* @returns {string} attribute value of given type and name or null if no such attribute exists.
|
||||||
*/
|
*/
|
||||||
async getAttributeValue(type, name) {
|
getAttributeValue(type, name) {
|
||||||
const attr = await this.getAttribute(type, name);
|
const attr = this.getAttribute(type, name);
|
||||||
|
|
||||||
return attr ? attr.value : null;
|
return attr ? attr.value : null;
|
||||||
}
|
}
|
||||||
@ -356,9 +356,9 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<boolean>} true if label exists (including inherited)
|
* @returns {boolean} true if label exists (including inherited)
|
||||||
*/
|
*/
|
||||||
async hasLabel(name) { return await this.hasAttribute(LABEL, name); }
|
hasLabel(name) { return this.hasAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
@ -368,9 +368,9 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<boolean>} true if relation exists (including inherited)
|
* @returns {boolean} true if relation exists (including inherited)
|
||||||
*/
|
*/
|
||||||
async hasRelation(name) { return await this.hasAttribute(RELATION, name); }
|
hasRelation(name) { return this.hasAttribute(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
@ -380,9 +380,9 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<Attribute>} label if it exists, null otherwise
|
* @returns {Attribute} label if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getLabel(name) { return await this.getAttribute(LABEL, name); }
|
getLabel(name) { return this.getAttribute(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
@ -392,9 +392,9 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<Attribute>} relation if it exists, null otherwise
|
* @returns {Attribute} relation if it exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getRelation(name) { return await this.getAttribute(RELATION, name); }
|
getRelation(name) { return this.getAttribute(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
@ -404,9 +404,9 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - label name
|
* @param {string} name - label name
|
||||||
* @returns {Promise<string>} label value if label exists, null otherwise
|
* @returns {string} label value if label exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getLabelValue(name) { return await this.getAttributeValue(LABEL, name); }
|
getLabelValue(name) { return this.getAttributeValue(LABEL, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
@ -416,9 +416,9 @@ class NoteShort {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name - relation name
|
* @param {string} name - relation name
|
||||||
* @returns {Promise<string>} relation value if relation exists, null otherwise
|
* @returns {string} relation value if relation exists, null otherwise
|
||||||
*/
|
*/
|
||||||
async getRelationValue(name) { return await this.getAttributeValue(RELATION, name); }
|
getRelationValue(name) { return this.getAttributeValue(RELATION, name); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {string} name
|
* @param {string} name
|
||||||
@ -435,7 +435,7 @@ class NoteShort {
|
|||||||
* @returns {Promise<NoteShort[]>}
|
* @returns {Promise<NoteShort[]>}
|
||||||
*/
|
*/
|
||||||
async getRelationTargets(name) {
|
async getRelationTargets(name) {
|
||||||
const relations = await this.getRelations(name);
|
const relations = this.getRelations(name);
|
||||||
const targets = [];
|
const targets = [];
|
||||||
|
|
||||||
for (const relation of relations) {
|
for (const relation of relations) {
|
||||||
@ -474,8 +474,8 @@ class NoteShort {
|
|||||||
return dto;
|
return dto;
|
||||||
}
|
}
|
||||||
|
|
||||||
async getCssClass() {
|
getCssClass() {
|
||||||
const labels = await this.getLabels('cssClass');
|
const labels = this.getLabels('cssClass');
|
||||||
return labels.map(l => l.value).join(' ');
|
return labels.map(l => l.value).join(' ');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -86,7 +86,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain
|
|||||||
await ws.waitForMaxKnownSyncId();
|
await ws.waitForMaxKnownSyncId();
|
||||||
|
|
||||||
await appContext.tabManager.getActiveTabContext().setNote(notePath);
|
await appContext.tabManager.getActiveTabContext().setNote(notePath);
|
||||||
appContext.triggerCommand('focusAndSelectTitle');
|
appContext.triggerEvent('focusAndSelectTitle');
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -310,7 +310,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain
|
|||||||
* @method
|
* @method
|
||||||
* @returns {NoteShort} active note (loaded into right pane)
|
* @returns {NoteShort} active note (loaded into right pane)
|
||||||
*/
|
*/
|
||||||
this.getActiveTabNote = appContext.tabManager.getActiveTabNote;
|
this.getActiveTabNote = () => appContext.tabManager.getActiveTabNote();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html for a documentation on the returned instance.
|
* See https://ckeditor.com/docs/ckeditor5/latest/api/module_core_editor_editor-Editor.html for a documentation on the returned instance.
|
||||||
@ -324,7 +324,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain
|
|||||||
* @method
|
* @method
|
||||||
* @returns {Promise<string|null>} returns note path of active note or null if there isn't active note
|
* @returns {Promise<string|null>} returns note path of active note or null if there isn't active note
|
||||||
*/
|
*/
|
||||||
this.getActiveTabNotePath = appContext.tabManager.getActiveTabNotePath;
|
this.getActiveTabNotePath = () => appContext.tabManager.getActiveTabNotePath();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @method
|
* @method
|
||||||
|
@ -203,6 +203,25 @@ subscribeToMessages(message => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
async function processSyncRows(syncRows) {
|
async function processSyncRows(syncRows) {
|
||||||
|
const missingNoteIds = [];
|
||||||
|
|
||||||
|
syncRows.forEach(({entityName, entity}) => {
|
||||||
|
if (entityName === 'branches' && !(entity.parentNoteId in treeCache.notes)) {
|
||||||
|
missingNoteIds.push(entity.parentNoteId);
|
||||||
|
}
|
||||||
|
else if (entityName === 'attributes'
|
||||||
|
&& entity.type === 'relation'
|
||||||
|
&& entity.name === 'template'
|
||||||
|
&& !(entity.noteId in treeCache.notes)) {
|
||||||
|
|
||||||
|
missingNoteIds.push(entity.value);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (missingNoteIds.length > 0) {
|
||||||
|
await treeCache.reloadNotes(missingNoteIds);
|
||||||
|
}
|
||||||
|
|
||||||
const loadResults = new LoadResults(treeCache);
|
const loadResults = new LoadResults(treeCache);
|
||||||
|
|
||||||
syncRows.filter(sync => sync.entityName === 'notes').forEach(sync => {
|
syncRows.filter(sync => sync.entityName === 'notes').forEach(sync => {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user