Fixed recursive open of nodes, bumped to v29
This commit is contained in:
parent
c36b4ace13
commit
d6d8b64bb9
2 changed files with 23 additions and 7 deletions
2
main.go
2
main.go
|
|
@ -23,7 +23,7 @@ import (
|
||||||
"text/template"
|
"text/template"
|
||||||
)
|
)
|
||||||
|
|
||||||
const VERSION = "v28"
|
const VERSION = "v29"
|
||||||
const CONTEXT_USER = 1
|
const CONTEXT_USER = 1
|
||||||
const SYNC_PAGINATION = 200
|
const SYNC_PAGINATION = 200
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -197,9 +197,8 @@ export class N2Sidebar extends CustomHTMLElement {
|
||||||
this.expandedNodes[UUID] = false
|
this.expandedNodes[UUID] = false
|
||||||
return this.expandedNodes[UUID]
|
return this.expandedNodes[UUID]
|
||||||
}//}}}
|
}//}}}
|
||||||
setNodeExpanded(node, value) {//{{{
|
async setNodeExpanded(node, value) {//{{{
|
||||||
let expanded = this.expandedNodes[node.UUID]
|
let expanded = this.expandedNodes[node.UUID]
|
||||||
|
|
||||||
if (expanded === undefined) {
|
if (expanded === undefined) {
|
||||||
this.expandedNodes[node.UUID] = false
|
this.expandedNodes[node.UUID] = false
|
||||||
expanded = false
|
expanded = false
|
||||||
|
|
@ -446,14 +445,20 @@ export class N2Sidebar extends CustomHTMLElement {
|
||||||
return currNode
|
return currNode
|
||||||
}//}}}
|
}//}}}
|
||||||
async recursiveExpand(node, state) {//{{{
|
async recursiveExpand(node, state) {//{{{
|
||||||
|
if (!state) {
|
||||||
|
await this.setNodeExpanded(node, false)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (state)
|
if (state)
|
||||||
await this.setNodeExpanded(node, true)
|
await this.setNodeExpanded(node, true)
|
||||||
|
|
||||||
|
// An expanded node needs to have its children fetched.
|
||||||
|
if (!node.hasFetchedChildren())
|
||||||
|
await node.fetchChildren()
|
||||||
|
|
||||||
for (const child of node.Children)
|
for (const child of node.Children)
|
||||||
await this.recursiveExpand(child, state)
|
await this.recursiveExpand(child, state)
|
||||||
|
|
||||||
if (!state)
|
|
||||||
await this.setNodeExpanded(node, false)
|
|
||||||
}//}}}
|
}//}}}
|
||||||
async makeVisible(node, providedAncestors, dontExpand) {// {{{
|
async makeVisible(node, providedAncestors, dontExpand) {// {{{
|
||||||
const treenode = this.treeNodeComponents[node.UUID]
|
const treenode = this.treeNodeComponents[node.UUID]
|
||||||
|
|
@ -577,7 +582,7 @@ export class N2TreeNode extends CustomHTMLElement {
|
||||||
this.rendered = false
|
this.rendered = false
|
||||||
this.dragNode = null
|
this.dragNode = null
|
||||||
|
|
||||||
this.elExpandToggle.addEventListener('click', () => this.sidebar.setNodeExpanded(this.node, !this.sidebar.getNodeExpanded(this.node.UUID)))
|
this.elExpandToggle.addEventListener('click', event => this.expandNode(event))
|
||||||
this.elName.addEventListener('click', () => _mbus.dispatch('TREE_NODE_SELECTED', this.node))
|
this.elName.addEventListener('click', () => _mbus.dispatch('TREE_NODE_SELECTED', this.node))
|
||||||
|
|
||||||
_mbus.subscribe(`NODE_EXPAND_${node.UUID}`, _state => {
|
_mbus.subscribe(`NODE_EXPAND_${node.UUID}`, _state => {
|
||||||
|
|
@ -592,6 +597,7 @@ export class N2TreeNode extends CustomHTMLElement {
|
||||||
this.elName.addEventListener('dragenter', event => this.dragEnter(event))
|
this.elName.addEventListener('dragenter', event => this.dragEnter(event))
|
||||||
this.elName.addEventListener('dragleave', event => this.dragLeave(event))
|
this.elName.addEventListener('dragleave', event => this.dragLeave(event))
|
||||||
}// }}}
|
}// }}}
|
||||||
|
|
||||||
dragStart(e) {// {{{
|
dragStart(e) {// {{{
|
||||||
if (this.node.isModified()) {
|
if (this.node.isModified()) {
|
||||||
alert('Save note before moving it.')
|
alert('Save note before moving it.')
|
||||||
|
|
@ -654,6 +660,16 @@ export class N2TreeNode extends CustomHTMLElement {
|
||||||
_app.dragIcon.icon('')
|
_app.dragIcon.icon('')
|
||||||
this.classList.remove('drag-target')
|
this.classList.remove('drag-target')
|
||||||
}// }}}
|
}// }}}
|
||||||
|
|
||||||
|
async expandNode(event) {// {{{
|
||||||
|
const expanded = _app.sidebar.getNodeExpanded(this.node.UUID)
|
||||||
|
|
||||||
|
if (event.shiftKey) {
|
||||||
|
_app.sidebar.recursiveExpand(this.node, !expanded)
|
||||||
|
} else {
|
||||||
|
_app.sidebar.setNodeExpanded(this.node, !expanded)
|
||||||
|
}
|
||||||
|
}// }}}
|
||||||
async fetchChildren(force_fetch) {//{{{
|
async fetchChildren(force_fetch) {//{{{
|
||||||
if (this.children_populated && !force_fetch)
|
if (this.children_populated && !force_fetch)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue