diff --git a/plugins/controlled-documents/src/utils.ts b/plugins/controlled-documents/src/utils.ts index 7c79218bdc..17895dd42e 100644 --- a/plugins/controlled-documents/src/utils.ts +++ b/plugins/controlled-documents/src/utils.ts @@ -870,12 +870,16 @@ export async function getFirstRank ( /** * @public */ -export function getEffectiveDocUpdate (): DocumentUpdate { - return { - state: DocumentState.Effective, - effectiveDate: Date.now(), - controlledState: undefined - } +export function getEffectiveDocUpdates (): DocumentUpdate[] { + return [ + { + state: DocumentState.Effective, + effectiveDate: Date.now() + }, + { + $unset: { controlledState: true } + } + ] } /** diff --git a/server-plugins/controlled-documents-resources/src/index.ts b/server-plugins/controlled-documents-resources/src/index.ts index ec13df252e..e6f3ea4c61 100644 --- a/server-plugins/controlled-documents-resources/src/index.ts +++ b/server-plugins/controlled-documents-resources/src/index.ts @@ -31,7 +31,7 @@ import documents, { DocumentApprovalRequest, DocumentState, DocumentTemplate, - getEffectiveDocUpdate, + getEffectiveDocUpdates, type DocumentRequest, type DocumentTraining } from '@hcengineering/controlled-documents' @@ -58,8 +58,9 @@ async function getDocs ( return allDocs.filter(predicate) } -function makeDocEffective (doc: ControlledDocument, txFactory: TxFactory): Tx { - return txFactory.createTxUpdateDoc(doc._class, doc.space, doc._id, getEffectiveDocUpdate()) +function makeDocEffective (doc: ControlledDocument, txFactory: TxFactory): Tx[] { + const updates = getEffectiveDocUpdates() + return updates.map((u) => txFactory.createTxUpdateDoc(doc._class, doc.space, doc._id, u)) } function archiveDocs (docs: ControlledDocument[], txFactory: TxFactory): Tx[] { @@ -358,7 +359,7 @@ export async function OnDocPlannedEffectiveDateChanged ( if (tx.operations.plannedEffectiveDate === 0 && doc.controlledState === ControlledDocumentState.Approved) { // Create with not derived tx factory in order for notifications to work const factory = new TxFactory(control.txFactory.account) - await control.apply(control.ctx, [makeDocEffective(doc, factory)]) + await control.apply(control.ctx, makeDocEffective(doc, factory)) } } @@ -383,7 +384,7 @@ export async function OnDocApprovalRequestApproved ( // Create with not derived tx factory in order for notifications to work const factory = new TxFactory(control.txFactory.account) - await control.apply(control.ctx, [makeDocEffective(doc, factory)]) + await control.apply(control.ctx, makeDocEffective(doc, factory)) // make doc effective immediately } return result