mirror of
				https://github.com/zadam/trilium.git
				synced 2025-10-31 11:39:01 +01:00 
			
		
		
		
	feat(in-app-help): disable adding child notes
This commit is contained in:
		
							parent
							
								
									989918efe6
								
							
						
					
					
						commit
						aca0588b26
					
				| @ -52,7 +52,7 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree | |||||||
|         const noSelectedNotes = selNodes.length === 0 || (selNodes.length === 1 && selNodes[0] === this.node); |         const noSelectedNotes = selNodes.length === 0 || (selNodes.length === 1 && selNodes[0] === this.node); | ||||||
| 
 | 
 | ||||||
|         const notSearch = note?.type !== "search"; |         const notSearch = note?.type !== "search"; | ||||||
|         const notOptions = !note?.noteId.startsWith("_options"); |         const notOptionsOrHelp = !note?.noteId.startsWith("_options") && !note?.noteId.startsWith("_help"); | ||||||
|         const parentNotSearch = !parentNote || parentNote.type !== "search"; |         const parentNotSearch = !parentNote || parentNote.type !== "search"; | ||||||
|         const insertNoteAfterEnabled = isNotRoot && !isHoisted && parentNotSearch; |         const insertNoteAfterEnabled = isNotRoot && !isHoisted && parentNotSearch; | ||||||
| 
 | 
 | ||||||
| @ -80,7 +80,7 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree | |||||||
|                 command: "insertNoteAfter", |                 command: "insertNoteAfter", | ||||||
|                 uiIcon: "bx bx-plus", |                 uiIcon: "bx bx-plus", | ||||||
|                 items: insertNoteAfterEnabled ? await noteTypesService.getNoteTypeItems("insertNoteAfter") : null, |                 items: insertNoteAfterEnabled ? await noteTypesService.getNoteTypeItems("insertNoteAfter") : null, | ||||||
|                 enabled: insertNoteAfterEnabled && noSelectedNotes && notOptions |                 enabled: insertNoteAfterEnabled && noSelectedNotes && notOptionsOrHelp | ||||||
|             }, |             }, | ||||||
| 
 | 
 | ||||||
|             { |             { | ||||||
| @ -88,7 +88,7 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree | |||||||
|                 command: "insertChildNote", |                 command: "insertChildNote", | ||||||
|                 uiIcon: "bx bx-plus", |                 uiIcon: "bx bx-plus", | ||||||
|                 items: notSearch ? await noteTypesService.getNoteTypeItems("insertChildNote") : null, |                 items: notSearch ? await noteTypesService.getNoteTypeItems("insertChildNote") : null, | ||||||
|                 enabled: notSearch && noSelectedNotes && notOptions |                 enabled: notSearch && noSelectedNotes && notOptionsOrHelp | ||||||
|             }, |             }, | ||||||
| 
 | 
 | ||||||
|             { title: "----" }, |             { title: "----" }, | ||||||
| @ -112,14 +112,14 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree | |||||||
|                         title: `${t("tree-context-menu.edit-branch-prefix")} <kbd data-command="editBranchPrefix"></kbd>`, |                         title: `${t("tree-context-menu.edit-branch-prefix")} <kbd data-command="editBranchPrefix"></kbd>`, | ||||||
|                         command: "editBranchPrefix", |                         command: "editBranchPrefix", | ||||||
|                         uiIcon: "bx bx-rename", |                         uiIcon: "bx bx-rename", | ||||||
|                         enabled: isNotRoot && parentNotSearch && noSelectedNotes && notOptions |                         enabled: isNotRoot && parentNotSearch && noSelectedNotes && notOptionsOrHelp | ||||||
|                     }, |                     }, | ||||||
|                     { title: t("tree-context-menu.convert-to-attachment"), command: "convertNoteToAttachment", uiIcon: "bx bx-paperclip", enabled: isNotRoot && !isHoisted && notOptions }, |                     { title: t("tree-context-menu.convert-to-attachment"), command: "convertNoteToAttachment", uiIcon: "bx bx-paperclip", enabled: isNotRoot && !isHoisted && notOptionsOrHelp }, | ||||||
|                     { |                     { | ||||||
|                         title: `${t("tree-context-menu.duplicate-subtree")} <kbd data-command="duplicateSubtree">`, |                         title: `${t("tree-context-menu.duplicate-subtree")} <kbd data-command="duplicateSubtree">`, | ||||||
|                         command: "duplicateSubtree", |                         command: "duplicateSubtree", | ||||||
|                         uiIcon: "bx bx-outline", |                         uiIcon: "bx bx-outline", | ||||||
|                         enabled: parentNotSearch && isNotRoot && !isHoisted && notOptions |                         enabled: parentNotSearch && isNotRoot && !isHoisted && notOptionsOrHelp | ||||||
|                     }, |                     }, | ||||||
| 
 | 
 | ||||||
|                     { title: "----" }, |                     { title: "----" }, | ||||||
| @ -136,7 +136,7 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree | |||||||
|                     { title: "----" }, |                     { title: "----" }, | ||||||
| 
 | 
 | ||||||
|                     { title: t("tree-context-menu.copy-note-path-to-clipboard"), command: "copyNotePathToClipboard", uiIcon: "bx bx-directions", enabled: true }, |                     { title: t("tree-context-menu.copy-note-path-to-clipboard"), command: "copyNotePathToClipboard", uiIcon: "bx bx-directions", enabled: true }, | ||||||
|                     { title: t("tree-context-menu.recent-changes-in-subtree"), command: "recentChangesInSubtree", uiIcon: "bx bx-history", enabled: noSelectedNotes && notOptions } |                     { title: t("tree-context-menu.recent-changes-in-subtree"), command: "recentChangesInSubtree", uiIcon: "bx bx-history", enabled: noSelectedNotes && notOptionsOrHelp } | ||||||
|                 ] |                 ] | ||||||
|             }, |             }, | ||||||
| 
 | 
 | ||||||
| @ -178,14 +178,14 @@ export default class TreeContextMenu implements SelectMenuItemEventListener<Tree | |||||||
|                 title: `${t("tree-context-menu.delete")} <kbd data-command="deleteNotes"></kbd>`, |                 title: `${t("tree-context-menu.delete")} <kbd data-command="deleteNotes"></kbd>`, | ||||||
|                 command: "deleteNotes", |                 command: "deleteNotes", | ||||||
|                 uiIcon: "bx bx-trash destructive-action-icon", |                 uiIcon: "bx bx-trash destructive-action-icon", | ||||||
|                 enabled: isNotRoot && !isHoisted && parentNotSearch && notOptions |                 enabled: isNotRoot && !isHoisted && parentNotSearch && notOptionsOrHelp | ||||||
|             }, |             }, | ||||||
| 
 | 
 | ||||||
|             { title: "----" }, |             { title: "----" }, | ||||||
| 
 | 
 | ||||||
|             { title: t("tree-context-menu.import-into-note"), command: "importIntoNote", uiIcon: "bx bx-import", enabled: notSearch && noSelectedNotes && notOptions }, |             { title: t("tree-context-menu.import-into-note"), command: "importIntoNote", uiIcon: "bx bx-import", enabled: notSearch && noSelectedNotes && notOptionsOrHelp }, | ||||||
| 
 | 
 | ||||||
|             { title: t("tree-context-menu.export"), command: "exportNote", uiIcon: "bx bx-export", enabled: notSearch && noSelectedNotes && notOptions }, |             { title: t("tree-context-menu.export"), command: "exportNote", uiIcon: "bx bx-export", enabled: notSearch && noSelectedNotes && notOptionsOrHelp }, | ||||||
| 
 | 
 | ||||||
|             { title: "----" }, |             { title: "----" }, | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -550,7 +550,12 @@ export default class NoteTreeWidget extends NoteContextAwareWidget { | |||||||
|                     $span.append($refreshSearchButton); |                     $span.append($refreshSearchButton); | ||||||
|                 } |                 } | ||||||
| 
 | 
 | ||||||
|                 if (!["search", "launcher"].includes(note.type) && !note.isOptions() && !note.isLaunchBarConfig()) { |                 // TODO: Deduplicate with server's notes.ts#getAndValidateParent
 | ||||||
|  |                 if (!["search", "launcher"].includes(note.type) | ||||||
|  |                         && !note.isOptions() | ||||||
|  |                         && !note.isLaunchBarConfig() | ||||||
|  |                         && !note.noteId.startsWith("_help") | ||||||
|  |                     ) { | ||||||
|                     const $createChildNoteButton = $(`<span class="tree-item-button add-note-button bx bx-plus" title="${t("note_tree.create-child-note")}"></span>`).on( |                     const $createChildNoteButton = $(`<span class="tree-item-button add-note-button bx bx-plus" title="${t("note_tree.create-child-note")}"></span>`).on( | ||||||
|                         "click", |                         "click", | ||||||
|                         cancelClickPropagation |                         cancelClickPropagation | ||||||
|  | |||||||
| @ -146,7 +146,10 @@ function getAndValidateParent(params: GetValidateParams) { | |||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|     if (!params.ignoreForbiddenParents) { |     if (!params.ignoreForbiddenParents) { | ||||||
|         if (["_lbRoot", "_hidden"].includes(parentNote.noteId) || parentNote.noteId.startsWith("_lbTpl") || parentNote.isOptions()) { |         if (["_lbRoot", "_hidden"].includes(parentNote.noteId) | ||||||
|  |                 || parentNote.noteId.startsWith("_lbTpl") | ||||||
|  |                 || parentNote.noteId.startsWith("_help") | ||||||
|  |                 || parentNote.isOptions()) { | ||||||
|             throw new ValidationError(`Creating child notes into '${parentNote.noteId}' is not allowed.`); |             throw new ValidationError(`Creating child notes into '${parentNote.noteId}' is not allowed.`); | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Elian Doran
						Elian Doran