From 78bfc3341b4f646fd22b49f8c9b33f3d70bf3c3b Mon Sep 17 00:00:00 2001 From: SiriusXT <1160925501@qq.com> Date: Wed, 4 Sep 2024 09:04:40 +0000 Subject: [PATCH] Add versioningLimit label support --- src/becca/entities/bnote.ts | 10 +++++++--- src/routes/api/revisions.ts | 2 +- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index 2c4384eb1..9896567e8 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -1614,15 +1614,19 @@ class BNote extends AbstractBeccaEntity { revision.setContent(noteContent); - this.eraseExcessRevisions() + this.eraseExcessRevisionSnapshots() return revision; }); } // Limit the number of Snapshots to revisionSnapshotNumberLimit // Delete older Snapshots that exceed the limit - eraseExcessRevisions() { - const revisionSnapshotNumberLimit = parseInt(optionService.getOption('revisionSnapshotNumberLimit')); + eraseExcessRevisionSnapshots() { + // lable has a higher priority + let revisionSnapshotNumberLimit = parseInt(this.getLabelValue("versioningLimit") ?? ""); + if (!Number.isInteger(revisionSnapshotNumberLimit)) { + revisionSnapshotNumberLimit = parseInt(optionService.getOption('revisionSnapshotNumberLimit')); + } if (revisionSnapshotNumberLimit >= 0) { const revisions = this.getRevisions(); if (revisions.length - revisionSnapshotNumberLimit > 0) { diff --git a/src/routes/api/revisions.ts b/src/routes/api/revisions.ts index f791896e4..9e1e4ffac 100644 --- a/src/routes/api/revisions.ts +++ b/src/routes/api/revisions.ts @@ -116,7 +116,7 @@ function eraseRevision(req: Request) { function eraseAllExcessRevisions() { let allNoteIds = sql.getRows('SELECT noteId FROM notes') as { noteId: string }[]; allNoteIds.forEach(row => { - becca.getNote(row.noteId)?.eraseExcessRevisions() + becca.getNote(row.noteId)?.eraseExcessRevisionSnapshots() }); }