diff --git a/TODO b/TODO
index fd6550601..c235a2756 100644
--- a/TODO
+++ b/TODO
@@ -28,7 +28,7 @@ Encryption:
Bugs:
- deleting cloned nodes ends with 500 (probably only on folders)
- Uncaught Error: cannot call methods on fancytree prior to initialization; attempted to call method 'getTree'
-- recent changes sorts 1st october to the end
+- FIXED: recent changes sorts 1st october to the end
Others:
- dates should be stored in UTC to work correctly with time zones
diff --git a/src/templates/app.html b/src/templates/app.html
index 568d13905..f5ab1a528 100644
--- a/src/templates/app.html
+++ b/src/templates/app.html
@@ -82,7 +82,15 @@
-
+
+
+
+
+
+ Jump to
+
+ Add link
+
diff --git a/static/js/add_link.js b/static/js/add_link.js
index c06c77797..1b129561c 100644
--- a/static/js/add_link.js
+++ b/static/js/add_link.js
@@ -11,16 +11,7 @@ $(document).bind('keydown', 'alt+l', function() {
});
function setDefaultLinkTitle(noteId) {
- const note = getNodeByKey(noteId);
- if (!note) {
- return;
- }
-
- let noteTitle = note.title;
-
- if (noteTitle.endsWith(" (clone)")) {
- noteTitle = noteTitle.substr(0, noteTitle.length - 8);
- }
+ const noteTitle = getNoteTitle(noteId);
$("#linkTitle").val(noteTitle);
}
diff --git a/static/js/recent_notes.js b/static/js/recent_notes.js
index 4e46db81a..01063ab9e 100644
--- a/static/js/recent_notes.js
+++ b/static/js/recent_notes.js
@@ -15,6 +15,8 @@ function addRecentNote(noteTreeId, noteContentId) {
}
$(document).bind('keydown', 'alt+q', function() {
+ $('#noteDetail').summernote('editor.saveRange');
+
$("#recentNotesDialog").dialog({
modal: true,
width: 500
@@ -47,23 +49,52 @@ $(document).bind('keydown', 'alt+q', function() {
});
});
+function getSelectedNoteIdFromRecentNotes() {
+ return $("#recentNotesSelectBox option:selected").val();
+}
+
function setActiveNoteBasedOnRecentNotes() {
- let noteId = $("#recentNotesSelectBox option:selected").val();
+ const noteId = getSelectedNoteIdFromRecentNotes();
getNodeByKey(noteId).setActive();
$("#recentNotesDialog").dialog('close');
}
+function addLinkBasedOnRecentNotes() {
+ const noteId = getSelectedNoteIdFromRecentNotes();
+
+ const linkTitle = getNoteTitle(noteId);
+ const noteDetail = $('#noteDetail');
+
+ $("#recentNotesDialog").dialog("close");
+
+ noteDetail.summernote('editor.restoreRange');
+
+ noteDetail.summernote('createLink', {
+ text: linkTitle,
+ url: 'app#' + noteId,
+ isNewWindow: true
+ });
+}
+
$('#recentNotesSelectBox').keydown(function(e) {
- let key = e.which;
+ const key = e.which;
if (key === 13)// the enter key code
{
setActiveNoteBasedOnRecentNotes();
}
+ else if (key === 76 /* l */) {
+ addLinkBasedOnRecentNotes();
+ }
+
+ e.preventDefault();
});
$('#recentNotesSelectBox').dblclick(function(e) {
setActiveNoteBasedOnRecentNotes();
-});
\ No newline at end of file
+});
+
+$('#recentNotesJumpTo').click(setActiveNoteBasedOnRecentNotes);
+$('#recentNotesAddLink').click(addLinkBasedOnRecentNotes);
\ No newline at end of file
diff --git a/static/js/tree_utils.js b/static/js/tree_utils.js
index c9e444f43..a8af4d0c4 100644
--- a/static/js/tree_utils.js
+++ b/static/js/tree_utils.js
@@ -10,6 +10,21 @@ function getNodeByKey(noteId) {
return globalTree.fancytree('getNodeByKey', noteId);
}
+function getNoteTitle(noteId) {
+ const note = getNodeByKey(noteId);
+ if (!note) {
+ return;
+ }
+
+ let noteTitle = note.title;
+
+ if (noteTitle.endsWith(" (clone)")) {
+ noteTitle = noteTitle.substr(0, noteTitle.length - 8);
+ }
+
+ return noteTitle;
+}
+
function getFullName(noteId) {
let note = getNodeByKey(noteId);