Skip to content

Commit 885634c

Browse files
committed
feat(form): add main cases' form to jexl context
1 parent 8ea9d37 commit 885634c

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

packages/form/addon/gql/queries/document-answers.graphql

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,19 @@ query DocumentAnswers($id: ID!) {
1111
}
1212
workItem {
1313
id
14+
case {
15+
id
16+
family {
17+
id
18+
document {
19+
id
20+
form {
21+
id
22+
slug
23+
}
24+
}
25+
}
26+
}
1427
}
1528
case {
1629
id

packages/form/addon/lib/field.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,7 @@ export default class Field extends Base {
413413
* - `form`: Legacy property pointing to the root form.
414414
* - `info.form`: The form this question is attached to.
415415
* - `info.formMeta`: The meta of the form this question is attached to.
416+
* - `info.mainCaseForm`: The main cases' form (can give useful context in task forms).
416417
* - `info.parent.form`: The parent form if applicable.
417418
* - `info.parent.formMeta`: The parent form meta if applicable.
418419
* - `info.root.form`: The new property for the root form.
@@ -423,12 +424,16 @@ export default class Field extends Base {
423424
get jexlContext() {
424425
const parent = this.fieldset.field?.fieldset.form;
425426

427+
const rootDocument = this.document.parentDocument ?? this.document;
428+
426429
return {
427430
...this.document.jexlContext,
428431
info: {
429432
...this.document.jexlContext.info,
430433
form: this.fieldset.form.slug,
431434
formMeta: this.fieldset.form.raw.meta,
435+
mainCaseForm:
436+
rootDocument.raw.workItem?.case.family.document?.form.slug,
432437
parent: parent
433438
? {
434439
form: parent.slug,

packages/form/tests/unit/lib/data.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -236,9 +236,26 @@ const answers = {
236236
],
237237
};
238238

239+
const workItem = {
240+
id: id("WorkItem"),
241+
case: {
242+
id: id("Case"),
243+
family: {
244+
id: id("Case"),
245+
document: {
246+
id: id("Document"),
247+
form: {
248+
slug: "main-case-form",
249+
},
250+
},
251+
},
252+
},
253+
};
254+
239255
export default {
240256
id: id("Document"),
241257
answers,
242258
form,
259+
workItem,
243260
__typename: "Document",
244261
};

packages/form/tests/unit/lib/field-test.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,7 @@ module("Unit | Library | field", function (hooks) {
146146
"is-top-form": false,
147147
level: 1,
148148
},
149+
mainCaseForm: "main-case-form",
149150
parent: null,
150151
root: {
151152
form: "form",

0 commit comments

Comments
 (0)