diff --git a/src/entities/entity_constructor.js b/src/entities/entity_constructor.js index 1fbf02622..af4037f28 100644 --- a/src/entities/entity_constructor.js +++ b/src/entities/entity_constructor.js @@ -4,6 +4,7 @@ const Image = require('../entities/image'); const NoteImage = require('../entities/note_image'); const Branch = require('../entities/branch'); const Label = require('../entities/label'); +const RecentNote = require('../entities/recent_note'); const repository = require('../services/repository'); function createEntityFromRow(row) { @@ -21,6 +22,9 @@ function createEntityFromRow(row) { else if (row.imageId) { entity = new Image(row); } + else if (row.branchId && row.notePath) { + entity = new RecentNote(row); + } else if (row.branchId) { entity = new Branch(row); } diff --git a/src/entities/recent_note.js b/src/entities/recent_note.js new file mode 100644 index 000000000..a5d77b7d4 --- /dev/null +++ b/src/entities/recent_note.js @@ -0,0 +1,10 @@ +"use strict"; + +const Entity = require('./entity'); + +class RecentNote extends Entity { + static get tableName() { return "recent_notes"; } + static get primaryKeyName() { return "branchId"; } +} + +module.exports = RecentNote; \ No newline at end of file diff --git a/src/public/javascripts/services/tree_changes.js b/src/public/javascripts/services/tree_changes.js index e45688dc6..4d11fd107 100644 --- a/src/public/javascripts/services/tree_changes.js +++ b/src/public/javascripts/services/tree_changes.js @@ -41,11 +41,11 @@ async function moveToNode(nodesToMove, toNode) { return; } - await changeNode(nodeToMove, node => { + await changeNode(nodeToMove, async node => { // first expand which will force lazy load and only then move the node // if this is not expanded before moving, then lazy load won't happen because it already contains node // this doesn't work if this isn't a folder yet, that's why we expand second time below - toNode.setExpanded(true); + await toNode.setExpanded(true); node.moveTo(toNode); @@ -53,7 +53,7 @@ async function moveToNode(nodesToMove, toNode) { toNode.renderTitle(); // this expands the note in case it become the folder only after the move - toNode.setExpanded(true); + await toNode.setExpanded(true); }); } } @@ -117,7 +117,7 @@ async function changeNode(node, func) { const childNoteId = node.data.noteId; const oldParentNoteId = node.data.parentNoteId; - func(node); + await func(node); const newParentNoteId = node.data.parentNoteId = utils.isTopLevelNode(node) ? 'root' : node.getParent().data.noteId; diff --git a/src/routes/api/password.js b/src/routes/api/password.js index 3f7f7db6e..8ed40e393 100644 --- a/src/routes/api/password.js +++ b/src/routes/api/password.js @@ -3,7 +3,7 @@ const changePasswordService = require('../../services/change_password'); async function changePassword(req) { - return await changePasswordService.changePassword(req.body['current_password'], req.body['new_password'], req); + return await changePasswordService.changePassword(req.body.current_password, req.body.new_password); } module.exports = { diff --git a/src/routes/api/recent_notes.js b/src/routes/api/recent_notes.js index 14362fe29..55ef25157 100644 --- a/src/routes/api/recent_notes.js +++ b/src/routes/api/recent_notes.js @@ -1,12 +1,12 @@ "use strict"; -const sql = require('../../services/sql'); +const repository = require('../../services/repository'); const utils = require('../../services/utils'); -const sync_table = require('../../services/sync_table'); const options = require('../../services/options'); +const RecentNote = require('../../entities/recent_note'); async function getRecentNotes() { - return await sql.getRows(` + return await repository.getEntities(` SELECT recent_notes.* FROM @@ -20,19 +20,18 @@ async function getRecentNotes() { LIMIT 200`); } - async function addRecentNote(req) { const branchId = req.params.branchId; const notePath = req.params.notePath; - await sql.replace('recent_notes', { + const recentNote = new RecentNote({ branchId: branchId, notePath: notePath, dateAccessed: utils.nowDate(), isDeleted: 0 }); - await sync_table.addRecentNoteSync(branchId); + await recentNote.save(); await options.setOption('start_note_path', notePath); diff --git a/src/routes/api/script.js b/src/routes/api/script.js index 16a21b08c..39a552410 100644 --- a/src/routes/api/script.js +++ b/src/routes/api/script.js @@ -5,21 +5,17 @@ const script = require('../../services/script'); const repository = require('../../services/repository'); async function exec(req) { - const ret = await script.executeScript(req, req.body.script, req.body.params, req.body.startNoteId, req.body.currentNoteId); + const result = await script.executeScript(req.body.script, req.body.params, req.body.startNoteId, req.body.currentNoteId); - return { - executionResult: ret - }; + return { executionResult: result }; } async function run(req) { const note = await repository.getNote(req.params.noteId); - const ret = await script.executeNote(req, note); + const result = await script.executeNote(req, note); - return { - executionResult: ret - }; + return { executionResult: result }; } async function getStartupBundles(req) { diff --git a/src/routes/api/tree_changes.js b/src/routes/api/tree_changes.js index 103612f90..42567acdf 100644 --- a/src/routes/api/tree_changes.js +++ b/src/routes/api/tree_changes.js @@ -27,12 +27,10 @@ async function moveBranchToParent(req) { const maxNotePos = await sql.getValue('SELECT MAX(notePosition) FROM branches WHERE parentNoteId = ? AND isDeleted = 0', [parentNoteId]); const newNotePos = maxNotePos === null ? 0 : maxNotePos + 1; - const now = utils.nowDate(); - - await sql.execute("UPDATE branches SET parentNoteId = ?, notePosition = ?, dateModified = ? WHERE branchId = ?", - [parentNoteId, newNotePos, now, branchId]); - - await sync_table.addBranchSync(branchId); + const branch = await repository.getBranch(branchId); + branch.parentNoteId = parentNoteId; + branch.notePosition = newNotePos; + await branch.save(); return { success: true }; } @@ -57,10 +55,10 @@ async function moveBranchBeforeNote(req) { await sync_table.addNoteReorderingSync(beforeNote.parentNoteId); - await sql.execute("UPDATE branches SET parentNoteId = ?, notePosition = ?, dateModified = ? WHERE branchId = ?", - [beforeNote.parentNoteId, beforeNote.notePosition, utils.nowDate(), branchId]); - - await sync_table.addBranchSync(branchId); + const branch = await repository.getBranch(branchId); + branch.parentNoteId = beforeNote.parentNoteId; + branch.notePosition = beforeNote.notePosition; + await branch.save(); return { success: true }; } @@ -85,10 +83,10 @@ async function moveBranchAfterNote(req) { await sync_table.addNoteReorderingSync(afterNote.parentNoteId); - await sql.execute("UPDATE branches SET parentNoteId = ?, notePosition = ?, dateModified = ? WHERE branchId = ?", - [afterNote.parentNoteId, afterNote.notePosition + 1, utils.nowDate(), branchId]); - - await sync_table.addBranchSync(branchId); + const branch = await repository.getBranch(branchId); + branch.parentNoteId = afterNote.parentNoteId; + branch.notePosition = afterNote.notePosition + 1; + await branch.save(); return { success: true }; } diff --git a/src/services/change_password.js b/src/services/change_password.js index 3a5b1d468..0669a0e40 100644 --- a/src/services/change_password.js +++ b/src/services/change_password.js @@ -6,7 +6,7 @@ const my_scrypt = require('./my_scrypt'); const utils = require('./utils'); const password_encryption = require('./password_encryption'); -async function changePassword(currentPassword, newPassword, req) { +async function changePassword(currentPassword, newPassword) { if (!await password_encryption.verifyPassword(currentPassword)) { return { success: false,