diff --git a/services/attributes.js b/services/attributes.js index e2e68f04f..73297baca 100644 --- a/services/attributes.js +++ b/services/attributes.js @@ -4,6 +4,10 @@ const sql = require('./sql'); const utils = require('./utils'); const sync_table = require('./sync_table'); +async function getNoteAttributeMap(noteId) { + return await sql.getMap(`SELECT name, value FROM attributes WHERE note_id = ?`, [noteId]); +} + async function getNoteIdWithAttribute(name, value) { return await sql.getFirstValue(`SELECT notes.note_id FROM notes JOIN attributes USING(note_id) WHERE notes.is_deleted = 0 AND attributes.name = ? AND attributes.value = ?`, [name, value]); @@ -26,6 +30,7 @@ async function createAttribute(noteId, name, value = null, sourceId = null) { } module.exports = { + getNoteAttributeMap, getNoteIdWithAttribute, createAttribute }; \ No newline at end of file diff --git a/services/notes.js b/services/notes.js index edb03d6d3..40fb5eb63 100644 --- a/services/notes.js +++ b/services/notes.js @@ -4,6 +4,7 @@ const utils = require('./utils'); const notes = require('./notes'); const data_encryption = require('./data_encryption'); const sync_table = require('./sync_table'); +const attributes = require('./attributes'); async function createNewNote(parentNoteId, note, sourceId) { const noteId = utils.newNoteId(); @@ -212,6 +213,8 @@ async function updateNote(noteId, newNote, dataKey, sourceId) { await encryptNote(newNote, dataKey); } + const attributesMap = await attributes.getNoteAttributeMap(noteId); + const now = new Date(); const nowStr = utils.nowDate(); @@ -225,7 +228,10 @@ async function updateNote(noteId, newNote, dataKey, sourceId) { await sql.doInTransaction(async () => { const msSinceDateCreated = now.getTime() - utils.parseDate(newNote.detail.date_created).getTime(); - if (!existingNoteHistoryId && msSinceDateCreated >= historySnapshotTimeInterval * 1000) { + if (attributesMap.disable_versioning !== 'true' + && !existingNoteHistoryId + && msSinceDateCreated >= historySnapshotTimeInterval * 1000) { + await saveNoteHistory(noteId, dataKey, sourceId, nowStr); }