From e56979c48231f5e1df87d12cb11d7c077207ab89 Mon Sep 17 00:00:00 2001 From: zadam Date: Sun, 6 Dec 2020 22:11:49 +0100 Subject: [PATCH] add button to erase deleted notes now into the options --- package-lock.json | 2 +- src/public/app/dialogs/options/other.js | 13 +++++++++++++ src/routes/api/notes.js | 7 ++++++- src/routes/api/setup.js | 2 ++ src/routes/routes.js | 1 + src/services/notes.js | 13 ++++++++++--- 6 files changed, 33 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index a042a5c36..82175019c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "trilium", - "version": "0.45.5", + "version": "0.45.6", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/src/public/app/dialogs/options/other.js b/src/public/app/dialogs/options/other.js index 7e498052e..45b271f07 100644 --- a/src/public/app/dialogs/options/other.js +++ b/src/public/app/dialogs/options/other.js @@ -51,6 +51,12 @@ const TPL = ` + +

You can also trigger erasing manually:

+ + + +

@@ -117,6 +123,13 @@ export default class ProtectedSessionOptions { return false; }); + this.$eraseDeletedNotesButton = $("#erase-deleted-notes-now-button"); + this.$eraseDeletedNotesButton.on('click', () => { + server.post('notes/erase-deleted-notes-now').then(() => { + toastService.showMessage("Deleted notes have been erased."); + }); + }); + this.$protectedSessionTimeout = $("#protected-session-timeout-in-seconds"); this.$protectedSessionTimeout.on('change', () => { diff --git a/src/routes/api/notes.js b/src/routes/api/notes.js index 4f03a5223..a839c0bcf 100644 --- a/src/routes/api/notes.js +++ b/src/routes/api/notes.js @@ -193,6 +193,10 @@ function duplicateSubtree(req) { return noteService.duplicateSubtree(noteId, parentNoteId); } +function eraseDeletedNotesNow() { + noteService.eraseDeletedNotesNow(); +} + module.exports = { getNote, updateNote, @@ -204,5 +208,6 @@ module.exports = { setNoteTypeMime, getRelationMap, changeTitle, - duplicateSubtree + duplicateSubtree, + eraseDeletedNotesNow }; diff --git a/src/routes/api/setup.js b/src/routes/api/setup.js index 98cdd6327..d2ec74b2e 100644 --- a/src/routes/api/setup.js +++ b/src/routes/api/setup.js @@ -38,6 +38,8 @@ function saveSyncSeed(req) { }] } + log.info("Saved sync seed."); + sqlInit.createDatabaseForSync(options); } diff --git a/src/routes/routes.js b/src/routes/routes.js index cfa2e62d4..248cc6fe0 100644 --- a/src/routes/routes.js +++ b/src/routes/routes.js @@ -153,6 +153,7 @@ function register(app) { route(GET, '/api/notes/:noteId/revisions/:noteRevisionId/download', [auth.checkApiAuthOrElectron], noteRevisionsApiRoute.downloadNoteRevision); apiRoute(PUT, '/api/notes/:noteId/restore-revision/:noteRevisionId', noteRevisionsApiRoute.restoreNoteRevision); apiRoute(POST, '/api/notes/relation-map', notesApiRoute.getRelationMap); + apiRoute(POST, '/api/notes/erase-deleted-notes-now', notesApiRoute.eraseDeletedNotesNow); apiRoute(PUT, '/api/notes/:noteId/change-title', notesApiRoute.changeTitle); apiRoute(POST, '/api/notes/:noteId/duplicate/:parentNoteId', notesApiRoute.duplicateSubtree); diff --git a/src/services/notes.js b/src/services/notes.js index 4aa944504..f7353eeb5 100644 --- a/src/services/notes.js +++ b/src/services/notes.js @@ -668,8 +668,10 @@ function scanForLinks(note) { } } -function eraseDeletedNotes() { - const eraseNotesAfterTimeInSeconds = optionService.getOptionInt('eraseNotesAfterTimeInSeconds'); +function eraseDeletedNotes(eraseNotesAfterTimeInSeconds = null) { + if (eraseNotesAfterTimeInSeconds === null) { + eraseNotesAfterTimeInSeconds = optionService.getOptionInt('eraseNotesAfterTimeInSeconds'); + } const cutoffDate = new Date(Date.now() - eraseNotesAfterTimeInSeconds * 1000); @@ -719,6 +721,10 @@ function eraseDeletedNotes() { log.info(`Erased notes: ${JSON.stringify(noteIdsToErase)}`); } +function eraseDeletedNotesNow() { + eraseDeletedNotes(0); +} + // do a replace in str - all keys should be replaced by the corresponding values function replaceByMap(str, mapObj) { const re = new RegExp(Object.keys(mapObj).join("|"),"g"); @@ -841,5 +847,6 @@ module.exports = { duplicateSubtree, duplicateSubtreeWithoutRoot, getUndeletedParentBranches, - triggerNoteTitleChanged + triggerNoteTitleChanged, + eraseDeletedNotesNow };