@things-factory/dataset 7.0.0-alpha.0 → 7.0.0-alpha.18

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.
Files changed (187) hide show
  1. package/client/activities/activity-data-collect-edit.ts +1 -7
  2. package/client/activities/activity-data-collect-view.ts +7 -0
  3. package/client/activities/activity-data-review-edit.ts +66 -32
  4. package/client/activities/activity-data-review-view.ts +75 -29
  5. package/client/activities/activity-ooc-resolve-edit.ts +44 -48
  6. package/client/activities/activity-ooc-resolve-view.ts +25 -35
  7. package/client/activities/activity-ooc-review-edit.ts +36 -29
  8. package/client/activities/activity-ooc-review-view.ts +9 -19
  9. package/client/bootstrap.ts +5 -9
  10. package/client/pages/data-entry/data-entry-list-page.ts +8 -23
  11. package/client/pages/data-ooc/data-ooc-list-page.ts +71 -27
  12. package/client/pages/data-ooc/{data-ooc-view-page.ts → data-ooc-page.ts} +45 -1
  13. package/client/pages/data-ooc/data-ooc-view.ts +198 -41
  14. package/client/pages/data-ooc/data-oocs-page.ts +200 -0
  15. package/client/pages/data-sample/data-sample-list-page.ts +53 -31
  16. package/client/pages/data-sample/{data-sample-view-page.ts → data-sample-page.ts} +8 -1
  17. package/client/pages/data-sample/data-sample-search-page.ts +30 -25
  18. package/client/pages/data-sample/data-sample-view.ts +192 -21
  19. package/client/pages/data-sample/data-samples-page.ts +249 -0
  20. package/client/pages/data-sensor/data-sensor-list-page.ts +28 -6
  21. package/client/pages/data-set/data-item-list.ts +14 -8
  22. package/client/pages/data-set/data-set-list-page.ts +11 -21
  23. package/client/pages/data-summary/data-summary-list-page.ts +12 -24
  24. package/client/route.ts +10 -2
  25. package/dist-client/activities/activity-data-collect-edit.js +1 -7
  26. package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
  27. package/dist-client/activities/activity-data-collect-view.js +7 -0
  28. package/dist-client/activities/activity-data-collect-view.js.map +1 -1
  29. package/dist-client/activities/activity-data-review-edit.d.ts +1 -1
  30. package/dist-client/activities/activity-data-review-edit.js +63 -33
  31. package/dist-client/activities/activity-data-review-edit.js.map +1 -1
  32. package/dist-client/activities/activity-data-review-view.d.ts +1 -1
  33. package/dist-client/activities/activity-data-review-view.js +72 -30
  34. package/dist-client/activities/activity-data-review-view.js.map +1 -1
  35. package/dist-client/activities/activity-ooc-resolve-edit.d.ts +1 -1
  36. package/dist-client/activities/activity-ooc-resolve-edit.js +44 -48
  37. package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
  38. package/dist-client/activities/activity-ooc-resolve-view.d.ts +13 -0
  39. package/dist-client/activities/activity-ooc-resolve-view.js +24 -34
  40. package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
  41. package/dist-client/activities/activity-ooc-review-edit.js +39 -29
  42. package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
  43. package/dist-client/activities/activity-ooc-review-view.js +9 -19
  44. package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
  45. package/dist-client/bootstrap.d.ts +4 -4
  46. package/dist-client/bootstrap.js +4 -4
  47. package/dist-client/bootstrap.js.map +1 -1
  48. package/dist-client/pages/data-entry/data-entry-list-page.js +3 -15
  49. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  50. package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +6 -0
  51. package/dist-client/pages/data-ooc/data-ooc-list-page.js +67 -24
  52. package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
  53. package/dist-client/pages/data-ooc/{data-ooc-view-page.js → data-ooc-page.js} +46 -2
  54. package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -0
  55. package/dist-client/pages/data-ooc/data-ooc-view.d.ts +11 -4
  56. package/dist-client/pages/data-ooc/data-ooc-view.js +193 -48
  57. package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
  58. package/dist-client/pages/data-ooc/data-oocs-page.d.ts +18 -0
  59. package/dist-client/pages/data-ooc/data-oocs-page.js +200 -0
  60. package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -0
  61. package/dist-client/pages/data-sample/data-sample-list-page.d.ts +6 -1
  62. package/dist-client/pages/data-sample/data-sample-list-page.js +51 -28
  63. package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
  64. package/dist-client/pages/data-sample/{data-sample-view-page.js → data-sample-page.js} +9 -2
  65. package/dist-client/pages/data-sample/data-sample-page.js.map +1 -0
  66. package/dist-client/pages/data-sample/data-sample-search-page.d.ts +6 -1
  67. package/dist-client/pages/data-sample/data-sample-search-page.js +28 -22
  68. package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -1
  69. package/dist-client/pages/data-sample/data-sample-view.d.ts +18 -0
  70. package/dist-client/pages/data-sample/data-sample-view.js +186 -19
  71. package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
  72. package/dist-client/pages/data-sample/data-samples-page.d.ts +21 -0
  73. package/dist-client/pages/data-sample/data-samples-page.js +249 -0
  74. package/dist-client/pages/data-sample/data-samples-page.js.map +1 -0
  75. package/dist-client/pages/data-sensor/data-sensor-list-page.js +28 -6
  76. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
  77. package/dist-client/pages/data-set/data-item-list.js +14 -8
  78. package/dist-client/pages/data-set/data-item-list.js.map +1 -1
  79. package/dist-client/pages/data-set/data-set-list-page.js +3 -10
  80. package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
  81. package/dist-client/pages/data-summary/data-summary-list-page.js +12 -21
  82. package/dist-client/pages/data-summary/data-summary-list-page.js.map +1 -1
  83. package/dist-client/route.js +8 -2
  84. package/dist-client/route.js.map +1 -1
  85. package/dist-client/tsconfig.tsbuildinfo +1 -1
  86. package/dist-server/activities/activity-data-collect.js.map +1 -1
  87. package/dist-server/activities/activity-data-review.js.map +1 -1
  88. package/dist-server/activities/activity-ooc-review.js +3 -2
  89. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  90. package/dist-server/controllers/create-data-sample.js +27 -29
  91. package/dist-server/controllers/create-data-sample.js.map +1 -1
  92. package/dist-server/controllers/{generate-data-summary.js → finalize-data-collection.js} +10 -30
  93. package/dist-server/controllers/finalize-data-collection.js.map +1 -0
  94. package/dist-server/controllers/issue-collect-data.js +55 -0
  95. package/dist-server/controllers/issue-collect-data.js.map +1 -0
  96. package/dist-server/controllers/query-data-summary-by-period.js +4 -9
  97. package/dist-server/controllers/query-data-summary-by-period.js.map +1 -1
  98. package/dist-server/engine/index.js +4 -0
  99. package/dist-server/engine/index.js.map +1 -0
  100. package/dist-server/engine/task/create-data-sample.js +80 -0
  101. package/dist-server/engine/task/create-data-sample.js.map +1 -0
  102. package/dist-server/engine/task/index.js +5 -0
  103. package/dist-server/engine/task/index.js.map +1 -0
  104. package/dist-server/engine/task/issue-collect-data.js +40 -0
  105. package/dist-server/engine/task/issue-collect-data.js.map +1 -0
  106. package/dist-server/index.js +1 -0
  107. package/dist-server/index.js.map +1 -1
  108. package/dist-server/routes.js +36 -65
  109. package/dist-server/routes.js.map +1 -1
  110. package/dist-server/service/data-ooc/data-ooc-query.js +32 -0
  111. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  112. package/dist-server/service/data-ooc/data-ooc-subscription.js +4 -4
  113. package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -1
  114. package/dist-server/service/data-ooc/data-ooc.js +44 -37
  115. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  116. package/dist-server/service/data-sample/data-sample-query.js +24 -0
  117. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  118. package/dist-server/service/data-sample/data-sample.js +30 -31
  119. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  120. package/dist-server/service/data-sensor/data-sensor-query.js +16 -1
  121. package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
  122. package/dist-server/service/data-sensor/data-sensor-type.js +8 -0
  123. package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
  124. package/dist-server/service/data-sensor/data-sensor.js +15 -1
  125. package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
  126. package/dist-server/service/data-set/data-item-type.js +17 -2
  127. package/dist-server/service/data-set/data-item-type.js.map +1 -1
  128. package/dist-server/service/data-set/data-set-mutation.js +2 -2
  129. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  130. package/dist-server/service/data-set/data-set-query.js +2 -2
  131. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  132. package/dist-server/service/data-summary/data-summary-mutation.js +34 -5
  133. package/dist-server/service/data-summary/data-summary-mutation.js.map +1 -1
  134. package/dist-server/service/data-summary/data-summary.js +8 -8
  135. package/dist-server/service/data-summary/data-summary.js.map +1 -1
  136. package/dist-server/tsconfig.tsbuildinfo +1 -1
  137. package/helps/config/dataArchive.md +21 -0
  138. package/helps/config/dataReport.md +34 -0
  139. package/helps/dataset/task/create-data-sample.ja.md +28 -0
  140. package/helps/dataset/task/create-data-sample.ko.md +28 -0
  141. package/helps/dataset/task/create-data-sample.md +28 -0
  142. package/helps/dataset/task/create-data-sample.ms.md +30 -0
  143. package/helps/dataset/task/create-data-sample.zh.md +28 -0
  144. package/helps/dataset/task/issue-collect-data.ja.md +35 -0
  145. package/helps/dataset/task/issue-collect-data.ko.md +32 -0
  146. package/helps/dataset/task/issue-collect-data.md +32 -0
  147. package/helps/dataset/task/issue-collect-data.ms.md +34 -0
  148. package/helps/dataset/task/issue-collect-data.zh.md +32 -0
  149. package/helps/dataset/ui/data-item-list.ko.md +17 -2
  150. package/package.json +14 -11
  151. package/server/activities/activity-data-collect.ts +3 -11
  152. package/server/activities/activity-data-review.ts +1 -5
  153. package/server/activities/activity-ooc-review.ts +6 -16
  154. package/server/controllers/create-data-sample.ts +31 -38
  155. package/server/controllers/{generate-data-summary.ts → finalize-data-collection.ts} +7 -39
  156. package/server/controllers/issue-collect-data.ts +61 -0
  157. package/server/controllers/query-data-summary-by-period.ts +5 -18
  158. package/server/engine/index.ts +1 -0
  159. package/server/engine/task/create-data-sample.ts +92 -0
  160. package/server/engine/task/index.ts +2 -0
  161. package/server/engine/task/issue-collect-data.ts +45 -0
  162. package/server/index.ts +1 -0
  163. package/server/routes.ts +47 -76
  164. package/server/service/data-ooc/data-ooc-query.ts +17 -0
  165. package/server/service/data-ooc/data-ooc-subscription.ts +7 -7
  166. package/server/service/data-ooc/data-ooc.ts +39 -51
  167. package/server/service/data-sample/data-sample-query.ts +17 -17
  168. package/server/service/data-sample/data-sample.ts +29 -52
  169. package/server/service/data-sensor/data-sensor-query.ts +13 -1
  170. package/server/service/data-sensor/data-sensor-type.ts +6 -0
  171. package/server/service/data-sensor/data-sensor.ts +13 -11
  172. package/server/service/data-set/data-item-type.ts +19 -10
  173. package/server/service/data-set/data-set-mutation.ts +9 -31
  174. package/server/service/data-set/data-set-query.ts +7 -7
  175. package/server/service/data-summary/data-summary-mutation.ts +24 -7
  176. package/server/service/data-summary/data-summary.ts +10 -23
  177. package/things-factory.config.js +10 -2
  178. package/translations/en.json +17 -3
  179. package/translations/ja.json +14 -2
  180. package/translations/ko.json +16 -2
  181. package/translations/ms.json +13 -1
  182. package/translations/zh.json +14 -2
  183. package/dist-client/pages/data-ooc/data-ooc-view-page.js.map +0 -1
  184. package/dist-client/pages/data-sample/data-sample-view-page.js.map +0 -1
  185. package/dist-server/controllers/generate-data-summary.js.map +0 -1
  186. /package/dist-client/pages/data-ooc/{data-ooc-view-page.d.ts → data-ooc-page.d.ts} +0 -0
  187. /package/dist-client/pages/data-sample/{data-sample-view-page.d.ts → data-sample-page.d.ts} +0 -0
@@ -1,37 +1,50 @@
1
1
  import '@operato/dataset/ox-data-sample-view.js'
2
+ import '@operato/dataset/ox-data-ooc-brief-view.js'
3
+ import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js'
2
4
 
3
5
  import gql from 'graphql-tag'
4
- import { css, html, LitElement } from 'lit'
5
- import { customElement, property, query, state } from 'lit/decorators.js'
6
+ import { css, html, LitElement, nothing } from 'lit'
7
+ import { customElement, property, state } from 'lit/decorators.js'
6
8
 
7
9
  import { client } from '@operato/graphql'
8
10
  import { i18next, localize } from '@operato/i18n'
9
11
  import { ScrollbarStyles } from '@operato/styles'
10
12
  import { DataSample } from '@operato/dataset'
13
+ import { GhostPrint } from '@operato/ghost-print'
11
14
 
12
15
  @customElement('data-sample-view')
13
- class DataSampleView extends localize(i18next)(LitElement) {
16
+ export class DataSampleView extends localize(i18next)(LitElement) {
14
17
  static styles = [
15
18
  ScrollbarStyles,
16
19
  css`
17
20
  :host {
18
- display: flex;
19
- flex-direction: column;
20
-
21
+ position: relative;
22
+ display: block;
23
+ overflow: auto;
21
24
  background-color: #fff;
22
25
  }
23
26
 
24
- div[content] {
25
- flex: 1;
27
+ ox-data-sample-view,
28
+ ox-data-ooc-brief-view {
29
+ padding: var(--padding-wide);
30
+ }
26
31
 
27
- display: flex;
28
- overflow: auto;
32
+ activity-thread-timeline {
33
+ margin: var(--margin-default);
29
34
  }
30
35
 
31
- ox-data-sample-view {
32
- flex: 1;
33
- padding: var(--padding-wide);
34
- overflow: auto;
36
+ mwc-fab {
37
+ position: fixed;
38
+ bottom: 15px;
39
+ right: 16px;
40
+ text-decoration: auto;
41
+ opacity: 0.5;
42
+ }
43
+
44
+ @media print {
45
+ mwc-fab {
46
+ display: none;
47
+ }
35
48
  }
36
49
  `
37
50
  ]
@@ -41,13 +54,57 @@ class DataSampleView extends localize(i18next)(LitElement) {
41
54
  attribute: 'data-sample-id'
42
55
  })
43
56
  dataSampleId?: string
57
+
44
58
  @state() dataSample?: DataSample
45
59
 
60
+ private printHandler = this.handlePrint.bind(this)
61
+
46
62
  render() {
63
+ const dataSample = this.dataSample
64
+
65
+ if (!dataSample) {
66
+ return nothing
67
+ }
68
+
69
+ if (dataSample.dataOoc) {
70
+ var reviewActivityThread = dataSample.dataOoc.reviewActivityInstance?.activityThreads?.[0]
71
+ var resolveActivityThread = dataSample.dataOoc.resolveActivityInstance?.activityThreads?.[0]
72
+ } else {
73
+ var reviewActivityThread = dataSample?.reviewActivityInstance?.activityThreads?.[0]
74
+ }
75
+
47
76
  return html`
48
- <div content>
49
- ${this.dataSample ? html`<ox-data-sample-view .dataSample=${this.dataSample}></ox-data-sample-view>` : html``}
50
- </div>
77
+ ${!dataSample?.dataOoc
78
+ ? html` <ox-data-sample-view .dataSample=${dataSample}></ox-data-sample-view> `
79
+ : html` <ox-data-ooc-brief-view .dataOoc=${dataSample!.dataOoc}></ox-data-ooc-brief-view>`}
80
+ ${reviewActivityThread
81
+ ? html`
82
+ <activity-thread-timeline
83
+ subtitle=${String(i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
84
+ .activityThread=${reviewActivityThread}
85
+ short-form
86
+ ></activity-thread-timeline>
87
+ `
88
+ : nothing}
89
+ ${resolveActivityThread
90
+ ? html`
91
+ <activity-thread-timeline
92
+ subtitle=${String(i18next.t('label.ooc resolve timeline'))}
93
+ .activityThread=${resolveActivityThread}
94
+ short-form
95
+ ></activity-thread-timeline>
96
+ `
97
+ : nothing}
98
+
99
+ <mwc-fab
100
+ icon="print"
101
+ title="print"
102
+ @click=${() =>
103
+ GhostPrint.print({
104
+ src: `./data-sample/${this.dataSampleId}`
105
+ })}
106
+ >print</mwc-fab
107
+ >
51
108
  `
52
109
  }
53
110
 
@@ -76,6 +133,12 @@ class DataSampleView extends localize(i18next)(LitElement) {
76
133
  data
77
134
  ooc
78
135
  oos
136
+ updatedAt
137
+ collectedAt
138
+ updater {
139
+ id
140
+ name
141
+ }
79
142
  dataSet {
80
143
  id
81
144
  name
@@ -98,12 +161,100 @@ class DataSampleView extends localize(i18next)(LitElement) {
98
161
  judgment
99
162
  workDate
100
163
  workShift
101
- updater {
102
- id
164
+ reviewActivityInstance {
165
+ ...ActivityInstanceFragment
166
+ }
167
+ dataOoc {
103
168
  name
169
+ description
170
+ useCase
171
+ dataSet {
172
+ id
173
+ name
174
+ }
175
+ key01
176
+ key02
177
+ key03
178
+ key04
179
+ key05
180
+ partitionKeys
181
+ dataItems {
182
+ name
183
+ description
184
+ active
185
+ hidden
186
+ tag
187
+ group
188
+ type
189
+ unit
190
+ options
191
+ quota
192
+ spec
193
+ }
194
+ data
195
+ rawData
196
+ judgment
197
+ ooc
198
+ oos
199
+ state
200
+ history
201
+ workDate
202
+ workShift
203
+ correctiveInstruction
204
+ correctiveAction
205
+ reviewedAt
206
+ reviewer {
207
+ id
208
+ name
209
+ }
210
+ correctedAt
211
+ corrector {
212
+ id
213
+ name
214
+ }
215
+ updater {
216
+ id
217
+ name
218
+ }
219
+ updatedAt
220
+ collectedAt
221
+
222
+ reviewActivityInstance {
223
+ ...ActivityInstanceFragment
224
+ }
225
+ resolveActivityInstance {
226
+ ...ActivityInstanceFragment
227
+ }
228
+ }
229
+ }
230
+ }
231
+
232
+ fragment ActivityInstanceFragment on ActivityInstance {
233
+ activityThreads {
234
+ assignee {
235
+ name
236
+ }
237
+ output
238
+ activityApprovals {
239
+ judgment
240
+ approver {
241
+ name
242
+ }
243
+ comment
244
+ createdAt
245
+ updatedAt
246
+ terminatedAt
247
+ }
248
+ activityThreadHistories {
249
+ transaction
250
+ reason
251
+ updater {
252
+ name
253
+ }
254
+ updatedAt
255
+ state
256
+ output
104
257
  }
105
- updatedAt
106
- collectedAt
107
258
  }
108
259
  }
109
260
  `,
@@ -114,4 +265,24 @@ class DataSampleView extends localize(i18next)(LitElement) {
114
265
 
115
266
  this.dataSample = response.data.dataSample
116
267
  }
268
+
269
+ handlePrint(event) {
270
+ if ((event.ctrlKey || event.metaKey) && event.key === 'p') {
271
+ event.preventDefault()
272
+
273
+ GhostPrint.print({
274
+ src: `./data-sample/${this.dataSampleId}`
275
+ })
276
+ }
277
+ }
278
+
279
+ connectedCallback(): void {
280
+ super.connectedCallback()
281
+ window.addEventListener('keydown', this.printHandler)
282
+ }
283
+
284
+ disconnectedCallback(): void {
285
+ super.disconnectedCallback()
286
+ window.removeEventListener('keydown', this.printHandler)
287
+ }
117
288
  }
@@ -0,0 +1,249 @@
1
+ import '@operato/dataset/ox-data-sample-view.js'
2
+ import '@operato/dataset/ox-data-ooc-brief-view.js'
3
+ import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js'
4
+
5
+ import gql from 'graphql-tag'
6
+ import { PropertyValues, html, css, nothing } from 'lit'
7
+ import { customElement, state } from 'lit/decorators.js'
8
+ import { PageView } from '@operato/shell'
9
+ import { i18next, localize } from '@operato/i18n'
10
+ import { client } from '@operato/graphql'
11
+
12
+ /**
13
+ * 이 페이지는 여러개의 Data Sample을 한번에 프린트하기 위한 용도로 사용되는 페이지이다.
14
+ */
15
+ @customElement('data-samples-page')
16
+ export class DataSamplesPage extends localize(i18next)(PageView) {
17
+ static styles = [
18
+ css`
19
+ :host {
20
+ display: block;
21
+ overflow: auto;
22
+ }
23
+
24
+ .end {
25
+ page-break-after: always;
26
+ break-after: always;
27
+ }
28
+ `
29
+ ]
30
+
31
+ @state() dataSamples?: any[]
32
+
33
+ get context() {
34
+ return {
35
+ title: i18next.t('title.data-sample view')
36
+ }
37
+ }
38
+
39
+ render() {
40
+ return this.dataSamples?.map(dataSample => {
41
+ if (dataSample?.dataOoc) {
42
+ var reviewActivityThread = dataSample.dataOoc.reviewActivityInstance?.activityThreads?.[0]
43
+ var resolveActivityThread = dataSample.dataOoc.resolveActivityInstance?.activityThreads?.[0]
44
+ } else {
45
+ var reviewActivityThread = dataSample?.reviewActivityInstance?.activityThreads?.[0]
46
+ }
47
+
48
+ return html`
49
+ ${!dataSample.dataOoc
50
+ ? html` <ox-data-sample-view .dataSample=${dataSample}></ox-data-sample-view> `
51
+ : html` <ox-data-ooc-brief-view .dataOoc=${dataSample.dataOoc}></ox-data-ooc-brief-view>`}
52
+ ${reviewActivityThread
53
+ ? html`
54
+ <activity-thread-timeline
55
+ subtitle=${String(i18next.t(dataSample?.dataOoc ? 'label.ooc review timeline' : 'label.datasample review timeline'))}
56
+ .activityThread=${reviewActivityThread}
57
+ short-form
58
+ ></activity-thread-timeline>
59
+ `
60
+ : nothing}
61
+ ${resolveActivityThread
62
+ ? html`
63
+ <activity-thread-timeline
64
+ subtitle=${String(i18next.t('label.ooc resolve timeline'))}
65
+ .activityThread=${resolveActivityThread}
66
+ short-form
67
+ ></activity-thread-timeline>
68
+ `
69
+ : nothing}
70
+ <div class="end"></div>
71
+ `
72
+ })
73
+ }
74
+
75
+ updated(changes: PropertyValues<this>) {}
76
+
77
+ pageUpdated(changes: any, lifecycle: any, before: any) {
78
+ if (this.active) {
79
+ /*
80
+ * this page is activated
81
+ */
82
+ const { ids = '' } = lifecycle.params
83
+
84
+ this.fetchSamples(ids.split('|').map(id => id.trim()))
85
+ } else {
86
+ /* this page is deactivated */
87
+ }
88
+ }
89
+
90
+ async fetchSamples(ids: string[]) {
91
+ const filters = [
92
+ {
93
+ name: 'id',
94
+ operator: 'in',
95
+ value: ids
96
+ }
97
+ ]
98
+
99
+ const response = await client.query({
100
+ query: gql`
101
+ query ($filters: [Filter!]) {
102
+ dataSamples(filters: $filters) {
103
+ items {
104
+ id
105
+ name
106
+ description
107
+ useCase
108
+ key01
109
+ key02
110
+ key03
111
+ key04
112
+ key05
113
+ data
114
+ ooc
115
+ oos
116
+ updatedAt
117
+ collectedAt
118
+ updater {
119
+ id
120
+ name
121
+ }
122
+ dataSet {
123
+ id
124
+ name
125
+ description
126
+ }
127
+ dataItems {
128
+ name
129
+ description
130
+ active
131
+ hidden
132
+ tag
133
+ group
134
+ type
135
+ unit
136
+ options
137
+ quota
138
+ spec
139
+ stat
140
+ }
141
+ judgment
142
+ workDate
143
+ workShift
144
+ reviewActivityInstance {
145
+ ...ActivityInstanceFragment
146
+ }
147
+ dataOoc {
148
+ name
149
+ description
150
+ useCase
151
+ dataSet {
152
+ id
153
+ name
154
+ }
155
+ key01
156
+ key02
157
+ key03
158
+ key04
159
+ key05
160
+ partitionKeys
161
+ dataItems {
162
+ name
163
+ description
164
+ active
165
+ hidden
166
+ tag
167
+ group
168
+ type
169
+ unit
170
+ options
171
+ quota
172
+ spec
173
+ stat
174
+ }
175
+ data
176
+ rawData
177
+ judgment
178
+ ooc
179
+ oos
180
+ state
181
+ history
182
+ workDate
183
+ workShift
184
+ correctiveInstruction
185
+ correctiveAction
186
+ reviewedAt
187
+ reviewer {
188
+ id
189
+ name
190
+ }
191
+ correctedAt
192
+ corrector {
193
+ id
194
+ name
195
+ }
196
+ updater {
197
+ id
198
+ name
199
+ }
200
+ updatedAt
201
+ collectedAt
202
+ reviewActivityInstance {
203
+ ...ActivityInstanceFragment
204
+ }
205
+ resolveActivityInstance {
206
+ ...ActivityInstanceFragment
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ fragment ActivityInstanceFragment on ActivityInstance {
214
+ activityThreads {
215
+ assignee {
216
+ name
217
+ }
218
+ output
219
+ activityApprovals {
220
+ judgment
221
+ approver {
222
+ name
223
+ }
224
+ comment
225
+ createdAt
226
+ updatedAt
227
+ terminatedAt
228
+ }
229
+ activityThreadHistories {
230
+ transaction
231
+ reason
232
+ updater {
233
+ name
234
+ }
235
+ updatedAt
236
+ state
237
+ output
238
+ }
239
+ }
240
+ }
241
+ `,
242
+ variables: {
243
+ filters
244
+ }
245
+ })
246
+
247
+ this.dataSamples = response.data.dataSamples.items
248
+ }
249
+ }
@@ -90,12 +90,7 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
90
90
  const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
91
91
 
92
92
  return html`
93
- <ox-grist
94
- .mode=${mode}
95
- .config=${this.gristConfig}
96
- .fetchHandler=${this.fetchHandler.bind(this)}
97
- ?url-params-sensitive=${this.active}
98
- >
93
+ <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${this.active}>
99
94
  <div slot="headroom" class="header">
100
95
  <div class="title">
101
96
  <mwc-icon>summarize</mwc-icon>
@@ -191,6 +186,28 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
191
186
  sortable: true,
192
187
  width: 120
193
188
  },
189
+ {
190
+ type: 'resource-object',
191
+ name: 'decoder',
192
+ header: {
193
+ renderer: i18next.t('field.decoder-scenario')
194
+ },
195
+ record: {
196
+ editable: true,
197
+ options: {
198
+ title: i18next.t('title.lookup scenario'),
199
+ queryName: 'scenarios',
200
+ columns: [
201
+ { name: 'id', hidden: true },
202
+ { name: 'name', header: i18next.t('field.name'), filter: 'search' },
203
+ { name: 'description', header: i18next.t('field.description'), filter: 'search' }
204
+ ],
205
+ list: { fields: ['name', 'description'] }
206
+ }
207
+ },
208
+ filter: false,
209
+ width: 120
210
+ },
194
211
  {
195
212
  type: 'object',
196
213
  name: 'dataSet',
@@ -315,6 +332,11 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
315
332
  name
316
333
  description
317
334
  }
335
+ decoder {
336
+ id
337
+ name
338
+ description
339
+ }
318
340
  refBy
319
341
  brand
320
342
  model
@@ -48,11 +48,7 @@ class DataItemList extends localize(i18next)(LitElement) {
48
48
 
49
49
  render() {
50
50
  return html`
51
- <ox-grist
52
- .mode=${isMobileDevice() ? 'LIST' : 'GRID'}
53
- .config=${this.gristConfig}
54
- .fetchHandler=${this.fetchHandler.bind(this)}
55
- ></ox-grist>
51
+ <ox-grist .mode=${isMobileDevice() ? 'LIST' : 'GRID'} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}></ox-grist>
56
52
  <div class="button-container">
57
53
  <mwc-button raised danger @click=${this._deleteDataItems.bind(this)}>${i18next.t('button.delete')}</mwc-button>
58
54
  <mwc-button raised @click=${this._updateDataItems.bind(this)}>${i18next.t('button.save')}</mwc-button>
@@ -157,7 +153,7 @@ class DataItemList extends localize(i18next)(LitElement) {
157
153
  name: 'type',
158
154
  header: i18next.t('field.type'),
159
155
  record: {
160
- options: ['', 'number', 'text', 'select', 'boolean', 'date', 'datetime', 'file'],
156
+ options: ['', 'number', 'text', 'select', 'radio', 'boolean', 'date', 'datetime', 'file'],
161
157
  editable: true
162
158
  },
163
159
  width: 120
@@ -174,7 +170,7 @@ class DataItemList extends localize(i18next)(LitElement) {
174
170
  name: record.type,
175
171
  help: '',
176
172
  spec:
177
- record.type === 'select'
173
+ record.type === 'select' || record.type === 'radio'
178
174
  ? [
179
175
  {
180
176
  type: 'options' /* property-editor type */,
@@ -193,7 +189,17 @@ class DataItemList extends localize(i18next)(LitElement) {
193
189
  {
194
190
  type: 'select',
195
191
  name: 'stat',
196
- header: i18next.t('field.stat-function'),
192
+ header: i18next.t('field.finalizing-function'),
193
+ record: {
194
+ options: ['', ...DataItemStats],
195
+ editable: true
196
+ },
197
+ width: 120
198
+ },
199
+ {
200
+ type: 'select',
201
+ name: 'agg',
202
+ header: i18next.t('field.agg-function'),
197
203
  record: {
198
204
  options: ['', ...DataItemStats],
199
205
  editable: true
@@ -149,12 +149,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
149
149
  const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
150
150
 
151
151
  return html`
152
- <ox-grist
153
- .mode=${mode}
154
- .config=${this.gristConfig}
155
- .fetchHandler=${this.fetchHandler.bind(this)}
156
- ?url-params-sensitive=${this.active}
157
- >
152
+ <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${this.active}>
158
153
  <div slot="headroom" class="header">
159
154
  <div class="title">
160
155
  <mwc-icon>summarize</mwc-icon>
@@ -229,14 +224,11 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
229
224
  title: i18next.t('title.data collecting editor'),
230
225
  handlers: {
231
226
  click: (columns, data, column, record, rowIndex) => {
232
- openPopup(
233
- html` <data-entry-form .dataSet=${record} style="background-color: white;"></data-entry-form> `,
234
- {
235
- backdrop: true,
236
- size: 'large',
237
- title: i18next.t('title.data-entry-form')
238
- }
239
- )
227
+ openPopup(html` <data-entry-form .dataSet=${record} style="background-color: white;"></data-entry-form> `, {
228
+ backdrop: true,
229
+ size: 'large',
230
+ title: i18next.t('title.data-entry-form')
231
+ })
240
232
  }
241
233
  }
242
234
  },
@@ -563,7 +555,6 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
563
555
  editable: true
564
556
  },
565
557
  filter: true,
566
- sortable: true,
567
558
  width: 60,
568
559
  imex: {
569
560
  width: 10,
@@ -814,6 +805,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
814
805
  quota
815
806
  spec
816
807
  stat
808
+ agg
817
809
  }
818
810
  }
819
811
  total
@@ -990,9 +982,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
990
982
  .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
991
983
  .reduce((record, column) => {
992
984
  var imexKey = (column.imex as ImexConfig)!.key
993
- record[imexKey] = imexKey
994
- .split('.')
995
- .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
985
+ record[imexKey] = imexKey.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
996
986
  return record
997
987
  }, {})
998
988
  }
@@ -1032,9 +1022,9 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
1032
1022
  const minutes = Math.floor(secs / MIN)
1033
1023
  const seconds = secs - minutes * MIN
1034
1024
 
1035
- yield `${positive ? '' : '- '}${days ? `${days}${i18next.t('label.days')} ` : ''}${
1036
- hours ? `${hours}${i18next.t('label.hours')} ` : ''
1037
- }${minutes ? `${minutes}${i18next.t('label.minutes')} ` : ''}`
1025
+ yield `${positive ? '' : '- '}${days ? `${days}${i18next.t('label.days')} ` : ''}${hours ? `${hours}${i18next.t('label.hours')} ` : ''}${
1026
+ minutes ? `${minutes}${i18next.t('label.minutes')} ` : ''
1027
+ }`
1038
1028
 
1039
1029
  await sleep(60 * 1000)
1040
1030
  }