@things-factory/dataset 7.0.1-alpha.61 → 7.0.1-alpha.66
Sign up to get free protection for your applications and to get access to all the features.
- package/client/pages/data-ooc/data-ooc-list-page.ts +27 -8
- package/client/pages/data-sample/data-sample-list-page.ts +30 -8
- package/client/pages/data-sensor/data-sensor-list-page.ts +17 -2
- package/client/pages/data-set/data-set-list-page.ts +28 -8
- package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +1 -0
- package/dist-client/pages/data-ooc/data-ooc-list-page.js +19 -3
- package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
- package/dist-client/pages/data-sample/data-sample-list-page.d.ts +2 -0
- package/dist-client/pages/data-sample/data-sample-list-page.js +23 -4
- package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
- package/dist-client/pages/data-sensor/data-sensor-list-page.d.ts +2 -0
- package/dist-client/pages/data-sensor/data-sensor-list-page.js +17 -2
- package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
- package/dist-client/pages/data-set/data-set-list-page.d.ts +2 -0
- package/dist-client/pages/data-set/data-set-list-page.js +20 -3
- package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -11
@@ -34,13 +34,17 @@ import { client } from '@operato/graphql'
|
|
34
34
|
import { i18next, localize } from '@operato/i18n'
|
35
35
|
import { openPopup } from '@operato/layout'
|
36
36
|
import { PageView, store } from '@operato/shell'
|
37
|
-
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
37
|
+
import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
38
38
|
import { isMobileDevice, adjustFilters } from '@operato/utils'
|
39
39
|
|
40
|
+
import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
|
41
|
+
import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
|
42
|
+
|
40
43
|
@customElement('data-ooc-list-page')
|
41
44
|
export class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {
|
42
45
|
static styles = [
|
43
46
|
ScrollbarStyles,
|
47
|
+
CommonGristStyles,
|
44
48
|
CommonHeaderStyles,
|
45
49
|
css`
|
46
50
|
:host {
|
@@ -62,6 +66,7 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
62
66
|
@state() private gristConfig: any
|
63
67
|
@state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
|
64
68
|
@state() private state?: string[]
|
69
|
+
@state() private personalConfigProvider?: PagePreferenceProvider
|
65
70
|
|
66
71
|
@query('ox-grist') private grist!: DataGrist
|
67
72
|
|
@@ -99,7 +104,12 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
99
104
|
const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
|
100
105
|
|
101
106
|
return html`
|
102
|
-
<ox-grist
|
107
|
+
<ox-grist
|
108
|
+
.mode=${mode}
|
109
|
+
.config=${this.gristConfig}
|
110
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
111
|
+
.personalConfigProvider=${this.personalConfigProvider}
|
112
|
+
>
|
103
113
|
<div slot="headroom" class="header">
|
104
114
|
<div class="title">${i18next.t('title.data-ooc list')}</div>
|
105
115
|
|
@@ -116,11 +126,15 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
116
126
|
|
117
127
|
<ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
|
118
128
|
</div>
|
129
|
+
|
130
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
119
131
|
</ox-grist>
|
120
132
|
`
|
121
133
|
}
|
122
134
|
|
123
135
|
async pageInitialized(lifecycle) {
|
136
|
+
this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
|
137
|
+
|
124
138
|
this.gristConfig = {
|
125
139
|
list: {
|
126
140
|
fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']
|
@@ -378,11 +392,14 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
378
392
|
},
|
379
393
|
handlers: {
|
380
394
|
click: (columns, data, column, record, rowIndex) => {
|
381
|
-
const popup = openPopup(
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
395
|
+
const popup = openPopup(
|
396
|
+
html` <data-ooc-view data-ooc-id=${record.id} style="background-color: white;"></data-ooc-view> `,
|
397
|
+
{
|
398
|
+
backdrop: true,
|
399
|
+
size: 'large',
|
400
|
+
title: i18next.t('title.data-ooc view')
|
401
|
+
}
|
402
|
+
)
|
386
403
|
popup.onclosed = () => {
|
387
404
|
this.grist.fetch()
|
388
405
|
}
|
@@ -513,7 +530,9 @@ export class DataOocListPage extends connect(store)(localize(i18next)(PageView))
|
|
513
530
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
514
531
|
.reduce((record, column) => {
|
515
532
|
const key = column.imex === true ? column.name : column.imex.key
|
516
|
-
record[key] = key
|
533
|
+
record[key] = key
|
534
|
+
.split('.')
|
535
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
517
536
|
return record
|
518
537
|
}, {})
|
519
538
|
}
|
@@ -14,14 +14,18 @@ import { client } from '@operato/graphql'
|
|
14
14
|
import { i18next, localize } from '@operato/i18n'
|
15
15
|
import { openPopup } from '@operato/layout'
|
16
16
|
import { PageView, store } from '@operato/shell'
|
17
|
-
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
17
|
+
import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
18
18
|
import { isMobileDevice } from '@operato/utils'
|
19
19
|
import { GhostPrint } from '@operato/ghost-print'
|
20
20
|
|
21
|
+
import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
|
22
|
+
import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
|
23
|
+
|
21
24
|
@customElement('data-sample-list-page')
|
22
25
|
export class DataSampleListPage extends connect(store)(localize(i18next)(PageView)) {
|
23
26
|
static styles = [
|
24
27
|
ScrollbarStyles,
|
28
|
+
CommonGristStyles,
|
25
29
|
CommonHeaderStyles,
|
26
30
|
css`
|
27
31
|
:host {
|
@@ -42,6 +46,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
42
46
|
|
43
47
|
@state() gristConfig: any
|
44
48
|
@state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
|
49
|
+
@state() personalConfigProvider?: PagePreferenceProvider
|
45
50
|
|
46
51
|
@query('ox-grist') private grist!: DataGrist
|
47
52
|
|
@@ -79,7 +84,13 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
79
84
|
const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
|
80
85
|
|
81
86
|
return html`
|
82
|
-
<ox-grist
|
87
|
+
<ox-grist
|
88
|
+
.mode=${mode}
|
89
|
+
.config=${this.gristConfig}
|
90
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
91
|
+
.personalConfigProvider=${this.personalConfigProvider}
|
92
|
+
?url-params-sensitive=${false /* this.active */}
|
93
|
+
>
|
83
94
|
<div slot="headroom" class="header">
|
84
95
|
<div class="title">${i18next.t('title.data-sample list')}</div>
|
85
96
|
|
@@ -89,11 +100,15 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
89
100
|
|
90
101
|
<ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
|
91
102
|
</div>
|
103
|
+
|
104
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
92
105
|
</ox-grist>
|
93
106
|
`
|
94
107
|
}
|
95
108
|
|
96
109
|
async pageInitialized(lifecycle) {
|
110
|
+
this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
|
111
|
+
|
97
112
|
const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD')
|
98
113
|
const today = moment().format('YYYY-MM-DD')
|
99
114
|
|
@@ -308,11 +323,16 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
308
323
|
},
|
309
324
|
handlers: {
|
310
325
|
click: (columns, data, column, record, rowIndex) => {
|
311
|
-
openPopup(
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
326
|
+
openPopup(
|
327
|
+
html`
|
328
|
+
<data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
|
329
|
+
`,
|
330
|
+
{
|
331
|
+
backdrop: true,
|
332
|
+
size: 'large',
|
333
|
+
title: i18next.t('title.data-sample view')
|
334
|
+
}
|
335
|
+
)
|
316
336
|
}
|
317
337
|
}
|
318
338
|
},
|
@@ -399,7 +419,9 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
399
419
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
400
420
|
.reduce((record, column) => {
|
401
421
|
const key = column.imex === true ? column.name : column.imex.key
|
402
|
-
record[key] = key
|
422
|
+
record[key] = key
|
423
|
+
.split('.')
|
424
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
403
425
|
return record
|
404
426
|
}, {})
|
405
427
|
}
|
@@ -12,15 +12,19 @@ import { client } from '@operato/graphql'
|
|
12
12
|
import { i18next, localize } from '@operato/i18n'
|
13
13
|
import { notify } from '@operato/layout'
|
14
14
|
import { PageView, store } from '@operato/shell'
|
15
|
-
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
15
|
+
import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
16
16
|
import { isMobileDevice } from '@operato/utils'
|
17
17
|
import { DataGrist, FetchOption } from '@operato/data-grist'
|
18
18
|
import { OxPrompt } from '@operato/popup/ox-prompt.js'
|
19
19
|
|
20
|
+
import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
|
21
|
+
import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
|
22
|
+
|
20
23
|
@customElement('data-sensor-list-page')
|
21
24
|
export class DataSensorListPage extends connect(store)(localize(i18next)(PageView)) {
|
22
25
|
static styles = [
|
23
26
|
ScrollbarStyles,
|
27
|
+
CommonGristStyles,
|
24
28
|
CommonHeaderStyles,
|
25
29
|
css`
|
26
30
|
:host {
|
@@ -39,6 +43,7 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
|
|
39
43
|
|
40
44
|
@state() private gristConfig: any
|
41
45
|
@state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
|
46
|
+
@state() personalConfigProvider?: PagePreferenceProvider
|
42
47
|
|
43
48
|
@query('ox-grist') private grist!: DataGrist
|
44
49
|
|
@@ -85,7 +90,13 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
|
|
85
90
|
const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
|
86
91
|
|
87
92
|
return html`
|
88
|
-
<ox-grist
|
93
|
+
<ox-grist
|
94
|
+
.mode=${mode}
|
95
|
+
.config=${this.gristConfig}
|
96
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
97
|
+
.personalConfigProvider=${this.personalConfigProvider}
|
98
|
+
?url-params-sensitive=${this.active}
|
99
|
+
>
|
89
100
|
<div slot="headroom" class="header">
|
90
101
|
<div class="title">${i18next.t('title.data-sensor list')}</div>
|
91
102
|
|
@@ -95,11 +106,15 @@ export class DataSensorListPage extends connect(store)(localize(i18next)(PageVie
|
|
95
106
|
|
96
107
|
<ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
|
97
108
|
</div>
|
109
|
+
|
110
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
98
111
|
</ox-grist>
|
99
112
|
`
|
100
113
|
}
|
101
114
|
|
102
115
|
async pageInitialized(lifecycle) {
|
116
|
+
this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
|
117
|
+
|
103
118
|
this.gristConfig = {
|
104
119
|
list: { fields: ['name', 'description', 'active'] },
|
105
120
|
columns: [
|
@@ -18,9 +18,12 @@ import { client } from '@operato/graphql'
|
|
18
18
|
import { i18next, localize } from '@operato/i18n'
|
19
19
|
import { notify, openPopup } from '@operato/layout'
|
20
20
|
import { PageView, store } from '@operato/shell'
|
21
|
-
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
21
|
+
import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
22
22
|
import { isMobileDevice, sleep } from '@operato/utils'
|
23
23
|
|
24
|
+
import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'
|
25
|
+
import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'
|
26
|
+
|
24
27
|
const MIN = 60
|
25
28
|
const HOUR = 60 * MIN
|
26
29
|
const DAY = 24 * HOUR
|
@@ -78,6 +81,7 @@ const USECASE_OPTIONS = () => {
|
|
78
81
|
export class DataSetListPage extends connect(store)(localize(i18next)(PageView)) {
|
79
82
|
static styles = [
|
80
83
|
ScrollbarStyles,
|
84
|
+
CommonGristStyles,
|
81
85
|
CommonHeaderStyles,
|
82
86
|
css`
|
83
87
|
:host {
|
@@ -99,6 +103,7 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
99
103
|
]
|
100
104
|
|
101
105
|
@state() gristConfig: any
|
106
|
+
@state() personalConfigProvider?: PagePreferenceProvider
|
102
107
|
@state() mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'
|
103
108
|
|
104
109
|
@query('ox-grist') private grist!: DataGrist
|
@@ -153,7 +158,13 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
153
158
|
const mode = this.mode || (isMobileDevice() ? 'CARD' : 'GRID')
|
154
159
|
|
155
160
|
return html`
|
156
|
-
<ox-grist
|
161
|
+
<ox-grist
|
162
|
+
.mode=${mode}
|
163
|
+
.config=${this.gristConfig}
|
164
|
+
.personalConfigProvider=${this.personalConfigProvider}
|
165
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
166
|
+
?url-params-sensitive=${this.active}
|
167
|
+
>
|
157
168
|
<div slot="headroom" class="header">
|
158
169
|
<div class="title">${i18next.t('title.data-set list')}</div>
|
159
170
|
|
@@ -163,11 +174,15 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
163
174
|
|
164
175
|
<ox-context-page-toolbar class="actions" .context=${this.context}> </ox-context-page-toolbar>
|
165
176
|
</div>
|
177
|
+
|
178
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
166
179
|
</ox-grist>
|
167
180
|
`
|
168
181
|
}
|
169
182
|
|
170
183
|
async pageInitialized(lifecycle) {
|
184
|
+
this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')
|
185
|
+
|
171
186
|
this.gristConfig = {
|
172
187
|
list: {
|
173
188
|
fields: ['name', 'description'],
|
@@ -225,11 +240,14 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
225
240
|
title: i18next.t('title.data collecting editor'),
|
226
241
|
handlers: {
|
227
242
|
click: (columns, data, column, record, rowIndex) => {
|
228
|
-
openPopup(
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
243
|
+
openPopup(
|
244
|
+
html` <data-entry-form .dataSet=${record} style="background-color: white;"></data-entry-form> `,
|
245
|
+
{
|
246
|
+
backdrop: true,
|
247
|
+
size: 'large',
|
248
|
+
title: i18next.t('title.data-entry-form')
|
249
|
+
}
|
250
|
+
)
|
233
251
|
}
|
234
252
|
}
|
235
253
|
},
|
@@ -983,7 +1001,9 @@ export class DataSetListPage extends connect(store)(localize(i18next)(PageView))
|
|
983
1001
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
984
1002
|
.reduce((record, column) => {
|
985
1003
|
var imexKey = (column.imex as ImexConfig)!.key
|
986
|
-
record[imexKey] = imexKey
|
1004
|
+
record[imexKey] = imexKey
|
1005
|
+
.split('.')
|
1006
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
987
1007
|
return record
|
988
1008
|
}, {})
|
989
1009
|
}
|
@@ -30,8 +30,9 @@ import { client } from '@operato/graphql';
|
|
30
30
|
import { i18next, localize } from '@operato/i18n';
|
31
31
|
import { openPopup } from '@operato/layout';
|
32
32
|
import { PageView, store } from '@operato/shell';
|
33
|
-
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
|
33
|
+
import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
|
34
34
|
import { isMobileDevice, adjustFilters } from '@operato/utils';
|
35
|
+
import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js';
|
35
36
|
let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {
|
36
37
|
constructor() {
|
37
38
|
super(...arguments);
|
@@ -70,7 +71,12 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
|
|
70
71
|
render() {
|
71
72
|
const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID');
|
72
73
|
return html `
|
73
|
-
<ox-grist
|
74
|
+
<ox-grist
|
75
|
+
.mode=${mode}
|
76
|
+
.config=${this.gristConfig}
|
77
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
78
|
+
.personalConfigProvider=${this.personalConfigProvider}
|
79
|
+
>
|
74
80
|
<div slot="headroom" class="header">
|
75
81
|
<div class="title">${i18next.t('title.data-ooc list')}</div>
|
76
82
|
|
@@ -88,10 +94,13 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
|
|
88
94
|
|
89
95
|
<ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
|
90
96
|
</div>
|
97
|
+
|
98
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
91
99
|
</ox-grist>
|
92
100
|
`;
|
93
101
|
}
|
94
102
|
async pageInitialized(lifecycle) {
|
103
|
+
this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist');
|
95
104
|
this.gristConfig = {
|
96
105
|
list: {
|
97
106
|
fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']
|
@@ -475,7 +484,9 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
|
|
475
484
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
476
485
|
.reduce((record, column) => {
|
477
486
|
const key = column.imex === true ? column.name : column.imex.key;
|
478
|
-
record[key] = key
|
487
|
+
record[key] = key
|
488
|
+
.split('.')
|
489
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
|
479
490
|
return record;
|
480
491
|
}, {}));
|
481
492
|
});
|
@@ -492,6 +503,7 @@ let DataOocListPage = class DataOocListPage extends connect(store)(localize(i18n
|
|
492
503
|
};
|
493
504
|
DataOocListPage.styles = [
|
494
505
|
ScrollbarStyles,
|
506
|
+
CommonGristStyles,
|
495
507
|
CommonHeaderStyles,
|
496
508
|
css `
|
497
509
|
:host {
|
@@ -521,6 +533,10 @@ __decorate([
|
|
521
533
|
state(),
|
522
534
|
__metadata("design:type", Array)
|
523
535
|
], DataOocListPage.prototype, "state", void 0);
|
536
|
+
__decorate([
|
537
|
+
state(),
|
538
|
+
__metadata("design:type", Object)
|
539
|
+
], DataOocListPage.prototype, "personalConfigProvider", void 0);
|
524
540
|
__decorate([
|
525
541
|
query('ox-grist'),
|
526
542
|
__metadata("design:type", DataGrist)
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"data-ooc-list-page.js","sourceRoot":"","sources":["../../../client/pages/data-ooc/data-ooc-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport '@operato/input/ox-input-select-buttons.js'\n\nimport './data-ooc-view.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { GhostPrint } from '@operato/ghost-print'\n\nfunction getOocStatus() {\n return [\n {\n display: i18next.t('label.state-issued'),\n value: 'ISSUED'\n },\n {\n display: i18next.t('label.state-reviewed'),\n value: 'REVIEWED'\n },\n {\n display: i18next.t('label.state-corrected'),\n value: 'CORRECTED'\n }\n ]\n}\n\nimport { DataGrist, FetchOption, GristRecord } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice, adjustFilters } from '@operato/utils'\n\n@customElement('data-ooc-list-page')\nexport class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n\n --grid-header-padding: 2px 0 2px 9px;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n `\n ]\n\n @state() private gristConfig: any\n @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n @state() private state?: string[]\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-ooc list'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'dataset/data-ooc',\n actions: [\n {\n title: i18next.t('button.print'),\n action: this.printOocs.bind(this),\n icon: 'print'\n }\n ],\n exportable: {\n name: i18next.t('title.data-ooc list'),\n data: this._exportableData.bind(this)\n },\n toolbar: false\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')\n\n return html`\n <ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)}>\n <div slot=\"headroom\" class=\"header\">\n <div class=\"title\">${i18next.t('title.data-ooc list')}</div>\n\n <div class=\"filters\">\n <ox-input-select-buttons\n .value=${this.state}\n .options=${getOocStatus()}\n @change=${(e: CustomEvent) => {\n this.state = (e.currentTarget as any)?.value\n this.grist.fetch()\n }}\n ></ox-input-select-buttons>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.gristConfig = {\n list: {\n fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence', fixed: true },\n { type: 'gutter', gutterName: 'row-selector', multiple: true, fixed: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'assignment_turned_in',\n title: i18next.t('title.view detail ooc data')\n },\n {\n type: 'string',\n name: 'name',\n fixed: true,\n label: true,\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'search',\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'description',\n label: true,\n header: i18next.t('field.description'),\n record: {\n editable: false\n },\n filter: 'search',\n width: 150,\n imex: true\n },\n {\n type: 'string',\n name: 'history',\n hidden: true,\n imex: true\n },\n {\n type: 'checkbox',\n name: 'ooc',\n header: i18next.t('field.ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'checkbox',\n name: 'oos',\n header: i18next.t('field.oos'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'select',\n name: 'state',\n label: true,\n header: i18next.t('field.status'),\n record: {\n editable: false,\n options: [{ display: '', value: '' }, ...getOocStatus()]\n },\n width: 100,\n filter: true,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveInstruction',\n label: true,\n header: i18next.t('field.corrective-instruction'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveAction',\n label: true,\n header: i18next.t('field.corrective-action'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'resource-object',\n name: 'dataSet',\n header: i18next.t('field.data-set'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key01',\n header: {\n renderer: i18next.t('field.key-01'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key02',\n header: {\n renderer: i18next.t('field.key-02'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key03',\n header: {\n renderer: i18next.t('field.key-03'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key04',\n header: {\n renderer: i18next.t('field.key-04'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key05',\n header: {\n renderer: i18next.t('field.key-05'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'json5',\n name: 'partitionKeys',\n header: i18next.t('field.partition-keys'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'json5',\n name: 'data',\n header: i18next.t('field.data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'text',\n name: 'rawData',\n header: i18next.t('field.raw-data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'string',\n name: 'workDate',\n header: i18next.t('field.work-date'),\n sortable: true,\n width: 80,\n imex: true\n },\n {\n type: 'string',\n name: 'workShift',\n header: i18next.t('field.work-shift'),\n sortable: true,\n width: 40,\n imex: true\n },\n {\n type: 'datetime',\n name: 'collectedAt',\n header: i18next.t('field.collected-at'),\n sortable: true,\n width: 180,\n imex: true\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n sortable: true,\n width: 180,\n imex: true\n }\n ],\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n },\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n const popup = openPopup(html` <data-ooc-view data-ooc-id=${record.id} style=\"background-color: white;\"></data-ooc-view> `, {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-ooc view')\n })\n popup.onclosed = () => {\n this.grist.fetch()\n }\n }\n }\n },\n sorters: [\n {\n name: 'collectedAt',\n desc: true\n }\n ]\n }\n\n await this.updateComplete\n\n this.grist.fetch()\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (this.state) {\n filters = adjustFilters(filters, [{ name: 'state', operator: 'eq', value: this.state }])\n }\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: dataOocs(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n useCase\n dataSet {\n id\n name\n }\n key01\n key02\n key03\n key04\n key05\n partitionKeys\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n data\n rawData\n judgment\n ooc\n oos\n state\n history\n workDate\n workShift\n correctiveInstruction\n correctiveAction\n reviewedAt\n reviewer {\n id\n name\n }\n correctedAt\n corrector {\n id\n name\n }\n updater {\n id\n name\n }\n updatedAt\n collectedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n _exportableData() {\n let records = [] as GristRecord\n if (this.grist.selected && this.grist.selected.length > 0) {\n records = this.grist.selected\n } else {\n records = this.grist.data.records\n }\n\n var headerSetting = this.grist.compiledConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .map(column => {\n return column.imex === true\n ? {\n header: column.header.renderer(column),\n key: column.name,\n width: column.width,\n type: column.type\n }\n : column.imex\n })\n\n var data = records.map(item => {\n return {\n id: item.id,\n ...this.gristConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .reduce((record, column) => {\n const key = column.imex === true ? column.name : column.imex.key\n record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)\n return record\n }, {})\n }\n })\n\n return { header: headerSetting, data: data }\n }\n\n printOocs() {\n const selected = this.grist.selected\n const ids = selected.map(record => record.id).join('|')\n\n GhostPrint.print({\n src: `./data-oocs?ids=${ids}`\n // pending: 200 * selected.length\n })\n }\n}\n"]}
|
1
|
+
{"version":3,"file":"data-ooc-list-page.js","sourceRoot":"","sources":["../../../client/pages/data-ooc/data-ooc-list-page.ts"],"names":[],"mappings":"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","sourcesContent":["import '@material/web/icon/icon.js'\nimport '@operato/data-grist'\nimport '@operato/context/ox-context-page-toolbar.js'\nimport '@operato/input/ox-input-select-buttons.js'\n\nimport './data-ooc-view.js'\n\nimport gql from 'graphql-tag'\nimport { css, html } from 'lit'\nimport { customElement, property, query, state } from 'lit/decorators.js'\nimport { connect } from 'pwa-helpers/connect-mixin'\n\nimport { GhostPrint } from '@operato/ghost-print'\n\nfunction getOocStatus() {\n return [\n {\n display: i18next.t('label.state-issued'),\n value: 'ISSUED'\n },\n {\n display: i18next.t('label.state-reviewed'),\n value: 'REVIEWED'\n },\n {\n display: i18next.t('label.state-corrected'),\n value: 'CORRECTED'\n }\n ]\n}\n\nimport { DataGrist, FetchOption, GristRecord } from '@operato/data-grist'\nimport { client } from '@operato/graphql'\nimport { i18next, localize } from '@operato/i18n'\nimport { openPopup } from '@operato/layout'\nimport { PageView, store } from '@operato/shell'\nimport { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'\nimport { isMobileDevice, adjustFilters } from '@operato/utils'\n\nimport { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js'\nimport { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js'\n\n@customElement('data-ooc-list-page')\nexport class DataOocListPage extends connect(store)(localize(i18next)(PageView)) {\n static styles = [\n ScrollbarStyles,\n CommonGristStyles,\n CommonHeaderStyles,\n css`\n :host {\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n\n --grid-header-padding: 2px 0 2px 9px;\n }\n\n ox-grist {\n overflow-y: auto;\n flex: 1;\n }\n `\n ]\n\n @state() private gristConfig: any\n @state() private mode: 'CARD' | 'GRID' | 'LIST' = isMobileDevice() ? 'CARD' : 'GRID'\n @state() private state?: string[]\n @state() private personalConfigProvider?: PagePreferenceProvider\n\n @query('ox-grist') private grist!: DataGrist\n\n get context() {\n return {\n title: i18next.t('title.data-ooc list'),\n search: {\n handler: (search: string) => {\n this.grist.searchText = search\n },\n value: this.grist?.searchText || ''\n },\n filter: {\n handler: () => {\n this.grist.toggleHeadroom()\n }\n },\n help: 'dataset/data-ooc',\n actions: [\n {\n title: i18next.t('button.print'),\n action: this.printOocs.bind(this),\n icon: 'print'\n }\n ],\n exportable: {\n name: i18next.t('title.data-ooc list'),\n data: this._exportableData.bind(this)\n },\n toolbar: false\n }\n }\n\n render() {\n const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')\n\n return html`\n <ox-grist\n .mode=${mode}\n .config=${this.gristConfig}\n .fetchHandler=${this.fetchHandler.bind(this)}\n .personalConfigProvider=${this.personalConfigProvider}\n >\n <div slot=\"headroom\" class=\"header\">\n <div class=\"title\">${i18next.t('title.data-ooc list')}</div>\n\n <div class=\"filters\">\n <ox-input-select-buttons\n .value=${this.state}\n .options=${getOocStatus()}\n @change=${(e: CustomEvent) => {\n this.state = (e.currentTarget as any)?.value\n this.grist.fetch()\n }}\n ></ox-input-select-buttons>\n </div>\n\n <ox-context-page-toolbar class=\"actions\" .context=${this.context}></ox-context-page-toolbar>\n </div>\n\n <ox-grist-personalizer slot=\"setting\"></ox-grist-personalizer>\n </ox-grist>\n `\n }\n\n async pageInitialized(lifecycle) {\n this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist')\n\n this.gristConfig = {\n list: {\n fields: ['dataSet', 'data', 'correctiveAction', 'corrector', 'correctedAt', 'collectedAt', 'creator']\n },\n columns: [\n { type: 'gutter', gutterName: 'sequence', fixed: true },\n { type: 'gutter', gutterName: 'row-selector', multiple: true, fixed: true },\n {\n type: 'gutter',\n gutterName: 'button',\n fixed: true,\n icon: 'assignment_turned_in',\n title: i18next.t('title.view detail ooc data')\n },\n {\n type: 'string',\n name: 'name',\n fixed: true,\n label: true,\n header: i18next.t('field.name'),\n record: {\n editable: false\n },\n filter: 'search',\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'description',\n label: true,\n header: i18next.t('field.description'),\n record: {\n editable: false\n },\n filter: 'search',\n width: 150,\n imex: true\n },\n {\n type: 'string',\n name: 'history',\n hidden: true,\n imex: true\n },\n {\n type: 'checkbox',\n name: 'ooc',\n header: i18next.t('field.ooc'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'checkbox',\n name: 'oos',\n header: i18next.t('field.oos'),\n record: {\n editable: false\n },\n width: 30\n },\n {\n type: 'select',\n name: 'state',\n label: true,\n header: i18next.t('field.status'),\n record: {\n editable: false,\n options: [{ display: '', value: '' }, ...getOocStatus()]\n },\n width: 100,\n filter: true,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveInstruction',\n label: true,\n header: i18next.t('field.corrective-instruction'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'textarea',\n name: 'correctiveAction',\n label: true,\n header: i18next.t('field.corrective-action'),\n record: {\n editable: false,\n language: 'text'\n },\n width: 150,\n imex: true\n },\n {\n type: 'resource-object',\n name: 'dataSet',\n header: i18next.t('field.data-set'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key01',\n header: {\n renderer: i18next.t('field.key-01'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key02',\n header: {\n renderer: i18next.t('field.key-02'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key03',\n header: {\n renderer: i18next.t('field.key-03'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key04',\n header: {\n renderer: i18next.t('field.key-04'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'string',\n name: 'key05',\n header: {\n renderer: i18next.t('field.key-05'),\n group: i18next.t('field.key')\n },\n record: {\n editable: false\n },\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'json5',\n name: 'partitionKeys',\n header: i18next.t('field.partition-keys'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'json5',\n name: 'data',\n header: i18next.t('field.data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'text',\n name: 'rawData',\n header: i18next.t('field.raw-data'),\n record: {\n editable: false\n },\n width: 200,\n imex: true\n },\n {\n type: 'string',\n name: 'workDate',\n header: i18next.t('field.work-date'),\n sortable: true,\n width: 80,\n imex: true\n },\n {\n type: 'string',\n name: 'workShift',\n header: i18next.t('field.work-shift'),\n sortable: true,\n width: 40,\n imex: true\n },\n {\n type: 'datetime',\n name: 'collectedAt',\n header: i18next.t('field.collected-at'),\n sortable: true,\n width: 180,\n imex: true\n },\n {\n type: 'resource-object',\n name: 'updater',\n header: i18next.t('field.updater'),\n sortable: true,\n width: 120,\n imex: true\n },\n {\n type: 'datetime',\n name: 'updatedAt',\n header: i18next.t('field.updated_at'),\n sortable: true,\n width: 180,\n imex: true\n }\n ],\n rows: {\n appendable: false,\n selectable: {\n multiple: true\n },\n handlers: {\n click: (columns, data, column, record, rowIndex) => {\n const popup = openPopup(\n html` <data-ooc-view data-ooc-id=${record.id} style=\"background-color: white;\"></data-ooc-view> `,\n {\n backdrop: true,\n size: 'large',\n title: i18next.t('title.data-ooc view')\n }\n )\n popup.onclosed = () => {\n this.grist.fetch()\n }\n }\n }\n },\n sorters: [\n {\n name: 'collectedAt',\n desc: true\n }\n ]\n }\n\n await this.updateComplete\n\n this.grist.fetch()\n }\n\n async fetchHandler({ page, limit, sortings = [], filters = [] }: FetchOption) {\n if (this.state) {\n filters = adjustFilters(filters, [{ name: 'state', operator: 'eq', value: this.state }])\n }\n\n const response = await client.query({\n query: gql`\n query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {\n responses: dataOocs(filters: $filters, pagination: $pagination, sortings: $sortings) {\n items {\n id\n name\n description\n useCase\n dataSet {\n id\n name\n }\n key01\n key02\n key03\n key04\n key05\n partitionKeys\n dataItems {\n name\n description\n active\n hidden\n tag\n group\n type\n unit\n options\n quota\n spec\n stat\n }\n data\n rawData\n judgment\n ooc\n oos\n state\n history\n workDate\n workShift\n correctiveInstruction\n correctiveAction\n reviewedAt\n reviewer {\n id\n name\n }\n correctedAt\n corrector {\n id\n name\n }\n updater {\n id\n name\n }\n updatedAt\n collectedAt\n }\n total\n }\n }\n `,\n variables: {\n filters,\n pagination: { page, limit },\n sortings\n }\n })\n\n return {\n total: response.data.responses.total || 0,\n records: response.data.responses.items || []\n }\n }\n\n _exportableData() {\n let records = [] as GristRecord\n if (this.grist.selected && this.grist.selected.length > 0) {\n records = this.grist.selected\n } else {\n records = this.grist.data.records\n }\n\n var headerSetting = this.grist.compiledConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .map(column => {\n return column.imex === true\n ? {\n header: column.header.renderer(column),\n key: column.name,\n width: column.width,\n type: column.type\n }\n : column.imex\n })\n\n var data = records.map(item => {\n return {\n id: item.id,\n ...this.gristConfig.columns\n .filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)\n .reduce((record, column) => {\n const key = column.imex === true ? column.name : column.imex.key\n record[key] = key\n .split('.')\n .reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)\n return record\n }, {})\n }\n })\n\n return { header: headerSetting, data: data }\n }\n\n printOocs() {\n const selected = this.grist.selected\n const ids = selected.map(record => record.id).join('|')\n\n GhostPrint.print({\n src: `./data-oocs?ids=${ids}`\n // pending: 200 * selected.length\n })\n }\n}\n"]}
|
@@ -4,6 +4,7 @@ import '@operato/context/ox-context-page-toolbar.js';
|
|
4
4
|
import './data-sample-view.js';
|
5
5
|
import { FetchOption } from '@operato/data-grist';
|
6
6
|
import { PageView } from '@operato/shell';
|
7
|
+
import { PagePreferenceProvider } from '@things-factory/personalization/dist-client/types.js';
|
7
8
|
declare const DataSampleListPage_base: (new (...args: any[]) => {
|
8
9
|
_storeUnsubscribe: import("redux").Unsubscribe;
|
9
10
|
connectedCallback(): void;
|
@@ -15,6 +16,7 @@ export declare class DataSampleListPage extends DataSampleListPage_base {
|
|
15
16
|
static styles: import("lit").CSSResult[];
|
16
17
|
gristConfig: any;
|
17
18
|
mode: 'CARD' | 'GRID' | 'LIST';
|
19
|
+
personalConfigProvider?: PagePreferenceProvider;
|
18
20
|
private grist;
|
19
21
|
get context(): {
|
20
22
|
title: string;
|
@@ -13,9 +13,10 @@ import { client } from '@operato/graphql';
|
|
13
13
|
import { i18next, localize } from '@operato/i18n';
|
14
14
|
import { openPopup } from '@operato/layout';
|
15
15
|
import { PageView, store } from '@operato/shell';
|
16
|
-
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
|
16
|
+
import { CommonGristStyles, CommonHeaderStyles, ScrollbarStyles } from '@operato/styles';
|
17
17
|
import { isMobileDevice } from '@operato/utils';
|
18
18
|
import { GhostPrint } from '@operato/ghost-print';
|
19
|
+
import { PagePreferenceProviderImpl } from '@things-factory/personalization/dist-client/page-preference-provider-impl.js';
|
19
20
|
let DataSampleListPage = class DataSampleListPage extends connect(store)(localize(i18next)(PageView)) {
|
20
21
|
constructor() {
|
21
22
|
super(...arguments);
|
@@ -54,7 +55,13 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
|
|
54
55
|
render() {
|
55
56
|
const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID');
|
56
57
|
return html `
|
57
|
-
<ox-grist
|
58
|
+
<ox-grist
|
59
|
+
.mode=${mode}
|
60
|
+
.config=${this.gristConfig}
|
61
|
+
.fetchHandler=${this.fetchHandler.bind(this)}
|
62
|
+
.personalConfigProvider=${this.personalConfigProvider}
|
63
|
+
?url-params-sensitive=${false /* this.active */}
|
64
|
+
>
|
58
65
|
<div slot="headroom" class="header">
|
59
66
|
<div class="title">${i18next.t('title.data-sample list')}</div>
|
60
67
|
|
@@ -64,10 +71,13 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
|
|
64
71
|
|
65
72
|
<ox-context-page-toolbar class="actions" .context=${this.context}></ox-context-page-toolbar>
|
66
73
|
</div>
|
74
|
+
|
75
|
+
<ox-grist-personalizer slot="setting"></ox-grist-personalizer>
|
67
76
|
</ox-grist>
|
68
77
|
`;
|
69
78
|
}
|
70
79
|
async pageInitialized(lifecycle) {
|
80
|
+
this.personalConfigProvider = new PagePreferenceProviderImpl(lifecycle.page, 'ox-grist');
|
71
81
|
const yesterday = moment().subtract(1, 'day').format('YYYY-MM-DD');
|
72
82
|
const today = moment().format('YYYY-MM-DD');
|
73
83
|
this.gristConfig = {
|
@@ -281,7 +291,9 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
|
|
281
291
|
},
|
282
292
|
handlers: {
|
283
293
|
click: (columns, data, column, record, rowIndex) => {
|
284
|
-
openPopup(html `
|
294
|
+
openPopup(html `
|
295
|
+
<data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
|
296
|
+
`, {
|
285
297
|
backdrop: true,
|
286
298
|
size: 'large',
|
287
299
|
title: i18next.t('title.data-sample view')
|
@@ -366,7 +378,9 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
|
|
366
378
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
367
379
|
.reduce((record, column) => {
|
368
380
|
const key = column.imex === true ? column.name : column.imex.key;
|
369
|
-
record[key] = key
|
381
|
+
record[key] = key
|
382
|
+
.split('.')
|
383
|
+
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item);
|
370
384
|
return record;
|
371
385
|
}, {}));
|
372
386
|
});
|
@@ -383,6 +397,7 @@ let DataSampleListPage = class DataSampleListPage extends connect(store)(localiz
|
|
383
397
|
};
|
384
398
|
DataSampleListPage.styles = [
|
385
399
|
ScrollbarStyles,
|
400
|
+
CommonGristStyles,
|
386
401
|
CommonHeaderStyles,
|
387
402
|
css `
|
388
403
|
:host {
|
@@ -408,6 +423,10 @@ __decorate([
|
|
408
423
|
state(),
|
409
424
|
__metadata("design:type", String)
|
410
425
|
], DataSampleListPage.prototype, "mode", void 0);
|
426
|
+
__decorate([
|
427
|
+
state(),
|
428
|
+
__metadata("design:type", Object)
|
429
|
+
], DataSampleListPage.prototype, "personalConfigProvider", void 0);
|
411
430
|
__decorate([
|
412
431
|
query('ox-grist'),
|
413
432
|
__metadata("design:type", DataGrist)
|