better handling of renames in recent notes list (but hacky and not perfect)

This commit is contained in:
azivner 2017-08-27 10:30:32 -04:00
parent bf22cc55e1
commit 001d91172a
3 changed files with 26 additions and 11 deletions

View File

@ -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) {

View File

@ -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);
} }

View File

@ -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) {