@things-factory/dataset 5.0.0-alpha.33 → 5.0.0-alpha.34

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.
@@ -74,90 +74,6 @@ const showEntryView = async (columns, data, column, record, rowIndex) => {
74
74
  }
75
75
  }
76
76
 
77
- const showMonitorView = (columns, data, column, record, rowIndex) => {
78
- const { name, monitorType, monitorView } = record
79
- const title = `${name} - ${i18next.t('title.data-monitor-view')}`
80
-
81
- switch (monitorType) {
82
- case 'generated':
83
- openPopup(html` <div style="background-color: white;">Under construction</div> `, {
84
- backdrop: true,
85
- size: 'large',
86
- title
87
- })
88
- break
89
-
90
- case 'board':
91
- const board = {
92
- id: monitorView
93
- }
94
- openPopup(
95
- html`
96
- <ox-board-viewer
97
- style="background-color: white;"
98
- .board=${board}
99
- .provider=${provider}
100
- hide-fullscreen
101
- hide-navigation
102
- ></ox-board-viewer>
103
- `,
104
- {
105
- closable: true,
106
- backdrop: true,
107
- size: 'large',
108
- title
109
- }
110
- )
111
-
112
- // navigate(`board-viewer/${monitorView}?interactive=true&title=${title}`)
113
- break
114
-
115
- case 'page':
116
- navigate(monitorView)
117
- break
118
-
119
- case 'external':
120
- window.open(monitorView, '_blank')
121
- break
122
- }
123
- }
124
-
125
- const showReportView = (columns, data, column, record, rowIndex) => {
126
- const { name, reportType, reportView } = record
127
- const title = `${name} - ${i18next.t('title.data-report-view')}`
128
-
129
- switch (reportType) {
130
- case 'generated':
131
- openPopup(html` <div style="background-color: white;">Under construction</div> `, {
132
- backdrop: true,
133
- size: 'large',
134
- title
135
- })
136
- break
137
-
138
- case 'custom':
139
- const board = {
140
- id: reportView
141
- }
142
- openPopup(html` <div style="background-color: white;">Under construction</div> `, {
143
- closable: true,
144
- backdrop: true,
145
- size: 'large',
146
- title
147
- })
148
-
149
- break
150
-
151
- case 'page':
152
- navigate(reportView)
153
- break
154
-
155
- case 'external':
156
- window.open(reportView, '_blank')
157
- break
158
- }
159
- }
160
-
161
77
  export class DataEntryListPage extends connect(store)(localize(i18next)(PageView)) {
162
78
  static get properties() {
163
79
  return {
@@ -250,22 +166,6 @@ export class DataEntryListPage extends connect(store)(localize(i18next)(PageView
250
166
  click: showEntryView
251
167
  }
252
168
  },
253
- {
254
- type: 'gutter',
255
- gutterName: 'button',
256
- icon: 'analytics',
257
- handlers: {
258
- click: showMonitorView
259
- }
260
- },
261
- {
262
- type: 'gutter',
263
- gutterName: 'button',
264
- icon: 'newspaper',
265
- handlers: {
266
- click: showReportView
267
- }
268
- },
269
169
  {
270
170
  type: 'string',
271
171
  name: 'name',
@@ -0,0 +1,462 @@
1
+ import '@operato/data-grist'
2
+ import '@operato/board/ox-board-viewer.js'
3
+
4
+ import gql from 'graphql-tag'
5
+ import JSON5 from 'json5'
6
+ import { css, html } from 'lit'
7
+ import { connect } from 'pwa-helpers/connect-mixin'
8
+
9
+ import { OxDataUseCase } from '@operato/dataset'
10
+ import { client } from '@operato/graphql'
11
+ import { i18next, localize } from '@operato/i18n'
12
+ import { openPopup } from '@operato/layout'
13
+ import { navigate, PageView, store } from '@operato/shell'
14
+ import { CommonGristStyles, ScrollbarStyles } from '@operato/styles'
15
+ import { provider } from '@things-factory/board-ui'
16
+
17
+ const USECASE_OPTIONS = () => {
18
+ return ['', ...OxDataUseCase.getUseCaseNames()].map(name => {
19
+ return {
20
+ display: name,
21
+ value: name
22
+ }
23
+ })
24
+ }
25
+
26
+ const showMonitorView = (columns, data, column, record, rowIndex) => {
27
+ const { name, monitorType, monitorView } = record
28
+ const title = `${name} - ${i18next.t('title.data-monitor-view')}`
29
+
30
+ switch (monitorType) {
31
+ case 'generated':
32
+ openPopup(html` <div style="background-color: white;">Under construction</div> `, {
33
+ backdrop: true,
34
+ size: 'large',
35
+ title
36
+ })
37
+ break
38
+
39
+ case 'board':
40
+ const board = {
41
+ id: monitorView
42
+ }
43
+ openPopup(
44
+ html`
45
+ <ox-board-viewer
46
+ style="background-color: white;"
47
+ .board=${board}
48
+ .provider=${provider}
49
+ hide-fullscreen
50
+ hide-navigation
51
+ ></ox-board-viewer>
52
+ `,
53
+ {
54
+ closable: true,
55
+ backdrop: true,
56
+ size: 'large',
57
+ title
58
+ }
59
+ )
60
+
61
+ // navigate(`board-viewer/${monitorView}?interactive=true&title=${title}`)
62
+ break
63
+
64
+ case 'page':
65
+ navigate(monitorView)
66
+ break
67
+
68
+ case 'external':
69
+ window.open(monitorView, '_blank')
70
+ break
71
+ }
72
+ }
73
+
74
+ const showReportView = (columns, data, column, record, rowIndex) => {
75
+ const { name, reportType, reportView } = record
76
+ const title = `${name} - ${i18next.t('title.data-report-view')}`
77
+
78
+ switch (reportType) {
79
+ case 'generated':
80
+ openPopup(html` <div style="background-color: white;">Under construction</div> `, {
81
+ backdrop: true,
82
+ size: 'large',
83
+ title
84
+ })
85
+ break
86
+
87
+ case 'custom':
88
+ const board = {
89
+ id: reportView
90
+ }
91
+ openPopup(html` <div style="background-color: white;">Under construction</div> `, {
92
+ closable: true,
93
+ backdrop: true,
94
+ size: 'large',
95
+ title
96
+ })
97
+
98
+ break
99
+
100
+ case 'page':
101
+ navigate(reportView)
102
+ break
103
+
104
+ case 'external':
105
+ window.open(reportView, '_blank')
106
+ break
107
+ }
108
+ }
109
+
110
+ export class DataReportListPage extends connect(store)(localize(i18next)(PageView)) {
111
+ static get properties() {
112
+ return {
113
+ active: String,
114
+ gristConfig: Object,
115
+ filters: Object,
116
+ sorters: Object,
117
+ mode: String
118
+ }
119
+ }
120
+
121
+ static get styles() {
122
+ return [
123
+ ScrollbarStyles,
124
+ CommonGristStyles,
125
+ css`
126
+ :host {
127
+ display: flex;
128
+
129
+ width: 100%;
130
+
131
+ --grid-record-emphasized-background-color: red;
132
+ --grid-record-emphasized-color: yellow;
133
+ }
134
+ `
135
+ ]
136
+ }
137
+
138
+ get context() {
139
+ return {
140
+ title: i18next.t('title.data-entry list'),
141
+ help: 'dataset/data-entry-list'
142
+ }
143
+ }
144
+
145
+ render() {
146
+ const mode = 'CARD'
147
+
148
+ return html`
149
+ <ox-grist
150
+ .mode=${mode}
151
+ .config=${this.gristConfig}
152
+ .filters=${this.filters}
153
+ .orders=${this.orders}
154
+ .fetchHandler=${this.fetchHandler.bind(this)}
155
+ >
156
+ <div slot="headroom" id="filters">
157
+ <div id="filters">
158
+ <ox-filters-form></ox-filters-form>
159
+ </div>
160
+
161
+ <div id="sorters">
162
+ Sort
163
+ <mwc-icon
164
+ @click=${e => {
165
+ const target = e.currentTarget
166
+ this.renderRoot.querySelector('#sorter-control').open({
167
+ right: 0,
168
+ top: target.offsetTop + target.offsetHeight
169
+ })
170
+ }}
171
+ >expand_more</mwc-icon
172
+ >
173
+ <ox-popup id="sorter-control">
174
+ <ox-sorters-control> </ox-sorters-control>
175
+ </ox-popup>
176
+ </div>
177
+ </div>
178
+ </ox-grist>
179
+ `
180
+ }
181
+
182
+ get grist() {
183
+ return this.renderRoot.querySelector('ox-grist')
184
+ }
185
+
186
+ async pageInitialized(lifecycle) {
187
+ this.gristConfig = {
188
+ list: {
189
+ thumbnail: 'monitorView',
190
+ fields: ['name', 'description'],
191
+ details: ['schedule', 'type', 'useCase', 'latestCollectedAt', 'prevSchedule', 'nextSchedule']
192
+ },
193
+ columns: [
194
+ {
195
+ type: 'gutter',
196
+ gutterName: 'button',
197
+ icon: 'newspaper',
198
+ handlers: {
199
+ click: showReportView
200
+ }
201
+ },
202
+ {
203
+ type: 'gutter',
204
+ gutterName: 'button',
205
+ icon: 'analytics',
206
+ handlers: {
207
+ click: showMonitorView
208
+ }
209
+ },
210
+ {
211
+ type: 'string',
212
+ name: 'name',
213
+ header: i18next.t('field.name'),
214
+ record: {
215
+ editable: false
216
+ },
217
+ filter: 'search',
218
+ sortable: true,
219
+ width: 150
220
+ },
221
+ {
222
+ type: 'string',
223
+ name: 'description',
224
+ header: i18next.t('field.description'),
225
+ record: {
226
+ editable: false
227
+ },
228
+ filter: 'search',
229
+ width: 200
230
+ },
231
+ {
232
+ type: 'select',
233
+ name: 'type',
234
+ label: true,
235
+ header: i18next.t('field.type'),
236
+ record: {
237
+ editable: false,
238
+ options: [
239
+ {},
240
+ {
241
+ display: 'Manually Collected',
242
+ value: 'manual'
243
+ },
244
+ {
245
+ display: 'Automatically Collected',
246
+ value: 'automatic'
247
+ }
248
+ ]
249
+ },
250
+ sortable: true,
251
+ filter: true,
252
+ width: 60
253
+ },
254
+ {
255
+ type: 'select',
256
+ name: 'useCase',
257
+ label: true,
258
+ header: i18next.t('field.use-case'),
259
+ record: {
260
+ editable: false,
261
+ options: USECASE_OPTIONS
262
+ },
263
+ sortable: true,
264
+ filter: {
265
+ operator: 'eq',
266
+ options: USECASE_OPTIONS /* in case select options type is a function, filter should have its own options */
267
+ },
268
+ width: 80
269
+ },
270
+ {
271
+ type: 'crontab',
272
+ name: 'schedule',
273
+ label: true,
274
+ header: i18next.t('field.schedule'),
275
+ record: {
276
+ editable: false
277
+ },
278
+ width: 80,
279
+ label: true
280
+ },
281
+ {
282
+ type: 'resource-object',
283
+ name: 'entryRole',
284
+ header: i18next.t('field.entry-role'),
285
+ record: {
286
+ editable: false
287
+ },
288
+ width: 120
289
+ },
290
+ {
291
+ type: 'resource-object',
292
+ name: 'supervisoryRole',
293
+ header: i18next.t('field.supervisory-role'),
294
+ record: {
295
+ editable: false
296
+ },
297
+ width: 120
298
+ },
299
+ {
300
+ type: 'datetime',
301
+ name: 'latestCollectedAt',
302
+ label: true,
303
+ header: i18next.t('field.latest-collected-at'),
304
+ record: {
305
+ editable: false
306
+ },
307
+ width: 180
308
+ },
309
+ {
310
+ type: 'datetime',
311
+ name: 'prevSchedule',
312
+ label: true,
313
+ header: i18next.t('field.prev-schedule'),
314
+ record: {
315
+ editable: false
316
+ },
317
+ width: 180
318
+ },
319
+ {
320
+ type: 'datetime',
321
+ name: 'nextSchedule',
322
+ label: true,
323
+ header: i18next.t('field.next-schedule'),
324
+ record: {
325
+ editable: false
326
+ },
327
+ width: 180
328
+ },
329
+ {
330
+ type: 'string',
331
+ name: 'monitorView',
332
+ hidden: true,
333
+ record: {
334
+ editable: false,
335
+ renderer: function (value, column, record, rowIndex, field) {
336
+ const type = record.monitorType !== 'board' ? 'string' : 'image'
337
+ value = record.monitorType !== 'board' ? value : record.monitorBoard?.thumbnail
338
+
339
+ return getRenderer(type)(value, column, record, rowIndex, field)
340
+ }
341
+ }
342
+ }
343
+ ],
344
+ rows: {
345
+ selectable: {
346
+ multiple: false
347
+ },
348
+ handlers: {
349
+ click: showReportView
350
+ },
351
+ classifier: function (record, rowIndex) {}
352
+ },
353
+ sorters: [
354
+ {
355
+ name: 'name'
356
+ }
357
+ ]
358
+ }
359
+
360
+ await this.updateComplete
361
+
362
+ this.grist.fetch()
363
+ }
364
+
365
+ async pageUpdated(changes, lifecycle) {
366
+ if (this.active) {
367
+ await this.updateComplete
368
+
369
+ var filters = lifecycle.params?.['filters']
370
+ if (filters) {
371
+ try {
372
+ filters = JSON5.parse(filters)
373
+ this.filters = filters
374
+ } catch (e) {
375
+ console.error(`filters parameter parsing error: ${e}`)
376
+ }
377
+ }
378
+
379
+ var sorters = lifecycle.params?.['sorters']
380
+ if (sorters) {
381
+ try {
382
+ sorters = JSON5.parse(sorters)
383
+ this.sorters = sorters
384
+ } catch (e) {
385
+ console.error(`sorters parameter parsing error: ${e}`)
386
+ }
387
+ }
388
+
389
+ this.grist.fetch()
390
+ }
391
+ }
392
+
393
+ async fetchHandler({ page, limit, sortings = [], filters = [] }) {
394
+ const response = await client.query({
395
+ query: gql`
396
+ query ($filters: [Filter!], $pagination: Pagination, $sortings: [Sorting!]) {
397
+ responses: dataSetsForEntry(filters: $filters, pagination: $pagination, sortings: $sortings) {
398
+ items {
399
+ id
400
+ name
401
+ description
402
+ partitionKeys
403
+ active
404
+ type
405
+ useCase
406
+ schedule
407
+ timezone
408
+ entryRole {
409
+ id
410
+ name
411
+ }
412
+ supervisoryRole {
413
+ id
414
+ name
415
+ }
416
+ monitorType
417
+ monitorView
418
+ monitorBoard {
419
+ thumbnail
420
+ }
421
+ reportType
422
+ reportView
423
+ updater {
424
+ id
425
+ name
426
+ }
427
+ updatedAt
428
+ dataItems {
429
+ name
430
+ description
431
+ sequence
432
+ active
433
+ tag
434
+ type
435
+ unit
436
+ options
437
+ quota
438
+ spec
439
+ }
440
+ latestCollectedAt
441
+ nextSchedule
442
+ prevSchedule
443
+ }
444
+ total
445
+ }
446
+ }
447
+ `,
448
+ variables: {
449
+ filters,
450
+ pagination: { page, limit },
451
+ sortings
452
+ }
453
+ })
454
+
455
+ return {
456
+ total: response.data.responses.total || 0,
457
+ records: response.data.responses.items || []
458
+ }
459
+ }
460
+ }
461
+
462
+ window.customElements.define('data-report-list-page', DataReportListPage)
package/client/route.js CHANGED
@@ -19,5 +19,9 @@ export default function route(page) {
19
19
  case 'data-entry-list':
20
20
  import('./pages/data-entry/data-entry-list-page.js')
21
21
  return page
22
+
23
+ case 'data-report-list':
24
+ import('./pages/data-report/data-report-list-page.js')
25
+ return page
22
26
  }
23
27
  }
@@ -11,7 +11,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  var __param = (this && this.__param) || function (paramIndex, decorator) {
12
12
  return function (target, key) { decorator(target, key, paramIndex); }
13
13
  };
14
- var _a, _b;
14
+ var _a, _b, _c;
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
16
  exports.DataSetQuery = void 0;
17
17
  const type_graphql_1 = require("type-graphql");
@@ -38,6 +38,19 @@ let DataSetQuery = class DataSetQuery {
38
38
  return { items, total };
39
39
  }
40
40
  async dataSetsForEntry(params, context) {
41
+ const { domain } = context.state;
42
+ /* TODO. 조회한 사용자가 entry-role을 가진 data-set 리스트만 반환 */
43
+ const { where = {}, order, skip, take } = (0, shell_1.convertListParams)(params, domain.id);
44
+ where.active = (0, typeorm_1.Equal)(true);
45
+ const [items, total] = await (0, typeorm_1.getRepository)(data_set_1.DataSet).findAndCount({
46
+ where,
47
+ order,
48
+ skip,
49
+ take
50
+ });
51
+ return { items, total };
52
+ }
53
+ async dataSetsForReport(params, context) {
41
54
  const { domain } = context.state;
42
55
  /* TODO. 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환 */
43
56
  const { where = {}, order, skip, take } = (0, shell_1.convertListParams)(params, domain.id);
@@ -139,6 +152,14 @@ __decorate([
139
152
  __metadata("design:paramtypes", [typeof (_b = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _b : Object, Object]),
140
153
  __metadata("design:returntype", Promise)
141
154
  ], DataSetQuery.prototype, "dataSetsForEntry", null);
155
+ __decorate([
156
+ (0, type_graphql_1.Query)(returns => data_set_type_1.DataSetList, { description: 'To fetch multiple DataSets to see data report' }),
157
+ __param(0, (0, type_graphql_1.Args)()),
158
+ __param(1, (0, type_graphql_1.Ctx)()),
159
+ __metadata("design:type", Function),
160
+ __metadata("design:paramtypes", [typeof (_c = typeof shell_1.ListParam !== "undefined" && shell_1.ListParam) === "function" ? _c : Object, Object]),
161
+ __metadata("design:returntype", Promise)
162
+ ], DataSetQuery.prototype, "dataSetsForReport", null);
142
163
  __decorate([
143
164
  (0, type_graphql_1.FieldResolver)(type => [data_item_1.DataItem]),
144
165
  __param(0, (0, type_graphql_1.Root)()),
@@ -1 +1 @@
1
- {"version":3,"file":"data-set-query.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-query.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"data-set-query.js","sourceRoot":"","sources":["../../../server/service/data-set/data-set-query.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA8F;AAC9F,qCAA8C;AAE9C,yDAAsD;AACtD,iEAAqD;AACrD,iDAA4E;AAE5E,sDAAiD;AACjD,4DAAuD;AACvD,yCAAoC;AACpC,mDAA6C;AAE7C,IAAI,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAA;AAGnC,IAAa,YAAY,GAAzB,MAAa,YAAY;IAGvB,KAAK,CAAC,OAAO,CAAY,EAAU,EAAS,OAAY;QACtD,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,OAAO,MAAM,IAAA,uBAAa,EAAC,kBAAO,CAAC,CAAC,OAAO,CAAC;YAC1C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;SACtB,CAAC,CAAA;IACJ,CAAC;IAID,KAAK,CAAC,QAAQ,CAAS,MAAiB,EAAS,OAAY;QAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,MAAM,eAAe,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC5D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAO,CAAC,CAAC,YAAY,CAAC,eAAe,CAAC,CAAA;QAEjF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,gBAAgB,CAAS,MAAiB,EAAS,OAAY;QACnE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,oDAAoD;QAEpD,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC9E,KAAK,CAAC,MAAM,GAAG,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;QAE1B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAO,CAAC,CAAC,YAAY,CAAC;YAC/D,KAAK;YACL,KAAK;YACL,IAAI;YACJ,IAAI;SACL,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,iBAAiB,CAAS,MAAiB,EAAS,OAAY;QACpE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;QAEhC,wDAAwD;QAExD,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAA,yBAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAA;QAC9E,KAAK,CAAC,MAAM,GAAG,IAAA,eAAK,EAAC,IAAI,CAAC,CAAA;QAE1B,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,IAAA,uBAAa,EAAC,kBAAO,CAAC,CAAC,YAAY,CAAC;YAC/D,KAAK;YACL,KAAK;YACL,IAAI;YACJ,IAAI;SACL,CAAC,CAAA;QAEF,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAA;IACzB,CAAC;IAGD,KAAK,CAAC,SAAS,CAAS,OAAgB;QACtC,OAAO,MAAM,IAAA,uBAAa,EAAC,oBAAQ,CAAC,CAAC,IAAI,CAAC;YACxC,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAGD,KAAK,CAAC,SAAS,CAAS,OAAgB;QACtC,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;YACvC,EAAE,EAAE,OAAO,CAAC,WAAW;SACxB,CAAC,CAAA;IACJ,CAAC;IAGD,KAAK,CAAC,eAAe,CAAS,OAAgB;QAC5C,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC;YACvC,EAAE,EAAE,OAAO,CAAC,iBAAiB;SAC9B,CAAC,CAAA;IACJ,CAAC;IAGD,KAAK,CAAC,UAAU,CAAS,OAAgB;QACvC,IAAI,OAAO,CAAC,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC,SAAS,EAAE;YACrD,OAAO,MAAM,IAAA,uBAAa,EAAC,qBAAK,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;SACrE;IACH,CAAC;IAGD,KAAK,CAAC,YAAY,CAAS,OAAgB;QACzC,IAAI,OAAO,CAAC,WAAW,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE;YACzD,OAAO,MAAM,IAAA,uBAAa,EAAC,qBAAK,CAAC,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAA;SACvE;IACH,CAAC;IAGD,KAAK,CAAC,MAAM,CAAS,OAAgB;QACnC,OAAO,MAAM,IAAA,uBAAa,EAAC,cAAM,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC9D,CAAC;IAGD,KAAK,CAAC,OAAO,CAAS,OAAgB;QACpC,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC;IAGD,KAAK,CAAC,OAAO,CAAS,OAAgB;QACpC,OAAO,MAAM,IAAA,uBAAa,EAAC,gBAAI,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;IAC7D,CAAC;IAGD,KAAK,CAAC,iBAAiB,CAAS,OAAgB;QAC9C,MAAM,MAAM,GAAG,MAAM,IAAA,uBAAa,EAAC,wBAAU,CAAC,CAAC,OAAO,CAAC;YACrD,MAAM,EAAE,CAAC,aAAa,CAAC;YACvB,KAAK,EAAE,EAAE,OAAO,EAAE;YAClB,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,EAAE;SAC/B,CAAC,CAAA;QAEF,OAAO,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,CAAA;IAC5B,CAAC;IAGD,KAAK,CAAC,YAAY,CAAS,OAAgB;QACzC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAEtC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;SACP;QAED,IAAI,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC9C,EAAE,EAAE,QAAQ;SACb,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAA;IACjC,CAAC;IAGD,KAAK,CAAC,YAAY,CAAS,OAAgB;QACzC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAA;QAEtC,IAAI,CAAC,QAAQ,EAAE;YACb,OAAM;SACP;QAED,IAAI,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE;YAC9C,EAAE,EAAE,QAAQ;SACb,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,MAAM,EAAE,CAAA;IACjC,CAAC;CACF,CAAA;AAnJC;IAFC,IAAA,wBAAS,EAAC,gFAAgF,CAAC;IAC3F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,kBAAO,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;IAClD,WAAA,IAAA,kBAAG,EAAC,IAAI,CAAC,CAAA;IAAc,WAAA,IAAA,kBAAG,GAAE,CAAA;;;;2CAM1C;AAID;IAFC,IAAA,wBAAS,EAAC,gFAAgF,CAAC;IAC3F,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,2BAAW,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IAC7D,WAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,kBAAG,GAAE,CAAA;;yDAAjB,iBAAS,oBAAT,iBAAS;;4CAOvC;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,2BAAW,EAAE,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC;IAC7E,WAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,kBAAG,GAAE,CAAA;;yDAAjB,iBAAS,oBAAT,iBAAS;;oDAgB/C;AAGD;IADC,IAAA,oBAAK,EAAC,OAAO,CAAC,EAAE,CAAC,2BAAW,EAAE,EAAE,WAAW,EAAE,+CAA+C,EAAE,CAAC;IACvE,WAAA,IAAA,mBAAI,GAAE,CAAA;IAAqB,WAAA,IAAA,kBAAG,GAAE,CAAA;;yDAAjB,iBAAS,oBAAT,iBAAS;;qDAgBhD;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,CAAC,oBAAQ,CAAC,CAAC;IACjB,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;6CAIvC;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACX,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;6CAIvC;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACL,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;mDAI7C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/B,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;8CAIxC;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,qBAAK,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC7B,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;gDAI1C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,cAAM,CAAC;IAChB,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;0CAEpC;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;2CAErC;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,gBAAI,CAAC;IACb,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;2CAErC;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACvB,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;qDAQ/C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;gDAY1C;AAGD;IADC,IAAA,4BAAa,EAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC5B,WAAA,IAAA,mBAAI,GAAE,CAAA;;qCAAU,kBAAO;;gDAY1C;AArJU,YAAY;IADxB,IAAA,uBAAQ,EAAC,kBAAO,CAAC;GACL,YAAY,CAsJxB;AAtJY,oCAAY"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/dataset",
3
- "version": "5.0.0-alpha.33",
3
+ "version": "5.0.0-alpha.34",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "client/index.js",
6
6
  "things-factory": true,
@@ -33,13 +33,13 @@
33
33
  "@operato/shell": "1.0.0-beta.2",
34
34
  "@operato/styles": "1.0.0-beta.2",
35
35
  "@operato/utils": "1.0.0-beta.2",
36
- "@things-factory/auth-base": "^5.0.0-alpha.33",
37
- "@things-factory/board-service": "^5.0.0-alpha.33",
38
- "@things-factory/env": "^5.0.0-alpha.33",
39
- "@things-factory/shell": "^5.0.0-alpha.33",
40
- "@things-factory/work-shift": "^5.0.0-alpha.33",
36
+ "@things-factory/auth-base": "^5.0.0-alpha.34",
37
+ "@things-factory/board-service": "^5.0.0-alpha.34",
38
+ "@things-factory/env": "^5.0.0-alpha.34",
39
+ "@things-factory/shell": "^5.0.0-alpha.34",
40
+ "@things-factory/work-shift": "^5.0.0-alpha.34",
41
41
  "cron-parser": "^4.3.0",
42
42
  "moment-timezone": "^0.5.34"
43
43
  },
44
- "gitHead": "b4e81d2d5675c7eeda5c83425d355128b00c9acb"
44
+ "gitHead": "746cbf6ef3238389fbd049565c1f860cd79b51c2"
45
45
  }
@@ -39,6 +39,25 @@ export class DataSetQuery {
39
39
  async dataSetsForEntry(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
40
40
  const { domain } = context.state
41
41
 
42
+ /* TODO. 조회한 사용자가 entry-role을 가진 data-set 리스트만 반환 */
43
+
44
+ const { where = {}, order, skip, take } = convertListParams(params, domain.id)
45
+ where.active = Equal(true)
46
+
47
+ const [items, total] = await getRepository(DataSet).findAndCount({
48
+ where,
49
+ order,
50
+ skip,
51
+ take
52
+ })
53
+
54
+ return { items, total }
55
+ }
56
+
57
+ @Query(returns => DataSetList, { description: 'To fetch multiple DataSets to see data report' })
58
+ async dataSetsForReport(@Args() params: ListParam, @Ctx() context: any): Promise<DataSetList> {
59
+ const { domain } = context.state
60
+
42
61
  /* TODO. 조회한 사용자가 supervisory 역할을 가진 data-set 리스트만 반환 */
43
62
 
44
63
  const { where = {}, order, skip, take } = convertListParams(params, domain.id)
@@ -23,6 +23,10 @@ export default {
23
23
  {
24
24
  tagname: 'data-entry-list-page',
25
25
  page: 'data-entry-list'
26
+ },
27
+ {
28
+ tagname: 'data-report-list-page',
29
+ page: 'data-report-list'
26
30
  }
27
31
  ],
28
32
  bootstrap