@projectcaluma/ember-distribution 11.0.0-beta.29 → 11.0.0-beta.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. package/addon/abilities/distribution.js +9 -0
  2. package/addon/abilities/inquiry.js +1 -1
  3. package/addon/components/cd-document-header.hbs +3 -12
  4. package/addon/components/cd-inquiry-answer-form.hbs +140 -57
  5. package/addon/components/cd-inquiry-answer-form.js +20 -2
  6. package/addon/components/cd-inquiry-dialog/inquiry-deadline.hbs +5 -10
  7. package/addon/components/cd-inquiry-dialog/inquiry-deadline.js +14 -0
  8. package/addon/components/cd-inquiry-dialog/inquiry-part.hbs +116 -89
  9. package/addon/components/cd-inquiry-dialog.js +11 -15
  10. package/addon/components/cd-inquiry-edit-form.hbs +12 -4
  11. package/addon/components/cd-inquiry-edit-form.js +2 -2
  12. package/addon/components/cd-inquiry-new-form/bulk-edit.hbs +20 -0
  13. package/addon/components/cd-inquiry-new-form/bulk-edit.js +116 -0
  14. package/addon/components/cd-inquiry-new-form/select.hbs +71 -0
  15. package/addon/components/cd-inquiry-new-form/select.js +76 -0
  16. package/addon/components/cd-inquiry-new-form.hbs +29 -86
  17. package/addon/components/cd-inquiry-new-form.js +1 -100
  18. package/addon/components/cd-navigation/controls.hbs +112 -66
  19. package/addon/components/cd-navigation/controls.js +29 -14
  20. package/addon/components/cd-navigation/item.hbs +22 -11
  21. package/addon/components/cd-navigation/section.hbs +15 -21
  22. package/addon/components/cd-navigation/section.js +5 -13
  23. package/addon/components/cd-navigation.hbs +4 -9
  24. package/addon/config.js +19 -0
  25. package/addon/gql/fragments/inquiry-answer.graphql +57 -0
  26. package/addon/gql/fragments/inquiry-request.graphql +26 -0
  27. package/addon/gql/mutations/complete-inquiry-work-item.graphql +24 -13
  28. package/addon/gql/mutations/reopen-inquiry.graphql +3 -13
  29. package/addon/gql/queries/{control-work-items.graphql → controls.graphql} +18 -1
  30. package/addon/gql/queries/incomplete-inquiries.graphql +1 -1
  31. package/addon/gql/queries/inquiry-answer.graphql +5 -1
  32. package/addon/gql/queries/inquiry-dialog.graphql +31 -2
  33. package/addon/gql/queries/inquiry-form.graphql +26 -0
  34. package/addon/gql/queries/{inquiry-navigation.graphql → navigation.graphql} +24 -6
  35. package/addon/routes/application.js +7 -0
  36. package/addon/routes/index.js +15 -28
  37. package/addon/routes/inquiry/index.js +1 -4
  38. package/addon/routes/new.js +1 -5
  39. package/addon/services/distribution.js +81 -9
  40. package/addon/templates/application.hbs +7 -5
  41. package/addon/templates/index.hbs +1 -5
  42. package/addon/templates/inquiry/index.hbs +1 -5
  43. package/addon/templates/new.hbs +0 -1
  44. package/addon/utils/inquiry-deadline.js +3 -1
  45. package/app/components/cd-inquiry-new-form/bulk-edit.js +1 -0
  46. package/app/components/cd-inquiry-new-form/select.js +1 -0
  47. package/app/styles/_answer-form.scss +4 -0
  48. package/package.json +17 -17
  49. package/translations/de.yaml +31 -9
  50. package/translations/en.yaml +31 -10
  51. package/translations/fr.yaml +31 -9
  52. package/addon/components/cd-navigation.js +0 -53
  53. package/addon/gql/fragments/inquiry.graphql +0 -117
  54. package/addon/modifiers/pikaday.js +0 -2
@@ -30,6 +30,15 @@ export default class DistributionAbility extends Ability {
30
30
  );
31
31
  }
32
32
 
33
+ get canCheckInquiries() {
34
+ return (
35
+ !this.config.ui.readonly &&
36
+ (this.config.permissions.checkInquiries?.() ?? true) &&
37
+ this.distribution.controls.value?.check.edges.filter(hasStatus("READY"))
38
+ .length > 0
39
+ );
40
+ }
41
+
33
42
  get canComplete() {
34
43
  return (
35
44
  !this.config.ui.readonly &&
@@ -13,7 +13,7 @@ export default class InquiryAbility extends Ability {
13
13
  return (
14
14
  !this.config.ui.readonly &&
15
15
  this.model?.task.slug === this.config.inquiry.task &&
16
- this.model?.status === "SUSPENDED" &&
16
+ ["SUSPENDED", "READY"].includes(this.model?.status) &&
17
17
  this.model?.controllingGroups
18
18
  .map(String)
19
19
  .includes(String(this.calumaOptions.currentGroupId))
@@ -1,4 +1,4 @@
1
- <p class="uk-text-large uk-margin-remove uk-flex uk-flex-middle">
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
- </p>
12
+ </div>
13
13
 
14
- {{#if (and @modifiedBy @modifiedAt)}}
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,69 +5,152 @@
5
5
  >
6
6
  <:default as |content|>
7
7
 
8
- <CdDocumentHeader
9
- @name={{content.document.rootForm.raw.name}}
10
- @status={{if (eq this.inquiry.status "READY") this.answerStatus}}
11
- @modifiedAt={{this.inquiry.childCase.document.modifiedContentAt}}
12
- @modifiedBy={{this.inquiry.childCase.document.modifiedContentByUser}}
13
- >
14
- <CdInquiryDialog::InquiryDeadline @inquiry={{this.inquiry}} />
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
- <hr />
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
- <div class="uk-margin uk-text-italic inquiry-answer-form__request">
20
- <CdInquiryDialog::InquiryPart
21
- @inquiry={{this.inquiry}}
22
- @type="request"
23
- @disabled={{true}}
24
- />
25
- </div>
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
- {{#if
28
- (and
29
- (not this.buttons.length)
30
- (can "edit answer form of inquiry" this.inquiry)
31
- )
32
- }}
33
- <div class="uk-alert uk-alert-warning uk-flex uk-flex-middle">
34
- <UkIcon @icon="warning" class="uk-margin-small-right" />
35
- {{t "caluma.distribution.answer.complete-not-allowed"}}
36
- {{t "caluma.distribution.not-allowed-hint"}}
37
- </div>
38
- {{/if}}
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}}
63
+
64
+ <content.form />
39
65
 
40
- <content.form />
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
104
+ this.completeWorkItem.isRunning
105
+ (includes
106
+ buttonConfig.workItemId this.completeWorkItem.lastRunning.args
107
+ )
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>
41
124
 
42
- {{#each this.buttons as |buttonConfig|}}
43
- {{#if buttonConfig.isFormButton}}
44
- <DocumentValidity @document={{content.document}} as |isValid validate|>
45
- <UkButton
46
- @type="submit"
47
- @color={{buttonConfig.color}}
48
- @disabled={{or (not isValid) this.completeWorkItem.isRunning}}
49
- @loading={{this.completeWorkItem.isRunning}}
50
- @onClick={{fn
51
- (perform this.completeWorkItem)
52
- buttonConfig.workItemId
53
- validate
54
- }}
55
- >{{buttonConfig.label}}</UkButton>
56
- </DocumentValidity>
57
- {{else}}
58
- <UkButton
59
- @type="button"
60
- @color={{buttonConfig.color}}
61
- @disabled={{this.completeWorkItem.isRunning}}
62
- @loading={{this.completeWorkItem.isRunning}}
63
- @onClick={{fn
64
- (perform this.completeWorkItem)
65
- buttonConfig.workItemId
66
- null
67
- }}
68
- >{{buttonConfig.label}}</UkButton>
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>
69
151
  {{/if}}
70
- {{/each}}
152
+
153
+ </div>
71
154
  </:default>
72
155
  <:notfound><CdNotfound /></:notfound>
73
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: this.args.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
- {{if
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,133 @@
19
19
  {{yield}}
20
20
  </div>
21
21
 
22
- <ul
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
- {{#if (or (eq @type "answer") (cannot "edit inquiry" @inquiry))}}
38
- <li>
39
- <LinkTo
40
- data-test-details
41
- @route="inquiry.detail.{{if (eq @type 'answer') 'answer' 'index'}}"
42
- @model={{decode-id @inquiry.id}}
43
- >
44
- {{t "caluma.distribution.details"}}
45
- </LinkTo>
46
- </li>
47
- {{/if}}
48
- {{#if (can "edit inquiry" @inquiry)}}
49
- <li>
50
- <LinkTo
51
- data-test-edit
52
- @route="inquiry.detail.index"
53
- @model={{decode-id @inquiry.id}}
54
- >
55
- {{t "caluma.distribution.edit.link"}}
56
- </LinkTo>
57
- </li>
58
- {{#if (can "withdraw inquiry" @inquiry)}}
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.withdraw)}}
63
- data-test-withdraw
91
+ {{on "click" (perform this.sendReminder)}}
64
92
  >
65
- {{t "caluma.distribution.withdraw.link"}}
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
- {{else if (can "answer inquiry" @inquiry)}}
70
- <li>
71
- <LinkTo
72
- data-test-answer
73
- @route="inquiry.detail.answer"
74
- @model={{decode-id @inquiry.id}}
75
- >
76
- {{t "caluma.distribution.answer.link"}}
77
- </LinkTo>
78
- </li>
79
- {{/if}}
80
- {{#if (and (eq @type "answer") (can "reopen inquiry" @inquiry))}}
81
- <li>
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
+ {{user-name @inquiry.assignedUsers}}
85
132
  </li>
86
133
  {{/if}}
87
- {{/unless}}
88
- {{#if (can "send reminder inquiry" @inquiry)}}
89
- <li>
90
- <a
91
- data-test-send-reminder
92
- href=""
93
- {{on "click" (perform this.sendReminder)}}
94
- >
95
- {{t "caluma.distribution.reminder.link"}}
96
- </a>
97
- <div
98
- uk-dropdown="mode: hover; pos: bottom"
99
- class="uk-padding-small uk-width-small"
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
+ {{format-date this.date}}
144
+ {{format-time this.date hour="2-digit" minute="2-digit"}}
119
145
  </li>
120
- {{/if}}
121
- </ul>
146
+ </ul>
147
+
148
+ </div>
122
149
 
123
150
  {{#if this.requestInfo}}
124
151
  <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.args.caseId,
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: this.args.from,
43
- to: this.args.to,
44
- caseId: this.args.caseId,
45
- task: this.config.inquiry.task,
46
- infoQuestion: this.config.inquiry.infoQuestion,
47
- deadlineQuestion: this.config.inquiry.deadlineQuestion,
48
- statusQuestion: this.config.inquiry.answer.statusQuestion,
49
- answerInfoQuestions: this.config.inquiry.answer.infoQuestions,
50
- buttonTasks: Object.keys(this.config.inquiry.answer.buttons),
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
  {