@things-factory/dataset 5.0.0-alpha.2 → 5.0.0-alpha.20
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 +12 -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 +469 -0
- package/client/pages/data-sample-view.js +97 -0
- package/client/pages/data-sample.js +130 -55
- package/client/pages/data-sensor.js +8 -18
- package/client/pages/data-set.js +126 -25
- package/client/route.js +4 -0
- package/dist-server/controllers/create-data-sample.js +122 -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 +99 -0
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -0
- package/dist-server/service/data-ooc/data-ooc.js +227 -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 +6 -43
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js +33 -12
- 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 +161 -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 +18 -32
- 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 +62 -0
- package/server/service/data-ooc/data-ooc.ts +195 -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 +4 -32
- package/server/service/data-sample/data-sample.ts +31 -10
- 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 +20 -1
- package/translations/ko.json +21 -2
- package/translations/ms.json +20 -1
- package/translations/zh.json +20 -1
@@ -1,14 +1,15 @@
|
|
1
1
|
import '@operato/data-grist'
|
2
|
+
import './data-sample-view.js'
|
2
3
|
|
3
|
-
import
|
4
|
+
import { PageView, store } from '@operato/shell'
|
4
5
|
import { css, html } from 'lit'
|
5
|
-
import {
|
6
|
+
import { i18next, localize } from '@operato/i18n'
|
7
|
+
import { notify, openPopup } from '@operato/layout'
|
6
8
|
|
9
|
+
import { ScrollbarStyles } from '@operato/styles'
|
7
10
|
import { client } from '@operato/graphql'
|
8
|
-
import {
|
9
|
-
import
|
10
|
-
import { PageView, store } from '@operato/shell'
|
11
|
-
import { CommonButtonStyles, ScrollbarStyles } from '@operato/styles'
|
11
|
+
import { connect } from 'pwa-helpers/connect-mixin'
|
12
|
+
import gql from 'graphql-tag'
|
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,62 @@ 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: 'object',
|
224
|
+
type: 'resource-object',
|
176
225
|
name: 'updater',
|
177
226
|
header: i18next.t('field.updater'),
|
178
227
|
sortable: true,
|
179
|
-
width: 120
|
228
|
+
width: 120,
|
229
|
+
imex: true
|
180
230
|
},
|
181
231
|
{
|
182
232
|
type: 'datetime',
|
183
233
|
name: 'updatedAt',
|
184
234
|
header: i18next.t('field.updated_at'),
|
185
235
|
sortable: true,
|
186
|
-
width: 180
|
236
|
+
width: 180,
|
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
|
194
246
|
}
|
195
247
|
],
|
196
248
|
rows: {
|
197
249
|
appendable: false,
|
198
250
|
selectable: {
|
199
251
|
multiple: true
|
252
|
+
},
|
253
|
+
classifier: function (record, rowIndex) {
|
254
|
+
var emphasized
|
255
|
+
if (record['oos']) {
|
256
|
+
emphasized = ['red']
|
257
|
+
} else if (record['ooc']) {
|
258
|
+
emphasized = 'orange'
|
259
|
+
}
|
260
|
+
|
261
|
+
return {
|
262
|
+
emphasized
|
263
|
+
}
|
200
264
|
}
|
201
265
|
},
|
202
266
|
sorters: [
|
203
267
|
{
|
204
|
-
name: '
|
268
|
+
name: 'updatedAt',
|
269
|
+
desc: true
|
205
270
|
}
|
206
271
|
]
|
207
272
|
}
|
@@ -235,8 +300,11 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
235
300
|
name
|
236
301
|
description
|
237
302
|
}
|
303
|
+
partitionKeys
|
238
304
|
data
|
239
305
|
spec
|
306
|
+
ooc
|
307
|
+
oos
|
240
308
|
updater {
|
241
309
|
id
|
242
310
|
name
|
@@ -261,36 +329,43 @@ export class DataSample extends connect(store)(localize(i18next)(PageView)) {
|
|
261
329
|
}
|
262
330
|
}
|
263
331
|
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
332
|
+
_exportableData() {
|
333
|
+
let records = []
|
334
|
+
if (this.grist.selected && this.grist.selected.length > 0) {
|
335
|
+
records = this.grist.selected
|
336
|
+
} else {
|
337
|
+
records = this.grist.data.records
|
338
|
+
}
|
339
|
+
|
340
|
+
var headerSetting = this.grist.compiledConfig.columns
|
341
|
+
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
342
|
+
.map(column => {
|
343
|
+
return column.imex === true
|
344
|
+
? {
|
345
|
+
header: column.header.renderer(),
|
346
|
+
key: column.name,
|
347
|
+
width: column.width,
|
348
|
+
type: column.type
|
272
349
|
}
|
273
|
-
|
274
|
-
|
275
|
-
ids
|
276
|
-
}
|
277
|
-
})
|
350
|
+
: column.imex
|
351
|
+
})
|
278
352
|
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
353
|
+
var data = records.map(item => {
|
354
|
+
return {
|
355
|
+
id: item.id,
|
356
|
+
...this.gristConfig.columns
|
357
|
+
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
358
|
+
.reduce((record, column) => {
|
359
|
+
const key = column.imex === true ? column.name : column.imex.key
|
360
|
+
record[key] = key
|
361
|
+
.split('.')
|
362
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
363
|
+
return record
|
364
|
+
}, {})
|
285
365
|
}
|
286
|
-
}
|
287
|
-
}
|
366
|
+
})
|
288
367
|
|
289
|
-
|
290
|
-
if (this.active && this._currentPopupName && !state.layout.viewparts[this._currentPopupName]) {
|
291
|
-
this.grist.fetch()
|
292
|
-
this._currentPopupName = null
|
293
|
-
}
|
368
|
+
return { header: headerSetting, data: data }
|
294
369
|
}
|
295
370
|
}
|
296
371
|
|
@@ -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
|
package/client/pages/data-set.js
CHANGED
@@ -1,18 +1,20 @@
|
|
1
1
|
import '@operato/data-grist'
|
2
2
|
import './data-item-list'
|
3
3
|
import './data-set-importer'
|
4
|
+
import './data-entry-form'
|
4
5
|
|
5
|
-
import
|
6
|
+
import { CommonButtonStyles, ScrollbarStyles } from '@operato/styles'
|
7
|
+
import { PageView, store } from '@operato/shell'
|
6
8
|
import { css, html } from 'lit'
|
7
|
-
import moment from 'moment-timezone'
|
8
|
-
import { connect } from 'pwa-helpers/connect-mixin'
|
9
|
-
|
10
|
-
import { client } from '@operato/graphql'
|
11
9
|
import { i18next, localize } from '@operato/i18n'
|
12
10
|
import { notify, openPopup } from '@operato/layout'
|
13
|
-
|
14
|
-
import {
|
11
|
+
|
12
|
+
import { OxDataUseCase } from '@operato/dataset'
|
13
|
+
import { client } from '@operato/graphql'
|
14
|
+
import { connect } from 'pwa-helpers/connect-mixin'
|
15
|
+
import gql from 'graphql-tag'
|
15
16
|
import { isMobileDevice } from '@operato/utils'
|
17
|
+
import moment from 'moment-timezone'
|
16
18
|
|
17
19
|
export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
18
20
|
static get properties() {
|
@@ -138,12 +140,32 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
138
140
|
handlers: {
|
139
141
|
click: (columns, data, column, record, rowIndex) => {
|
140
142
|
if (!record.id) return
|
141
|
-
openPopup(html` <data-item-list .dataSet=${record}></data-item-list> `, {
|
143
|
+
const popup = openPopup(html` <data-item-list .dataSet=${record}></data-item-list> `, {
|
142
144
|
backdrop: true,
|
143
145
|
help: 'data-set/ui/data-item-list',
|
144
146
|
size: 'large',
|
145
147
|
title: i18next.t('title.data-item list')
|
146
148
|
})
|
149
|
+
popup.onclosed = () => {
|
150
|
+
this.grist.fetch()
|
151
|
+
}
|
152
|
+
}
|
153
|
+
}
|
154
|
+
},
|
155
|
+
{
|
156
|
+
type: 'gutter',
|
157
|
+
gutterName: 'button',
|
158
|
+
icon: 'fact_check',
|
159
|
+
handlers: {
|
160
|
+
click: (columns, data, column, record, rowIndex) => {
|
161
|
+
openPopup(
|
162
|
+
html` <data-entry-form .dataSet=${record} style="background-color: white;"></data-entry-form> `,
|
163
|
+
{
|
164
|
+
backdrop: true,
|
165
|
+
size: 'large',
|
166
|
+
title: i18next.t('title.data-entry-form')
|
167
|
+
}
|
168
|
+
)
|
147
169
|
}
|
148
170
|
}
|
149
171
|
},
|
@@ -178,15 +200,62 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
178
200
|
record: {
|
179
201
|
editable: true
|
180
202
|
},
|
203
|
+
filter: true,
|
181
204
|
sortable: true,
|
182
205
|
width: 60
|
183
206
|
},
|
184
207
|
{
|
185
|
-
type: '
|
208
|
+
type: 'select',
|
209
|
+
name: 'type',
|
210
|
+
label: true,
|
211
|
+
header: i18next.t('field.type'),
|
212
|
+
record: {
|
213
|
+
editable: true,
|
214
|
+
options: [
|
215
|
+
{},
|
216
|
+
{
|
217
|
+
display: 'Manually Collected',
|
218
|
+
value: 'manual'
|
219
|
+
},
|
220
|
+
{
|
221
|
+
display: 'Automatically Collected',
|
222
|
+
value: 'automatic'
|
223
|
+
}
|
224
|
+
]
|
225
|
+
},
|
226
|
+
sortable: true,
|
227
|
+
filter: true,
|
228
|
+
width: 60
|
229
|
+
},
|
230
|
+
{
|
231
|
+
type: 'select',
|
232
|
+
name: 'useCase',
|
233
|
+
label: true,
|
234
|
+
header: i18next.t('field.use-case'),
|
235
|
+
record: {
|
236
|
+
editable: true,
|
237
|
+
options: () => {
|
238
|
+
return ['', ...OxDataUseCase.getUseCaseNames()].map(name => {
|
239
|
+
return {
|
240
|
+
display: name,
|
241
|
+
value: name
|
242
|
+
}
|
243
|
+
})
|
244
|
+
}
|
245
|
+
},
|
246
|
+
sortable: true,
|
247
|
+
filter: true,
|
248
|
+
width: 80
|
249
|
+
},
|
250
|
+
{
|
251
|
+
type: 'partition-keys',
|
186
252
|
name: 'partitionKeys',
|
187
253
|
header: i18next.t('field.partition-keys'),
|
188
254
|
record: {
|
189
|
-
editable: true
|
255
|
+
editable: true,
|
256
|
+
options: {
|
257
|
+
objectified: true /* transfered as a object type */
|
258
|
+
}
|
190
259
|
},
|
191
260
|
width: 200
|
192
261
|
},
|
@@ -196,7 +265,10 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
196
265
|
label: true,
|
197
266
|
header: i18next.t('field.schedule'),
|
198
267
|
record: {
|
199
|
-
editable: true
|
268
|
+
editable: true,
|
269
|
+
options: {
|
270
|
+
objectified: true
|
271
|
+
}
|
200
272
|
},
|
201
273
|
width: 80,
|
202
274
|
label: true
|
@@ -212,7 +284,20 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
212
284
|
width: 120
|
213
285
|
},
|
214
286
|
{
|
215
|
-
type: 'object',
|
287
|
+
type: 'resource-object',
|
288
|
+
name: 'supervisoryRole',
|
289
|
+
header: i18next.t('field.supervisory-role'),
|
290
|
+
record: {
|
291
|
+
editable: true,
|
292
|
+
options: {
|
293
|
+
queryName: 'roles'
|
294
|
+
}
|
295
|
+
},
|
296
|
+
sortable: true,
|
297
|
+
width: 120
|
298
|
+
},
|
299
|
+
{
|
300
|
+
type: 'resource-object',
|
216
301
|
name: 'updater',
|
217
302
|
header: i18next.t('field.updater'),
|
218
303
|
record: {
|
@@ -271,8 +356,14 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
271
356
|
partitionKeys
|
272
357
|
slugger
|
273
358
|
active
|
359
|
+
type
|
360
|
+
useCase
|
274
361
|
schedule
|
275
362
|
timezone
|
363
|
+
supervisoryRole {
|
364
|
+
id
|
365
|
+
name
|
366
|
+
}
|
276
367
|
updater {
|
277
368
|
id
|
278
369
|
name
|
@@ -283,7 +374,10 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
283
374
|
description
|
284
375
|
sequence
|
285
376
|
active
|
377
|
+
tag
|
286
378
|
type
|
379
|
+
unit
|
380
|
+
options
|
287
381
|
quota
|
288
382
|
spec
|
289
383
|
}
|
@@ -330,13 +424,6 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
330
424
|
}
|
331
425
|
}
|
332
426
|
|
333
|
-
async stateChanged(state) {
|
334
|
-
if (this.active && this._currentPopupName && !state.layout.viewparts[this._currentPopupName]) {
|
335
|
-
this.grist.fetch()
|
336
|
-
this._currentPopupName = null
|
337
|
-
}
|
338
|
-
}
|
339
|
-
|
340
427
|
async _copyDataSet() {
|
341
428
|
var selected = this.grist.selected
|
342
429
|
if (selected.length == 0) return
|
@@ -355,7 +442,9 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
355
442
|
}
|
356
443
|
})
|
357
444
|
|
358
|
-
if (!response.errors)
|
445
|
+
if (!response.errors) {
|
446
|
+
this.grist.fetch()
|
447
|
+
}
|
359
448
|
}
|
360
449
|
|
361
450
|
async _updateDataSet() {
|
@@ -386,13 +475,25 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
386
475
|
}
|
387
476
|
})
|
388
477
|
|
389
|
-
if (!response.errors)
|
478
|
+
if (!response.errors) {
|
479
|
+
this.grist.fetch()
|
480
|
+
}
|
390
481
|
}
|
391
482
|
}
|
392
483
|
|
393
484
|
async exportHandler() {
|
394
485
|
const exportTargets = this.grist.selected.length ? this.grist.selected : this.grist.dirtyData.records
|
395
|
-
const targetFieldSet = new Set([
|
486
|
+
const targetFieldSet = new Set([
|
487
|
+
'id',
|
488
|
+
'name',
|
489
|
+
'type',
|
490
|
+
'description',
|
491
|
+
'tag',
|
492
|
+
'schedule',
|
493
|
+
'timezone',
|
494
|
+
'active',
|
495
|
+
'dataItems'
|
496
|
+
])
|
396
497
|
|
397
498
|
return exportTargets.map(dataSet => {
|
398
499
|
let tempObj = {}
|
@@ -408,11 +509,11 @@ export class DataSet extends connect(store)(localize(i18next)(PageView)) {
|
|
408
509
|
openPopup(
|
409
510
|
html`
|
410
511
|
<data-set-importer
|
411
|
-
.dataSets
|
412
|
-
@imported
|
512
|
+
.dataSets=${records}
|
513
|
+
@imported=${() => {
|
413
514
|
history.back()
|
414
515
|
this.grist.fetch()
|
415
|
-
}}
|
516
|
+
}}
|
416
517
|
></data-set-importer>
|
417
518
|
`,
|
418
519
|
{
|