mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	
		
			
	
	
		
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			69 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								let globalRecentNotes = [];
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function addRecentNote(noteTreeId, noteContentId) {
							 | 
						||
| 
								 | 
							
								    const origDate = new Date();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    setTimeout(function() {
							 | 
						||
| 
								 | 
							
								        // we include the note into recent list only if the user stayed on the note at least 5 seconds
							 | 
						||
| 
								 | 
							
								        if (noteTreeId === globalCurrentNote.detail.note_id || noteContentId === globalCurrentNote.detail.note_id) {
							 | 
						||
| 
								 | 
							
								            // if it's already there, remove the note
							 | 
						||
| 
								 | 
							
								            globalRecentNotes = globalRecentNotes.filter(note => note !== noteTreeId);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								            globalRecentNotes.unshift(noteTreeId);
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								    }, 1500);
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$(document).bind('keydown', 'alt+q', function() {
							 | 
						||
| 
								 | 
							
								    $("#recentNotesDialog").dialog({
							 | 
						||
| 
								 | 
							
								        modal: true,
							 | 
						||
| 
								 | 
							
								        width: 500
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    let recentNotesSelectBox = $('#recentNotesSelectBox');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    recentNotesSelectBox.find('option').remove();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // remove the current note
							 | 
						||
| 
								 | 
							
								    let recNotes = globalRecentNotes.filter(note => note !== globalCurrentNote.detail.note_id);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $.each(recNotes, function(key, valueNoteId) {
							 | 
						||
| 
								 | 
							
								        let noteTitle = getFullName(valueNoteId);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        if (!noteTitle) {
							 | 
						||
| 
								 | 
							
								            return;
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        let option = $("<option></option>")
							 | 
						||
| 
								 | 
							
								                .attr("value", valueNoteId)
							 | 
						||
| 
								 | 
							
								                .text(noteTitle);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // select the first one (most recent one) by default
							 | 
						||
| 
								 | 
							
								        if (key === 0) {
							 | 
						||
| 
								 | 
							
								            option.attr("selected", "selected");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        recentNotesSelectBox.append(option);
							 | 
						||
| 
								 | 
							
								    });
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								function setActiveNoteBasedOnRecentNotes() {
							 | 
						||
| 
								 | 
							
								    let noteId = $("#recentNotesSelectBox option:selected").val();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    getNodeByKey(noteId).setActive();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $("#recentNotesDialog").dialog('close');
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$('#recentNotesSelectBox').keydown(function(e) {
							 | 
						||
| 
								 | 
							
								    let key = e.which;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    if (key === 13)// the enter key code
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        setActiveNoteBasedOnRecentNotes();
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								});
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								$('#recentNotesSelectBox').dblclick(function(e) {
							 | 
						||
| 
								 | 
							
								    setActiveNoteBasedOnRecentNotes();
							 | 
						||
| 
								 | 
							
								});
							 |