diff --git a/history.sql b/history.sql new file mode 100644 index 000000000..4f453a813 --- /dev/null +++ b/history.sql @@ -0,0 +1,6 @@ +CREATE TABLE `notes_history` ( + `id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, + `note_id` INTEGER NOT NULL, + `note_text` TEXT NOT NULL, + `date_modified` INTEGER NOT NULL +); \ No newline at end of file diff --git a/src/notes_history_api.py b/src/notes_history_api.py index d62843052..8b94e5976 100644 --- a/src/notes_history_api.py +++ b/src/notes_history_api.py @@ -17,6 +17,6 @@ notes_history_api = Blueprint('notes_history_api', __name__) @notes_history_api.route('/notes-history/', methods = ['GET']) @login_required def getNoteHistory(note_id): - history = getResults("select * from notes_history where note_id = ?", [note_id]) + history = getResults("select * from notes_history where note_id = ? order by date_modified desc", [note_id]) return jsonify(history) \ No newline at end of file diff --git a/src/templates/app.html b/src/templates/app.html index 3e1e0352d..d5d5100af 100644 --- a/src/templates/app.html +++ b/src/templates/app.html @@ -171,6 +171,16 @@ + + @@ -230,6 +240,7 @@ + diff --git a/static/js/init.js b/static/js/init.js index 9b989ab45..715d4ffa9 100644 --- a/static/js/init.js +++ b/static/js/init.js @@ -20,25 +20,29 @@ $(function() { jQuery.hotkeys.options.filterInputAcceptingElements = true; jQuery.hotkeys.options.filterContentEditable = true; -$(document).bind('keydown', 'alt+h', function() { - const toggle = $(".hide-toggle"); - const hidden = toggle.css('display') === 'none'; - - toggle.css('display', hidden ? 'block' : 'none'); - - $("#noteDetailWrapper").css("width", hidden ? "750px" : "100%"); -}); +// $(document).bind('keydown', 'alt+h', function() { +// const toggle = $(".hide-toggle"); +// const hidden = toggle.css('display') === 'none'; +// +// toggle.css('display', hidden ? 'block' : 'none'); +// +// $("#noteDetailWrapper").css("width", hidden ? "750px" : "100%"); +// }); $(document).bind('keydown', 'alt+s', function() { $("input[name=search]").focus(); }); +function formatDate(date) { + const dateString = date.getDate() + ". " + (date.getMonth() + 1) + ". " + date.getFullYear() + " " + + date.getHours() + ":" + date.getMinutes(); + return dateString; +} + // hide (toggle) everything except for the note content for distraction free writing $(document).bind('keydown', 'alt+t', function() { const date = new Date(); - - const dateString = date.getDate() + ". " + (date.getMonth() + 1) + ". " + date.getFullYear() + " " + - date.getHours() + ":" + date.getMinutes(); + const dateString = formatDate(date); $('#noteDetail').summernote('insertText', dateString); }); diff --git a/static/js/note_history.js b/static/js/note_history.js new file mode 100644 index 000000000..93e545e24 --- /dev/null +++ b/static/js/note_history.js @@ -0,0 +1,28 @@ +$(document).bind('keydown', 'alt+h', function() { + $("#noteHistoryDialog").dialog({ + modal: true, + width: 800, + height: 700 + }); + + $("#noteHistoryList").empty(); + $("#noteHistoryContent").empty(); + + $.ajax({ + url: baseUrl + 'notes-history/' + globalCurrentNote.detail.note_id, + type: 'GET', + success: function (result) { + if (result.length > 0) { + $("#noteHistoryContent").html(result[0]["note_text"]); + } + + for (row of result) { + const dateModified = new Date(row['date_modified'] * 1000); + const optionHtml = ''; + + $("#noteHistoryList").append(optionHtml); + } + }, + error: () => alert("Error getting note history.") + }); +}); \ No newline at end of file