mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 11:56:01 +01:00 
			
		
		
		
	better handling of renames in recent notes list (but hacky and not perfect)
This commit is contained in:
		@@ -26,12 +26,18 @@ $(document).bind('keydown', 'alt+q', function() {
 | 
				
			|||||||
    recentNotesSelectBox.find('option').remove();
 | 
					    recentNotesSelectBox.find('option').remove();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // remove the current note
 | 
					    // remove the current note
 | 
				
			||||||
    let recNotes = recentNotes.filter(note => note.noteId !== globalNote.detail.note_id);
 | 
					    let recNotes = recentNotes.filter(note => note !== globalNote.detail.note_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    $.each(recNotes, function(key, valueNoteId) {
 | 
				
			||||||
 | 
					        let noteTitle = globalNoteNames[valueNoteId];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (!noteTitle) {
 | 
				
			||||||
 | 
					            return;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $.each(recNotes, function(key, value) {
 | 
					 | 
				
			||||||
        let option = $("<option></option>")
 | 
					        let option = $("<option></option>")
 | 
				
			||||||
                .attr("value", value.noteId)
 | 
					                .attr("value", valueNoteId)
 | 
				
			||||||
                .text(value.noteTitle);
 | 
					                .text(noteTitle);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // select the first one (most recent one) by default
 | 
					        // select the first one (most recent one) by default
 | 
				
			||||||
        if (key === 0) {
 | 
					        if (key === 0) {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -42,6 +42,8 @@ function saveNoteIfChanged(callback) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    note.detail.note_title = title;
 | 
					    note.detail.note_title = title;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    globalNoteNames[note.detail.note_id] = title;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    $.ajax({
 | 
					    $.ajax({
 | 
				
			||||||
        url: baseUrl + 'notes/' + note.detail.note_id,
 | 
					        url: baseUrl + 'notes/' + note.detail.note_id,
 | 
				
			||||||
        type: 'PUT',
 | 
					        type: 'PUT',
 | 
				
			||||||
@@ -123,6 +125,8 @@ function createNote(node, parentKey, target) {
 | 
				
			|||||||
                "note_id": result.note_id
 | 
					                "note_id": result.note_id
 | 
				
			||||||
            };
 | 
					            };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            globalNoteNames[result.note_id] = newNoteName;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            newNoteCreated = true;
 | 
					            newNoteCreated = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (target === 'after') {
 | 
					            if (target === 'after') {
 | 
				
			||||||
@@ -164,27 +168,24 @@ function loadNote(noteId) {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        $(window).resize(); // to trigger resizing of editor
 | 
					        $(window).resize(); // to trigger resizing of editor
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        addRecentNote(noteId, note.detail.note_id, note.detail.note_title);
 | 
					        addRecentNote(noteId, note.detail.note_id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        noteChangeDisabled = false;
 | 
					        noteChangeDisabled = false;
 | 
				
			||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function addRecentNote(noteTreeId, noteContentId, noteTitle) {
 | 
					function addRecentNote(noteTreeId, noteContentId) {
 | 
				
			||||||
    const origDate = new Date();
 | 
					    const origDate = new Date();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    setTimeout(function() {
 | 
					    setTimeout(function() {
 | 
				
			||||||
        // we include the note into recent list only if the user stayed on the note at least 5 seconds
 | 
					        // we include the note into recent list only if the user stayed on the note at least 5 seconds
 | 
				
			||||||
        if (noteTreeId === globalNote.detail.note_id || noteContentId === globalNote.detail.note_id) {
 | 
					        if (noteTreeId === globalNote.detail.note_id || noteContentId === globalNote.detail.note_id) {
 | 
				
			||||||
            // if it's already there, remove the note
 | 
					            // if it's already there, remove the note
 | 
				
			||||||
            recentNotes = recentNotes.filter(note => note.noteId !== noteTreeId);
 | 
					            recentNotes = recentNotes.filter(note => note !== noteTreeId);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            console.log("added after " + (new Date().getTime() - origDate.getTime()));
 | 
					            console.log("added after " + (new Date().getTime() - origDate.getTime()));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            recentNotes.unshift({
 | 
					            recentNotes.unshift(noteTreeId);
 | 
				
			||||||
                noteId: noteTreeId,
 | 
					 | 
				
			||||||
                noteTitle: noteTitle
 | 
					 | 
				
			||||||
            });
 | 
					 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }, 1500);
 | 
					    }, 1500);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -18,6 +18,11 @@ const keybindings = {
 | 
				
			|||||||
                        node.getParent().renderTitle();
 | 
					                        node.getParent().renderTitle();
 | 
				
			||||||
                    }
 | 
					                    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    delete globalNoteNames[node.key];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    // remove from recent notes
 | 
				
			||||||
 | 
					                    recentNotes = recentNotes.filter(note => note !== node.key);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    node.remove();
 | 
					                    node.remove();
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            });
 | 
					            });
 | 
				
			||||||
@@ -89,6 +94,7 @@ const keybindings = {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const globalNoteNames = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
$(function(){
 | 
					$(function(){
 | 
				
			||||||
    $.get(baseUrl + 'tree').then(resp => {
 | 
					    $.get(baseUrl + 'tree').then(resp => {
 | 
				
			||||||
@@ -101,6 +107,8 @@ $(function(){
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
        function copyTitle(notes) {
 | 
					        function copyTitle(notes) {
 | 
				
			||||||
            for (let note of notes) {
 | 
					            for (let note of notes) {
 | 
				
			||||||
 | 
					                globalNoteNames[note.note_id] = note.note_title;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                note.title = note.note_title;
 | 
					                note.title = note.note_title;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                if (note.is_clone) {
 | 
					                if (note.is_clone) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user