@things-factory/dataset 5.0.0-y.0 → 5.0.0-zeta.10
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/client/bootstrap.js +2 -3
- package/client/pages/data-entry/data-entry-list-page.js +1 -35
- package/client/pages/data-ooc/data-ooc-list-page.js +11 -83
- package/client/pages/data-ooc/data-ooc-view.js +19 -14
- package/client/pages/data-report/data-report-list-page.js +1 -35
- package/client/pages/data-sample/data-sample-list-page.js +11 -26
- package/client/pages/data-sample/data-sample-view.js +3 -2
- package/client/pages/data-sensor/data-sensor-list-page.js +0 -4
- package/client/pages/data-set/data-item-list.js +32 -98
- package/client/pages/data-set/data-set-list-page.js +0 -5
- package/dist-server/controllers/create-data-sample.js +10 -44
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/controllers/data-use-case.js +11 -5
- package/dist-server/controllers/data-use-case.js.map +1 -1
- package/dist-server/controllers/index.js +1 -1
- package/dist-server/controllers/index.js.map +1 -1
- package/dist-server/service/data-item/index.js +1 -4
- package/dist-server/service/data-item/index.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +15 -10
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-type.js +4 -0
- package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc.js +11 -14
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +18 -0
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-type.js +4 -0
- package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js +12 -3
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/{data-item → data-set}/data-item-type.js +60 -33
- package/dist-server/service/data-set/data-item-type.js.map +1 -0
- package/dist-server/service/data-set/data-set-mutation.js +40 -63
- package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +15 -10
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-set/data-set-type.js +10 -1
- package/dist-server/service/data-set/data-set-type.js.map +1 -1
- package/dist-server/service/data-set/data-set.js +14 -3
- package/dist-server/service/data-set/data-set.js.map +1 -1
- package/dist-server/service/data-set-history/data-set-history-query.js +173 -0
- package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history-type.js +29 -0
- package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -0
- package/dist-server/service/data-set-history/data-set-history.js +205 -0
- package/dist-server/service/data-set-history/data-set-history.js.map +1 -0
- package/dist-server/service/data-set-history/index.js +8 -0
- package/dist-server/service/data-set-history/index.js.map +1 -0
- package/dist-server/service/index.js +6 -3
- package/dist-server/service/index.js.map +1 -1
- package/package.json +18 -17
- package/server/controllers/create-data-sample.ts +12 -49
- package/server/controllers/data-use-case.ts +19 -7
- package/server/controllers/index.ts +1 -1
- package/server/service/data-item/index.ts +0 -3
- package/server/service/data-ooc/data-ooc-query.ts +13 -8
- package/server/service/data-ooc/data-ooc-type.ts +3 -0
- package/server/service/data-ooc/data-ooc.ts +9 -14
- package/server/service/data-sample/data-sample-query.ts +14 -1
- package/server/service/data-sample/data-sample-type.ts +3 -0
- package/server/service/data-sample/data-sample.ts +10 -3
- package/server/service/data-set/data-item-type.ts +82 -0
- package/server/service/data-set/data-set-mutation.ts +64 -60
- package/server/service/data-set/data-set-query.ts +14 -12
- package/server/service/data-set/data-set-type.ts +8 -1
- package/server/service/data-set/data-set.ts +9 -3
- package/server/service/data-set-history/data-set-history-query.ts +110 -0
- package/server/service/data-set-history/data-set-history-type.ts +12 -0
- package/server/service/data-set-history/data-set-history.ts +160 -0
- package/server/service/data-set-history/index.ts +5 -0
- package/server/service/index.ts +7 -4
- package/translations/en.json +4 -4
- package/translations/ko.json +10 -10
- package/translations/ms.json +4 -4
- package/translations/zh.json +4 -4
- package/dist-server/service/data-item/data-item-mutation.js +0 -73
- package/dist-server/service/data-item/data-item-mutation.js.map +0 -1
- package/dist-server/service/data-item/data-item-query.js +0 -104
- package/dist-server/service/data-item/data-item-query.js.map +0 -1
- package/dist-server/service/data-item/data-item-type.js.map +0 -1
- package/server/service/data-item/data-item-mutation.ts +0 -61
- package/server/service/data-item/data-item-query.ts +0 -58
- package/server/service/data-item/data-item-type.ts +0 -57
package/client/bootstrap.js
CHANGED
@@ -1,14 +1,13 @@
|
|
1
1
|
import '@operato/app/filter-renderer.js' /* register resource-object filter renderer */
|
2
2
|
|
3
|
+
import { OxGristEditorCode } from '@operato/app/grist-editor/ox-grist-editor-code.js'
|
3
4
|
import {
|
4
5
|
OxGristRendererJson5,
|
5
6
|
registerEditor as registerGristEditor,
|
6
7
|
registerRenderer as registerGristRenderer
|
7
8
|
} from '@operato/data-grist'
|
8
|
-
|
9
|
-
import { OxGristEditorCode } from '@operato/app/grist-editor/ox-grist-editor-code.js'
|
10
9
|
import { OxGristEditorDataItemSpec } from '@operato/dataset/grist-editor'
|
11
|
-
import { OxGristEditorPartitionKeys } from '@operato/
|
10
|
+
import { OxGristEditorPartitionKeys } from '@operato/grist-editor/ox-grist-editor-partition-keys.js'
|
12
11
|
|
13
12
|
export default function bootstrap() {
|
14
13
|
registerGristEditor('data-item-spec', OxGristEditorDataItemSpec)
|
@@ -3,7 +3,6 @@ import './data-entry-form'
|
|
3
3
|
import '@operato/board/ox-board-viewer.js'
|
4
4
|
|
5
5
|
import gql from 'graphql-tag'
|
6
|
-
import JSON5 from 'json5'
|
7
6
|
import { css, html } from 'lit'
|
8
7
|
import { connect } from 'pwa-helpers/connect-mixin'
|
9
8
|
|
@@ -120,7 +119,7 @@ export class DataEntryListPage extends connect(store)(localize(i18next)(PageView
|
|
120
119
|
.orders=${this.orders}
|
121
120
|
.fetchHandler=${this.fetchHandler.bind(this)}
|
122
121
|
>
|
123
|
-
<div slot="headroom"
|
122
|
+
<div slot="headroom">
|
124
123
|
<div id="filters">
|
125
124
|
<ox-filters-form></ox-filters-form>
|
126
125
|
</div>
|
@@ -315,38 +314,6 @@ export class DataEntryListPage extends connect(store)(localize(i18next)(PageView
|
|
315
314
|
}
|
316
315
|
]
|
317
316
|
}
|
318
|
-
|
319
|
-
await this.updateComplete
|
320
|
-
|
321
|
-
this.grist.fetch()
|
322
|
-
}
|
323
|
-
|
324
|
-
async pageUpdated(changes, lifecycle) {
|
325
|
-
if (this.active) {
|
326
|
-
await this.updateComplete
|
327
|
-
|
328
|
-
var filters = lifecycle.params?.['filters']
|
329
|
-
if (filters) {
|
330
|
-
try {
|
331
|
-
filters = JSON5.parse(filters)
|
332
|
-
this.filters = filters
|
333
|
-
} catch (e) {
|
334
|
-
console.error(`filters parameter parsing error: ${e}`)
|
335
|
-
}
|
336
|
-
}
|
337
|
-
|
338
|
-
var sorters = lifecycle.params?.['sorters']
|
339
|
-
if (sorters) {
|
340
|
-
try {
|
341
|
-
sorters = JSON5.parse(sorters)
|
342
|
-
this.sorters = sorters
|
343
|
-
} catch (e) {
|
344
|
-
console.error(`sorters parameter parsing error: ${e}`)
|
345
|
-
}
|
346
|
-
}
|
347
|
-
|
348
|
-
this.grist.fetch()
|
349
|
-
}
|
350
317
|
}
|
351
318
|
|
352
319
|
async fetchHandler({ page, limit, sortings = [], filters = [] }) {
|
@@ -389,7 +356,6 @@ export class DataEntryListPage extends connect(store)(localize(i18next)(PageView
|
|
389
356
|
dataItems {
|
390
357
|
name
|
391
358
|
description
|
392
|
-
sequence
|
393
359
|
active
|
394
360
|
tag
|
395
361
|
type
|
@@ -108,7 +108,7 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
108
108
|
async pageInitialized(lifecycle) {
|
109
109
|
this.gristConfig = {
|
110
110
|
list: {
|
111
|
-
fields: ['dataSet', 'data', '
|
111
|
+
fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']
|
112
112
|
},
|
113
113
|
columns: [
|
114
114
|
{ type: 'gutter', gutterName: 'sequence' },
|
@@ -237,15 +237,6 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
237
237
|
width: 200,
|
238
238
|
imex: true
|
239
239
|
},
|
240
|
-
{
|
241
|
-
type: 'json5',
|
242
|
-
name: 'spec',
|
243
|
-
header: i18next.t('field.spec'),
|
244
|
-
record: {
|
245
|
-
editable: false
|
246
|
-
},
|
247
|
-
width: 200
|
248
|
-
},
|
249
240
|
{
|
250
241
|
type: 'text',
|
251
242
|
name: 'rawData',
|
@@ -305,7 +296,7 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
305
296
|
},
|
306
297
|
sorters: [
|
307
298
|
{
|
308
|
-
name: '
|
299
|
+
name: 'collectedAt',
|
309
300
|
desc: true
|
310
301
|
}
|
311
302
|
]
|
@@ -316,16 +307,6 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
316
307
|
this.grist.fetch()
|
317
308
|
}
|
318
309
|
|
319
|
-
// async pageUpdated(changes, lifecycle) {
|
320
|
-
// if (this.active) {
|
321
|
-
// // update with url params value
|
322
|
-
// this._updateSearchConfig(lifecycle)
|
323
|
-
// await this.updateComplete
|
324
|
-
|
325
|
-
// this.grist.fetch()
|
326
|
-
// }
|
327
|
-
// }
|
328
|
-
|
329
310
|
async fetchHandler({ page, limit, sortings = [], filters = [] }) {
|
330
311
|
const response = await client.query({
|
331
312
|
query: gql`
|
@@ -335,21 +316,25 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
335
316
|
id
|
336
317
|
name
|
337
318
|
description
|
319
|
+
useCase
|
338
320
|
dataSet {
|
339
321
|
id
|
340
322
|
name
|
341
323
|
}
|
342
|
-
|
343
|
-
|
324
|
+
partitionKeys
|
325
|
+
dataItems {
|
344
326
|
name
|
327
|
+
description
|
328
|
+
tag
|
329
|
+
unit
|
330
|
+
spec
|
345
331
|
}
|
346
|
-
partitionKeys
|
347
332
|
data
|
348
333
|
rawData
|
349
|
-
|
350
|
-
spec
|
334
|
+
judgment
|
351
335
|
ooc
|
352
336
|
oos
|
337
|
+
state
|
353
338
|
history
|
354
339
|
workDate
|
355
340
|
workShift
|
@@ -383,63 +368,6 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
383
368
|
}
|
384
369
|
}
|
385
370
|
|
386
|
-
// async _updateDataOoc() {
|
387
|
-
// let patches = this.grist.dirtyRecords
|
388
|
-
// if (patches && patches.length) {
|
389
|
-
// patches = patches.map(patch => {
|
390
|
-
// let patchField = patch.id ? { id: patch.id } : {}
|
391
|
-
// const dirtyFields = patch.__dirtyfields__
|
392
|
-
// for (let key in dirtyFields) {
|
393
|
-
// patchField[key] = dirtyFields[key].after
|
394
|
-
// }
|
395
|
-
// this._setDefaultFieldsValue(patchField)
|
396
|
-
// patchField.cuFlag = patch.__dirty__
|
397
|
-
|
398
|
-
// return patchField
|
399
|
-
// })
|
400
|
-
|
401
|
-
// const response = await client.mutate({
|
402
|
-
// mutation: gql`
|
403
|
-
// mutation ($patches: [DataOocPatch!]!) {
|
404
|
-
// updateMultipleDataOoc(patches: $patches) {
|
405
|
-
// name
|
406
|
-
// }
|
407
|
-
// }
|
408
|
-
// `,
|
409
|
-
// variables: {
|
410
|
-
// patches
|
411
|
-
// }
|
412
|
-
// })
|
413
|
-
|
414
|
-
// if (!response.errors) this.grist.fetch()
|
415
|
-
// }
|
416
|
-
// }
|
417
|
-
|
418
|
-
// async _deleteDataOoc() {
|
419
|
-
// if (confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
|
420
|
-
// const ids = this.grist.selected.map(record => record.id)
|
421
|
-
// if (ids && ids.length > 0) {
|
422
|
-
// const response = await client.mutate({
|
423
|
-
// mutation: gql`
|
424
|
-
// mutation ($ids: [String!]!) {
|
425
|
-
// deleteDataOocs(ids: $ids)
|
426
|
-
// }
|
427
|
-
// `,
|
428
|
-
// variables: {
|
429
|
-
// ids
|
430
|
-
// }
|
431
|
-
// })
|
432
|
-
|
433
|
-
// if (!response.errors) {
|
434
|
-
// this.grist.fetch()
|
435
|
-
// notify({
|
436
|
-
// message: i18next.t('text.info_x_successfully', { x: i18next.t('text.delete') })
|
437
|
-
// })
|
438
|
-
// }
|
439
|
-
// }
|
440
|
-
// }
|
441
|
-
// }
|
442
|
-
|
443
371
|
_exportableData() {
|
444
372
|
let records = []
|
445
373
|
if (this.grist.selected && this.grist.selected.length > 0) {
|
@@ -82,25 +82,29 @@ class DataOocView extends localize(i18next)(LitElement) {
|
|
82
82
|
<ox-data-ooc-view .dataSet=${this.dataSet} .dataOoc=${this.dataOoc}></ox-data-ooc-view>
|
83
83
|
</div>
|
84
84
|
|
85
|
-
${
|
86
|
-
|
85
|
+
${
|
86
|
+
state === 'CREATED' || state === 'REVIEWED'
|
87
|
+
? html`
|
87
88
|
<label comment>
|
88
89
|
<div><mwc-icon>build_circle</mwc-icon> <span>correction activity</span></div>
|
89
90
|
<textarea placeholder="조치 내용을 입력해주세요."></textarea>
|
90
91
|
</label>
|
91
92
|
`
|
92
|
-
|
93
|
+
: html``
|
94
|
+
}
|
93
95
|
|
94
96
|
<div class="button-container">
|
95
|
-
${
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
97
|
+
${
|
98
|
+
state === 'CREATED'
|
99
|
+
? html`<mwc-button raised @click=${() => this._processOoc('REVIEWED')}
|
100
|
+
>${i18next.t('button.reviewed')}</mwc-button
|
101
|
+
>`
|
102
|
+
: state === 'REVIEWED'
|
103
|
+
? html`<mwc-button raised @click=${() => this._processOoc('CORRECTED')}
|
104
|
+
>${i18next.t('button.corrected')}</mwc-button
|
105
|
+
>`
|
106
|
+
: html``
|
107
|
+
}
|
104
108
|
</div>
|
105
109
|
`
|
106
110
|
}
|
@@ -124,13 +128,14 @@ class DataOocView extends localize(i18next)(LitElement) {
|
|
124
128
|
description
|
125
129
|
useCase
|
126
130
|
dataItems {
|
127
|
-
id
|
128
131
|
name
|
129
132
|
description
|
130
133
|
active
|
131
|
-
unit
|
132
134
|
tag
|
133
135
|
type
|
136
|
+
unit
|
137
|
+
options
|
138
|
+
quota
|
134
139
|
spec
|
135
140
|
}
|
136
141
|
}
|
@@ -2,7 +2,6 @@ import '@operato/data-grist'
|
|
2
2
|
import '@operato/board/ox-board-viewer.js'
|
3
3
|
|
4
4
|
import gql from 'graphql-tag'
|
5
|
-
import JSON5 from 'json5'
|
6
5
|
import { css, html } from 'lit'
|
7
6
|
import { connect } from 'pwa-helpers/connect-mixin'
|
8
7
|
|
@@ -155,7 +154,7 @@ export class DataReportListPage extends connect(store)(localize(i18next)(PageVie
|
|
155
154
|
.orders=${this.orders}
|
156
155
|
.fetchHandler=${this.fetchHandler.bind(this)}
|
157
156
|
>
|
158
|
-
<div slot="headroom"
|
157
|
+
<div slot="headroom">
|
159
158
|
<div id="filters">
|
160
159
|
<ox-filters-form></ox-filters-form>
|
161
160
|
</div>
|
@@ -358,38 +357,6 @@ export class DataReportListPage extends connect(store)(localize(i18next)(PageVie
|
|
358
357
|
}
|
359
358
|
]
|
360
359
|
}
|
361
|
-
|
362
|
-
await this.updateComplete
|
363
|
-
|
364
|
-
this.grist.fetch()
|
365
|
-
}
|
366
|
-
|
367
|
-
async pageUpdated(changes, lifecycle) {
|
368
|
-
if (this.active) {
|
369
|
-
await this.updateComplete
|
370
|
-
|
371
|
-
var filters = lifecycle.params?.['filters']
|
372
|
-
if (filters) {
|
373
|
-
try {
|
374
|
-
filters = JSON5.parse(filters)
|
375
|
-
this.filters = filters
|
376
|
-
} catch (e) {
|
377
|
-
console.error(`filters parameter parsing error: ${e}`)
|
378
|
-
}
|
379
|
-
}
|
380
|
-
|
381
|
-
var sorters = lifecycle.params?.['sorters']
|
382
|
-
if (sorters) {
|
383
|
-
try {
|
384
|
-
sorters = JSON5.parse(sorters)
|
385
|
-
this.sorters = sorters
|
386
|
-
} catch (e) {
|
387
|
-
console.error(`sorters parameter parsing error: ${e}`)
|
388
|
-
}
|
389
|
-
}
|
390
|
-
|
391
|
-
this.grist.fetch()
|
392
|
-
}
|
393
360
|
}
|
394
361
|
|
395
362
|
async fetchHandler({ page, limit, sortings = [], filters = [] }) {
|
@@ -431,7 +398,6 @@ export class DataReportListPage extends connect(store)(localize(i18next)(PageVie
|
|
431
398
|
dataItems {
|
432
399
|
name
|
433
400
|
description
|
434
|
-
sequence
|
435
401
|
active
|
436
402
|
tag
|
437
403
|
type
|
@@ -101,7 +101,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
101
101
|
|
102
102
|
async pageInitialized(lifecycle) {
|
103
103
|
this.gristConfig = {
|
104
|
-
list: { fields: ['dataSet', 'data', '
|
104
|
+
list: { fields: ['dataSet', 'data', 'updater', 'updatedAt'] },
|
105
105
|
columns: [
|
106
106
|
{ type: 'gutter', gutterName: 'sequence' },
|
107
107
|
{ type: 'gutter', gutterName: 'row-selector', multiple: true },
|
@@ -196,15 +196,6 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
196
196
|
width: 200,
|
197
197
|
imex: true
|
198
198
|
},
|
199
|
-
{
|
200
|
-
type: 'json5',
|
201
|
-
name: 'spec',
|
202
|
-
header: i18next.t('field.spec'),
|
203
|
-
record: {
|
204
|
-
editable: false
|
205
|
-
},
|
206
|
-
width: 200
|
207
|
-
},
|
208
199
|
{
|
209
200
|
type: 'text',
|
210
201
|
name: 'rawData',
|
@@ -276,27 +267,13 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
276
267
|
},
|
277
268
|
sorters: [
|
278
269
|
{
|
279
|
-
name: '
|
270
|
+
name: 'collectedAt',
|
280
271
|
desc: true
|
281
272
|
}
|
282
273
|
]
|
283
274
|
}
|
284
|
-
|
285
|
-
await this.updateComplete
|
286
|
-
|
287
|
-
this.grist.fetch()
|
288
275
|
}
|
289
276
|
|
290
|
-
// async pageUpdated(changes, lifecycle) {
|
291
|
-
// if (this.active) {
|
292
|
-
// // update with url params value
|
293
|
-
// this._updateSearchConfig(lifecycle)
|
294
|
-
// await this.updateComplete
|
295
|
-
|
296
|
-
// this.grist.fetch()
|
297
|
-
// }
|
298
|
-
// }
|
299
|
-
|
300
277
|
async fetchHandler({ page, limit, sortings = [], filters = [] }) {
|
301
278
|
const response = await client.query({
|
302
279
|
query: gql`
|
@@ -306,17 +283,25 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
306
283
|
id
|
307
284
|
name
|
308
285
|
description
|
286
|
+
useCase
|
309
287
|
dataSet {
|
310
288
|
id
|
311
289
|
name
|
312
290
|
description
|
313
291
|
}
|
314
292
|
partitionKeys
|
293
|
+
dataItems {
|
294
|
+
name
|
295
|
+
description
|
296
|
+
tag
|
297
|
+
unit
|
298
|
+
spec
|
299
|
+
}
|
315
300
|
data
|
316
301
|
rawData
|
317
|
-
spec
|
318
302
|
ooc
|
319
303
|
oos
|
304
|
+
judgment
|
320
305
|
workDate
|
321
306
|
workShift
|
322
307
|
updater {
|
@@ -91,16 +91,6 @@ class DataItemList extends localize(i18next)(LitElement) {
|
|
91
91
|
click: 'move-down'
|
92
92
|
}
|
93
93
|
},
|
94
|
-
{
|
95
|
-
type: 'number',
|
96
|
-
name: 'sequence',
|
97
|
-
hidden: true
|
98
|
-
},
|
99
|
-
{
|
100
|
-
type: 'string',
|
101
|
-
name: 'id',
|
102
|
-
hidden: true
|
103
|
-
},
|
104
94
|
{
|
105
95
|
type: 'string',
|
106
96
|
name: 'name',
|
@@ -229,114 +219,58 @@ class DataItemList extends localize(i18next)(LitElement) {
|
|
229
219
|
pagination: {
|
230
220
|
infinite: true
|
231
221
|
},
|
232
|
-
sorters: [
|
233
|
-
{
|
234
|
-
name: 'sequence'
|
235
|
-
}
|
236
|
-
]
|
222
|
+
sorters: []
|
237
223
|
}
|
238
224
|
}
|
239
225
|
|
240
226
|
async fetchHandler({ filters, page, limit, sortings = [] }) {
|
241
|
-
const
|
242
|
-
query: gql`
|
243
|
-
query {
|
244
|
-
dataItems (
|
245
|
-
filters: {
|
246
|
-
name: "dataSet",
|
247
|
-
value: "${this.dataSet.id}",
|
248
|
-
operator: "eq"
|
249
|
-
},
|
250
|
-
sortings: { name: "sequence" }
|
251
|
-
) {
|
252
|
-
items {
|
253
|
-
id
|
254
|
-
name
|
255
|
-
description
|
256
|
-
sequence
|
257
|
-
active
|
258
|
-
hidden
|
259
|
-
tag
|
260
|
-
type
|
261
|
-
options
|
262
|
-
unit
|
263
|
-
quota
|
264
|
-
spec
|
265
|
-
}
|
266
|
-
total
|
267
|
-
}
|
268
|
-
}
|
269
|
-
`
|
270
|
-
})
|
227
|
+
const dataItems = this.dataSet.dataItems || []
|
271
228
|
|
272
229
|
return {
|
273
|
-
total:
|
274
|
-
records:
|
230
|
+
total: dataItems.length,
|
231
|
+
records: dataItems
|
275
232
|
}
|
276
233
|
}
|
277
234
|
|
278
235
|
async _updateDataItems() {
|
279
|
-
|
280
|
-
if (patches && patches.length) {
|
281
|
-
patches = patches.map(patch => {
|
282
|
-
var patchField = {}
|
283
|
-
const dirtyFields = patch.__dirtyfields__
|
284
|
-
for (let key in dirtyFields) {
|
285
|
-
patchField[key] = dirtyFields[key].after
|
286
|
-
}
|
287
|
-
|
288
|
-
return { ...patch.__origin__, ...patchField }
|
289
|
-
})
|
290
|
-
|
291
|
-
const response = await client.mutate({
|
292
|
-
mutation: gql`
|
293
|
-
mutation ($dataSetId: String!, $patches: [DataItemPatch!]!) {
|
294
|
-
updateMultipleDataItem(dataSetId: $dataSetId, patches: $patches) {
|
295
|
-
name
|
296
|
-
}
|
297
|
-
}
|
298
|
-
`,
|
299
|
-
variables: {
|
300
|
-
dataSetId: this.dataSet.id,
|
301
|
-
patches
|
302
|
-
}
|
303
|
-
})
|
304
|
-
|
305
|
-
if (!response.errors) {
|
306
|
-
this.grist.fetch()
|
307
|
-
}
|
308
|
-
}
|
309
|
-
}
|
310
|
-
|
311
|
-
async _deleteDataItems() {
|
312
|
-
if (!confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) return
|
313
|
-
|
314
|
-
const ids = this.grist.selected.map(record => record.id)
|
315
|
-
if (!(ids && ids.length > 0)) return
|
236
|
+
this.grist.commit()
|
316
237
|
|
317
238
|
const response = await client.mutate({
|
318
239
|
mutation: gql`
|
319
|
-
mutation ($
|
320
|
-
|
240
|
+
mutation ($id: String!, $patch: DataSetPatch!) {
|
241
|
+
updateDataSet(id: $id, patch: $patch) {
|
242
|
+
name
|
243
|
+
}
|
321
244
|
}
|
322
245
|
`,
|
323
246
|
variables: {
|
324
|
-
|
247
|
+
id: this.dataSet.id,
|
248
|
+
patch: {
|
249
|
+
dataItems: this.grist.data.records,
|
250
|
+
cuFlag: 'M'
|
251
|
+
}
|
325
252
|
}
|
326
253
|
})
|
327
254
|
|
328
|
-
if (response.errors)
|
255
|
+
if (!response.errors) {
|
256
|
+
await document.dispatchEvent(
|
257
|
+
new CustomEvent('notify', {
|
258
|
+
detail: {
|
259
|
+
message: i18next.t('text.info_x_successfully', {
|
260
|
+
x: i18next.t('button.save')
|
261
|
+
})
|
262
|
+
}
|
263
|
+
})
|
264
|
+
)
|
265
|
+
}
|
266
|
+
}
|
267
|
+
|
268
|
+
async _deleteDataItems() {
|
269
|
+
if (!confirm(i18next.t('text.sure_to_x', { x: i18next.t('text.delete') }))) {
|
270
|
+
return
|
271
|
+
}
|
329
272
|
|
330
|
-
this.grist.
|
331
|
-
await document.dispatchEvent(
|
332
|
-
new CustomEvent('notify', {
|
333
|
-
detail: {
|
334
|
-
message: i18next.t('text.info_x_successfully', {
|
335
|
-
x: i18next.t('text.delete')
|
336
|
-
})
|
337
|
-
}
|
338
|
-
})
|
339
|
-
)
|
273
|
+
this.grist.deleteSelectedRecords(false)
|
340
274
|
}
|
341
275
|
}
|
342
276
|
|
@@ -537,10 +537,6 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
537
537
|
}
|
538
538
|
]
|
539
539
|
}
|
540
|
-
|
541
|
-
await this.updateComplete
|
542
|
-
|
543
|
-
this.grist.fetch()
|
544
540
|
}
|
545
541
|
|
546
542
|
async fetchHandler({ page, limit, sortings = [], filters = [] }) {
|
@@ -581,7 +577,6 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
581
577
|
dataItems {
|
582
578
|
name
|
583
579
|
description
|
584
|
-
sequence
|
585
580
|
active
|
586
581
|
tag
|
587
582
|
type
|