@projectcaluma/ember-distribution 11.0.0-beta.30 → 11.0.0-beta.32
Sign up to get free protection for your applications and to get access to all the features.
- package/addon/abilities/inquiry.js +18 -2
- package/addon/components/cd-document-header.hbs +3 -12
- package/addon/components/cd-inquiry-answer-form.hbs +136 -76
- package/addon/components/cd-inquiry-answer-form.js +20 -2
- package/addon/components/cd-inquiry-dialog/inquiry-deadline.hbs +5 -10
- package/addon/components/cd-inquiry-dialog/inquiry-deadline.js +14 -0
- package/addon/components/cd-inquiry-dialog/inquiry-part.hbs +118 -89
- package/addon/components/cd-inquiry-dialog.js +11 -15
- package/addon/components/cd-inquiry-edit-form.hbs +0 -3
- package/addon/components/cd-inquiry-edit-form.js +2 -2
- package/addon/components/cd-inquiry-new-form/bulk-edit.js +9 -6
- package/addon/components/cd-navigation/section.hbs +1 -1
- package/addon/components/cd-navigation/section.js +5 -13
- package/addon/components/cd-navigation.hbs +3 -10
- package/addon/config.js +17 -0
- package/addon/gql/fragments/inquiry-answer.graphql +57 -0
- package/addon/gql/fragments/inquiry-request.graphql +26 -0
- package/addon/gql/mutations/complete-inquiry-work-item.graphql +24 -13
- package/addon/gql/mutations/reopen-inquiry.graphql +3 -13
- package/addon/gql/queries/{control-work-items.graphql → controls.graphql} +1 -1
- package/addon/gql/queries/incomplete-inquiries.graphql +1 -1
- package/addon/gql/queries/inquiry-answer.graphql +5 -1
- package/addon/gql/queries/inquiry-dialog.graphql +31 -2
- package/addon/gql/queries/inquiry-form.graphql +1 -1
- package/addon/gql/queries/{inquiry-navigation.graphql → navigation.graphql} +24 -6
- package/addon/routes/application.js +7 -0
- package/addon/routes/index.js +15 -28
- package/addon/routes/inquiry/index.js +1 -4
- package/addon/routes/new.js +1 -5
- package/addon/services/distribution.js +71 -9
- package/addon/templates/application.hbs +1 -1
- package/addon/templates/inquiry/index.hbs +1 -5
- package/addon/templates/new.hbs +0 -1
- package/addon/utils/inquiry-deadline.js +3 -1
- package/app/styles/_answer-form.scss +4 -0
- package/package.json +10 -10
- package/translations/de.yaml +10 -1
- package/translations/en.yaml +11 -2
- package/translations/fr.yaml +10 -1
- package/addon/components/cd-navigation.js +0 -53
- package/addon/gql/fragments/inquiry.graphql +0 -117
- package/addon/modifiers/pikaday.js +0 -2
@@ -21,11 +21,27 @@ export default class InquiryAbility extends Ability {
|
|
21
21
|
}
|
22
22
|
|
23
23
|
get canSend() {
|
24
|
-
return
|
24
|
+
return (
|
25
|
+
!this.config.ui.readonly &&
|
26
|
+
this.model?.task.slug === this.config.inquiry.task &&
|
27
|
+
this.model?.status === "SUSPENDED" &&
|
28
|
+
(this.config.permissions.sendInquiry?.(this.model) ?? true) &&
|
29
|
+
this.model?.controllingGroups
|
30
|
+
.map(String)
|
31
|
+
.includes(String(this.calumaOptions.currentGroupId))
|
32
|
+
);
|
25
33
|
}
|
26
34
|
|
27
35
|
get canWithdraw() {
|
28
|
-
return
|
36
|
+
return (
|
37
|
+
!this.config.ui.readonly &&
|
38
|
+
this.model?.task.slug === this.config.inquiry.task &&
|
39
|
+
this.model?.status === "SUSPENDED" &&
|
40
|
+
(this.config.permissions.withdrawInquiry?.(this.model) ?? true) &&
|
41
|
+
this.model?.controllingGroups
|
42
|
+
.map(String)
|
43
|
+
.includes(String(this.calumaOptions.currentGroupId))
|
44
|
+
);
|
29
45
|
}
|
30
46
|
|
31
47
|
get canAnswer() {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<
|
1
|
+
<div class="uk-text-large uk-flex uk-flex-middle" data-test-document-header>
|
2
2
|
<div class="uk-width-expand">
|
3
3
|
{{@name}}
|
4
4
|
{{#if @group}}
|
@@ -9,15 +9,6 @@
|
|
9
9
|
{{/if}}
|
10
10
|
</div>
|
11
11
|
{{yield}}
|
12
|
-
</
|
12
|
+
</div>
|
13
13
|
|
14
|
-
|
15
|
-
<p class="uk-text-meta uk-margin-remove-bottom uk-margin-small-top">
|
16
|
-
{{t
|
17
|
-
"caluma.distribution.last-modified"
|
18
|
-
user=(user-name @modifiedBy)
|
19
|
-
date=(format-date @modifiedAt)
|
20
|
-
time=(format-time @modifiedAt hour="2-digit" minute="2-digit")
|
21
|
-
}}
|
22
|
-
</p>
|
23
|
-
{{/if}}
|
14
|
+
<hr />
|
@@ -5,92 +5,152 @@
|
|
5
5
|
>
|
6
6
|
<:default as |content|>
|
7
7
|
|
8
|
-
<
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
</CdDocumentHeader>
|
8
|
+
<div uk-grid class="uk-grid uk-grid-small uk-grid-divider">
|
9
|
+
<div class="uk-width-expand">
|
10
|
+
<CdDocumentHeader
|
11
|
+
@name={{content.document.rootForm.raw.name}}
|
12
|
+
@status={{if (eq this.inquiry.status "READY") this.answerStatus}}
|
13
|
+
>
|
14
|
+
<CdInquiryDialog::InquiryDeadline @inquiry={{this.inquiry}} />
|
16
15
|
|
17
|
-
|
16
|
+
{{#if this.inquiryDetails.length}}
|
17
|
+
<button
|
18
|
+
class="uk-icon-button uk-margin-left"
|
19
|
+
type="button"
|
20
|
+
{{uk-tooltip
|
21
|
+
(if
|
22
|
+
this.isExpanded
|
23
|
+
(t "caluma.distribution.answer.details.hide")
|
24
|
+
(t "caluma.distribution.answer.details.show")
|
25
|
+
)
|
26
|
+
}}
|
27
|
+
{{on "click" this.toggle}}
|
28
|
+
>
|
29
|
+
<UkIcon
|
30
|
+
@icon={{if
|
31
|
+
this.isExpanded
|
32
|
+
"chevron-double-right"
|
33
|
+
"chevron-double-left"
|
34
|
+
}}
|
35
|
+
/>
|
36
|
+
</button>
|
37
|
+
{{/if}}
|
38
|
+
</CdDocumentHeader>
|
18
39
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
40
|
+
<div class="uk-margin uk-text-italic inquiry-answer-form__request">
|
41
|
+
<CdInquiryDialog::InquiryPart
|
42
|
+
@inquiry={{this.inquiry}}
|
43
|
+
@type="request"
|
44
|
+
@disabled={{true}}
|
45
|
+
/>
|
46
|
+
</div>
|
26
47
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
48
|
+
{{#if
|
49
|
+
(and
|
50
|
+
(not this.buttons.length)
|
51
|
+
(can "edit answer form of inquiry" this.inquiry)
|
52
|
+
)
|
53
|
+
}}
|
54
|
+
<div class="uk-alert uk-alert-warning uk-flex uk-flex-middle">
|
55
|
+
<UkIcon
|
56
|
+
@icon="warning"
|
57
|
+
class="uk-margin-small-right uk-flex-none"
|
58
|
+
/>
|
59
|
+
{{t "caluma.distribution.answer.complete-not-allowed"}}
|
60
|
+
{{t "caluma.distribution.not-allowed-hint"}}
|
61
|
+
</div>
|
62
|
+
{{/if}}
|
39
63
|
|
40
|
-
|
64
|
+
<content.form />
|
41
65
|
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
66
|
+
{{#each this.buttons as |buttonConfig|}}
|
67
|
+
{{#if buttonConfig.isFormButton}}
|
68
|
+
<DocumentValidity
|
69
|
+
@document={{content.document}}
|
70
|
+
as |isValid validate|
|
71
|
+
>
|
72
|
+
<UkButton
|
73
|
+
@type="submit"
|
74
|
+
@color={{buttonConfig.color}}
|
75
|
+
@disabled={{or
|
76
|
+
(not isValid)
|
77
|
+
(and
|
78
|
+
this.completeWorkItem.isRunning
|
79
|
+
(includes
|
80
|
+
buttonConfig.workItemId
|
81
|
+
this.completeWorkItem.lastRunning.args
|
82
|
+
)
|
83
|
+
)
|
84
|
+
}}
|
85
|
+
@loading={{and
|
86
|
+
this.completeWorkItem.isRunning
|
87
|
+
(includes
|
88
|
+
buttonConfig.workItemId
|
89
|
+
this.completeWorkItem.lastRunning.args
|
90
|
+
)
|
91
|
+
}}
|
92
|
+
@onClick={{fn
|
93
|
+
(perform this.completeWorkItem)
|
94
|
+
buttonConfig.workItemId
|
95
|
+
validate
|
96
|
+
}}
|
97
|
+
>{{buttonConfig.label}}</UkButton>
|
98
|
+
</DocumentValidity>
|
99
|
+
{{else}}
|
100
|
+
<UkButton
|
101
|
+
@type="button"
|
102
|
+
@color={{buttonConfig.color}}
|
103
|
+
@disabled={{and
|
51
104
|
this.completeWorkItem.isRunning
|
52
105
|
(includes
|
53
106
|
buttonConfig.workItemId this.completeWorkItem.lastRunning.args
|
54
107
|
)
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
}}
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
this.
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
108
|
+
}}
|
109
|
+
@loading={{and
|
110
|
+
this.completeWorkItem.isRunning
|
111
|
+
(includes
|
112
|
+
buttonConfig.workItemId this.completeWorkItem.lastRunning.args
|
113
|
+
)
|
114
|
+
}}
|
115
|
+
@onClick={{fn
|
116
|
+
(perform this.completeWorkItem)
|
117
|
+
buttonConfig.workItemId
|
118
|
+
null
|
119
|
+
}}
|
120
|
+
>{{buttonConfig.label}}</UkButton>
|
121
|
+
{{/if}}
|
122
|
+
{{/each}}
|
123
|
+
</div>
|
124
|
+
|
125
|
+
{{#if (and this.isExpanded this.inquiryDetails.length)}}
|
126
|
+
<div class="inquiry-answer-form__side-bar">
|
127
|
+
<dl
|
128
|
+
class="uk-description-list uk-text-break
|
129
|
+
{{unless
|
130
|
+
this.config.ui.small
|
131
|
+
'uk-margin-small-left uk-margin-small-right'
|
132
|
+
}}"
|
133
|
+
>
|
134
|
+
{{#each this.inquiryDetails as |data|}}
|
135
|
+
<dt>{{t data.label}}</dt>
|
136
|
+
<dd>
|
137
|
+
{{#if (not data.value)}}
|
138
|
+
-
|
139
|
+
{{else if (eq data.type "date")}}
|
140
|
+
{{format-date data.value}}
|
141
|
+
{{format-time data.value hour="2-digit" minute="2-digit"}}
|
142
|
+
{{else if (eq data.type "user")}}
|
143
|
+
{{user-name data.value}}
|
144
|
+
{{else}}
|
145
|
+
{{data.value}}
|
146
|
+
{{/if}}
|
147
|
+
</dd>
|
148
|
+
{{/each}}
|
149
|
+
</dl>
|
150
|
+
</div>
|
92
151
|
{{/if}}
|
93
|
-
|
152
|
+
|
153
|
+
</div>
|
94
154
|
</:default>
|
95
155
|
<:notfound><CdNotfound /></:notfound>
|
96
156
|
</CfContent>
|
@@ -1,5 +1,7 @@
|
|
1
|
+
import { action } from "@ember/object";
|
1
2
|
import { inject as service } from "@ember/service";
|
2
3
|
import Component from "@glimmer/component";
|
4
|
+
import { tracked } from "@glimmer/tracking";
|
3
5
|
import { queryManager, getObservable } from "ember-apollo-client";
|
4
6
|
import { dropTask } from "ember-concurrency";
|
5
7
|
import { trackedTask } from "ember-resources/util/ember-concurrency";
|
@@ -15,12 +17,14 @@ export default class CdInquiryAnswerFormComponent extends Component {
|
|
15
17
|
@service router;
|
16
18
|
@service abilities;
|
17
19
|
@service notification;
|
20
|
+
@service calumaOptions;
|
18
21
|
|
19
22
|
@config config;
|
20
23
|
|
21
24
|
@queryManager apollo;
|
22
25
|
|
23
26
|
@inquiryAnswerStatus({ inquiryProperty: "inquiry" }) answerStatus;
|
27
|
+
@tracked isExpanded = !this.config.ui.small;
|
24
28
|
|
25
29
|
_inquiry = trackedTask(this, this.fetchInquiryAnswer, () => [
|
26
30
|
this.args.inquiry,
|
@@ -30,8 +34,13 @@ export default class CdInquiryAnswerFormComponent extends Component {
|
|
30
34
|
return this._inquiry.value?.[0]?.node;
|
31
35
|
}
|
32
36
|
|
37
|
+
get inquiryDetails() {
|
38
|
+
return this.config.inquiry.answer.details?.(this.inquiry);
|
39
|
+
}
|
40
|
+
|
33
41
|
get buttons() {
|
34
42
|
return this.inquiry?.childCase.workItems.edges
|
43
|
+
.filter((edge) => edge.node.status === "READY")
|
35
44
|
.map((edge) => {
|
36
45
|
const config = this.config.inquiry.answer.buttons[edge.node.task.slug];
|
37
46
|
|
@@ -52,13 +61,19 @@ export default class CdInquiryAnswerFormComponent extends Component {
|
|
52
61
|
.filter(Boolean);
|
53
62
|
}
|
54
63
|
|
64
|
+
@action
|
65
|
+
toggle(e) {
|
66
|
+
e.preventDefault();
|
67
|
+
this.isExpanded = !this.isExpanded;
|
68
|
+
}
|
69
|
+
|
55
70
|
@dropTask
|
56
|
-
*fetchInquiryAnswer() {
|
71
|
+
*fetchInquiryAnswer(inquiry) {
|
57
72
|
return yield this.apollo.watchQuery(
|
58
73
|
{
|
59
74
|
query: inquiryAnswerQuery,
|
60
75
|
variables: {
|
61
|
-
inquiry
|
76
|
+
inquiry,
|
62
77
|
buttonTasks: Object.keys(this.config.inquiry.answer.buttons),
|
63
78
|
infoQuestion: this.config.inquiry.infoQuestion,
|
64
79
|
deadlineQuestion: this.config.inquiry.deadlineQuestion,
|
@@ -79,6 +94,9 @@ export default class CdInquiryAnswerFormComponent extends Component {
|
|
79
94
|
workItem,
|
80
95
|
statusQuestion: this.config.inquiry.answer.statusQuestion,
|
81
96
|
buttonTasks: Object.keys(this.config.inquiry.answer.buttons),
|
97
|
+
checkTask: this.config.controls.checkTask,
|
98
|
+
currentGroup: String(this.calumaOptions.currentGroupId),
|
99
|
+
answerInfoQuestions: this.config.inquiry.answer.infoQuestions,
|
82
100
|
},
|
83
101
|
});
|
84
102
|
|
@@ -1,20 +1,15 @@
|
|
1
1
|
{{#if this.deadline.value}}
|
2
2
|
<div
|
3
|
-
class="uk-flex-inline uk-flex-middle
|
4
|
-
|
5
|
-
this.isWithdrawn
|
6
|
-
'uk-text-muted'
|
7
|
-
(concat 'uk-text-' this.deadline.color)
|
8
|
-
}}"
|
3
|
+
class="uk-flex-inline uk-flex-middle uk-text-{{this.deadline.color}}"
|
4
|
+
{{uk-tooltip (t "caluma.distribution.inquiry.deadline")}}
|
9
5
|
data-test-deadline
|
10
6
|
...attributes
|
11
7
|
>
|
12
|
-
<UkIcon
|
13
|
-
@icon={{if this.isWithdrawn "ban" "clock"}}
|
14
|
-
class="uk-margin-small-right"
|
15
|
-
/>
|
8
|
+
<UkIcon @icon={{this.icon}} class="uk-margin-small-right" />
|
16
9
|
{{#if this.isWithdrawn}}
|
17
10
|
{{t "caluma.distribution.withdraw.status"}}
|
11
|
+
{{else if this.isSkipped}}
|
12
|
+
{{t "caluma.distribution.status.skipped"}}
|
18
13
|
{{else}}
|
19
14
|
{{format-date this.deadline.value}}
|
20
15
|
{{/if}}
|
@@ -8,7 +8,21 @@ export default class CdInquiryDialogInquiryDeadlineComponent extends Component {
|
|
8
8
|
|
9
9
|
@inquiryDeadline deadline;
|
10
10
|
|
11
|
+
get icon() {
|
12
|
+
if (this.isWithdrawn) {
|
13
|
+
return "ban";
|
14
|
+
} else if (this.isSkipped) {
|
15
|
+
return "lock";
|
16
|
+
}
|
17
|
+
|
18
|
+
return "clock";
|
19
|
+
}
|
20
|
+
|
11
21
|
get isWithdrawn() {
|
12
22
|
return this.args.inquiry.status === "CANCELED";
|
13
23
|
}
|
24
|
+
|
25
|
+
get isSkipped() {
|
26
|
+
return this.args.inquiry.status === "SKIPPED";
|
27
|
+
}
|
14
28
|
}
|
@@ -19,106 +19,135 @@
|
|
19
19
|
{{yield}}
|
20
20
|
</div>
|
21
21
|
|
22
|
-
<
|
23
|
-
class="uk-subnav uk-subnav-divider
|
24
|
-
{{if
|
25
|
-
this.config.ui.small
|
26
|
-
'uk-margin-remove-top uk-margin-small-bottom'
|
27
|
-
'uk-margin-small-top'
|
28
|
-
}}"
|
29
|
-
>
|
30
|
-
<li>
|
31
|
-
<span>
|
32
|
-
{{format-date this.date}}
|
33
|
-
{{format-time this.date hour="2-digit" minute="2-digit"}}
|
34
|
-
</span>
|
35
|
-
</li>
|
22
|
+
<div class="uk-flex uk-flex-between uk-flex-top">
|
36
23
|
{{#unless @disabled}}
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
24
|
+
<ul
|
25
|
+
class="uk-subnav uk-subnav-divider uk-margin-remove-bottom
|
26
|
+
{{if
|
27
|
+
this.config.ui.small
|
28
|
+
'uk-margin-remove-top'
|
29
|
+
'uk-margin-small-top'
|
30
|
+
}}"
|
31
|
+
>
|
32
|
+
{{#if (or (eq @type "answer") (cannot "edit inquiry" @inquiry))}}
|
33
|
+
<li>
|
34
|
+
<LinkTo
|
35
|
+
data-test-details
|
36
|
+
@route="inquiry.detail.{{if
|
37
|
+
(eq @type 'answer')
|
38
|
+
'answer'
|
39
|
+
'index'
|
40
|
+
}}"
|
41
|
+
@model={{decode-id @inquiry.id}}
|
42
|
+
>
|
43
|
+
{{t "caluma.distribution.details"}}
|
44
|
+
</LinkTo>
|
45
|
+
</li>
|
46
|
+
{{/if}}
|
47
|
+
{{#if (can "edit inquiry" @inquiry)}}
|
48
|
+
<li>
|
49
|
+
<LinkTo
|
50
|
+
data-test-edit
|
51
|
+
@route="inquiry.detail.index"
|
52
|
+
@model={{decode-id @inquiry.id}}
|
53
|
+
>
|
54
|
+
{{t "caluma.distribution.edit.link"}}
|
55
|
+
</LinkTo>
|
56
|
+
</li>
|
57
|
+
{{#if (can "withdraw inquiry" @inquiry)}}
|
58
|
+
<li>
|
59
|
+
<a
|
60
|
+
href=""
|
61
|
+
{{on "click" (perform this.withdraw)}}
|
62
|
+
data-test-withdraw
|
63
|
+
>
|
64
|
+
{{t "caluma.distribution.withdraw.link"}}
|
65
|
+
</a>
|
66
|
+
</li>
|
67
|
+
{{/if}}
|
68
|
+
{{else if (can "answer inquiry" @inquiry)}}
|
69
|
+
<li>
|
70
|
+
<LinkTo
|
71
|
+
data-test-answer
|
72
|
+
@route="inquiry.detail.answer"
|
73
|
+
@model={{decode-id @inquiry.id}}
|
74
|
+
>
|
75
|
+
{{t "caluma.distribution.answer.link"}}
|
76
|
+
</LinkTo>
|
77
|
+
</li>
|
78
|
+
{{/if}}
|
79
|
+
{{#if (and (eq @type "answer") (can "reopen inquiry" @inquiry))}}
|
80
|
+
<li>
|
81
|
+
<a href="" {{on "click" (perform this.reopen)}} data-test-reopen>
|
82
|
+
{{t "caluma.distribution.reopen-inquiry.link"}}
|
83
|
+
</a>
|
84
|
+
</li>
|
85
|
+
{{/if}}
|
86
|
+
{{#if (can "send reminder inquiry" @inquiry)}}
|
59
87
|
<li>
|
60
88
|
<a
|
89
|
+
data-test-send-reminder
|
61
90
|
href=""
|
62
|
-
{{on "click" (perform this.
|
63
|
-
data-test-withdraw
|
91
|
+
{{on "click" (perform this.sendReminder)}}
|
64
92
|
>
|
65
|
-
{{t "caluma.distribution.
|
93
|
+
{{t "caluma.distribution.reminder.link"}}
|
66
94
|
</a>
|
95
|
+
<div
|
96
|
+
uk-dropdown="mode: hover; pos: bottom"
|
97
|
+
class="uk-padding-small uk-width-small"
|
98
|
+
>
|
99
|
+
<div class="uk-text-center uk-text-bold uk-margin-small-bottom">
|
100
|
+
{{t "caluma.distribution.reminder.title"}}
|
101
|
+
</div>
|
102
|
+
{{#if @inquiry.meta.reminders}}
|
103
|
+
<div class="uk-height-max-small uk-overflow-auto">
|
104
|
+
{{#each @inquiry.meta.reminders as |reminder|}}
|
105
|
+
<div class="uk-text-center uk-text-small uk-text-muted">
|
106
|
+
{{format-date reminder}}
|
107
|
+
{{format-time reminder hour="2-digit" minute="2-digit"}}
|
108
|
+
</div>
|
109
|
+
{{/each}}
|
110
|
+
</div>
|
111
|
+
{{else}}
|
112
|
+
<div class="uk-text-center">
|
113
|
+
{{t "caluma.distribution.reminder.no-reminders"}}
|
114
|
+
</div>
|
115
|
+
{{/if}}
|
116
|
+
</div>
|
67
117
|
</li>
|
68
118
|
{{/if}}
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
{{
|
80
|
-
|
81
|
-
|
82
|
-
<a href="" {{on "click" (perform this.reopen)}} data-test-reopen>
|
83
|
-
{{t "caluma.distribution.reopen-inquiry.link"}}
|
84
|
-
</a>
|
119
|
+
</ul>
|
120
|
+
{{/unless}}
|
121
|
+
<ul
|
122
|
+
class="uk-subnav uk-subnav-divider uk-margin-remove-bottom
|
123
|
+
{{if
|
124
|
+
this.config.ui.small
|
125
|
+
'uk-margin-remove-top'
|
126
|
+
'uk-margin-small-top'
|
127
|
+
}}"
|
128
|
+
>
|
129
|
+
{{#if (and (eq @type "answer") @inquiry.assignedUsers.length)}}
|
130
|
+
<li {{uk-tooltip (t "caluma.distribution.inquiry.assigned-user")}}>
|
131
|
+
<span>{{user-name @inquiry.assignedUsers}}</span>
|
85
132
|
</li>
|
86
133
|
{{/if}}
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
>
|
101
|
-
<div class="uk-text-center uk-text-bold uk-margin-small-bottom">
|
102
|
-
{{t "caluma.distribution.reminder.title"}}
|
103
|
-
</div>
|
104
|
-
{{#if @inquiry.meta.reminders}}
|
105
|
-
<div class="uk-height-max-small uk-overflow-auto">
|
106
|
-
{{#each @inquiry.meta.reminders as |reminder|}}
|
107
|
-
<div class="uk-text-center uk-text-small uk-text-muted">
|
108
|
-
{{format-date reminder}}
|
109
|
-
{{format-time reminder hour="2-digit" minute="2-digit"}}
|
110
|
-
</div>
|
111
|
-
{{/each}}
|
112
|
-
</div>
|
113
|
-
{{else}}
|
114
|
-
<div class="uk-text-center">
|
115
|
-
{{t "caluma.distribution.reminder.no-reminders"}}
|
116
|
-
</div>
|
117
|
-
{{/if}}
|
118
|
-
</div>
|
134
|
+
<li
|
135
|
+
{{uk-tooltip
|
136
|
+
(if
|
137
|
+
(eq @type "answer")
|
138
|
+
(t "caluma.distribution.inquiry.closed-at")
|
139
|
+
(t "caluma.distribution.inquiry.created-at")
|
140
|
+
)
|
141
|
+
}}
|
142
|
+
>
|
143
|
+
<span>
|
144
|
+
{{format-date this.date}}
|
145
|
+
{{format-time this.date hour="2-digit" minute="2-digit"}}
|
146
|
+
</span>
|
119
147
|
</li>
|
120
|
-
|
121
|
-
|
148
|
+
</ul>
|
149
|
+
|
150
|
+
</div>
|
122
151
|
|
123
152
|
{{#if this.requestInfo}}
|
124
153
|
<CdTruncated
|
@@ -30,25 +30,24 @@ export default class CdInquiryDialogComponent extends Component {
|
|
30
30
|
_inquiries = trackedTask(this, this.fetchDialog, () => [
|
31
31
|
this.args.from,
|
32
32
|
this.args.to,
|
33
|
-
this.
|
33
|
+
this.distribution.caseId,
|
34
34
|
this.config,
|
35
35
|
]);
|
36
36
|
|
37
37
|
@dropTask
|
38
|
-
*fetchDialog() {
|
38
|
+
*fetchDialog(from, to, caseId, config) {
|
39
39
|
const response = yield this.apollo.watchQuery({
|
40
40
|
query: inquiryDialogQuery,
|
41
41
|
variables: {
|
42
|
-
from
|
43
|
-
to
|
44
|
-
caseId
|
45
|
-
task:
|
46
|
-
infoQuestion:
|
47
|
-
deadlineQuestion:
|
48
|
-
statusQuestion:
|
49
|
-
answerInfoQuestions:
|
50
|
-
buttonTasks: Object.keys(
|
51
|
-
includeNavigationData: true,
|
42
|
+
from,
|
43
|
+
to,
|
44
|
+
caseId,
|
45
|
+
task: config.inquiry.task,
|
46
|
+
infoQuestion: config.inquiry.infoQuestion,
|
47
|
+
deadlineQuestion: config.inquiry.deadlineQuestion,
|
48
|
+
statusQuestion: config.inquiry.answer.statusQuestion,
|
49
|
+
answerInfoQuestions: config.inquiry.answer.infoQuestions,
|
50
|
+
buttonTasks: Object.keys(config.inquiry.answer.buttons),
|
52
51
|
},
|
53
52
|
});
|
54
53
|
|
@@ -79,9 +78,6 @@ export default class CdInquiryDialogComponent extends Component {
|
|
79
78
|
|
80
79
|
yield this.distribution.createInquiry.perform([this.args.to]);
|
81
80
|
|
82
|
-
// refetch dialog data
|
83
|
-
yield getObservable(this._inquiries.value).refetch();
|
84
|
-
|
85
81
|
this.router.transitionTo(
|
86
82
|
"inquiry.detail.index",
|
87
83
|
{
|