@things-factory/dataset 5.0.0-alpha.2 → 5.0.0-alpha.22
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/README.md +13 -0
- package/assets/data-samples.jpg +0 -0
- package/client/bootstrap.js +16 -1
- package/client/pages/data-entry-form.js +84 -0
- package/client/pages/data-item-list.js +58 -16
- package/client/pages/data-ooc-view.js +182 -0
- package/client/pages/data-ooc.js +487 -0
- package/client/pages/data-sample-view.js +97 -0
- package/client/pages/data-sample.js +149 -56
- package/client/pages/data-sensor.js +8 -18
- package/client/pages/data-set.js +200 -75
- package/client/route.js +4 -0
- package/dist-server/controllers/create-data-sample.js +124 -0
- package/dist-server/controllers/create-data-sample.js.map +1 -0
- package/dist-server/controllers/data-use-case.js +57 -0
- package/dist-server/controllers/data-use-case.js.map +1 -0
- package/dist-server/controllers/index.js +17 -0
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/index.js +2 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.js +9 -24
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/data-item/data-item-mutation.js +5 -1
- package/dist-server/service/data-item/data-item-mutation.js.map +1 -1
- package/dist-server/service/data-item/data-item-type.js +14 -5
- package/dist-server/service/data-item/data-item-type.js.map +1 -1
- package/dist-server/service/data-item/data-item.js +20 -7
- package/dist-server/service/data-item/data-item.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-mutation.js +92 -0
- package/dist-server/service/data-ooc/data-ooc-mutation.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-query.js +115 -0
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-subscription.js +65 -0
- package/dist-server/service/data-ooc/data-ooc-subscription.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc-type.js +107 -0
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc.js +237 -0
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -0
- package/dist-server/service/data-ooc/index.js +10 -0
- package/dist-server/service/data-ooc/index.js.map +1 -0
- package/dist-server/service/data-sample/data-sample-mutation.js +3 -105
- package/dist-server/service/data-sample/data-sample-mutation.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-type.js +13 -42
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js +40 -9
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/data-set/data-set-mutation.js +1 -2
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +12 -0
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +19 -2
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set/data-set.js +22 -10
- package/dist-server/service/data-set/data-set.js.map +1 -1
- package/dist-server/service/data-spec/data-spec-manager.js +20 -0
- package/dist-server/service/data-spec/data-spec-manager.js.map +1 -0
- package/dist-server/service/data-spec/data-spec-query.js +48 -0
- package/dist-server/service/data-spec/data-spec-query.js.map +1 -0
- package/dist-server/service/data-spec/data-spec.js +78 -0
- package/dist-server/service/data-spec/data-spec.js.map +1 -0
- package/dist-server/service/data-spec/index.js +8 -0
- package/dist-server/service/data-spec/index.js.map +1 -0
- package/dist-server/service/index.js +12 -4
- package/dist-server/service/index.js.map +1 -1
- package/package.json +15 -12
- package/server/controllers/create-data-sample.ts +166 -0
- package/server/controllers/data-use-case.ts +85 -0
- package/server/controllers/index.ts +1 -0
- package/server/index.ts +3 -0
- package/server/routes.ts +17 -31
- package/server/service/data-item/data-item-mutation.ts +6 -1
- package/server/service/data-item/data-item-type.ts +11 -7
- package/server/service/data-item/data-item.ts +16 -6
- package/server/service/data-ooc/data-ooc-mutation.ts +150 -0
- package/server/service/data-ooc/data-ooc-query.ts +63 -0
- package/server/service/data-ooc/data-ooc-subscription.ts +51 -0
- package/server/service/data-ooc/data-ooc-type.ts +68 -0
- package/server/service/data-ooc/data-ooc.ts +204 -0
- package/server/service/data-ooc/index.ts +7 -0
- package/server/service/data-sample/data-sample-mutation.ts +6 -128
- package/server/service/data-sample/data-sample-type.ts +8 -29
- package/server/service/data-sample/data-sample.ts +36 -6
- package/server/service/data-set/data-set-mutation.ts +1 -4
- package/server/service/data-set/data-set-query.ts +8 -1
- package/server/service/data-set/data-set-type.ts +17 -6
- package/server/service/data-set/data-set.ts +18 -8
- package/server/service/data-spec/data-spec-manager.ts +21 -0
- package/server/service/data-spec/data-spec-query.ts +21 -0
- package/server/service/data-spec/data-spec.ts +44 -0
- package/server/service/data-spec/index.ts +5 -0
- package/server/service/index.ts +16 -8
- package/things-factory.config.js +4 -0
- package/translations/en.json +21 -0
- package/translations/ko.json +22 -1
- package/translations/ms.json +21 -0
- package/translations/zh.json +21 -0
@@ -1,4 +1,5 @@
|
|
1
1
|
import '@operato/data-grist'
|
2
|
+
import './data-sample-view.js'
|
2
3
|
|
3
4
|
import gql from 'graphql-tag'
|
4
5
|
import { css, html } from 'lit'
|
@@ -6,9 +7,9 @@ import { connect } from 'pwa-helpers/connect-mixin'
|
|
6
7
|
|
7
8
|
import { client } from '@operato/graphql'
|
8
9
|
import { i18next, localize } from '@operato/i18n'
|
9
|
-
import {
|
10
|
+
import { openPopup } from '@operato/layout'
|
10
11
|
import { PageView, store } from '@operato/shell'
|
11
|
-
import {
|
12
|
+
import { ScrollbarStyles } from '@operato/styles'
|
12
13
|
import { isMobileDevice } from '@operato/utils'
|
13
14
|
|
14
15
|
export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
@@ -54,13 +55,11 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
54
55
|
return {
|
55
56
|
title: i18next.t('title.data-sample list'),
|
56
57
|
help: 'integration/ui/data-sample',
|
57
|
-
actions: [
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
}
|
63
|
-
]
|
58
|
+
actions: [],
|
59
|
+
exportable: {
|
60
|
+
name: i18next.t('title.data-sample list'),
|
61
|
+
data: this._exportableData.bind(this)
|
62
|
+
}
|
64
63
|
}
|
65
64
|
}
|
66
65
|
|
@@ -111,17 +110,35 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
111
110
|
columns: [
|
112
111
|
{ type: 'gutter', gutterName: 'sequence' },
|
113
112
|
{ type: 'gutter', gutterName: 'row-selector', multiple: true },
|
113
|
+
{
|
114
|
+
type: 'gutter',
|
115
|
+
gutterName: 'button',
|
116
|
+
icon: 'assignment',
|
117
|
+
handlers: {
|
118
|
+
click: (columns, data, column, record, rowIndex) => {
|
119
|
+
openPopup(
|
120
|
+
html` <data-sample-view .dataSample=${record} style="background-color: white;"></data-sample-view> `,
|
121
|
+
{
|
122
|
+
backdrop: true,
|
123
|
+
size: 'large',
|
124
|
+
title: i18next.t('title.data-sample view')
|
125
|
+
}
|
126
|
+
)
|
127
|
+
}
|
128
|
+
}
|
129
|
+
},
|
114
130
|
{
|
115
131
|
type: 'string',
|
116
132
|
name: 'name',
|
117
133
|
label: true,
|
118
134
|
header: i18next.t('field.name'),
|
119
135
|
record: {
|
120
|
-
editable:
|
136
|
+
editable: false
|
121
137
|
},
|
122
138
|
filter: 'search',
|
123
139
|
sortable: true,
|
124
|
-
width:
|
140
|
+
width: 120,
|
141
|
+
imex: true
|
125
142
|
},
|
126
143
|
{
|
127
144
|
type: 'string',
|
@@ -129,32 +146,63 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
129
146
|
label: true,
|
130
147
|
header: i18next.t('field.description'),
|
131
148
|
record: {
|
132
|
-
editable:
|
149
|
+
editable: false
|
133
150
|
},
|
134
151
|
filter: 'search',
|
135
|
-
width:
|
152
|
+
width: 150,
|
153
|
+
imex: true
|
136
154
|
},
|
137
155
|
{
|
138
|
-
type: 'object',
|
156
|
+
type: 'resource-object',
|
139
157
|
name: 'dataSet',
|
140
158
|
header: i18next.t('field.data-set'),
|
141
159
|
record: {
|
142
160
|
editable: false
|
143
161
|
},
|
144
162
|
sortable: true,
|
145
|
-
width: 120
|
163
|
+
width: 120,
|
164
|
+
imex: true
|
165
|
+
},
|
166
|
+
{
|
167
|
+
type: 'json5',
|
168
|
+
name: 'partitionKeys',
|
169
|
+
header: i18next.t('field.partition-keys'),
|
170
|
+
record: {
|
171
|
+
editable: false
|
172
|
+
},
|
173
|
+
width: 200,
|
174
|
+
imex: true
|
175
|
+
},
|
176
|
+
{
|
177
|
+
type: 'checkbox',
|
178
|
+
name: 'ooc',
|
179
|
+
header: i18next.t('field.ooc'),
|
180
|
+
record: {
|
181
|
+
editable: false
|
182
|
+
},
|
183
|
+
width: 30
|
146
184
|
},
|
147
185
|
{
|
148
|
-
type: '
|
186
|
+
type: 'checkbox',
|
187
|
+
name: 'oos',
|
188
|
+
header: i18next.t('field.oos'),
|
189
|
+
record: {
|
190
|
+
editable: false
|
191
|
+
},
|
192
|
+
width: 30
|
193
|
+
},
|
194
|
+
{
|
195
|
+
type: 'json5',
|
149
196
|
name: 'data',
|
150
197
|
header: i18next.t('field.data'),
|
151
198
|
record: {
|
152
199
|
editable: false
|
153
200
|
},
|
154
|
-
width: 200
|
201
|
+
width: 200,
|
202
|
+
imex: true
|
155
203
|
},
|
156
204
|
{
|
157
|
-
type: '
|
205
|
+
type: 'json5',
|
158
206
|
name: 'spec',
|
159
207
|
header: i18next.t('field.spec'),
|
160
208
|
record: {
|
@@ -163,45 +211,78 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
163
211
|
width: 200
|
164
212
|
},
|
165
213
|
{
|
166
|
-
type: '
|
214
|
+
type: 'text',
|
167
215
|
name: 'rawData',
|
168
216
|
header: i18next.t('field.raw-data'),
|
169
217
|
record: {
|
170
218
|
editable: false
|
171
219
|
},
|
172
|
-
width: 200
|
220
|
+
width: 200,
|
221
|
+
imex: true
|
173
222
|
},
|
174
223
|
{
|
175
|
-
type: '
|
176
|
-
name: '
|
177
|
-
header: i18next.t('field.
|
224
|
+
type: 'string',
|
225
|
+
name: 'workDate',
|
226
|
+
header: i18next.t('field.work-date'),
|
178
227
|
sortable: true,
|
179
|
-
width:
|
228
|
+
width: 80,
|
229
|
+
imex: true
|
180
230
|
},
|
181
231
|
{
|
182
|
-
type: '
|
183
|
-
name: '
|
184
|
-
header: i18next.t('field.
|
232
|
+
type: 'string',
|
233
|
+
name: 'workShift',
|
234
|
+
header: i18next.t('field.work-shift'),
|
185
235
|
sortable: true,
|
186
|
-
width:
|
236
|
+
width: 40,
|
237
|
+
imex: true
|
187
238
|
},
|
188
239
|
{
|
189
240
|
type: 'datetime',
|
190
241
|
name: 'collectedAt',
|
191
242
|
header: i18next.t('field.collected_at'),
|
192
243
|
sortable: true,
|
193
|
-
width: 180
|
244
|
+
width: 180,
|
245
|
+
imex: true
|
246
|
+
},
|
247
|
+
{
|
248
|
+
type: 'resource-object',
|
249
|
+
name: 'updater',
|
250
|
+
header: i18next.t('field.updater'),
|
251
|
+
sortable: true,
|
252
|
+
width: 120,
|
253
|
+
imex: true
|
254
|
+
},
|
255
|
+
{
|
256
|
+
type: 'datetime',
|
257
|
+
name: 'updatedAt',
|
258
|
+
header: i18next.t('field.updated_at'),
|
259
|
+
sortable: true,
|
260
|
+
width: 180,
|
261
|
+
imex: true
|
194
262
|
}
|
195
263
|
],
|
196
264
|
rows: {
|
197
265
|
appendable: false,
|
198
266
|
selectable: {
|
199
267
|
multiple: true
|
268
|
+
},
|
269
|
+
classifier: function (record, rowIndex) {
|
270
|
+
var emphasized
|
271
|
+
if (record['oos']) {
|
272
|
+
emphasized = ['red']
|
273
|
+
} else if (record['ooc']) {
|
274
|
+
emphasized = 'orange'
|
275
|
+
}
|
276
|
+
|
277
|
+
return {
|
278
|
+
emphasized
|
279
|
+
}
|
200
280
|
}
|
201
281
|
},
|
202
282
|
sorters: [
|
203
283
|
{
|
204
|
-
name: '
|
284
|
+
name: 'updatedAt',
|
285
|
+
desc: true
|
205
286
|
}
|
206
287
|
]
|
207
288
|
}
|
@@ -235,8 +316,13 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
235
316
|
name
|
236
317
|
description
|
237
318
|
}
|
319
|
+
partitionKeys
|
238
320
|
data
|
239
321
|
spec
|
322
|
+
ooc
|
323
|
+
oos
|
324
|
+
workDate
|
325
|
+
workShift
|
240
326
|
updater {
|
241
327
|
id
|
242
328
|
name
|
@@ -261,36 +347,43 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
261
347
|
}
|
262
348
|
}
|
263
349
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
350
|
+
_exportableData() {
|
351
|
+
let records = []
|
352
|
+
if (this.grist.selected && this.grist.selected.length > 0) {
|
353
|
+
records = this.grist.selected
|
354
|
+
} else {
|
355
|
+
records = this.grist.data.records
|
356
|
+
}
|
357
|
+
|
358
|
+
var headerSetting = this.grist.compiledConfig.columns
|
359
|
+
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
360
|
+
.map(column => {
|
361
|
+
return column.imex === true
|
362
|
+
? {
|
363
|
+
header: column.header.renderer(),
|
364
|
+
key: column.name,
|
365
|
+
width: column.width,
|
366
|
+
type: column.type
|
272
367
|
}
|
273
|
-
|
274
|
-
|
275
|
-
ids
|
276
|
-
}
|
277
|
-
})
|
368
|
+
: column.imex
|
369
|
+
})
|
278
370
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
371
|
+
var data = records.map(item => {
|
372
|
+
return {
|
373
|
+
id: item.id,
|
374
|
+
...this.gristConfig.columns
|
375
|
+
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
376
|
+
.reduce((record, column) => {
|
377
|
+
const key = column.imex === true ? column.name : column.imex.key
|
378
|
+
record[key] = key
|
379
|
+
.split('.')
|
380
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
381
|
+
return record
|
382
|
+
}, {})
|
285
383
|
}
|
286
|
-
}
|
287
|
-
}
|
384
|
+
})
|
288
385
|
|
289
|
-
|
290
|
-
if (this.active && this._currentPopupName && !state.layout.viewparts[this._currentPopupName]) {
|
291
|
-
this.grist.fetch()
|
292
|
-
this._currentPopupName = null
|
293
|
-
}
|
386
|
+
return { header: headerSetting, data: data }
|
294
387
|
}
|
295
388
|
}
|
296
389
|
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import '@operato/data-grist'
|
2
2
|
|
3
|
-
import
|
3
|
+
import { CommonButtonStyles, ScrollbarStyles } from '@operato/styles'
|
4
|
+
import { PageView, store } from '@operato/shell'
|
4
5
|
import { css, html } from 'lit'
|
5
|
-
import {
|
6
|
+
import { i18next, localize } from '@operato/i18n'
|
6
7
|
|
7
8
|
import { client } from '@operato/graphql'
|
8
|
-
import {
|
9
|
-
import
|
10
|
-
import { PageView, store } from '@operato/shell'
|
11
|
-
import { CommonButtonStyles, ScrollbarStyles } from '@operato/styles'
|
9
|
+
import { connect } from 'pwa-helpers/connect-mixin'
|
10
|
+
import gql from 'graphql-tag'
|
12
11
|
import { isMobileDevice } from '@operato/utils'
|
12
|
+
import { notify } from '@operato/layout'
|
13
13
|
|
14
14
|
export class DataSensor extends connect(store)(localize(i18next)(PageView)) {
|
15
15
|
static get properties() {
|
@@ -153,6 +153,7 @@ export class DataSensor extends connect(store)(localize(i18next)(PageView)) {
|
|
153
153
|
editable: true
|
154
154
|
},
|
155
155
|
sortable: true,
|
156
|
+
filter: true,
|
156
157
|
width: 60
|
157
158
|
},
|
158
159
|
{
|
@@ -176,6 +177,7 @@ export class DataSensor extends connect(store)(localize(i18next)(PageView)) {
|
|
176
177
|
editable: true
|
177
178
|
},
|
178
179
|
sortable: true,
|
180
|
+
filter: 'search',
|
179
181
|
width: 150
|
180
182
|
},
|
181
183
|
{
|
@@ -334,11 +336,6 @@ export class DataSensor extends connect(store)(localize(i18next)(PageView)) {
|
|
334
336
|
model
|
335
337
|
serialNo
|
336
338
|
netmask
|
337
|
-
collecter {
|
338
|
-
id
|
339
|
-
name
|
340
|
-
}
|
341
|
-
collectedAt
|
342
339
|
updater {
|
343
340
|
id
|
344
341
|
name
|
@@ -387,13 +384,6 @@ export class DataSensor extends connect(store)(localize(i18next)(PageView)) {
|
|
387
384
|
}
|
388
385
|
}
|
389
386
|
|
390
|
-
async stateChanged(state) {
|
391
|
-
if (this.active && this._currentPopupName && !state.layout.viewparts[this._currentPopupName]) {
|
392
|
-
this.grist.fetch()
|
393
|
-
this._currentPopupName = null
|
394
|
-
}
|
395
|
-
}
|
396
|
-
|
397
387
|
async _copyDataSensor() {
|
398
388
|
var selected = this.grist.selected
|
399
389
|
if (selected.length == 0) return
|