@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.
Files changed (83) hide show
  1. package/client/bootstrap.js +2 -3
  2. package/client/pages/data-entry/data-entry-list-page.js +1 -35
  3. package/client/pages/data-ooc/data-ooc-list-page.js +11 -83
  4. package/client/pages/data-ooc/data-ooc-view.js +19 -14
  5. package/client/pages/data-report/data-report-list-page.js +1 -35
  6. package/client/pages/data-sample/data-sample-list-page.js +11 -26
  7. package/client/pages/data-sample/data-sample-view.js +3 -2
  8. package/client/pages/data-sensor/data-sensor-list-page.js +0 -4
  9. package/client/pages/data-set/data-item-list.js +32 -98
  10. package/client/pages/data-set/data-set-list-page.js +0 -5
  11. package/dist-server/controllers/create-data-sample.js +10 -44
  12. package/dist-server/controllers/create-data-sample.js.map +1 -1
  13. package/dist-server/controllers/data-use-case.js +11 -5
  14. package/dist-server/controllers/data-use-case.js.map +1 -1
  15. package/dist-server/controllers/index.js +1 -1
  16. package/dist-server/controllers/index.js.map +1 -1
  17. package/dist-server/service/data-item/index.js +1 -4
  18. package/dist-server/service/data-item/index.js.map +1 -1
  19. package/dist-server/service/data-ooc/data-ooc-query.js +15 -10
  20. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  21. package/dist-server/service/data-ooc/data-ooc-type.js +4 -0
  22. package/dist-server/service/data-ooc/data-ooc-type.js.map +1 -1
  23. package/dist-server/service/data-ooc/data-ooc.js +11 -14
  24. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  25. package/dist-server/service/data-sample/data-sample-query.js +18 -0
  26. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  27. package/dist-server/service/data-sample/data-sample-type.js +4 -0
  28. package/dist-server/service/data-sample/data-sample-type.js.map +1 -1
  29. package/dist-server/service/data-sample/data-sample.js +12 -3
  30. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  31. package/dist-server/service/{data-item → data-set}/data-item-type.js +60 -33
  32. package/dist-server/service/data-set/data-item-type.js.map +1 -0
  33. package/dist-server/service/data-set/data-set-mutation.js +40 -63
  34. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  35. package/dist-server/service/data-set/data-set-query.js +15 -10
  36. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  37. package/dist-server/service/data-set/data-set-type.js +10 -1
  38. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  39. package/dist-server/service/data-set/data-set.js +14 -3
  40. package/dist-server/service/data-set/data-set.js.map +1 -1
  41. package/dist-server/service/data-set-history/data-set-history-query.js +173 -0
  42. package/dist-server/service/data-set-history/data-set-history-query.js.map +1 -0
  43. package/dist-server/service/data-set-history/data-set-history-type.js +29 -0
  44. package/dist-server/service/data-set-history/data-set-history-type.js.map +1 -0
  45. package/dist-server/service/data-set-history/data-set-history.js +205 -0
  46. package/dist-server/service/data-set-history/data-set-history.js.map +1 -0
  47. package/dist-server/service/data-set-history/index.js +8 -0
  48. package/dist-server/service/data-set-history/index.js.map +1 -0
  49. package/dist-server/service/index.js +6 -3
  50. package/dist-server/service/index.js.map +1 -1
  51. package/package.json +18 -17
  52. package/server/controllers/create-data-sample.ts +12 -49
  53. package/server/controllers/data-use-case.ts +19 -7
  54. package/server/controllers/index.ts +1 -1
  55. package/server/service/data-item/index.ts +0 -3
  56. package/server/service/data-ooc/data-ooc-query.ts +13 -8
  57. package/server/service/data-ooc/data-ooc-type.ts +3 -0
  58. package/server/service/data-ooc/data-ooc.ts +9 -14
  59. package/server/service/data-sample/data-sample-query.ts +14 -1
  60. package/server/service/data-sample/data-sample-type.ts +3 -0
  61. package/server/service/data-sample/data-sample.ts +10 -3
  62. package/server/service/data-set/data-item-type.ts +82 -0
  63. package/server/service/data-set/data-set-mutation.ts +64 -60
  64. package/server/service/data-set/data-set-query.ts +14 -12
  65. package/server/service/data-set/data-set-type.ts +8 -1
  66. package/server/service/data-set/data-set.ts +9 -3
  67. package/server/service/data-set-history/data-set-history-query.ts +110 -0
  68. package/server/service/data-set-history/data-set-history-type.ts +12 -0
  69. package/server/service/data-set-history/data-set-history.ts +160 -0
  70. package/server/service/data-set-history/index.ts +5 -0
  71. package/server/service/index.ts +7 -4
  72. package/translations/en.json +4 -4
  73. package/translations/ko.json +10 -10
  74. package/translations/ms.json +4 -4
  75. package/translations/zh.json +4 -4
  76. package/dist-server/service/data-item/data-item-mutation.js +0 -73
  77. package/dist-server/service/data-item/data-item-mutation.js.map +0 -1
  78. package/dist-server/service/data-item/data-item-query.js +0 -104
  79. package/dist-server/service/data-item/data-item-query.js.map +0 -1
  80. package/dist-server/service/data-item/data-item-type.js.map +0 -1
  81. package/server/service/data-item/data-item-mutation.ts +0 -61
  82. package/server/service/data-item/data-item-query.ts +0 -58
  83. package/server/service/data-item/data-item-type.ts +0 -57
@@ -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/app/grist-editor/ox-grist-editor-partition-keys.js'
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" id="filters">
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', 'spec', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']
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: 'updatedAt',
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
- dataSample {
343
- id
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
- state
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
- ${state === 'CREATED' || state === 'REVIEWED'
86
- ? html`
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
- : html``}
93
+ : html``
94
+ }
93
95
 
94
96
  <div class="button-container">
95
- ${state === 'CREATED'
96
- ? html`<mwc-button raised @click=${() => this._processOoc('REVIEWED')}
97
- >${i18next.t('button.reviewed')}</mwc-button
98
- >`
99
- : state === 'REVIEWED'
100
- ? html`<mwc-button raised @click=${() => this._processOoc('CORRECTED')}
101
- >${i18next.t('button.corrected')}</mwc-button
102
- >`
103
- : html``}
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" id="filters">
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', 'spec', 'updater', 'updatedAt'] },
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: 'updatedAt',
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 {
@@ -73,13 +73,14 @@ class DataSampleView extends localize(i18next)(LitElement) {
73
73
  description
74
74
  useCase
75
75
  dataItems {
76
- id
77
76
  name
78
77
  description
79
78
  active
80
- unit
81
79
  tag
82
80
  type
81
+ unit
82
+ options
83
+ quota
83
84
  spec
84
85
  }
85
86
  }
@@ -288,10 +288,6 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
288
288
  }
289
289
  ]
290
290
  }
291
-
292
- await this.updateComplete
293
-
294
- this.grist.fetch()
295
291
  }
296
292
 
297
293
  async fetchHandler({ page, limit, sortings = [], filters = [] }) {
@@ -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 response = await client.query({
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: response.data.dataItems.total || 0,
274
- records: response.data.dataItems.items || []
230
+ total: dataItems.length,
231
+ records: dataItems
275
232
  }
276
233
  }
277
234
 
278
235
  async _updateDataItems() {
279
- let patches = this.grist._data.records
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 ($ids: [String!]!) {
320
- deleteDataItems(ids: $ids)
240
+ mutation ($id: String!, $patch: DataSetPatch!) {
241
+ updateDataSet(id: $id, patch: $patch) {
242
+ name
243
+ }
321
244
  }
322
245
  `,
323
246
  variables: {
324
- ids
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) return
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.fetch()
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