Tracker: sync project with parent (#2137)

Signed-off-by: Sergei Ogorelkov <sergei.ogorelkov@xored.com>
This commit is contained in:
Sergei Ogorelkov 2022-06-27 13:54:28 +07:00 committed by GitHub
parent faaad5bd6d
commit 18392aa8de
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 4 deletions

View File

@ -96,6 +96,7 @@
title: getTitle(newIssue.title),
number: (incResult as any).object.sequence,
rank: calcRank(lastOne, undefined),
project: parentIssue.project,
parents: [{ parentId: parentIssue._id, parentTitle: parentIssue.title }, ...parentIssue.parents]
}

View File

@ -52,19 +52,24 @@ export async function OnIssueUpdate (tx: Tx, control: TriggerControl): Promise<T
{ _id: updateTx.operations.attachedTo as Ref<Issue> },
{ limit: 1 }
)
const updatedProject = newParent !== undefined ? newParent.project : null
const updatedParents =
newParent !== undefined ? [{ parentId: newParent._id, parentTitle: newParent.title }, ...newParent.parents] : []
function update (issue: Issue): DocumentUpdate<Issue> {
const parentInfoIndex = issue.parents.findIndex(({ parentId }) => parentId === updateTx.objectId)
return parentInfoIndex === -1
? {}
: { parents: [...issue.parents].slice(0, parentInfoIndex + 1).concat(updatedParents) }
const parentsUpdate =
parentInfoIndex === -1
? {}
: { parents: [...issue.parents].slice(0, parentInfoIndex + 1).concat(updatedParents) }
return { ...parentsUpdate, project: updatedProject }
}
res.push(
control.txFactory.createTxUpdateDoc(updateTx.objectClass, updateTx.objectSpace, updateTx.objectId, {
parents: updatedParents
parents: updatedParents,
project: updatedProject
}),
...(await updateSubIssues(updateTx, control, update))
)