@things-factory/dataset 8.0.0-beta.1 → 8.0.0-beta.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (113) hide show
  1. package/package.json +13 -13
  2. package/client/activities/activity-data-collect-edit.ts +0 -105
  3. package/client/activities/activity-data-collect-view.ts +0 -91
  4. package/client/activities/activity-data-review-edit.ts +0 -133
  5. package/client/activities/activity-data-review-view.ts +0 -145
  6. package/client/activities/activity-ooc-resolve-edit.ts +0 -195
  7. package/client/activities/activity-ooc-resolve-view.ts +0 -143
  8. package/client/activities/activity-ooc-review-edit.ts +0 -173
  9. package/client/activities/activity-ooc-review-view.ts +0 -129
  10. package/client/bootstrap.ts +0 -35
  11. package/client/components/data-entry-form.ts +0 -109
  12. package/client/index.ts +0 -1
  13. package/client/pages/data-archive/data-archive-list-page.ts +0 -277
  14. package/client/pages/data-archive/data-archive-request-popup.ts +0 -177
  15. package/client/pages/data-entry/data-entry-list-page.ts +0 -464
  16. package/client/pages/data-key-set/data-key-item-list.ts +0 -183
  17. package/client/pages/data-key-set/data-key-set-importer.ts +0 -89
  18. package/client/pages/data-key-set/data-key-set-list-page.ts +0 -413
  19. package/client/pages/data-ooc/data-ooc-list-page.ts +0 -549
  20. package/client/pages/data-ooc/data-ooc-page.ts +0 -164
  21. package/client/pages/data-ooc/data-ooc-view.ts +0 -236
  22. package/client/pages/data-ooc/data-oocs-page.ts +0 -200
  23. package/client/pages/data-report/data-report-embed-page.ts +0 -108
  24. package/client/pages/data-report/data-report-list-page.ts +0 -454
  25. package/client/pages/data-report/data-report-samples-page.ts +0 -174
  26. package/client/pages/data-report/jasper-report-oocs-page.ts +0 -110
  27. package/client/pages/data-report/jasper-report-samples-crosstab-page.ts +0 -110
  28. package/client/pages/data-report/jasper-report-samples-page.ts +0 -110
  29. package/client/pages/data-sample/data-sample-list-page.ts +0 -442
  30. package/client/pages/data-sample/data-sample-page.ts +0 -55
  31. package/client/pages/data-sample/data-sample-search-page.ts +0 -424
  32. package/client/pages/data-sample/data-sample-view.ts +0 -292
  33. package/client/pages/data-sample/data-samples-page.ts +0 -249
  34. package/client/pages/data-sensor/data-sensor-list-page.ts +0 -456
  35. package/client/pages/data-set/data-item-list.ts +0 -304
  36. package/client/pages/data-set/data-set-importer.ts +0 -89
  37. package/client/pages/data-set/data-set-list-page.ts +0 -1078
  38. package/client/pages/data-summary/data-summary-list-page.ts +0 -363
  39. package/client/pages/data-summary/data-summary-period-page.ts +0 -439
  40. package/client/pages/data-summary/data-summary-search-page.ts +0 -426
  41. package/client/pages/data-summary/data-summary-view.ts +0 -133
  42. package/client/route.ts +0 -91
  43. package/client/tsconfig.json +0 -13
  44. package/server/activities/activity-data-collect.ts +0 -100
  45. package/server/activities/activity-data-review.ts +0 -82
  46. package/server/activities/activity-ooc-resolve.ts +0 -123
  47. package/server/activities/activity-ooc-review.ts +0 -144
  48. package/server/activities/index.ts +0 -11
  49. package/server/controllers/create-data-sample.ts +0 -426
  50. package/server/controllers/data-use-case.ts +0 -98
  51. package/server/controllers/finalize-data-collection.ts +0 -388
  52. package/server/controllers/index.ts +0 -3
  53. package/server/controllers/issue-data-collection-task.ts +0 -70
  54. package/server/controllers/jasper-report.ts +0 -186
  55. package/server/controllers/query-data-summary-by-period.ts +0 -178
  56. package/server/controllers/shiny-report.ts +0 -54
  57. package/server/engine/index.ts +0 -1
  58. package/server/engine/task/create-data-sample.ts +0 -100
  59. package/server/engine/task/index.ts +0 -2
  60. package/server/engine/task/issue-collect-data.ts +0 -45
  61. package/server/index.ts +0 -8
  62. package/server/routes.ts +0 -188
  63. package/server/service/data-archive/data-archive-mutation.ts +0 -273
  64. package/server/service/data-archive/data-archive-query.ts +0 -58
  65. package/server/service/data-archive/data-archive-type.ts +0 -48
  66. package/server/service/data-archive/data-archive.ts +0 -69
  67. package/server/service/data-archive/index.ts +0 -6
  68. package/server/service/data-key-set/data-key-item-type.ts +0 -31
  69. package/server/service/data-key-set/data-key-set-mutation.ts +0 -201
  70. package/server/service/data-key-set/data-key-set-query.ts +0 -68
  71. package/server/service/data-key-set/data-key-set-type.ts +0 -70
  72. package/server/service/data-key-set/data-key-set.ts +0 -86
  73. package/server/service/data-key-set/index.ts +0 -6
  74. package/server/service/data-ooc/data-ooc-mutation.ts +0 -154
  75. package/server/service/data-ooc/data-ooc-query.ts +0 -106
  76. package/server/service/data-ooc/data-ooc-subscription.ts +0 -48
  77. package/server/service/data-ooc/data-ooc-type.ts +0 -71
  78. package/server/service/data-ooc/data-ooc.ts +0 -259
  79. package/server/service/data-ooc/index.ts +0 -7
  80. package/server/service/data-sample/data-sample-mutation.ts +0 -18
  81. package/server/service/data-sample/data-sample-query.ts +0 -215
  82. package/server/service/data-sample/data-sample-type.ts +0 -47
  83. package/server/service/data-sample/data-sample.ts +0 -193
  84. package/server/service/data-sample/index.ts +0 -6
  85. package/server/service/data-sensor/data-sensor-mutation.ts +0 -116
  86. package/server/service/data-sensor/data-sensor-query.ts +0 -76
  87. package/server/service/data-sensor/data-sensor-type.ts +0 -104
  88. package/server/service/data-sensor/data-sensor.ts +0 -126
  89. package/server/service/data-sensor/index.ts +0 -6
  90. package/server/service/data-set/data-item-type.ts +0 -155
  91. package/server/service/data-set/data-set-mutation.ts +0 -552
  92. package/server/service/data-set/data-set-query.ts +0 -461
  93. package/server/service/data-set/data-set-type.ts +0 -204
  94. package/server/service/data-set/data-set.ts +0 -326
  95. package/server/service/data-set/index.ts +0 -6
  96. package/server/service/data-set-history/data-set-history-query.ts +0 -126
  97. package/server/service/data-set-history/data-set-history-type.ts +0 -12
  98. package/server/service/data-set-history/data-set-history.ts +0 -217
  99. package/server/service/data-set-history/event-subscriber.ts +0 -17
  100. package/server/service/data-set-history/index.ts +0 -7
  101. package/server/service/data-spec/data-spec-manager.ts +0 -21
  102. package/server/service/data-spec/data-spec-query.ts +0 -21
  103. package/server/service/data-spec/data-spec.ts +0 -45
  104. package/server/service/data-spec/index.ts +0 -5
  105. package/server/service/data-summary/data-summary-mutation.ts +0 -45
  106. package/server/service/data-summary/data-summary-query.ts +0 -179
  107. package/server/service/data-summary/data-summary-type.ts +0 -86
  108. package/server/service/data-summary/data-summary.ts +0 -170
  109. package/server/service/data-summary/index.ts +0 -7
  110. package/server/service/index.ts +0 -57
  111. package/server/tsconfig.json +0 -10
  112. package/server/utils/config-resolver.ts +0 -29
  113. package/server/utils/index.ts +0 -1
@@ -1,363 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import '@operato/data-grist'
3
- import '@operato/context/ox-context-page-toolbar.js'
4
- import './data-summary-view.js'
5
-
6
- import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
7
- import { PageView, store } from '@operato/shell'
8
- import { css, html } from 'lit'
9
- import { customElement, property, query, state } from 'lit/decorators.js'
10
- import moment from '@operato/moment-timezone-es'
11
- import { DataGrist, GristRecord, FetchOption } from '@operato/data-grist'
12
- import { client } from '@operato/graphql'
13
- import { i18next, localize } from '@operato/i18n'
14
- import { notify, openPopup } from '@operato/layout'
15
- import { isMobileDevice } from '@operato/utils'
16
-
17
- import { connect } from 'pwa-helpers/connect-mixin'
18
- import gql from 'graphql-tag'
19
-
20
- @customElement('data-summary-list-page')
21
- export class DataSummaryListPage extends connect(store)(localize(i18next)(PageView)) {
22
- static styles = [
23
- ScrollbarStyles,
24
- CommonHeaderStyles,
25
- css`
26
- :host {
27
- display: flex;
28
- flex-direction: column;
29
-
30
- overflow: hidden;
31
- }
32
-
33
- ox-grist {
34
- overflow-y: auto;
35
- flex: 1;
36
- }
37
-
38
- .header {
39
- grid-template-areas: 'filters actions';
40
- }
41
- `
42
- ]
43
-
44
- @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
45
- @state() private gristConfig: any
46
-
47
- @query('ox-grist') private grist!: DataGrist
48
-
49
- get context() {
50
- return {
51
- title: i18next.t('title.data-summary list'),
52
- search: {
53
- handler: (search: string) => {
54
- this.grist.searchText = search
55
- },
56
- value: this.grist?.searchText || ''
57
- },
58
- filter: {
59
- handler: () => {
60
- this.grist.toggleHeadroom()
61
- }
62
- },
63
- help: 'dataset/data-summary',
64
- exportable: {
65
- name: i18next.t('title.data-summary list'),
66
- data: this._exportableData.bind(this)
67
- },
68
- toolbar: false
69
- }
70
- }
71
-
72
- render() {
73
- const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
74
-
75
- return html`
76
- <ox-grist
77
- .mode=${mode}
78
- .config=${this.gristConfig}
79
- .fetchHandler=${this.fetchHandler.bind(this)}
80
- ?url-params-sensitive=${false /* this.active */}
81
- >
82
- <div slot="headroom" class="header">
83
- <div class="filters">
84
- <ox-filters-form autofocus without-search></ox-filters-form>
85
- </div>
86
-
87
- <ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
88
- </div>
89
- </ox-grist>
90
- `
91
- }
92
-
93
- async pageInitialized(lifecycle) {
94
- const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD')
95
- const today = moment().format('YYYY-MM-DD')
96
-
97
- this.gristConfig = {
98
- list: { fields: ['dataSet', 'data', 'updater', 'updatedAt'] },
99
- columns: [
100
- { type: 'gutter', gutterName: 'sequence', fixed: true },
101
- { type: 'gutter', gutterName: 'row-selector', multiple: true, fixed: true },
102
- {
103
- type: 'gutter',
104
- gutterName: 'button',
105
- fixed: true,
106
- icon: 'assignment',
107
- iconOnly: false,
108
- title: i18next.t('button.detail'),
109
- width: 72
110
- },
111
- {
112
- type: 'string',
113
- name: 'name',
114
- fixed: true,
115
- label: true,
116
- header: i18next.t('field.name'),
117
- record: {
118
- editable: false
119
- },
120
- filter: 'search',
121
- sortable: true,
122
- width: 120,
123
- imex: true
124
- },
125
- {
126
- type: 'string',
127
- name: 'description',
128
- label: true,
129
- header: i18next.t('field.description'),
130
- record: {
131
- editable: false
132
- },
133
- filter: 'search',
134
- width: 150,
135
- imex: true
136
- },
137
- {
138
- type: 'string',
139
- name: 'date',
140
- header: i18next.t('field.date'),
141
- sortable: true,
142
- filter: {
143
- type: 'date',
144
- operator: 'between',
145
- value: [yesterday, today]
146
- },
147
- width: 80,
148
- imex: true
149
- },
150
- {
151
- type: 'string',
152
- name: 'period',
153
- header: i18next.t('field.time-period'),
154
- sortable: true,
155
- width: 60,
156
- imex: true
157
- },
158
- ...Array.from({ length: 5 }, (_, idx) => {
159
- return {
160
- type: 'string',
161
- name: `key0${idx + 1}`,
162
- header: {
163
- renderer: i18next.t(`field.key-0${idx + 1}`),
164
- group: i18next.t('field.key')
165
- },
166
- record: {
167
- editable: false
168
- },
169
- width: 120,
170
- imex: true
171
- }
172
- }),
173
- ...Array.from({ length: 5 }, (_, idx) => {
174
- return {
175
- type: 'number',
176
- name: `data0${idx + 1}`,
177
- header: {
178
- renderer: i18next.t(`field.data-0${idx + 1}`),
179
- group: i18next.t('field.data')
180
- },
181
- record: {
182
- editable: false,
183
- align: 'right'
184
- },
185
- width: 120,
186
- imex: true
187
- }
188
- }),
189
- {
190
- type: 'number',
191
- name: 'count',
192
- header: i18next.t('field.count'),
193
- record: {
194
- editable: false
195
- },
196
- width: 30
197
- },
198
- {
199
- type: 'number',
200
- name: 'countOoc',
201
- header: i18next.t('field.count-ooc'),
202
- record: {
203
- editable: false
204
- },
205
- width: 30
206
- },
207
- {
208
- type: 'number',
209
- name: 'countOos',
210
- header: i18next.t('field.count-oos'),
211
- record: {
212
- editable: false
213
- },
214
- width: 30
215
- },
216
- {
217
- type: 'resource-object',
218
- name: 'updater',
219
- header: i18next.t('field.updater'),
220
- sortable: true,
221
- width: 120,
222
- imex: true
223
- },
224
- {
225
- type: 'datetime',
226
- name: 'updatedAt',
227
- header: i18next.t('field.updated_at'),
228
- sortable: true,
229
- width: 180,
230
- imex: true
231
- }
232
- ],
233
- rows: {
234
- appendable: false,
235
- selectable: {
236
- multiple: true
237
- },
238
- classifier: function (record, rowIndex) {
239
- var emphasized
240
- if (record['oos']) {
241
- emphasized = ['#8B0000', 'white']
242
- } else if (record['ooc']) {
243
- emphasized = ['#FF6B6B', 'white']
244
- }
245
-
246
- return {
247
- emphasized
248
- }
249
- },
250
- handlers: {
251
- click: (columns, data, column, record, rowIndex) => {
252
- openPopup(
253
- html`
254
- <data-summary-view data-summary-id=${record.id} style="background-color: white;"></data-summary-view>
255
- `,
256
- {
257
- backdrop: true,
258
- size: 'large',
259
- title: i18next.t('title.data-summary view')
260
- }
261
- )
262
- }
263
- }
264
- },
265
- sorters: [
266
- {
267
- name: 'date',
268
- desc: true
269
- }
270
- ]
271
- }
272
- }
273
-
274
- async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {
275
- const response = await client.query({
276
- query: gql`
277
- query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
278
- responses: dataSummaries(filters: $filters, pagination: $pagination, sortings: $sortings) {
279
- items {
280
- id
281
- name
282
- description
283
- dataSet {
284
- id
285
- }
286
- date
287
- period
288
- key01
289
- key02
290
- key03
291
- key04
292
- key05
293
- data01
294
- data02
295
- data03
296
- data04
297
- data05
298
- summary
299
- count
300
- countOoc
301
- countOos
302
- updater {
303
- id
304
- name
305
- }
306
- updatedAt
307
- }
308
- total
309
- }
310
- }
311
- `,
312
- variables: {
313
- filters,
314
- pagination: { page, limit },
315
- sortings
316
- }
317
- })
318
-
319
- return {
320
- total: response.data.responses.total || 0,
321
- records: response.data.responses.items || []
322
- }
323
- }
324
-
325
- _exportableData() {
326
- let records = [] as GristRecord[]
327
- if (this.grist.selected && this.grist.selected.length > 0) {
328
- records = this.grist.selected
329
- } else {
330
- records = this.grist.data.records
331
- }
332
-
333
- var headerSetting = this.grist.compiledConfig.columns
334
- .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
335
- .map(column => {
336
- return column.imex === true
337
- ? {
338
- header: column.header.renderer(column),
339
- key: column.name,
340
- width: column.width,
341
- type: column.type
342
- }
343
- : column.imex
344
- })
345
-
346
- var data = records.map(item => {
347
- return {
348
- id: item.id,
349
- ...this.gristConfig.columns
350
- .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
351
- .reduce((record, column) => {
352
- const key = column.imex === true ? column.name : column.imex.key
353
- record[key] = key
354
- .split('.')
355
- .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
356
- return record
357
- }, {})
358
- }
359
- })
360
-
361
- return { header: headerSetting, data: data }
362
- }
363
- }