@projectcaluma/ember-distribution 1.0.0-beta.5 → 1.0.0-beta.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/addon/abilities/distribution.js +8 -6
- package/addon/components/distribution-navigation/controls.hbs +4 -1
- package/addon/components/distribution-navigation/controls.js +42 -0
- package/addon/components/distribution-navigation/item.hbs +2 -2
- package/addon/components/distribution-navigation.js +19 -52
- package/addon/components/icon-button.hbs +16 -9
- package/addon/components/inquiry-dialog/inquiry-deadline.hbs +16 -3
- package/addon/components/inquiry-dialog/inquiry-deadline.js +4 -0
- package/addon/components/inquiry-dialog/inquiry-part.hbs +5 -0
- package/addon/components/inquiry-dialog/inquiry-part.js +35 -0
- package/addon/components/inquiry-dialog.js +25 -2
- package/addon/components/inquiry-new-form.hbs +2 -2
- package/addon/components/inquiry-new-form.js +10 -22
- package/addon/gql/mutations/withdraw-inquiry.graphql +8 -0
- package/addon/gql/queries/inquiry-navigation.graphql +2 -0
- package/addon/services/distribution.js +82 -0
- package/addon/templates/index.hbs +7 -4
- package/addon/utils/unique-by-groups.js +1 -0
- package/app/services/{caluma-distribution-controls.js → distribution.js} +1 -1
- package/index.js +14 -13
- package/package.json +10 -8
- package/public/assets/distribution.svg +1 -0
- package/translations/de.yaml +11 -2
- package/translations/en.yaml +11 -2
- package/translations/fr.yaml +11 -2
- package/addon/services/caluma-distribution-controls.js +0 -37
package/CHANGELOG.md
CHANGED
@@ -1,3 +1,16 @@
|
|
1
|
+
# [@projectcaluma/ember-distribution-v1.0.0-beta.6](https://github.com/projectcaluma/ember-caluma/compare/@projectcaluma/ember-distribution-v1.0.0-beta.5...@projectcaluma/ember-distribution-v1.0.0-beta.6) (2022-03-24)
|
2
|
+
|
3
|
+
|
4
|
+
### Bug Fixes
|
5
|
+
|
6
|
+
* **embroider:** add missing dependency on @ember/string ([3a6e6bb](https://github.com/projectcaluma/ember-caluma/commit/3a6e6bb39a8c1a40a2ae00b3d4ea00606a755e25))
|
7
|
+
|
8
|
+
|
9
|
+
### Features
|
10
|
+
|
11
|
+
* **distribution:** add functionality to send all pending inquiries ([d769953](https://github.com/projectcaluma/ember-caluma/commit/d769953d5a0ea196943426c8499ba87b77a42e61))
|
12
|
+
* **distribution:** add functionality to withdraw an inquiry ([c278895](https://github.com/projectcaluma/ember-caluma/commit/c2788957c0fb228c167ca9236fda4850717f5817))
|
13
|
+
|
1
14
|
# [@projectcaluma/ember-distribution-v1.0.0-beta.5](https://github.com/projectcaluma/ember-caluma/compare/@projectcaluma/ember-distribution-v1.0.0-beta.4...@projectcaluma/ember-distribution-v1.0.0-beta.5) (2022-03-11)
|
2
15
|
|
3
16
|
|
@@ -4,26 +4,28 @@ import { Ability } from "ember-can";
|
|
4
4
|
const hasStatus = (status) => (edge) => edge.node.status === status;
|
5
5
|
|
6
6
|
export default class DistributionAbility extends Ability {
|
7
|
-
@service
|
7
|
+
@service distribution;
|
8
8
|
|
9
9
|
get canSendInquiries() {
|
10
10
|
return (
|
11
|
-
this.controls.
|
12
|
-
|
11
|
+
this.distribution.controls.value?.send.edges.filter(
|
12
|
+
hasStatus("SUSPENDED")
|
13
|
+
).length > 0
|
13
14
|
);
|
14
15
|
}
|
15
16
|
|
16
17
|
get canCreateInquiry() {
|
17
18
|
return (
|
18
|
-
this.controls.
|
19
|
+
this.distribution.controls.value?.create.edges.filter(hasStatus("READY"))
|
19
20
|
.length > 0
|
20
21
|
);
|
21
22
|
}
|
22
23
|
|
23
24
|
get canComplete() {
|
24
25
|
return (
|
25
|
-
this.controls.
|
26
|
-
|
26
|
+
this.distribution.controls.value?.complete.edges.filter(
|
27
|
+
hasStatus("READY")
|
28
|
+
).length > 0
|
27
29
|
);
|
28
30
|
}
|
29
31
|
}
|
@@ -4,13 +4,16 @@
|
|
4
4
|
{{/if}}
|
5
5
|
{{#if (can "send inquiries of distribution")}}
|
6
6
|
<IconButton
|
7
|
+
@title={{t "caluma.distribution.send"}}
|
7
8
|
@icon="paper-plane-outline"
|
8
9
|
@fromSvgJar={{true}}
|
9
10
|
@gutterTop={{4}}
|
10
11
|
@gutterRight={{6}}
|
11
12
|
@gutterLeft={{4}}
|
12
13
|
@gutterBottom={{4}}
|
13
|
-
@onClick={{this.
|
14
|
+
@onClick={{perform this.sendInquiries}}
|
15
|
+
@loading={{this.sendInquiries.isRunning}}
|
16
|
+
data-test-send-pending-inquiries
|
14
17
|
/>
|
15
18
|
{{/if}}
|
16
19
|
{{#if (can "complete distribution")}}
|
@@ -1,9 +1,51 @@
|
|
1
1
|
import { action } from "@ember/object";
|
2
|
+
import { inject as service } from "@ember/service";
|
2
3
|
import Component from "@glimmer/component";
|
4
|
+
import { queryManager } from "ember-apollo-client";
|
5
|
+
import { dropTask } from "ember-concurrency";
|
6
|
+
import { confirm } from "ember-uikit";
|
7
|
+
import { gql } from "graphql-tag";
|
8
|
+
|
9
|
+
import { decodeId } from "@projectcaluma/ember-core/helpers/decode-id";
|
3
10
|
|
4
11
|
export default class DistributionNavigationControlsComponent extends Component {
|
12
|
+
@service distribution;
|
13
|
+
@service intl;
|
14
|
+
|
15
|
+
@queryManager apollo;
|
16
|
+
|
5
17
|
@action
|
6
18
|
noop(e) {
|
7
19
|
e.preventDefault();
|
8
20
|
}
|
21
|
+
|
22
|
+
@dropTask
|
23
|
+
*sendInquiries() {
|
24
|
+
if (!(yield confirm(this.intl.t("caluma.distribution.send-confirm")))) {
|
25
|
+
return;
|
26
|
+
}
|
27
|
+
|
28
|
+
try {
|
29
|
+
const ids = this.distribution.controls.value.send.edges.map((edge) =>
|
30
|
+
decodeId(edge.node.id)
|
31
|
+
);
|
32
|
+
|
33
|
+
const mutations = ids.map(
|
34
|
+
(id, index) => `
|
35
|
+
sendInquiry${index}: resumeWorkItem(input: { id: "${id}" }) {
|
36
|
+
workItem {
|
37
|
+
id
|
38
|
+
status
|
39
|
+
}
|
40
|
+
}
|
41
|
+
`
|
42
|
+
);
|
43
|
+
|
44
|
+
const mutation = gql`mutation SendInquiries {${mutations.join("\n")}}`;
|
45
|
+
|
46
|
+
yield this.apollo.mutate({ mutation });
|
47
|
+
} catch (e) {
|
48
|
+
this.notification.danger(this.intl.t("caluma.distribution.send-error"));
|
49
|
+
}
|
50
|
+
}
|
9
51
|
}
|
@@ -3,9 +3,9 @@
|
|
3
3
|
<div class="uk-flex uk-flex-middle uk-width-1-1">
|
4
4
|
<div class="uk-width-expand uk-text-truncate">
|
5
5
|
{{#if (eq @type "addressed")}}
|
6
|
-
{{
|
6
|
+
{{@inquiry.controllingGroupName}}
|
7
7
|
{{else}}
|
8
|
-
{{
|
8
|
+
{{@inquiry.addressedGroupName}}
|
9
9
|
{{/if}}
|
10
10
|
</div>
|
11
11
|
|
@@ -1,24 +1,19 @@
|
|
1
1
|
import { inject as service } from "@ember/service";
|
2
2
|
import Component from "@glimmer/component";
|
3
|
-
import { tracked } from "@glimmer/tracking";
|
4
3
|
import { queryManager } from "ember-apollo-client";
|
5
|
-
import { restartableTask } from "ember-concurrency";
|
6
|
-
import { useTask } from "ember-resources";
|
7
4
|
|
8
5
|
import config from "@projectcaluma/ember-distribution/config";
|
9
|
-
import inquiryNavigationQuery from "@projectcaluma/ember-distribution/gql/queries/inquiry-navigation.graphql";
|
10
6
|
import uniqueByGroups from "@projectcaluma/ember-distribution/utils/unique-by-groups";
|
11
7
|
|
12
8
|
export default class DistributionNavigationComponent extends Component {
|
13
|
-
@service calumaOptions;
|
14
9
|
@service("-scheduler") scheduler;
|
10
|
+
@service calumaOptions;
|
11
|
+
@service distribution;
|
15
12
|
|
16
13
|
@config config;
|
17
14
|
|
18
15
|
@queryManager apollo;
|
19
16
|
|
20
|
-
@tracked groups = [];
|
21
|
-
|
22
17
|
get inquiries() {
|
23
18
|
const findGroupName = (identifiers) => {
|
24
19
|
const group = this.scheduler.groupCache.find((group) =>
|
@@ -30,57 +25,29 @@ export default class DistributionNavigationComponent extends Component {
|
|
30
25
|
return group?.[this.calumaOptions.groupNameProperty] ?? "";
|
31
26
|
};
|
32
27
|
|
33
|
-
return Object.entries(this.
|
28
|
+
return Object.entries(this.distribution.navigation.value ?? {}).reduce(
|
34
29
|
(inquiries, [key, objects]) => {
|
35
30
|
return {
|
36
31
|
...inquiries,
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
32
|
+
// Don't return any data until the internal scheduler has cached
|
33
|
+
// groups since we don't want to render empty navigation items
|
34
|
+
[key]: this.scheduler.groupCache.length
|
35
|
+
? uniqueByGroups(
|
36
|
+
objects.edges.map((edge) => ({
|
37
|
+
...edge.node,
|
38
|
+
// Populate the work item with the names of the involved
|
39
|
+
// groups so the <DistributionNavigation::Section /> component
|
40
|
+
// can sort by them
|
41
|
+
addressedGroupName: findGroupName(edge.node.addressedGroups),
|
42
|
+
controllingGroupName: findGroupName(
|
43
|
+
edge.node.controllingGroups
|
44
|
+
),
|
45
|
+
}))
|
46
|
+
)
|
47
|
+
: [],
|
44
48
|
};
|
45
49
|
},
|
46
50
|
{}
|
47
51
|
);
|
48
52
|
}
|
49
|
-
|
50
|
-
_inquiries = useTask(this, this.fetchInquiries, () => [
|
51
|
-
this.args.caseId,
|
52
|
-
this.config,
|
53
|
-
]);
|
54
|
-
|
55
|
-
@restartableTask
|
56
|
-
*fetchInquiries() {
|
57
|
-
const response = yield this.apollo.watchQuery({
|
58
|
-
query: inquiryNavigationQuery,
|
59
|
-
variables: {
|
60
|
-
caseId: this.args.caseId,
|
61
|
-
task: this.config.inquiry.task,
|
62
|
-
currentGroup: String(this.calumaOptions.currentGroupId),
|
63
|
-
statusQuestion: this.config.inquiry.answer.statusQuestion,
|
64
|
-
deadlineQuestion: this.config.inquiry.deadlineQuestion,
|
65
|
-
includeNavigationData: true,
|
66
|
-
},
|
67
|
-
});
|
68
|
-
|
69
|
-
const groupIds = [
|
70
|
-
...new Set(
|
71
|
-
Object.values(response)
|
72
|
-
.map((inquiries) => {
|
73
|
-
return inquiries.edges.map((edge) => [
|
74
|
-
...edge.node.addressedGroups,
|
75
|
-
...edge.node.controllingGroups,
|
76
|
-
]);
|
77
|
-
})
|
78
|
-
.flat(2)
|
79
|
-
),
|
80
|
-
];
|
81
|
-
|
82
|
-
yield this.scheduler.resolve(groupIds, "group");
|
83
|
-
|
84
|
-
return response;
|
85
|
-
}
|
86
53
|
}
|
@@ -1,20 +1,27 @@
|
|
1
1
|
{{#if @route}}
|
2
|
-
<LinkTo
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
2
|
+
<LinkTo @route={{@route}} class={{this.class}} title={{@title}} ...attributes>
|
3
|
+
{{#if @loading}}
|
4
|
+
<UkSpinner @ratio={{0.6}} />
|
5
|
+
{{else if @fromSvgJar}}
|
6
|
+
{{svg-jar @icon title=@title width="20" height="20"}}
|
7
|
+
{{else}}
|
8
|
+
<UkIcon @icon={{@icon}} />
|
9
|
+
{{/if}}
|
9
10
|
</LinkTo>
|
10
11
|
{{else}}
|
11
12
|
<button
|
12
13
|
type="button"
|
13
14
|
class={{this.class}}
|
14
|
-
|
15
|
+
title={{@title}}
|
15
16
|
...attributes
|
16
17
|
{{on "click" @onClick}}
|
17
18
|
>
|
18
|
-
{{#if @
|
19
|
+
{{#if @loading}}
|
20
|
+
<UkSpinner @ratio={{0.6}} />
|
21
|
+
{{else if @fromSvgJar}}
|
22
|
+
{{svg-jar @icon title=@title width="20" height="20"}}
|
23
|
+
{{else}}
|
24
|
+
<UkIcon @icon={{@icon}} />
|
25
|
+
{{/if}}
|
19
26
|
</button>
|
20
27
|
{{/if}}
|
@@ -6,9 +6,22 @@
|
|
6
6
|
'uk-margin-top uk-margin-right'
|
7
7
|
'uk-margin-medium-top uk-margin-medium-right'
|
8
8
|
}}
|
9
|
-
|
9
|
+
{{if
|
10
|
+
this.isWithdrawn
|
11
|
+
'uk-text-muted'
|
12
|
+
(concat 'uk-text-' this.deadline.color)
|
13
|
+
}}
|
14
|
+
uk-flex-inline uk-flex-middle"
|
10
15
|
>
|
11
|
-
{{svg-jar
|
12
|
-
|
16
|
+
{{svg-jar
|
17
|
+
(if this.isWithdrawn "ban-outline" "alarm-outline")
|
18
|
+
height=26
|
19
|
+
class="uk-margin-small-right"
|
20
|
+
}}
|
21
|
+
{{#if this.isWithdrawn}}
|
22
|
+
{{t "caluma.distribution.withdraw.status"}}
|
23
|
+
{{else}}
|
24
|
+
{{format-date this.deadline.value}}
|
25
|
+
{{/if}}
|
13
26
|
</div>
|
14
27
|
{{/if}}
|
@@ -28,6 +28,11 @@
|
|
28
28
|
{{t "caluma.distribution.edit.link"}}
|
29
29
|
</LinkTo>
|
30
30
|
</li>
|
31
|
+
<li>
|
32
|
+
<a href="" {{on "click" (perform this.withdraw)}} data-test-withdraw>
|
33
|
+
{{t "caluma.distribution.withdraw.link"}}
|
34
|
+
</a>
|
35
|
+
</li>
|
31
36
|
{{/if}}
|
32
37
|
{{#if (can "answer inquiry" @inquiry)}}
|
33
38
|
<li>
|
@@ -1,8 +1,20 @@
|
|
1
|
+
import { inject as service } from "@ember/service";
|
1
2
|
import Component from "@glimmer/component";
|
3
|
+
import { queryManager } from "ember-apollo-client";
|
4
|
+
import { dropTask } from "ember-concurrency";
|
5
|
+
import { confirm } from "ember-uikit";
|
2
6
|
|
7
|
+
import { decodeId } from "@projectcaluma/ember-core/helpers/decode-id";
|
3
8
|
import config from "@projectcaluma/ember-distribution/config";
|
9
|
+
import withdrawInquiryMutation from "@projectcaluma/ember-distribution/gql/mutations/withdraw-inquiry.graphql";
|
4
10
|
|
5
11
|
export default class InquiryDialogInquiryPartComponent extends Component {
|
12
|
+
@service notification;
|
13
|
+
@service router;
|
14
|
+
@service intl;
|
15
|
+
|
16
|
+
@queryManager apollo;
|
17
|
+
|
6
18
|
@config config;
|
7
19
|
|
8
20
|
get date() {
|
@@ -21,4 +33,27 @@ export default class InquiryDialogInquiryPartComponent extends Component {
|
|
21
33
|
|
22
34
|
return document.info.edges[0]?.node.value;
|
23
35
|
}
|
36
|
+
|
37
|
+
@dropTask
|
38
|
+
*withdraw(e) {
|
39
|
+
e.preventDefault();
|
40
|
+
|
41
|
+
/* istanbul ignore next */
|
42
|
+
if (!(yield confirm(this.intl.t("caluma.distribution.withdraw.confirm")))) {
|
43
|
+
return;
|
44
|
+
}
|
45
|
+
|
46
|
+
try {
|
47
|
+
yield this.apollo.mutate({
|
48
|
+
mutation: withdrawInquiryMutation,
|
49
|
+
variables: {
|
50
|
+
workItem: decodeId(this.args.inquiry.id),
|
51
|
+
},
|
52
|
+
});
|
53
|
+
} catch (error) {
|
54
|
+
this.notification.danger(
|
55
|
+
this.intl.t("caluma.distribution.withdraw.error")
|
56
|
+
);
|
57
|
+
}
|
58
|
+
}
|
24
59
|
}
|
@@ -1,5 +1,6 @@
|
|
1
|
+
import { inject as service } from "@ember/service";
|
1
2
|
import Component from "@glimmer/component";
|
2
|
-
import { queryManager } from "ember-apollo-client";
|
3
|
+
import { queryManager, getObservable } from "ember-apollo-client";
|
3
4
|
import { dropTask } from "ember-concurrency";
|
4
5
|
import { useTask } from "ember-resources";
|
5
6
|
|
@@ -7,6 +8,8 @@ import config from "@projectcaluma/ember-distribution/config";
|
|
7
8
|
import inquiryDialogQuery from "@projectcaluma/ember-distribution/gql/queries/inquiry-dialog.graphql";
|
8
9
|
|
9
10
|
export default class InquiryDialogComponent extends Component {
|
11
|
+
@service router;
|
12
|
+
|
10
13
|
@config config;
|
11
14
|
|
12
15
|
@queryManager apollo;
|
@@ -24,7 +27,7 @@ export default class InquiryDialogComponent extends Component {
|
|
24
27
|
|
25
28
|
@dropTask
|
26
29
|
*fetchDialog() {
|
27
|
-
|
30
|
+
const response = yield this.apollo.watchQuery({
|
28
31
|
query: inquiryDialogQuery,
|
29
32
|
variables: {
|
30
33
|
from: this.args.from,
|
@@ -38,5 +41,25 @@ export default class InquiryDialogComponent extends Component {
|
|
38
41
|
includeNavigationData: true,
|
39
42
|
},
|
40
43
|
});
|
44
|
+
|
45
|
+
/**
|
46
|
+
* Sadly this is necessary to handle what happens after the withdraw task in
|
47
|
+
* the inquiry part component because the mutation triggers a refresh of the
|
48
|
+
* query above in the same runloop instead of the next one. This causes
|
49
|
+
* `this.inquiries` to be recomputed which then triggers a rerender of the
|
50
|
+
* component and therefore cancels the withdraw task before we can do a
|
51
|
+
* transition.
|
52
|
+
*
|
53
|
+
* TODO: If https://github.com/ember-graphql/ember-apollo-client/pull/421 is
|
54
|
+
* merged and released, we can rewrite this into an action that is triggered
|
55
|
+
* in the withdraw task of the child component.
|
56
|
+
*/
|
57
|
+
getObservable(response).subscribe(({ data: { allWorkItems } }) => {
|
58
|
+
if (allWorkItems.edges.every((edge) => edge.node.status === "CANCELED")) {
|
59
|
+
this.router.transitionTo("index");
|
60
|
+
}
|
61
|
+
});
|
62
|
+
|
63
|
+
return response;
|
41
64
|
}
|
42
65
|
}
|
@@ -6,12 +6,12 @@
|
|
6
6
|
{{#if this.selectedGroups.length}}
|
7
7
|
<div class="uk-flex uk-flex-middle">
|
8
8
|
<div class="uk-width-expand">
|
9
|
-
<
|
9
|
+
<a href="">
|
10
10
|
{{t
|
11
11
|
"caluma.distribution.new.groups"
|
12
12
|
count=this.selectedGroups.length
|
13
13
|
}}
|
14
|
-
</
|
14
|
+
</a>
|
15
15
|
<div uk-dropdown class="uk-width-auto">
|
16
16
|
<ul
|
17
17
|
class="uk-list uk-list-bullet uk-margin-remove uk-padding-remove"
|
@@ -10,7 +10,6 @@ import { useTask } from "ember-resources";
|
|
10
10
|
import { decodeId } from "@projectcaluma/ember-core/helpers/decode-id";
|
11
11
|
import config from "@projectcaluma/ember-distribution/config";
|
12
12
|
import createInquiryMutation from "@projectcaluma/ember-distribution/gql/mutations/create-inquiry.graphql";
|
13
|
-
import inquiryNavigationQuery from "@projectcaluma/ember-distribution/gql/queries/inquiry-navigation.graphql";
|
14
13
|
|
15
14
|
const toggle = (value, array) => {
|
16
15
|
const set = new Set(array);
|
@@ -25,7 +24,7 @@ export default class InquiryNewFormComponent extends Component {
|
|
25
24
|
@service notification;
|
26
25
|
@service intl;
|
27
26
|
@service router;
|
28
|
-
@service
|
27
|
+
@service distribution;
|
29
28
|
|
30
29
|
@queryManager apollo;
|
31
30
|
|
@@ -82,7 +81,7 @@ export default class InquiryNewFormComponent extends Component {
|
|
82
81
|
try {
|
83
82
|
// get create inquiry work item to complete
|
84
83
|
const createId = decodeId(
|
85
|
-
this.controls.
|
84
|
+
this.distribution.controls.value?.create.edges[0].node.id
|
86
85
|
);
|
87
86
|
|
88
87
|
// create new inquiries
|
@@ -96,31 +95,20 @@ export default class InquiryNewFormComponent extends Component {
|
|
96
95
|
},
|
97
96
|
});
|
98
97
|
|
99
|
-
// refetch navigation data
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
variables: {
|
105
|
-
caseId: this.args.caseId,
|
106
|
-
task: this.config.inquiry.task,
|
107
|
-
currentGroup: String(this.calumaOptions.currentGroupId),
|
108
|
-
statusQuestion: this.config.inquiry.answer.statusQuestion,
|
109
|
-
deadlineQuestion: this.config.inquiry.deadlineQuestion,
|
110
|
-
includeNavigationData: true,
|
111
|
-
},
|
112
|
-
},
|
113
|
-
"controlling.edges"
|
114
|
-
);
|
98
|
+
// refetch navigation and controls data
|
99
|
+
yield this.distribution.refetch();
|
100
|
+
|
101
|
+
const lastControlling =
|
102
|
+
this.distribution.navigation.value.controlling.edges[0].node;
|
115
103
|
|
116
104
|
// transition to last added inquiry
|
117
105
|
this.router.transitionTo(
|
118
106
|
"inquiry.detail.index",
|
119
107
|
{
|
120
|
-
from:
|
121
|
-
to:
|
108
|
+
from: lastControlling.controllingGroups[0],
|
109
|
+
to: lastControlling.addressedGroups[0],
|
122
110
|
},
|
123
|
-
decodeId(
|
111
|
+
decodeId(lastControlling.id)
|
124
112
|
);
|
125
113
|
} catch (e) {
|
126
114
|
this.notification.danger(
|
@@ -13,6 +13,7 @@ query InquiryNavigation(
|
|
13
13
|
{ case: $caseId }
|
14
14
|
{ task: $task }
|
15
15
|
{ controllingGroups: [$currentGroup] }
|
16
|
+
{ status: CANCELED, invert: true }
|
16
17
|
]
|
17
18
|
order: [{ attribute: CREATED_AT, direction: DESC }]
|
18
19
|
) {
|
@@ -28,6 +29,7 @@ query InquiryNavigation(
|
|
28
29
|
{ task: $task }
|
29
30
|
{ addressedGroups: [$currentGroup] }
|
30
31
|
{ status: SUSPENDED, invert: true }
|
32
|
+
{ status: CANCELED, invert: true }
|
31
33
|
]
|
32
34
|
order: [{ attribute: CREATED_AT, direction: DESC }]
|
33
35
|
) {
|
@@ -0,0 +1,82 @@
|
|
1
|
+
import { getOwner } from "@ember/application";
|
2
|
+
import Service, { inject as service } from "@ember/service";
|
3
|
+
import { queryManager, getObservable } from "ember-apollo-client";
|
4
|
+
import { dropTask } from "ember-concurrency";
|
5
|
+
import { useTask } from "ember-resources";
|
6
|
+
|
7
|
+
import config from "@projectcaluma/ember-distribution/config";
|
8
|
+
import controlWorkItemsQuery from "@projectcaluma/ember-distribution/gql/queries/control-work-items.graphql";
|
9
|
+
import inquiryNavigationQuery from "@projectcaluma/ember-distribution/gql/queries/inquiry-navigation.graphql";
|
10
|
+
|
11
|
+
export default class DistributionService extends Service {
|
12
|
+
@service("-scheduler") scheduler;
|
13
|
+
@service calumaOptions;
|
14
|
+
@service router;
|
15
|
+
|
16
|
+
@queryManager apollo;
|
17
|
+
|
18
|
+
@config config;
|
19
|
+
|
20
|
+
get caseId() {
|
21
|
+
return getOwner(this).lookup("route:application").currentModel;
|
22
|
+
}
|
23
|
+
|
24
|
+
controls = useTask(this, this.fetchControls, () => [this.caseId]);
|
25
|
+
navigation = useTask(this, this.fetchNavigation, () => [this.caseId]);
|
26
|
+
|
27
|
+
async refetch() {
|
28
|
+
await getObservable(this.controls.value)?.refetch();
|
29
|
+
await getObservable(this.navigation.value)?.refetch();
|
30
|
+
}
|
31
|
+
|
32
|
+
@dropTask
|
33
|
+
*fetchControls(caseId) {
|
34
|
+
return yield this.apollo.watchQuery({
|
35
|
+
query: controlWorkItemsQuery,
|
36
|
+
variables: {
|
37
|
+
caseId,
|
38
|
+
currentGroup: String(this.calumaOptions.currentGroupId),
|
39
|
+
createTask: this.config.controls.createTask,
|
40
|
+
completeTask: this.config.controls.completeTask,
|
41
|
+
inquiryTask: this.config.inquiry.task,
|
42
|
+
},
|
43
|
+
});
|
44
|
+
}
|
45
|
+
|
46
|
+
@dropTask
|
47
|
+
*fetchNavigation(caseId) {
|
48
|
+
const response = yield this.apollo.watchQuery({
|
49
|
+
query: inquiryNavigationQuery,
|
50
|
+
variables: {
|
51
|
+
caseId,
|
52
|
+
task: this.config.inquiry.task,
|
53
|
+
currentGroup: String(this.calumaOptions.currentGroupId),
|
54
|
+
statusQuestion: this.config.inquiry.answer.statusQuestion,
|
55
|
+
deadlineQuestion: this.config.inquiry.deadlineQuestion,
|
56
|
+
includeNavigationData: true,
|
57
|
+
},
|
58
|
+
});
|
59
|
+
|
60
|
+
getObservable(response).subscribe(({ data }) => {
|
61
|
+
const groupIds = [
|
62
|
+
...new Set(
|
63
|
+
Object.values(data)
|
64
|
+
.map((inquiries) => {
|
65
|
+
return inquiries.edges.map((edge) => [
|
66
|
+
...edge.node.addressedGroups,
|
67
|
+
...edge.node.controllingGroups,
|
68
|
+
]);
|
69
|
+
})
|
70
|
+
.flat(2)
|
71
|
+
),
|
72
|
+
];
|
73
|
+
|
74
|
+
// Resolve all involved groups with the scheduler each time the query is
|
75
|
+
// updated. This will only trigger requests for new groups that are not in
|
76
|
+
// the cache.
|
77
|
+
this.scheduler.resolve(groupIds, "group");
|
78
|
+
});
|
79
|
+
|
80
|
+
return response;
|
81
|
+
}
|
82
|
+
}
|
@@ -1,8 +1,11 @@
|
|
1
|
-
<div class="uk-text-center">
|
2
|
-
|
1
|
+
<div class="uk-text-center uk-text-muted">
|
2
|
+
{{svg-jar "distribution" class="uk-inline" width=200}}
|
3
|
+
<p class="uk-margin-medium uk-margin-remove-horizontal">
|
4
|
+
{{t "caluma.distribution.empty"}}
|
5
|
+
</p>
|
3
6
|
{{#if (can "create inquiry of distribution")}}
|
4
|
-
<LinkTo @route="new" class="uk-
|
5
|
-
{{t "caluma.distribution.
|
7
|
+
<LinkTo @route="new" class="uk-button uk-button-primary">
|
8
|
+
{{t "caluma.distribution.start"}}
|
6
9
|
</LinkTo>
|
7
10
|
{{/if}}
|
8
11
|
</div>
|
@@ -1 +1 @@
|
|
1
|
-
export { default } from "@projectcaluma/ember-distribution/services/
|
1
|
+
export { default } from "@projectcaluma/ember-distribution/services/distribution";
|
package/index.js
CHANGED
@@ -3,20 +3,21 @@
|
|
3
3
|
// eslint-disable-next-line node/no-unpublished-require
|
4
4
|
const { buildEngine } = require("ember-engines/lib/engine-addon");
|
5
5
|
|
6
|
-
const
|
7
|
-
.resolve("ionicons")
|
8
|
-
.split("/")
|
9
|
-
.slice(0, -1)
|
10
|
-
.join("/");
|
6
|
+
const name = require("./package").name;
|
11
7
|
|
12
|
-
|
13
|
-
|
8
|
+
const ioniconAssets = [
|
9
|
+
...require.resolve("ionicons").split("/").slice(0, -1),
|
10
|
+
"svg",
|
11
|
+
].join("/");
|
14
12
|
|
15
|
-
|
16
|
-
|
17
|
-
|
13
|
+
const publicAssets = [
|
14
|
+
...require.resolve(name).split("/").slice(0, -1),
|
15
|
+
"public",
|
16
|
+
"assets",
|
17
|
+
].join("/");
|
18
18
|
|
19
|
-
|
20
|
-
|
21
|
-
},
|
19
|
+
module.exports = buildEngine({
|
20
|
+
name,
|
21
|
+
lazyLoading: { enabled: false },
|
22
|
+
svgJar: { sourceDirs: [ioniconAssets, publicAssets] },
|
22
23
|
});
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@projectcaluma/ember-distribution",
|
3
|
-
"version": "1.0.0-beta.
|
3
|
+
"version": "1.0.0-beta.6",
|
4
4
|
"description": "Ember engine for the Caluma distribution module.",
|
5
5
|
"keywords": [
|
6
6
|
"ember-addon",
|
@@ -18,13 +18,14 @@
|
|
18
18
|
"ember-engines": ">= 0.8"
|
19
19
|
},
|
20
20
|
"dependencies": {
|
21
|
+
"@ember/string": "^3.0.0",
|
21
22
|
"@embroider/macros": "^1.5.0",
|
22
23
|
"@glimmer/component": "^1.0.4",
|
23
24
|
"@glimmer/tracking": "^1.0.4",
|
24
|
-
"@projectcaluma/ember-core": "^11.0.0-beta.
|
25
|
-
"@projectcaluma/ember-form": "^11.0.0-beta.
|
26
|
-
"@projectcaluma/ember-workflow": "^11.0.0-beta.
|
27
|
-
"ember-apollo-client": "^
|
25
|
+
"@projectcaluma/ember-core": "^11.0.0-beta.6",
|
26
|
+
"@projectcaluma/ember-form": "^11.0.0-beta.16",
|
27
|
+
"@projectcaluma/ember-workflow": "^11.0.0-beta.6",
|
28
|
+
"ember-apollo-client": "^4.0.2",
|
28
29
|
"ember-auto-import": "^2.4.0",
|
29
30
|
"ember-can": "^4.1.0",
|
30
31
|
"ember-cli-babel": "^7.26.11",
|
@@ -37,8 +38,9 @@
|
|
37
38
|
"ember-resources": "^4.4.0",
|
38
39
|
"ember-svg-jar": "^2.3.4",
|
39
40
|
"ember-test-selectors": "^6.0.0",
|
40
|
-
"ember-uikit": "^5.
|
41
|
+
"ember-uikit": "^5.1.1",
|
41
42
|
"graphql": "^15.8.0",
|
43
|
+
"graphql-tag": "^2.12.6",
|
42
44
|
"ionicons": "^6.0.1",
|
43
45
|
"lodash.merge": "^4.6.2",
|
44
46
|
"luxon": "^2.3.1",
|
@@ -48,8 +50,8 @@
|
|
48
50
|
"@ember/optional-features": "2.0.0",
|
49
51
|
"@ember/test-helpers": "2.6.0",
|
50
52
|
"@embroider/test-setup": "1.5.0",
|
51
|
-
"@faker-js/faker": "6.0.0
|
52
|
-
"@projectcaluma/ember-testing": "11.0.0-beta.
|
53
|
+
"@faker-js/faker": "6.0.0",
|
54
|
+
"@projectcaluma/ember-testing": "11.0.0-beta.5",
|
53
55
|
"broccoli-asset-rev": "3.0.0",
|
54
56
|
"ember-cli": "3.28.5",
|
55
57
|
"ember-cli-code-coverage": "1.0.3",
|
@@ -0,0 +1 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" style="enable-background:new 0 0 512 512" viewBox="0 0 512 512"><path d="M477.867 102.4c-18.825 0-34.133 15.309-34.133 34.133s15.309 34.133 34.133 34.133S512 155.358 512 136.533c0-18.824-15.309-34.133-34.133-34.133zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067 0-9.412 7.654-17.067 17.067-17.067s17.067 7.654 17.067 17.067c-.001 9.413-7.655 17.067-17.067 17.067zM34.133 384C15.309 384 0 399.309 0 418.133s15.309 34.133 34.133 34.133c18.825 0 34.133-15.309 34.133-34.133S52.958 384 34.133 384zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067s7.654-17.067 17.067-17.067c9.412 0 17.067 7.654 17.067 17.067S43.546 435.2 34.133 435.2z"/><path d="m461.321 113.186-73.617-35.541c-4.25-2.057-9.344-.265-11.392 3.977-2.048 4.241-.265 9.344 3.977 11.392l73.617 35.541c1.195.58 2.458.853 3.703.853 3.174 0 6.221-1.775 7.688-4.83 2.048-4.241.265-9.344-3.976-11.392zM384 443.733c-18.825 0-34.133 15.309-34.133 34.133S365.175 512 384 512c18.825 0 34.133-15.309 34.133-34.133S402.825 443.733 384 443.733zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067S374.588 460.8 384 460.8c9.412 0 17.067 7.654 17.067 17.067s-7.655 17.066-17.067 17.066z"/><path d="m367.454 454.52-73.617-35.541c-4.25-2.057-9.344-.273-11.392 3.977-2.048 4.241-.265 9.344 3.977 11.392l73.617 35.541c1.195.58 2.458.853 3.703.853 3.174 0 6.221-1.775 7.689-4.83 2.047-4.242.264-9.344-3.977-11.392zM256 230.4c-18.825 0-34.133 15.309-34.133 34.133 0 18.825 15.309 34.133 34.133 34.133 18.825 0 34.133-15.309 34.133-34.133 0-18.824-15.308-34.133-34.133-34.133zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067 0-9.412 7.654-17.067 17.067-17.067 9.412 0 17.067 7.654 17.067 17.067S265.412 281.6 256 281.6z"/><path d="m240.998 242.142-56.55-44.075c-3.721-2.876-9.079-2.236-11.981 1.485-2.893 3.721-2.236 9.079 1.485 11.981l56.55 44.075c1.562 1.212 3.405 1.801 5.24 1.801 2.543 0 5.052-1.126 6.741-3.285 2.893-3.722 2.236-9.081-1.485-11.982zM409.6 221.867c-51.755 0-93.867 42.112-93.867 93.867s42.112 93.867 93.867 93.867 93.867-42.112 93.867-93.867-42.112-93.867-93.867-93.867zm0 170.666c-42.351 0-76.8-34.449-76.8-76.8s34.449-76.8 76.8-76.8 76.8 34.449 76.8 76.8-34.449 76.8-76.8 76.8z"/><path d="M409.6 256c-18.825 0-34.133 15.309-34.133 34.133 0 18.825 15.309 34.133 34.133 34.133 18.825 0 34.133-15.309 34.133-34.133S428.425 256 409.6 256zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067 0-9.412 7.654-17.067 17.067-17.067 9.412 0 17.067 7.654 17.067 17.067S419.012 307.2 409.6 307.2zM434.355 341.333h-49.51c-14.583 0-26.445 11.546-26.445 25.728v22.494c0 3.046 1.621 5.862 4.258 7.39C376.96 405.222 393.19 409.6 409.6 409.6s32.64-4.378 46.942-12.655c2.637-1.519 4.258-4.344 4.258-7.381V367.07c0-14.191-11.861-25.737-26.445-25.737zm9.378 43.136c-21.239 10.581-47.027 10.581-68.267 0V367.07c0-4.779 4.207-8.67 9.378-8.67h49.51c5.171 0 9.378 3.891 9.378 8.67v17.399zM204.8 324.267c-51.755 0-93.867 42.112-93.867 93.867S153.045 512 204.8 512s93.867-42.112 93.867-93.867-42.112-93.866-93.867-93.866zm0 170.666c-42.351 0-76.8-34.449-76.8-76.8s34.449-76.8 76.8-76.8 76.8 34.449 76.8 76.8-34.449 76.8-76.8 76.8z"/><path d="M204.8 358.4c-18.825 0-34.133 15.309-34.133 34.133 0 18.825 15.309 34.133 34.133 34.133s34.133-15.309 34.133-34.133c0-18.824-15.308-34.133-34.133-34.133zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067 0-9.412 7.654-17.067 17.067-17.067 9.412 0 17.067 7.654 17.067 17.067S214.212 409.6 204.8 409.6zM229.555 443.733h-49.51c-14.583 0-26.445 11.546-26.445 25.728v22.494c0 3.046 1.621 5.862 4.258 7.39C172.16 507.622 188.39 512 204.8 512s32.64-4.378 46.942-12.655c2.637-1.519 4.258-4.343 4.258-7.381V469.47c0-14.191-11.861-25.737-26.445-25.737zm9.378 43.136c-21.24 10.581-47.027 10.581-68.267 0V469.47c0-4.779 4.207-8.67 9.378-8.67h49.51c5.171 0 9.378 3.891 9.378 8.67v17.399zM93.867 110.933C42.112 110.933 0 153.045 0 204.8s42.112 93.867 93.867 93.867 93.867-42.112 93.867-93.867c-.001-51.755-42.113-93.867-93.867-93.867zm0 170.667c-42.351 0-76.8-34.449-76.8-76.8s34.449-76.8 76.8-76.8 76.8 34.449 76.8 76.8-34.449 76.8-76.8 76.8z"/><path d="M93.867 145.067c-18.825 0-34.133 15.309-34.133 34.133s15.309 34.133 34.133 34.133c18.825 0 34.133-15.309 34.133-34.133s-15.309-34.133-34.133-34.133zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067s7.654-17.067 17.067-17.067c9.412 0 17.067 7.654 17.067 17.067s-7.655 17.067-17.067 17.067zM118.622 230.4h-49.51c-14.583 0-26.445 11.546-26.445 25.728v22.494c0 3.046 1.621 5.862 4.258 7.39 14.302 8.277 30.532 12.655 46.942 12.655s32.64-4.378 46.942-12.655c2.637-1.519 4.258-4.344 4.258-7.381v-22.494c0-14.191-11.862-25.737-26.445-25.737zM128 273.536c-21.239 10.581-47.027 10.581-68.267 0v-17.399c0-4.779 4.207-8.67 9.378-8.67h49.51c5.171 0 9.378 3.891 9.378 8.67v17.399zM298.667 0C246.912 0 204.8 42.112 204.8 93.867s42.112 93.867 93.867 93.867 93.867-42.112 93.867-93.867C392.533 42.112 350.421 0 298.667 0zm0 170.667c-42.351 0-76.8-34.449-76.8-76.8s34.449-76.8 76.8-76.8 76.8 34.449 76.8 76.8-34.449 76.8-76.8 76.8z"/><path d="M298.667 34.133c-18.825 0-34.133 15.309-34.133 34.133s15.309 34.133 34.133 34.133S332.8 87.091 332.8 68.267s-15.309-34.134-34.133-34.134zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067 0-9.412 7.654-17.067 17.067-17.067s17.067 7.654 17.067 17.067c-.001 9.413-7.655 17.067-17.067 17.067zM323.422 119.467h-49.51c-14.583 0-26.445 11.546-26.445 25.728v22.494c0 3.046 1.621 5.862 4.258 7.39 14.302 8.277 30.532 12.655 46.942 12.655s32.64-4.378 46.942-12.655c2.637-1.519 4.258-4.344 4.258-7.381v-22.494c0-14.192-11.862-25.737-26.445-25.737zm9.378 43.136c-21.239 10.581-47.027 10.581-68.267 0v-17.399c0-4.779 4.207-8.67 9.378-8.67h49.51c5.171 0 9.378 3.891 9.378 8.67v17.399zM219.827 88.311c-3.063-3.567-8.448-3.994-12.032-.93l-59.136 50.603c-3.584 3.063-4.002 8.448-.939 12.032 1.69 1.971 4.079 2.987 6.485 2.987 1.963 0 3.934-.674 5.547-2.057l59.136-50.603c3.585-3.063 4.003-8.448.939-12.032z"/><path d="m407.893 225.289-51.2-68.267c-2.825-3.78-8.175-4.523-11.947-1.707-3.772 2.825-4.531 8.175-1.707 11.938l51.2 68.267c1.681 2.236 4.241 3.413 6.835 3.413 1.775 0 3.576-.555 5.112-1.707 3.772-2.824 4.532-8.174 1.707-11.937zM337.86 343.953c-2.825-3.772-8.175-4.531-11.947-1.707l-47.667 35.746c-3.772 2.825-4.531 8.175-1.707 11.938 1.681 2.236 4.241 3.413 6.835 3.413 1.783 0 3.575-.563 5.112-1.707l47.667-35.746c3.772-2.823 4.532-8.174 1.707-11.937zM119.467 409.6H59.733c-4.71 0-8.533 3.814-8.533 8.533s3.823 8.533 8.533 8.533h59.733c4.71 0 8.533-3.814 8.533-8.533s-3.822-8.533-8.532-8.533zM93.867 0C75.042 0 59.733 15.309 59.733 34.133c0 18.825 15.309 34.133 34.133 34.133 18.825 0 34.133-15.309 34.133-34.133C128 15.309 112.691 0 93.867 0zm0 51.2c-9.412 0-17.067-7.654-17.067-17.067 0-9.412 7.654-17.067 17.067-17.067 9.412 0 17.067 7.654 17.067 17.067-.001 9.413-7.655 17.067-17.067 17.067z"/><path d="M93.867 51.2c-4.71 0-8.533 3.814-8.533 8.533v59.733c0 4.719 3.823 8.533 8.533 8.533 4.71 0 8.533-3.814 8.533-8.533V59.733c0-4.719-3.823-8.533-8.533-8.533z"/></svg>
|
package/translations/de.yaml
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
caluma:
|
2
2
|
distribution:
|
3
|
-
empty: "Es
|
4
|
-
|
3
|
+
empty: "Es wurden noch keine Anfragen erstellt."
|
4
|
+
start: "Starten"
|
5
|
+
send: "Offene Anfragen versenden"
|
6
|
+
send-confirm: "Wollen Sie wirklich alle offenen Anfragen versenden?"
|
7
|
+
send-error: "Fehler beim Versenden der offenen Anfragen"
|
5
8
|
|
6
9
|
edit:
|
7
10
|
title: "Anfrage bearbeiten"
|
@@ -49,3 +52,9 @@ caluma:
|
|
49
52
|
subtitle: "Seite nicht gefunden!"
|
50
53
|
back: "Zurück zur"
|
51
54
|
link: "Startseite"
|
55
|
+
|
56
|
+
withdraw:
|
57
|
+
link: "Zurückziehen"
|
58
|
+
confirm: "Wollen Sie die Anfrage wirklich zurückziehen?"
|
59
|
+
error: "Fehler beim Zurückziehen der Anfrage"
|
60
|
+
status: "Zurückgezogen"
|
package/translations/en.yaml
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
caluma:
|
2
2
|
distribution:
|
3
|
-
empty: "
|
4
|
-
|
3
|
+
empty: "No inquiries have been created yet."
|
4
|
+
start: "Start"
|
5
|
+
send: "Send pending inquiries"
|
6
|
+
send-confirm: "Do you really want to send all pending inquiries?"
|
7
|
+
send-error: "Error while sending pending inquiries"
|
5
8
|
|
6
9
|
edit:
|
7
10
|
title: "Edit inquiry"
|
@@ -49,3 +52,9 @@ caluma:
|
|
49
52
|
subtitle: "Page not found!"
|
50
53
|
back: "Go back to the"
|
51
54
|
link: "landing page"
|
55
|
+
|
56
|
+
withdraw:
|
57
|
+
link: "Withdraw"
|
58
|
+
confirm: "Do you really want to withdraw the inquiry?"
|
59
|
+
error: "Error while withdrawing the inquiry"
|
60
|
+
status: "Withdrawn"
|
package/translations/fr.yaml
CHANGED
@@ -1,7 +1,10 @@
|
|
1
1
|
caluma:
|
2
2
|
distribution:
|
3
|
-
empty: "
|
4
|
-
|
3
|
+
empty: "Aucune demande n'a encore été créée."
|
4
|
+
start: "Lancer"
|
5
|
+
send: "Envoyer les demandes ouvertes"
|
6
|
+
send-confirm: "Voulez-vous vraiment envoyer toutes les demandes ouvertes ?"
|
7
|
+
send-error: "Erreur lors de l'envoi des demandes ouvertes"
|
5
8
|
|
6
9
|
edit:
|
7
10
|
title: "Modifier la demande"
|
@@ -49,3 +52,9 @@ caluma:
|
|
49
52
|
subtitle: "Page non trouvée !"
|
50
53
|
back: "Retour à"
|
51
54
|
link: "la page d'accueil"
|
55
|
+
|
56
|
+
withdraw:
|
57
|
+
link: "Retirer"
|
58
|
+
confirm: "Voulez-vous vraiment retirer la demande ?"
|
59
|
+
error: "Erreur lors du retrait de la demande"
|
60
|
+
status: "Retirée"
|
@@ -1,37 +0,0 @@
|
|
1
|
-
import { getOwner } from "@ember/application";
|
2
|
-
import Service, { inject as service } from "@ember/service";
|
3
|
-
import { queryManager } from "ember-apollo-client";
|
4
|
-
import { dropTask } from "ember-concurrency";
|
5
|
-
import { useTask } from "ember-resources";
|
6
|
-
|
7
|
-
import config from "@projectcaluma/ember-distribution/config";
|
8
|
-
import controlWorkItemsQuery from "@projectcaluma/ember-distribution/gql/queries/control-work-items.graphql";
|
9
|
-
|
10
|
-
export default class CalumaDistributionControlsService extends Service {
|
11
|
-
@service calumaOptions;
|
12
|
-
@service router;
|
13
|
-
|
14
|
-
@queryManager apollo;
|
15
|
-
|
16
|
-
@config config;
|
17
|
-
|
18
|
-
get caseId() {
|
19
|
-
return getOwner(this).lookup("route:application").currentModel;
|
20
|
-
}
|
21
|
-
|
22
|
-
workItems = useTask(this, this.fetchWorkItems, () => [this.caseId]);
|
23
|
-
|
24
|
-
@dropTask
|
25
|
-
*fetchWorkItems(caseId) {
|
26
|
-
return yield this.apollo.watchQuery({
|
27
|
-
query: controlWorkItemsQuery,
|
28
|
-
variables: {
|
29
|
-
caseId,
|
30
|
-
currentGroup: String(this.calumaOptions.currentGroupId),
|
31
|
-
createTask: this.config.controls.createTask,
|
32
|
-
completeTask: this.config.controls.completeTask,
|
33
|
-
inquiryTask: this.config.inquiry.task,
|
34
|
-
},
|
35
|
-
});
|
36
|
-
}
|
37
|
-
}
|