@things-factory/dataset 7.0.0-alpha.1 → 7.0.0-alpha.19
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/activities/activity-data-collect-edit.ts +1 -7
- package/client/activities/activity-data-collect-view.ts +7 -0
- package/client/activities/activity-data-review-edit.ts +66 -32
- package/client/activities/activity-data-review-view.ts +75 -29
- package/client/activities/activity-ooc-resolve-edit.ts +44 -48
- package/client/activities/activity-ooc-resolve-view.ts +25 -35
- package/client/activities/activity-ooc-review-edit.ts +36 -29
- package/client/activities/activity-ooc-review-view.ts +9 -19
- package/client/bootstrap.ts +5 -9
- package/client/pages/data-entry/data-entry-list-page.ts +8 -23
- package/client/pages/data-ooc/data-ooc-list-page.ts +71 -27
- package/client/pages/data-ooc/{data-ooc-view-page.ts → data-ooc-page.ts} +45 -1
- package/client/pages/data-ooc/data-ooc-view.ts +198 -41
- package/client/pages/data-ooc/data-oocs-page.ts +200 -0
- package/client/pages/data-sample/data-sample-list-page.ts +53 -31
- package/client/pages/data-sample/{data-sample-view-page.ts → data-sample-page.ts} +8 -1
- package/client/pages/data-sample/data-sample-search-page.ts +34 -29
- package/client/pages/data-sample/data-sample-view.ts +192 -21
- package/client/pages/data-sample/data-samples-page.ts +249 -0
- package/client/pages/data-sensor/data-sensor-list-page.ts +28 -6
- package/client/pages/data-set/data-item-list.ts +2 -2
- package/client/pages/data-summary/data-summary-list-page.ts +12 -24
- package/client/route.ts +10 -2
- package/dist-client/activities/activity-data-collect-edit.js +1 -7
- package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
- package/dist-client/activities/activity-data-collect-view.js +7 -0
- package/dist-client/activities/activity-data-collect-view.js.map +1 -1
- package/dist-client/activities/activity-data-review-edit.d.ts +1 -1
- package/dist-client/activities/activity-data-review-edit.js +63 -33
- package/dist-client/activities/activity-data-review-edit.js.map +1 -1
- package/dist-client/activities/activity-data-review-view.d.ts +1 -1
- package/dist-client/activities/activity-data-review-view.js +72 -30
- package/dist-client/activities/activity-data-review-view.js.map +1 -1
- package/dist-client/activities/activity-ooc-resolve-edit.d.ts +1 -1
- package/dist-client/activities/activity-ooc-resolve-edit.js +44 -48
- package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
- package/dist-client/activities/activity-ooc-resolve-view.d.ts +13 -0
- package/dist-client/activities/activity-ooc-resolve-view.js +24 -34
- package/dist-client/activities/activity-ooc-resolve-view.js.map +1 -1
- package/dist-client/activities/activity-ooc-review-edit.js +39 -29
- package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
- package/dist-client/activities/activity-ooc-review-view.js +9 -19
- package/dist-client/activities/activity-ooc-review-view.js.map +1 -1
- package/dist-client/bootstrap.d.ts +4 -4
- package/dist-client/bootstrap.js +4 -4
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/pages/data-entry/data-entry-list-page.js +3 -15
- package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
- package/dist-client/pages/data-ooc/data-ooc-list-page.d.ts +6 -0
- package/dist-client/pages/data-ooc/data-ooc-list-page.js +67 -24
- package/dist-client/pages/data-ooc/data-ooc-list-page.js.map +1 -1
- package/dist-client/pages/data-ooc/{data-ooc-view-page.js → data-ooc-page.js} +46 -2
- package/dist-client/pages/data-ooc/data-ooc-page.js.map +1 -0
- package/dist-client/pages/data-ooc/data-ooc-view.d.ts +11 -4
- package/dist-client/pages/data-ooc/data-ooc-view.js +193 -48
- package/dist-client/pages/data-ooc/data-ooc-view.js.map +1 -1
- package/dist-client/pages/data-ooc/data-oocs-page.d.ts +18 -0
- package/dist-client/pages/data-ooc/data-oocs-page.js +200 -0
- package/dist-client/pages/data-ooc/data-oocs-page.js.map +1 -0
- package/dist-client/pages/data-sample/data-sample-list-page.d.ts +6 -1
- package/dist-client/pages/data-sample/data-sample-list-page.js +51 -28
- package/dist-client/pages/data-sample/data-sample-list-page.js.map +1 -1
- package/dist-client/pages/data-sample/{data-sample-view-page.js → data-sample-page.js} +9 -2
- package/dist-client/pages/data-sample/data-sample-page.js.map +1 -0
- package/dist-client/pages/data-sample/data-sample-search-page.d.ts +6 -13
- package/dist-client/pages/data-sample/data-sample-search-page.js +32 -26
- package/dist-client/pages/data-sample/data-sample-search-page.js.map +1 -1
- package/dist-client/pages/data-sample/data-sample-view.d.ts +18 -0
- package/dist-client/pages/data-sample/data-sample-view.js +186 -19
- package/dist-client/pages/data-sample/data-sample-view.js.map +1 -1
- package/dist-client/pages/data-sample/data-samples-page.d.ts +21 -0
- package/dist-client/pages/data-sample/data-samples-page.js +249 -0
- package/dist-client/pages/data-sample/data-samples-page.js.map +1 -0
- package/dist-client/pages/data-sensor/data-sensor-list-page.js +28 -6
- package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
- package/dist-client/pages/data-set/data-item-list.js +2 -2
- package/dist-client/pages/data-set/data-item-list.js.map +1 -1
- package/dist-client/pages/data-summary/data-summary-list-page.js +12 -21
- package/dist-client/pages/data-summary/data-summary-list-page.js.map +1 -1
- package/dist-client/route.js +8 -2
- package/dist-client/route.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-server/activities/activity-data-collect.js.map +1 -1
- package/dist-server/activities/activity-data-review.js.map +1 -1
- package/dist-server/activities/activity-ooc-review.js +3 -2
- package/dist-server/activities/activity-ooc-review.js.map +1 -1
- package/dist-server/controllers/create-data-sample.js +28 -30
- package/dist-server/controllers/create-data-sample.js.map +1 -1
- package/dist-server/controllers/issue-collect-data.js +55 -0
- package/dist-server/controllers/issue-collect-data.js.map +1 -0
- package/dist-server/engine/index.js +4 -0
- package/dist-server/engine/index.js.map +1 -0
- package/dist-server/engine/task/create-data-sample.js +80 -0
- package/dist-server/engine/task/create-data-sample.js.map +1 -0
- package/dist-server/engine/task/index.js +5 -0
- package/dist-server/engine/task/index.js.map +1 -0
- package/dist-server/engine/task/issue-collect-data.js +40 -0
- package/dist-server/engine/task/issue-collect-data.js.map +1 -0
- package/dist-server/index.js +1 -0
- package/dist-server/index.js.map +1 -1
- package/dist-server/routes.js +36 -65
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc-query.js +32 -0
- package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
- package/dist-server/service/data-ooc/data-ooc.js +44 -37
- package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
- package/dist-server/service/data-sample/data-sample-query.js +24 -0
- package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
- package/dist-server/service/data-sample/data-sample.js +30 -31
- package/dist-server/service/data-sample/data-sample.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-query.js +16 -1
- package/dist-server/service/data-sensor/data-sensor-query.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor-type.js +8 -0
- package/dist-server/service/data-sensor/data-sensor-type.js.map +1 -1
- package/dist-server/service/data-sensor/data-sensor.js +15 -1
- package/dist-server/service/data-sensor/data-sensor.js.map +1 -1
- package/dist-server/service/data-set/data-item-type.js +1 -0
- package/dist-server/service/data-set/data-item-type.js.map +1 -1
- package/dist-server/service/data-set/data-set-query.js +2 -2
- package/dist-server/service/data-set/data-set-query.js.map +1 -1
- package/dist-server/service/data-summary/data-summary.js +8 -8
- package/dist-server/service/data-summary/data-summary.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/dataset/task/create-data-sample.ja.md +28 -0
- package/helps/dataset/task/create-data-sample.ko.md +28 -0
- package/helps/dataset/task/create-data-sample.md +28 -0
- package/helps/dataset/task/create-data-sample.ms.md +30 -0
- package/helps/dataset/task/create-data-sample.zh.md +28 -0
- package/helps/dataset/task/issue-collect-data.ja.md +35 -0
- package/helps/dataset/task/issue-collect-data.ko.md +32 -0
- package/helps/dataset/task/issue-collect-data.md +32 -0
- package/helps/dataset/task/issue-collect-data.ms.md +34 -0
- package/helps/dataset/task/issue-collect-data.zh.md +32 -0
- package/package.json +14 -11
- package/server/activities/activity-data-collect.ts +3 -11
- package/server/activities/activity-data-review.ts +1 -5
- package/server/activities/activity-ooc-review.ts +6 -16
- package/server/controllers/create-data-sample.ts +32 -39
- package/server/controllers/issue-collect-data.ts +61 -0
- package/server/engine/index.ts +1 -0
- package/server/engine/task/create-data-sample.ts +92 -0
- package/server/engine/task/index.ts +2 -0
- package/server/engine/task/issue-collect-data.ts +45 -0
- package/server/index.ts +1 -0
- package/server/routes.ts +47 -76
- package/server/service/data-ooc/data-ooc-query.ts +17 -0
- package/server/service/data-ooc/data-ooc.ts +39 -51
- package/server/service/data-sample/data-sample-query.ts +17 -17
- package/server/service/data-sample/data-sample.ts +29 -52
- package/server/service/data-sensor/data-sensor-query.ts +13 -1
- package/server/service/data-sensor/data-sensor-type.ts +6 -0
- package/server/service/data-sensor/data-sensor.ts +13 -11
- package/server/service/data-set/data-item-type.ts +1 -0
- package/server/service/data-set/data-set-query.ts +7 -7
- package/server/service/data-summary/data-summary.ts +10 -23
- package/things-factory.config.js +10 -2
- package/translations/en.json +15 -2
- package/translations/ja.json +12 -1
- package/translations/ko.json +14 -1
- package/translations/ms.json +11 -0
- package/translations/zh.json +12 -1
- package/dist-client/pages/data-ooc/data-ooc-view-page.js.map +0 -1
- package/dist-client/pages/data-sample/data-sample-view-page.js.map +0 -1
- /package/dist-client/pages/data-ooc/{data-ooc-view-page.d.ts → data-ooc-page.d.ts} +0 -0
- /package/dist-client/pages/data-sample/{data-sample-view-page.d.ts → data-sample-page.d.ts} +0 -0
@@ -0,0 +1,200 @@
|
|
1
|
+
import '@operato/dataset/ox-data-ooc-brief-view.js'
|
2
|
+
import '@things-factory/worklist/dist-client/components/activity-thread-timeline.js'
|
3
|
+
|
4
|
+
import gql from 'graphql-tag'
|
5
|
+
import { PropertyValues, html, css, nothing } from 'lit'
|
6
|
+
import { customElement, state } from 'lit/decorators.js'
|
7
|
+
import { PageView } from '@operato/shell'
|
8
|
+
import { i18next, localize } from '@operato/i18n'
|
9
|
+
import { client } from '@operato/graphql'
|
10
|
+
|
11
|
+
/**
|
12
|
+
* 이 페이지는 여러개의 Data OOC를 한번에 프린트하기 위한 용도로 사용되는 페이지이다.
|
13
|
+
*/
|
14
|
+
@customElement('data-oocs-page')
|
15
|
+
export class DataOocsPage extends localize(i18next)(PageView) {
|
16
|
+
static styles = [
|
17
|
+
css`
|
18
|
+
:host {
|
19
|
+
display: block;
|
20
|
+
overflow: auto;
|
21
|
+
}
|
22
|
+
|
23
|
+
activity-thread-timeline {
|
24
|
+
margin: var(--margin-default);
|
25
|
+
}
|
26
|
+
|
27
|
+
.end {
|
28
|
+
page-break-after: always;
|
29
|
+
break-after: always;
|
30
|
+
}
|
31
|
+
`
|
32
|
+
]
|
33
|
+
|
34
|
+
@state() dataOocs?: any[]
|
35
|
+
|
36
|
+
get context() {
|
37
|
+
return {
|
38
|
+
title: i18next.t('title.data-ooc view')
|
39
|
+
}
|
40
|
+
}
|
41
|
+
|
42
|
+
render() {
|
43
|
+
return this.dataOocs?.map(dataOoc => {
|
44
|
+
const reviewActivityThread = dataOoc?.reviewActivityInstance?.activityThreads?.[0]
|
45
|
+
const resolveActivityThread = dataOoc?.resolveActivityInstance?.activityThreads?.[0]
|
46
|
+
|
47
|
+
return html`
|
48
|
+
<ox-data-ooc-brief-view .dataOoc=${dataOoc}></ox-data-ooc-brief-view>
|
49
|
+
${reviewActivityThread
|
50
|
+
? html`
|
51
|
+
<activity-thread-timeline
|
52
|
+
subtitle=${String(i18next.t('label.ooc review timeline'))}
|
53
|
+
.activityThread=${reviewActivityThread}
|
54
|
+
short-form
|
55
|
+
></activity-thread-timeline>
|
56
|
+
`
|
57
|
+
: nothing}
|
58
|
+
${resolveActivityThread
|
59
|
+
? html`
|
60
|
+
<activity-thread-timeline
|
61
|
+
subtitle=${String(i18next.t('label.ooc resolve timeline'))}
|
62
|
+
.activityThread=${resolveActivityThread}
|
63
|
+
short-form
|
64
|
+
></activity-thread-timeline>
|
65
|
+
`
|
66
|
+
: nothing}
|
67
|
+
<div class="end"></div>
|
68
|
+
`
|
69
|
+
})
|
70
|
+
}
|
71
|
+
|
72
|
+
pageUpdated(changes: any, lifecycle: any, before: any) {
|
73
|
+
if (this.active) {
|
74
|
+
/*
|
75
|
+
* this page is activated
|
76
|
+
*/
|
77
|
+
const { ids = '' } = lifecycle.params
|
78
|
+
|
79
|
+
this.fetchOocs(ids.split('|').map(id => id.trim()))
|
80
|
+
} else {
|
81
|
+
/* this page is deactivated */
|
82
|
+
}
|
83
|
+
}
|
84
|
+
|
85
|
+
async fetchOocs(ids: string[]) {
|
86
|
+
const filters = [
|
87
|
+
{
|
88
|
+
name: 'id',
|
89
|
+
operator: 'in',
|
90
|
+
value: ids
|
91
|
+
}
|
92
|
+
]
|
93
|
+
|
94
|
+
const response = await client.query({
|
95
|
+
query: gql`
|
96
|
+
query ($filters: [Filter!]) {
|
97
|
+
dataOocs(filters: $filters) {
|
98
|
+
items {
|
99
|
+
id
|
100
|
+
name
|
101
|
+
description
|
102
|
+
useCase
|
103
|
+
dataSet {
|
104
|
+
id
|
105
|
+
name
|
106
|
+
}
|
107
|
+
key01
|
108
|
+
key02
|
109
|
+
key03
|
110
|
+
key04
|
111
|
+
key05
|
112
|
+
partitionKeys
|
113
|
+
dataItems {
|
114
|
+
name
|
115
|
+
description
|
116
|
+
active
|
117
|
+
hidden
|
118
|
+
tag
|
119
|
+
group
|
120
|
+
type
|
121
|
+
unit
|
122
|
+
options
|
123
|
+
quota
|
124
|
+
spec
|
125
|
+
stat
|
126
|
+
}
|
127
|
+
data
|
128
|
+
rawData
|
129
|
+
judgment
|
130
|
+
ooc
|
131
|
+
oos
|
132
|
+
state
|
133
|
+
history
|
134
|
+
workDate
|
135
|
+
workShift
|
136
|
+
correctiveInstruction
|
137
|
+
correctiveAction
|
138
|
+
reviewedAt
|
139
|
+
reviewer {
|
140
|
+
id
|
141
|
+
name
|
142
|
+
}
|
143
|
+
correctedAt
|
144
|
+
corrector {
|
145
|
+
id
|
146
|
+
name
|
147
|
+
}
|
148
|
+
updater {
|
149
|
+
id
|
150
|
+
name
|
151
|
+
}
|
152
|
+
updatedAt
|
153
|
+
collectedAt
|
154
|
+
reviewActivityInstance {
|
155
|
+
...ActivityInstanceFragment
|
156
|
+
}
|
157
|
+
resolveActivityInstance {
|
158
|
+
...ActivityInstanceFragment
|
159
|
+
}
|
160
|
+
}
|
161
|
+
}
|
162
|
+
}
|
163
|
+
|
164
|
+
fragment ActivityInstanceFragment on ActivityInstance {
|
165
|
+
activityThreads {
|
166
|
+
assignee {
|
167
|
+
name
|
168
|
+
}
|
169
|
+
output
|
170
|
+
activityApprovals {
|
171
|
+
judgment
|
172
|
+
approver {
|
173
|
+
name
|
174
|
+
}
|
175
|
+
comment
|
176
|
+
createdAt
|
177
|
+
updatedAt
|
178
|
+
terminatedAt
|
179
|
+
}
|
180
|
+
activityThreadHistories {
|
181
|
+
transaction
|
182
|
+
reason
|
183
|
+
updater {
|
184
|
+
name
|
185
|
+
}
|
186
|
+
updatedAt
|
187
|
+
state
|
188
|
+
output
|
189
|
+
}
|
190
|
+
}
|
191
|
+
}
|
192
|
+
`,
|
193
|
+
variables: {
|
194
|
+
filters
|
195
|
+
}
|
196
|
+
})
|
197
|
+
|
198
|
+
this.dataOocs = response.data.dataOocs.items
|
199
|
+
}
|
200
|
+
}
|
@@ -15,6 +15,7 @@ import { openPopup } from '@operato/layout'
|
|
15
15
|
import { PageView, store } from '@operato/shell'
|
16
16
|
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
17
17
|
import { isMobileDevice } from '@operato/utils'
|
18
|
+
import { GhostPrint } from '@operato/ghost-print'
|
18
19
|
|
19
20
|
@customElement('data-sample-list-page')
|
20
21
|
export class DataSampleListPage extends connect(store)(localize(i18next)(PageView)) {
|
@@ -27,6 +28,8 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
27
28
|
flex-direction: column;
|
28
29
|
|
29
30
|
overflow: hidden;
|
31
|
+
|
32
|
+
--grid-header-padding: 2px 0 2px 9px;
|
30
33
|
}
|
31
34
|
|
32
35
|
ox-grist {
|
@@ -56,7 +59,13 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
56
59
|
}
|
57
60
|
},
|
58
61
|
help: 'dataset/data-sample',
|
59
|
-
actions: [
|
62
|
+
actions: [
|
63
|
+
{
|
64
|
+
title: i18next.t('button.print'),
|
65
|
+
action: this.printSamples.bind(this),
|
66
|
+
icon: 'print'
|
67
|
+
}
|
68
|
+
],
|
60
69
|
exportable: {
|
61
70
|
name: i18next.t('title.data-sample list'),
|
62
71
|
data: this._exportableData.bind(this)
|
@@ -69,12 +78,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
69
78
|
const mode = this.mode || (isMobileDevice() ? 'LIST' : 'GRID')
|
70
79
|
|
71
80
|
return html`
|
72
|
-
<ox-grist
|
73
|
-
.mode=${mode}
|
74
|
-
.config=${this.gristConfig}
|
75
|
-
.fetchHandler=${this.fetchHandler.bind(this)}
|
76
|
-
?url-params-sensitive=${false /* this.active */}
|
77
|
-
>
|
81
|
+
<ox-grist .mode=${mode} .config=${this.gristConfig} .fetchHandler=${this.fetchHandler.bind(this)} ?url-params-sensitive=${false /* this.active */}>
|
78
82
|
<div slot="headroom" class="header">
|
79
83
|
<div class="title">
|
80
84
|
<mwc-icon>summarize</mwc-icon>
|
@@ -105,21 +109,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
105
109
|
gutterName: 'button',
|
106
110
|
fixed: true,
|
107
111
|
icon: 'assignment',
|
108
|
-
title: i18next.t('title.open data sample view')
|
109
|
-
handlers: {
|
110
|
-
click: (columns, data, column, record, rowIndex) => {
|
111
|
-
openPopup(
|
112
|
-
html`
|
113
|
-
<data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
|
114
|
-
`,
|
115
|
-
{
|
116
|
-
backdrop: true,
|
117
|
-
size: 'large',
|
118
|
-
title: i18next.t('title.data-sample view')
|
119
|
-
}
|
120
|
-
)
|
121
|
-
}
|
122
|
-
}
|
112
|
+
title: i18next.t('title.open data sample view')
|
123
113
|
},
|
124
114
|
{
|
125
115
|
type: 'string',
|
@@ -150,7 +140,10 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
150
140
|
{
|
151
141
|
type: 'string',
|
152
142
|
name: 'key01',
|
153
|
-
header:
|
143
|
+
header: {
|
144
|
+
renderer: i18next.t('field.key-01'),
|
145
|
+
group: i18next.t('field.key')
|
146
|
+
},
|
154
147
|
record: {
|
155
148
|
editable: false
|
156
149
|
},
|
@@ -161,7 +154,10 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
161
154
|
{
|
162
155
|
type: 'string',
|
163
156
|
name: 'key02',
|
164
|
-
header:
|
157
|
+
header: {
|
158
|
+
renderer: i18next.t('field.key-02'),
|
159
|
+
group: i18next.t('field.key')
|
160
|
+
},
|
165
161
|
record: {
|
166
162
|
editable: false
|
167
163
|
},
|
@@ -172,7 +168,10 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
172
168
|
{
|
173
169
|
type: 'string',
|
174
170
|
name: 'key03',
|
175
|
-
header:
|
171
|
+
header: {
|
172
|
+
renderer: i18next.t('field.key-03'),
|
173
|
+
group: i18next.t('field.key')
|
174
|
+
},
|
176
175
|
record: {
|
177
176
|
editable: false
|
178
177
|
},
|
@@ -183,7 +182,10 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
183
182
|
{
|
184
183
|
type: 'string',
|
185
184
|
name: 'key04',
|
186
|
-
header:
|
185
|
+
header: {
|
186
|
+
renderer: i18next.t('field.key-04'),
|
187
|
+
group: i18next.t('field.key')
|
188
|
+
},
|
187
189
|
record: {
|
188
190
|
editable: false
|
189
191
|
},
|
@@ -194,7 +196,10 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
194
196
|
{
|
195
197
|
type: 'string',
|
196
198
|
name: 'key05',
|
197
|
-
header:
|
199
|
+
header: {
|
200
|
+
renderer: i18next.t('field.key-05'),
|
201
|
+
group: i18next.t('field.key')
|
202
|
+
},
|
198
203
|
record: {
|
199
204
|
editable: false
|
200
205
|
},
|
@@ -231,7 +236,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
231
236
|
imex: true
|
232
237
|
},
|
233
238
|
{
|
234
|
-
type: '
|
239
|
+
type: 'json5',
|
235
240
|
name: 'rawData',
|
236
241
|
header: i18next.t('field.raw-data'),
|
237
242
|
record: {
|
@@ -302,6 +307,15 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
302
307
|
return {
|
303
308
|
emphasized
|
304
309
|
}
|
310
|
+
},
|
311
|
+
handlers: {
|
312
|
+
click: (columns, data, column, record, rowIndex) => {
|
313
|
+
openPopup(html` <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view> `, {
|
314
|
+
backdrop: true,
|
315
|
+
size: 'large',
|
316
|
+
title: i18next.t('title.data-sample view')
|
317
|
+
})
|
318
|
+
}
|
305
319
|
}
|
306
320
|
},
|
307
321
|
sorters: [
|
@@ -387,9 +401,7 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
387
401
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
388
402
|
.reduce((record, column) => {
|
389
403
|
const key = column.imex === true ? column.name : column.imex.key
|
390
|
-
record[key] = key
|
391
|
-
.split('.')
|
392
|
-
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
404
|
+
record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
393
405
|
return record
|
394
406
|
}, {})
|
395
407
|
}
|
@@ -397,4 +409,14 @@ export class DataSampleListPage extends connect(store)(localize(i18next)(PageVie
|
|
397
409
|
|
398
410
|
return { header: headerSetting, data: data }
|
399
411
|
}
|
412
|
+
|
413
|
+
printSamples() {
|
414
|
+
const selected = this.grist.selected
|
415
|
+
const ids = selected.map(record => record.id).join('|')
|
416
|
+
|
417
|
+
GhostPrint.print({
|
418
|
+
src: `./data-samples?ids=${ids}`
|
419
|
+
// pending: 200 * selected.length
|
420
|
+
})
|
421
|
+
}
|
400
422
|
}
|
@@ -5,7 +5,7 @@ import { i18next, localize } from '@operato/i18n'
|
|
5
5
|
|
6
6
|
import './data-sample-view.js'
|
7
7
|
|
8
|
-
@customElement('data-sample-
|
8
|
+
@customElement('data-sample-page')
|
9
9
|
export class DataSampleViewPage extends localize(i18next)(PageView) {
|
10
10
|
static styles = [
|
11
11
|
css`
|
@@ -16,6 +16,13 @@ export class DataSampleViewPage extends localize(i18next)(PageView) {
|
|
16
16
|
data-sample-view {
|
17
17
|
flex: 1;
|
18
18
|
}
|
19
|
+
|
20
|
+
@media print {
|
21
|
+
:host {
|
22
|
+
display: block;
|
23
|
+
overflow: visible;
|
24
|
+
}
|
25
|
+
}
|
19
26
|
`
|
20
27
|
]
|
21
28
|
|
@@ -15,6 +15,7 @@ import { openPopup } from '@operato/layout'
|
|
15
15
|
import { PageView, store } from '@operato/shell'
|
16
16
|
import { CommonHeaderStyles, ScrollbarStyles } from '@operato/styles'
|
17
17
|
import { isMobileDevice } from '@operato/utils'
|
18
|
+
import { GhostPrint } from '@operato/ghost-print'
|
18
19
|
|
19
20
|
@customElement('data-sample-search-page')
|
20
21
|
export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageView)) {
|
@@ -60,11 +61,17 @@ export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageV
|
|
60
61
|
}
|
61
62
|
},
|
62
63
|
help: 'dataset/data-sample-search',
|
63
|
-
actions: [
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
64
|
+
actions: [
|
65
|
+
{
|
66
|
+
title: i18next.t('button.print'),
|
67
|
+
action: this.printSamples.bind(this),
|
68
|
+
icon: 'print'
|
69
|
+
}
|
70
|
+
],
|
71
|
+
// exportable: {
|
72
|
+
// name: i18next.t('title.data-sample search'),
|
73
|
+
// data: this._exportableData.bind(this)
|
74
|
+
// },
|
68
75
|
toolbar: false
|
69
76
|
}
|
70
77
|
}
|
@@ -167,21 +174,7 @@ export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageV
|
|
167
174
|
gutterName: 'button',
|
168
175
|
fixed: true,
|
169
176
|
icon: 'assignment',
|
170
|
-
title: i18next.t('title.open data sample view')
|
171
|
-
handlers: {
|
172
|
-
click: (columns, data, column, record, rowIndex) => {
|
173
|
-
openPopup(
|
174
|
-
html`
|
175
|
-
<data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view>
|
176
|
-
`,
|
177
|
-
{
|
178
|
-
backdrop: true,
|
179
|
-
size: 'large',
|
180
|
-
title: i18next.t('title.data-sample view')
|
181
|
-
}
|
182
|
-
)
|
183
|
-
}
|
184
|
-
}
|
177
|
+
title: i18next.t('title.open data sample view')
|
185
178
|
},
|
186
179
|
{
|
187
180
|
type: 'string',
|
@@ -300,6 +293,15 @@ export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageV
|
|
300
293
|
return {
|
301
294
|
emphasized
|
302
295
|
}
|
296
|
+
},
|
297
|
+
handlers: {
|
298
|
+
click: (columns, data, column, record, rowIndex) => {
|
299
|
+
openPopup(html` <data-sample-view data-sample-id=${record.id} style="background-color: white;"></data-sample-view> `, {
|
300
|
+
backdrop: true,
|
301
|
+
size: 'large',
|
302
|
+
title: i18next.t('title.data-sample view')
|
303
|
+
})
|
304
|
+
}
|
303
305
|
}
|
304
306
|
},
|
305
307
|
sorters: [
|
@@ -319,12 +321,7 @@ export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageV
|
|
319
321
|
const response = await client.query({
|
320
322
|
query: gql`
|
321
323
|
query ($dataSetId: String!, $filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
|
322
|
-
responses: dataSamplesByDataSet(
|
323
|
-
dataSetId: $dataSetId
|
324
|
-
filters: $filters
|
325
|
-
pagination: $pagination
|
326
|
-
sortings: $sortings
|
327
|
-
) {
|
324
|
+
responses: dataSamplesByDataSet(dataSetId: $dataSetId, filters: $filters, pagination: $pagination, sortings: $sortings) {
|
328
325
|
items {
|
329
326
|
id
|
330
327
|
name
|
@@ -394,9 +391,7 @@ export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageV
|
|
394
391
|
.filter(column => column.type !== 'gutter' && column.record !== undefined && column.imex !== undefined)
|
395
392
|
.reduce((record, column) => {
|
396
393
|
const key = column.imex === true ? column.name : column.imex.key
|
397
|
-
record[key] = key
|
398
|
-
.split('.')
|
399
|
-
.reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
394
|
+
record[key] = key.split('.').reduce((obj, key) => (obj && obj[key] !== 'undefined' ? obj[key] : undefined), item)
|
400
395
|
return record
|
401
396
|
}, {})
|
402
397
|
}
|
@@ -404,4 +399,14 @@ export class DataSampleSearchPage extends connect(store)(localize(i18next)(PageV
|
|
404
399
|
|
405
400
|
return { header: headerSetting, data: data }
|
406
401
|
}
|
402
|
+
|
403
|
+
printSamples() {
|
404
|
+
const selected = this.grist.selected
|
405
|
+
const ids = selected.map(record => record.id).join('|')
|
406
|
+
|
407
|
+
GhostPrint.print({
|
408
|
+
src: `./data-samples?ids=${ids}`
|
409
|
+
// pending: 200 * selected.length
|
410
|
+
})
|
411
|
+
}
|
407
412
|
}
|