mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	add #newNotesOnTop, closes #3734
(cherry picked from commit d31b5ac99f)
			
			
This commit is contained in:
		@@ -242,7 +242,8 @@ const ATTR_HELP = {
 | 
				
			|||||||
        "keepCurrentHoisting": "Opening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.",
 | 
					        "keepCurrentHoisting": "Opening this link won't change hoisting even if the note is not displayable in the current hoisted subtree.",
 | 
				
			||||||
        "executeButton": "Title of the button which will execute the current code note",
 | 
					        "executeButton": "Title of the button which will execute the current code note",
 | 
				
			||||||
        "executeDescription": "Longer description of the current code note displayed together with the execute button",
 | 
					        "executeDescription": "Longer description of the current code note displayed together with the execute button",
 | 
				
			||||||
        "excludeFromNoteMap": "Notes with this label will be hidden from the Note Map"
 | 
					        "excludeFromNoteMap": "Notes with this label will be hidden from the Note Map",
 | 
				
			||||||
 | 
					        "newNotesOnTop": "New notes will be created at the top of the parent note, not on the bottom."
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
    "relation": {
 | 
					    "relation": {
 | 
				
			||||||
        "runOnNoteCreation": "executes when note is created on backend. Use this relation if you want to run the script for all notes created under a specific subtree. In that case, create it on the subtree root note and make it inheritable. A new note created within the subtree (any depth) will trigger the script.",
 | 
					        "runOnNoteCreation": "executes when note is created on backend. Use this relation if you want to run the script for all notes created under a specific subtree. In that case, create it on the subtree root note and make it inheritable. A new note created within the subtree (any depth) will trigger the script.",
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -62,6 +62,7 @@ module.exports = [
 | 
				
			|||||||
    { type: 'label', name: 'keepCurrentHoisting'},
 | 
					    { type: 'label', name: 'keepCurrentHoisting'},
 | 
				
			||||||
    { type: 'label', name: 'executeButton'},
 | 
					    { type: 'label', name: 'executeButton'},
 | 
				
			||||||
    { type: 'label', name: 'executeDescription'},
 | 
					    { type: 'label', name: 'executeDescription'},
 | 
				
			||||||
 | 
					    { type: 'label', name: 'newNotesOnTop'},
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // relation names
 | 
					    // relation names
 | 
				
			||||||
    { type: 'relation', name: 'internalLink' },
 | 
					    { type: 'relation', name: 'internalLink' },
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,17 +22,18 @@ const htmlSanitizer = require("./html_sanitizer");
 | 
				
			|||||||
const ValidationError = require("../errors/validation_error");
 | 
					const ValidationError = require("../errors/validation_error");
 | 
				
			||||||
const noteTypesService = require("./note_types");
 | 
					const noteTypesService = require("./note_types");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function getNewNotePosition(parentNoteId) {
 | 
					function getNewNotePosition(parentNote) {
 | 
				
			||||||
    const note = becca.notes[parentNoteId];
 | 
					    if (parentNote.hasLabel('newNotesOnTop')) {
 | 
				
			||||||
 | 
					        const minNotePos = parentNote.getChildBranches()
 | 
				
			||||||
 | 
					            .reduce((min, note) => Math.min(min, note.notePosition), 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    if (!note) {
 | 
					        return minNotePos - 10;
 | 
				
			||||||
        throw new Error(`Can't find note ${parentNoteId}`);
 | 
					    } else {
 | 
				
			||||||
 | 
					        const maxNotePos = parentNote.getChildBranches()
 | 
				
			||||||
 | 
					            .reduce((max, note) => Math.max(max, note.notePosition), 0);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        return maxNotePos + 10;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    const maxNotePos = note.getChildBranches()
 | 
					 | 
				
			||||||
        .reduce((max, note) => Math.max(max, note.notePosition), 0);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return maxNotePos + 10;
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function triggerNoteTitleChanged(note) {
 | 
					function triggerNoteTitleChanged(note) {
 | 
				
			||||||
@@ -186,7 +187,7 @@ function createNewNote(params) {
 | 
				
			|||||||
            branch = new BBranch({
 | 
					            branch = new BBranch({
 | 
				
			||||||
                noteId: note.noteId,
 | 
					                noteId: note.noteId,
 | 
				
			||||||
                parentNoteId: params.parentNoteId,
 | 
					                parentNoteId: params.parentNoteId,
 | 
				
			||||||
                notePosition: params.notePosition !== undefined ? params.notePosition : getNewNotePosition(params.parentNoteId),
 | 
					                notePosition: params.notePosition !== undefined ? params.notePosition : getNewNotePosition(parentNote),
 | 
				
			||||||
                prefix: params.prefix,
 | 
					                prefix: params.prefix,
 | 
				
			||||||
                isExpanded: !!params.isExpanded
 | 
					                isExpanded: !!params.isExpanded
 | 
				
			||||||
            }).save();
 | 
					            }).save();
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user