diff --git a/app/menus/DocumentMenu.js b/app/menus/DocumentMenu.js index 5dacea32..dd0a4f19 100644 --- a/app/menus/DocumentMenu.js +++ b/app/menus/DocumentMenu.js @@ -218,12 +218,7 @@ function DocumentMenu({ items={[ { title: t("Restore"), - visible: !!can.unarchive, - onClick: handleRestore, - }, - { - title: t("Restore"), - visible: !!(collection && can.restore), + visible: (!!collection && can.restore) || can.unarchive, onClick: handleRestore, }, { diff --git a/server/api/documents.test.js b/server/api/documents.test.js index 352d218f..5a3a43db 100644 --- a/server/api/documents.test.js +++ b/server/api/documents.test.js @@ -1588,7 +1588,7 @@ describe("#documents.restore", () => { const body = await res.json(); expect(res.status).toEqual(200); - expect(body.data.parentDocumentId).toEqual(undefined); + expect(body.data.parentDocumentId).toEqual(null); expect(body.data.archivedAt).toEqual(null); }); diff --git a/server/models/Document.js b/server/models/Document.js index 269a2ee9..eca88ab0 100644 --- a/server/models/Document.js +++ b/server/models/Document.js @@ -637,7 +637,7 @@ Document.prototype.unarchive = async function (userId: string) { }, }, }); - if (!parent) this.parentDocumentId = undefined; + if (!parent) this.parentDocumentId = null; } if (!this.template) { diff --git a/server/policies/document.js b/server/policies/document.js index 26ec3375..14b76be4 100644 --- a/server/policies/document.js +++ b/server/policies/document.js @@ -149,6 +149,7 @@ allow(User, "unarchive", Document, (user, document) => { if (cannot(user, "update", document.collection)) return false; if (!document.archivedAt) return false; + if (document.deletedAt) return false; return user.teamId === document.teamId; });