mirror of
https://github.com/zadam/trilium.git
synced 2025-06-06 18:08:33 +02:00
add button to erase deleted notes now into the options
This commit is contained in:
parent
58555b3660
commit
e56979c482
2
package-lock.json
generated
2
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "trilium",
|
"name": "trilium",
|
||||||
"version": "0.45.5",
|
"version": "0.45.6",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
|
@ -51,6 +51,12 @@ const TPL = `
|
|||||||
<label for="erase-notes-after-time-in-seconds">Erase notes after X seconds</label>
|
<label for="erase-notes-after-time-in-seconds">Erase notes after X seconds</label>
|
||||||
<input class="form-control" id="erase-notes-after-time-in-seconds" type="number" min="0">
|
<input class="form-control" id="erase-notes-after-time-in-seconds" type="number" min="0">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<p>You can also trigger erasing manually:</p>
|
||||||
|
|
||||||
|
<button id="erase-deleted-notes-now-button" class="btn">Erase deleted notes now</button>
|
||||||
|
|
||||||
|
<br/><br/>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
@ -117,6 +123,13 @@ export default class ProtectedSessionOptions {
|
|||||||
return false;
|
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 = $("#protected-session-timeout-in-seconds");
|
||||||
|
|
||||||
this.$protectedSessionTimeout.on('change', () => {
|
this.$protectedSessionTimeout.on('change', () => {
|
||||||
|
@ -193,6 +193,10 @@ function duplicateSubtree(req) {
|
|||||||
return noteService.duplicateSubtree(noteId, parentNoteId);
|
return noteService.duplicateSubtree(noteId, parentNoteId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function eraseDeletedNotesNow() {
|
||||||
|
noteService.eraseDeletedNotesNow();
|
||||||
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
getNote,
|
getNote,
|
||||||
updateNote,
|
updateNote,
|
||||||
@ -204,5 +208,6 @@ module.exports = {
|
|||||||
setNoteTypeMime,
|
setNoteTypeMime,
|
||||||
getRelationMap,
|
getRelationMap,
|
||||||
changeTitle,
|
changeTitle,
|
||||||
duplicateSubtree
|
duplicateSubtree,
|
||||||
|
eraseDeletedNotesNow
|
||||||
};
|
};
|
||||||
|
@ -38,6 +38,8 @@ function saveSyncSeed(req) {
|
|||||||
}]
|
}]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.info("Saved sync seed.");
|
||||||
|
|
||||||
sqlInit.createDatabaseForSync(options);
|
sqlInit.createDatabaseForSync(options);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -153,6 +153,7 @@ function register(app) {
|
|||||||
route(GET, '/api/notes/:noteId/revisions/:noteRevisionId/download', [auth.checkApiAuthOrElectron], noteRevisionsApiRoute.downloadNoteRevision);
|
route(GET, '/api/notes/:noteId/revisions/:noteRevisionId/download', [auth.checkApiAuthOrElectron], noteRevisionsApiRoute.downloadNoteRevision);
|
||||||
apiRoute(PUT, '/api/notes/:noteId/restore-revision/:noteRevisionId', noteRevisionsApiRoute.restoreNoteRevision);
|
apiRoute(PUT, '/api/notes/:noteId/restore-revision/:noteRevisionId', noteRevisionsApiRoute.restoreNoteRevision);
|
||||||
apiRoute(POST, '/api/notes/relation-map', notesApiRoute.getRelationMap);
|
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(PUT, '/api/notes/:noteId/change-title', notesApiRoute.changeTitle);
|
||||||
apiRoute(POST, '/api/notes/:noteId/duplicate/:parentNoteId', notesApiRoute.duplicateSubtree);
|
apiRoute(POST, '/api/notes/:noteId/duplicate/:parentNoteId', notesApiRoute.duplicateSubtree);
|
||||||
|
|
||||||
|
@ -668,8 +668,10 @@ function scanForLinks(note) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function eraseDeletedNotes() {
|
function eraseDeletedNotes(eraseNotesAfterTimeInSeconds = null) {
|
||||||
const eraseNotesAfterTimeInSeconds = optionService.getOptionInt('eraseNotesAfterTimeInSeconds');
|
if (eraseNotesAfterTimeInSeconds === null) {
|
||||||
|
eraseNotesAfterTimeInSeconds = optionService.getOptionInt('eraseNotesAfterTimeInSeconds');
|
||||||
|
}
|
||||||
|
|
||||||
const cutoffDate = new Date(Date.now() - eraseNotesAfterTimeInSeconds * 1000);
|
const cutoffDate = new Date(Date.now() - eraseNotesAfterTimeInSeconds * 1000);
|
||||||
|
|
||||||
@ -719,6 +721,10 @@ function eraseDeletedNotes() {
|
|||||||
log.info(`Erased notes: ${JSON.stringify(noteIdsToErase)}`);
|
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
|
// do a replace in str - all keys should be replaced by the corresponding values
|
||||||
function replaceByMap(str, mapObj) {
|
function replaceByMap(str, mapObj) {
|
||||||
const re = new RegExp(Object.keys(mapObj).join("|"),"g");
|
const re = new RegExp(Object.keys(mapObj).join("|"),"g");
|
||||||
@ -841,5 +847,6 @@ module.exports = {
|
|||||||
duplicateSubtree,
|
duplicateSubtree,
|
||||||
duplicateSubtreeWithoutRoot,
|
duplicateSubtreeWithoutRoot,
|
||||||
getUndeletedParentBranches,
|
getUndeletedParentBranches,
|
||||||
triggerNoteTitleChanged
|
triggerNoteTitleChanged,
|
||||||
|
eraseDeletedNotesNow
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user