mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 18:36:30 +01:00 
			
		
		
		
	add option to disable note tree auto collapse, fixes #1751
This commit is contained in:
		| @@ -176,6 +176,15 @@ const TPL = ` | ||||
|                       title="Images which are shown in the parent text note will not be displayed in the tree"></span> | ||||
|             </label> | ||||
|         </div> | ||||
|         <div class="form-check"> | ||||
|             <label class="form-check-label"> | ||||
|                 <input class="form-check-input auto-collapse-note-tree" type="checkbox" value=""> | ||||
|                  | ||||
|                 Automatically collapse notes | ||||
|                 <span class="bx bx-info-circle"  | ||||
|                       title="Notes will be collapsed after period of inactivity to declutter the tree."></span> | ||||
|             </label> | ||||
|         </div> | ||||
|      | ||||
|         <br/> | ||||
|      | ||||
| @@ -235,6 +244,7 @@ export default class NoteTreeWidget extends TabAwareWidget { | ||||
|         this.$treeSettingsPopup = this.$widget.find('.tree-settings-popup'); | ||||
|         this.$hideArchivedNotesCheckbox = this.$treeSettingsPopup.find('.hide-archived-notes'); | ||||
|         this.$hideIncludedImages = this.$treeSettingsPopup.find('.hide-included-images'); | ||||
|         this.$autoCollapseNoteTree = this.$treeSettingsPopup.find('.auto-collapse-note-tree'); | ||||
|  | ||||
|         this.$treeSettingsButton = this.$widget.find('.tree-settings-button'); | ||||
|         this.$treeSettingsButton.on("click", e => { | ||||
| @@ -245,6 +255,7 @@ export default class NoteTreeWidget extends TabAwareWidget { | ||||
|  | ||||
|             this.$hideArchivedNotesCheckbox.prop("checked", this.hideArchivedNotes); | ||||
|             this.$hideIncludedImages.prop("checked", this.hideIncludedImages); | ||||
|             this.$autoCollapseNoteTree.prop("checked", this.autoCollapseNoteTree); | ||||
|  | ||||
|             let top = this.$treeSettingsButton[0].offsetTop; | ||||
|             let left = this.$treeSettingsButton[0].offsetLeft; | ||||
| @@ -272,6 +283,7 @@ export default class NoteTreeWidget extends TabAwareWidget { | ||||
|         this.$saveTreeSettingsButton.on('click', async () => { | ||||
|             await this.setHideArchivedNotes(this.$hideArchivedNotesCheckbox.prop("checked")); | ||||
|             await this.setHideIncludedImages(this.$hideIncludedImages.prop("checked")); | ||||
|             await this.setAutoCollapseNoteTree(this.$autoCollapseNoteTree.prop("checked")); | ||||
|  | ||||
|             this.$treeSettingsPopup.hide(); | ||||
|  | ||||
| @@ -327,6 +339,14 @@ export default class NoteTreeWidget extends TabAwareWidget { | ||||
|         await options.save("hideIncludedImages_" + this.treeName, val.toString()); | ||||
|     } | ||||
|  | ||||
|     get autoCollapseNoteTree() { | ||||
|         return options.is("autoCollapseNoteTree"); | ||||
|     } | ||||
|  | ||||
|     async setAutoCollapseNoteTree(val) { | ||||
|         await options.save("autoCollapseNoteTree", val.toString()); | ||||
|     } | ||||
|  | ||||
|     initFancyTree() { | ||||
|         const treeData = [this.prepareRootNode()]; | ||||
|  | ||||
| @@ -961,6 +981,10 @@ export default class NoteTreeWidget extends TabAwareWidget { | ||||
|         } | ||||
|  | ||||
|         this.autoCollapseTimeoutId = setTimeout(() => { | ||||
|             if (!this.autoCollapseNoteTree) { | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             /* | ||||
|              * We're collapsing notes after period of inactivity to "cleanup" the tree - users rarely | ||||
|              * collapse the notes and the tree becomes unusuably large. | ||||
|   | ||||
		Reference in New Issue
	
	Block a user