@things-factory/dataset 5.0.2 → 5.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/client/pages/data-key-set/data-key-item-list.js +196 -0
  2. package/client/pages/data-key-set/data-key-set-importer.js +107 -0
  3. package/client/pages/data-key-set/data-key-set-list-page.js +354 -0
  4. package/client/pages/data-ooc/data-ooc-list-page.js +60 -0
  5. package/client/pages/data-sample/data-sample-list-page.js +55 -16
  6. package/client/pages/data-sample/data-sample-search-page.js +402 -0
  7. package/client/pages/data-sample/data-sample-view.js +48 -33
  8. package/client/pages/data-set/data-set-list-page.js +20 -1
  9. package/client/route.js +9 -1
  10. package/dist-server/controllers/create-data-sample.js +15 -3
  11. package/dist-server/controllers/create-data-sample.js.map +1 -1
  12. package/dist-server/service/data-key-set/data-key-item-type.js +58 -0
  13. package/dist-server/service/data-key-set/data-key-item-type.js.map +1 -0
  14. package/dist-server/service/data-key-set/data-key-set-mutation.js +179 -0
  15. package/dist-server/service/data-key-set/data-key-set-mutation.js.map +1 -0
  16. package/dist-server/service/data-key-set/data-key-set-query.js +110 -0
  17. package/dist-server/service/data-key-set/data-key-set-query.js.map +1 -0
  18. package/dist-server/service/data-key-set/data-key-set-type.js +94 -0
  19. package/dist-server/service/data-key-set/data-key-set-type.js.map +1 -0
  20. package/dist-server/service/data-key-set/data-key-set.js +101 -0
  21. package/dist-server/service/data-key-set/data-key-set.js.map +1 -0
  22. package/dist-server/service/data-key-set/index.js +9 -0
  23. package/dist-server/service/data-key-set/index.js.map +1 -0
  24. package/dist-server/service/data-ooc/data-ooc.js +32 -0
  25. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  26. package/dist-server/service/data-sample/data-sample-query.js +29 -1
  27. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  28. package/dist-server/service/data-sample/data-sample.js +42 -0
  29. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  30. package/dist-server/service/data-set/data-item-type.js +1 -1
  31. package/dist-server/service/data-set/data-item-type.js.map +1 -1
  32. package/dist-server/service/data-set/data-set-query.js +14 -0
  33. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  34. package/dist-server/service/data-set/data-set-type.js +14 -6
  35. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  36. package/dist-server/service/data-set/data-set.js +32 -54
  37. package/dist-server/service/data-set/data-set.js.map +1 -1
  38. package/dist-server/service/index.js +4 -1
  39. package/dist-server/service/index.js.map +1 -1
  40. package/package.json +2 -2
  41. package/server/controllers/create-data-sample.ts +19 -12
  42. package/server/service/data-key-set/data-key-item-type.ts +31 -0
  43. package/server/service/data-key-set/data-key-set-mutation.ts +198 -0
  44. package/server/service/data-key-set/data-key-set-query.ts +65 -0
  45. package/server/service/data-key-set/data-key-set-type.ts +57 -0
  46. package/server/service/data-key-set/data-key-set.ts +81 -0
  47. package/server/service/data-key-set/index.ts +6 -0
  48. package/server/service/data-ooc/data-ooc.ts +20 -0
  49. package/server/service/data-sample/data-sample-query.ts +29 -0
  50. package/server/service/data-sample/data-sample.ts +34 -0
  51. package/server/service/data-set/data-item-type.ts +1 -1
  52. package/server/service/data-set/data-set-query.ts +11 -0
  53. package/server/service/data-set/data-set-type.ts +6 -0
  54. package/server/service/data-set/data-set.ts +24 -48
  55. package/server/service/index.ts +4 -1
  56. package/things-factory.config.js +8 -0
  57. package/translations/en.json +11 -0
  58. package/translations/ko.json +11 -0
  59. package/translations/ms.json +12 -1
  60. package/translations/zh.json +11 -0
@@ -0,0 +1,57 @@
1
+ import type { FileUpload } from 'graphql-upload/GraphQLUpload.js'
2
+ import GraphQLUpload from 'graphql-upload/GraphQLUpload.js'
3
+ import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
4
+
5
+ import { DataKeyItemPatch } from './data-key-item-type'
6
+ import { DataKeySet } from './data-key-set'
7
+
8
+ @InputType()
9
+ export class NewDataKeySet {
10
+ @Field()
11
+ name: string
12
+
13
+ @Field({ nullable: true })
14
+ description?: string
15
+
16
+ @Field({ nullable: true })
17
+ active?: boolean
18
+
19
+ @Field(type => [DataKeyItemPatch], { nullable: true })
20
+ dataKeyItems?: DataKeyItemPatch[]
21
+
22
+ @Field(type => GraphQLUpload, { nullable: true })
23
+ thumbnail?: FileUpload
24
+ }
25
+
26
+ @InputType()
27
+ export class DataKeySetPatch {
28
+ @Field(type => ID, { nullable: true })
29
+ id?: string
30
+
31
+ @Field({ nullable: true })
32
+ name?: string
33
+
34
+ @Field({ nullable: true })
35
+ description?: string
36
+
37
+ @Field({ nullable: true })
38
+ active?: boolean
39
+
40
+ @Field(type => [DataKeyItemPatch], { nullable: true })
41
+ dataKeyItems?: DataKeyItemPatch[]
42
+
43
+ @Field(type => GraphQLUpload, { nullable: true })
44
+ thumbnail?: FileUpload
45
+
46
+ @Field({ nullable: true })
47
+ cuFlag?: string
48
+ }
49
+
50
+ @ObjectType()
51
+ export class DataKeySetList {
52
+ @Field(type => [DataKeySet])
53
+ items: DataKeySet[]
54
+
55
+ @Field(type => Int)
56
+ total: number
57
+ }
@@ -0,0 +1,81 @@
1
+ import { Field, ID, ObjectType } from 'type-graphql'
2
+ import {
3
+ Column,
4
+ CreateDateColumn,
5
+ Entity,
6
+ Index,
7
+ ManyToOne,
8
+ PrimaryGeneratedColumn,
9
+ RelationId,
10
+ UpdateDateColumn
11
+ } from 'typeorm'
12
+
13
+ import { User } from '@things-factory/auth-base'
14
+ import { Domain } from '@things-factory/shell'
15
+
16
+ import { DataKeyItem } from './data-key-item-type'
17
+
18
+ @Entity()
19
+ @Index('ix_data_key_set_0', (dataKeySet: DataKeySet) => [dataKeySet.domain, dataKeySet.name], { unique: true })
20
+ @ObjectType({ description: 'Entity for DataKeySet' })
21
+ export class DataKeySet {
22
+ @PrimaryGeneratedColumn('uuid')
23
+ @Field(type => ID)
24
+ readonly id: string
25
+
26
+ @ManyToOne(type => Domain)
27
+ @Field({ nullable: true })
28
+ domain?: Domain
29
+
30
+ @RelationId((dataKeySet: DataKeySet) => dataKeySet.domain)
31
+ domainId?: string
32
+
33
+ @Column()
34
+ @Field()
35
+ name: string
36
+
37
+ @Column({
38
+ nullable: true
39
+ })
40
+ @Field({ nullable: true })
41
+ description?: string
42
+
43
+ @Column({
44
+ nullable: true
45
+ })
46
+ @Field({ nullable: true })
47
+ active?: boolean
48
+
49
+ @Column('simple-json', { nullable: true })
50
+ @Field(type => [DataKeyItem], { nullable: true })
51
+ dataKeyItems: DataKeyItem[]
52
+
53
+ @CreateDateColumn()
54
+ @Field({ nullable: true })
55
+ createdAt?: Date
56
+
57
+ @UpdateDateColumn()
58
+ @Field({ nullable: true })
59
+ updatedAt?: Date
60
+
61
+ @ManyToOne(type => User, {
62
+ nullable: true
63
+ })
64
+ @Field({ nullable: true })
65
+ creator?: User
66
+
67
+ @RelationId((dataKeySet: DataKeySet) => dataKeySet.creator)
68
+ creatorId?: string
69
+
70
+ @ManyToOne(type => User, {
71
+ nullable: true
72
+ })
73
+ @Field({ nullable: true })
74
+ updater?: User
75
+
76
+ @RelationId((dataKeySet: DataKeySet) => dataKeySet.creator)
77
+ updaterId?: string
78
+
79
+ @Field(type => String, { nullable: true })
80
+ thumbnail?: string
81
+ }
@@ -0,0 +1,6 @@
1
+ import { DataKeySet } from './data-key-set'
2
+ import { DataKeySetQuery } from './data-key-set-query'
3
+ import { DataKeySetMutation } from './data-key-set-mutation'
4
+
5
+ export const entities = [DataKeySet]
6
+ export const resolvers = [DataKeySetQuery, DataKeySetMutation]
@@ -109,6 +109,26 @@ export class DataOoc {
109
109
  @Field({ nullable: true })
110
110
  useCase?: string
111
111
 
112
+ @Column({ nullable: true, default: '' })
113
+ @Field({ nullable: true })
114
+ key01?: string = ''
115
+
116
+ @Column({ nullable: true, default: '' })
117
+ @Field({ nullable: true })
118
+ key02?: string = ''
119
+
120
+ @Column({ nullable: true, default: '' })
121
+ @Field({ nullable: true })
122
+ key03?: string = ''
123
+
124
+ @Column({ nullable: true, default: '' })
125
+ @Field({ nullable: true })
126
+ key04?: string = ''
127
+
128
+ @Column({ nullable: true, default: '' })
129
+ @Field({ nullable: true })
130
+ key05?: string = ''
131
+
112
132
  @Column('simple-json', { nullable: true })
113
133
  @Field(type => ScalarObject, { nullable: true })
114
134
  partitionKeys?: ScalarObject
@@ -4,6 +4,7 @@ import { getRepository } from 'typeorm'
4
4
  import { User } from '@things-factory/auth-base'
5
5
  import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
6
6
 
7
+ import { DataKeySet } from '../data-key-set/data-key-set'
7
8
  import { DataSetHistory } from '../data-set-history/data-set-history'
8
9
  import { DataItem } from '../data-set/data-item-type'
9
10
  import { DataSet } from '../data-set/data-set'
@@ -39,6 +40,34 @@ export class DataSampleQuery {
39
40
  return { items, total }
40
41
  }
41
42
 
43
+ @Directive('@privilege(category: "data-sample", privilege: "query", domainOwnerGranted: true)')
44
+ @Query(returns => DataSampleList, { description: 'To fetch multiple data samples by data key set' })
45
+ async dataSamplesByDataKeySet(
46
+ @Arg('dataKeySetId') dataKeySetId: string,
47
+ @Args() params: ListParam,
48
+ @Ctx() context: any
49
+ ): Promise<DataSampleList> {
50
+ const { domain } = context.state
51
+
52
+ const dataKeySet = await getRepository(DataKeySet).findOne(dataKeySetId)
53
+ const dataKeyItems = dataKeySet?.dataKeyItems || []
54
+ const searchables = dataKeyItems.map((item, index) => `key0${index + 1}`)
55
+
56
+ const queryBuilder = getQueryBuilderFromListParams({
57
+ repository: getRepository(DataSample),
58
+ params,
59
+ domain,
60
+ alias: 'dks',
61
+ searchables: ['name', 'description'].concat(searchables)
62
+ }).innerJoin('dks.dataSet', 'ds', 'ds.dataKeySet = :dataKeySetId', {
63
+ dataKeySetId
64
+ })
65
+
66
+ const [items, total] = await queryBuilder.getManyAndCount()
67
+
68
+ return { items, total }
69
+ }
70
+
42
71
  @FieldResolver(type => [DataItem])
43
72
  async dataItems(@Root() dataSample: DataSample): Promise<DataItem[]> {
44
73
  const dataSetHistory: DataSetHistory = await getRepository(DataSetHistory).findOne({
@@ -25,6 +25,20 @@ const DATABASE_TYPE = ORMCONFIG.type
25
25
  (dataSample: DataSample) => [dataSample.domain, dataSample.dataSet, dataSample.collectedAt],
26
26
  { unique: false }
27
27
  )
28
+ @Index(
29
+ 'ix_data_sample_1',
30
+ (dataSample: DataSample) => [
31
+ dataSample.domain,
32
+ dataSample.dataSet,
33
+ dataSample.key01,
34
+ dataSample.key02,
35
+ dataSample.key03,
36
+ dataSample.key04,
37
+ dataSample.key05,
38
+ dataSample.collectedAt
39
+ ],
40
+ { unique: false }
41
+ )
28
42
  @ObjectType({ description: 'Entity for DataSample' })
29
43
  export class DataSample {
30
44
  @PrimaryGeneratedColumn('uuid')
@@ -116,6 +130,26 @@ export class DataSample {
116
130
  @Field({ nullable: true })
117
131
  oos?: boolean
118
132
 
133
+ @Column({ nullable: true, default: '' })
134
+ @Field({ nullable: true })
135
+ key01?: string = ''
136
+
137
+ @Column({ nullable: true, default: '' })
138
+ @Field({ nullable: true })
139
+ key02?: string = ''
140
+
141
+ @Column({ nullable: true, default: '' })
142
+ @Field({ nullable: true })
143
+ key03?: string = ''
144
+
145
+ @Column({ nullable: true, default: '' })
146
+ @Field({ nullable: true })
147
+ key04?: string = ''
148
+
149
+ @Column({ nullable: true, default: '' })
150
+ @Field({ nullable: true })
151
+ key05?: string = ''
152
+
119
153
  @Column({ nullable: true })
120
154
  @Field({ nullable: true })
121
155
  workDate?: string
@@ -12,7 +12,7 @@ export enum DataItemType {
12
12
 
13
13
  registerEnumType(DataItemType, {
14
14
  name: 'DataItemType',
15
- description: 'state enumeration of a data-item'
15
+ description: 'type enumeration of a data-item'
16
16
  })
17
17
 
18
18
  @ObjectType({ description: 'Entity for DataItem' })
@@ -7,6 +7,7 @@ import { Board } from '@things-factory/board-service'
7
7
  import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
8
8
 
9
9
  import { DataItem } from '../data-item/data-item'
10
+ import { DataKeySet } from '../data-key-set/data-key-set'
10
11
  import { DataSample } from '../data-sample/data-sample'
11
12
  import { DataSet } from './data-set'
12
13
  import { DataSetList } from './data-set-type'
@@ -147,6 +148,16 @@ export class DataSetQuery {
147
148
  }
148
149
  }
149
150
 
151
+ @FieldResolver(type => DataKeySet, { nullable: true })
152
+ async dataKeySet(@Root() dataSet: DataSet) {
153
+ return (
154
+ dataSet.dataKeySet ||
155
+ (await getRepository(DataKeySet).findOne({
156
+ id: dataSet.dataKeySetId
157
+ }))
158
+ )
159
+ }
160
+
150
161
  @FieldResolver(type => Domain)
151
162
  async domain(@Root() dataSet: DataSet): Promise<Domain> {
152
163
  return await getRepository(Domain).findOne(dataSet.domainId)
@@ -15,6 +15,9 @@ export class NewDataSet {
15
15
  @Field({ nullable: true })
16
16
  description?: string
17
17
 
18
+ @Field(type => ObjectRef, { nullable: true })
19
+ dataKeySet?: ObjectRef
20
+
18
21
  @Field(type => ObjectRef, { nullable: true })
19
22
  entryRole?: ObjectRef
20
23
 
@@ -75,6 +78,9 @@ export class DataSetPatch {
75
78
  @Field({ nullable: true })
76
79
  description?: string
77
80
 
81
+ @Field(type => ObjectRef, { nullable: true })
82
+ dataKeySet?: ObjectRef
83
+
78
84
  @Field(type => ObjectRef, { nullable: true })
79
85
  supervisoryRole?: ObjectRef
80
86
 
@@ -14,6 +14,7 @@ import {
14
14
  import { Role, User } from '@things-factory/auth-base'
15
15
  import { Domain, ScalarObject } from '@things-factory/shell'
16
16
 
17
+ import { DataKeySet } from '../data-key-set/data-key-set'
17
18
  import { DataItem } from './data-item-type'
18
19
 
19
20
  export enum DataSetEntryType {
@@ -71,9 +72,7 @@ export class DataSet {
71
72
  @Field()
72
73
  name: string
73
74
 
74
- @Column({
75
- nullable: true
76
- })
75
+ @Column({ nullable: true })
77
76
  @Field({ nullable: true })
78
77
  description?: string
79
78
 
@@ -81,78 +80,63 @@ export class DataSet {
81
80
  @Field({ nullable: true })
82
81
  version?: number = 1
83
82
 
84
- @Column({
85
- nullable: true
86
- })
83
+ @Column({ nullable: true })
87
84
  @Field({ nullable: true })
88
85
  active?: boolean
89
86
 
90
- @ManyToOne(type => Role, {
91
- nullable: true
92
- })
87
+ @ManyToOne(type => DataKeySet, { nullable: true })
88
+ @Field(type => DataKeySet, { nullable: true })
89
+ dataKeySet?: Role
90
+
91
+ @RelationId((dataSet: DataSet) => dataSet.dataKeySet)
92
+ dataKeySetId?: string
93
+
94
+ @ManyToOne(type => Role, { nullable: true })
93
95
  @Field(type => Role, { nullable: true })
94
96
  entryRole?: Role
95
97
 
96
98
  @RelationId((dataSet: DataSet) => dataSet.entryRole)
97
99
  entryRoleId?: string
98
100
 
99
- @ManyToOne(type => Role, {
100
- nullable: true
101
- })
101
+ @ManyToOne(type => Role, { nullable: true })
102
102
  @Field(type => Role, { nullable: true })
103
103
  supervisoryRole?: Role
104
104
 
105
105
  @RelationId((dataSet: DataSet) => dataSet.supervisoryRole)
106
106
  supervisoryRoleId?: string
107
107
 
108
- @Column({
109
- nullable: true
110
- })
108
+ @Column({ nullable: true })
111
109
  @Field({ nullable: true })
112
110
  type?: 'manual' | 'automatic' | string
113
111
 
114
- @Column({
115
- nullable: true
116
- })
112
+ @Column({ nullable: true })
117
113
  @Field({ nullable: true })
118
114
  entryType?: DataSetEntryType
119
115
 
120
- @Column({
121
- nullable: true
122
- })
116
+ @Column({ nullable: true })
123
117
  @Field({ nullable: true })
124
118
  entryView?: string
125
119
 
126
- @Column({
127
- nullable: true
128
- })
120
+ @Column({ nullable: true })
129
121
  @Field({ nullable: true })
130
122
  monitorType?: DataSetMonitorType
131
123
 
132
- @Column({
133
- nullable: true
134
- })
124
+ @Column({ nullable: true })
135
125
  @Field({ nullable: true })
136
126
  monitorView?: string
137
127
 
138
- @Column({
139
- nullable: true
140
- })
128
+ @Column({ nullable: true })
141
129
  @Field({ nullable: true })
142
130
  reportType?: DataSetReportType
143
131
 
144
- @Column({
145
- nullable: true
146
- })
132
+ @Column({ nullable: true })
147
133
  @Field({ nullable: true })
148
134
  reportView?: string
149
135
 
150
136
  @Field({ nullable: true })
151
137
  reportTemplate?: string
152
138
 
153
- @Column({
154
- nullable: true
155
- })
139
+ @Column({ nullable: true })
156
140
  @Field({ nullable: true })
157
141
  useCase?: string
158
142
 
@@ -164,15 +148,11 @@ export class DataSet {
164
148
  @Field(type => [DataItem], { nullable: true })
165
149
  dataItems: DataItem[]
166
150
 
167
- @Column({
168
- nullable: true
169
- })
151
+ @Column({ nullable: true })
170
152
  @Field({ nullable: true })
171
153
  schedule?: string
172
154
 
173
- @Column({
174
- nullable: true
175
- })
155
+ @Column({ nullable: true })
176
156
  @Field({ nullable: true })
177
157
  timezone?: string
178
158
 
@@ -184,18 +164,14 @@ export class DataSet {
184
164
  @Field({ nullable: true })
185
165
  updatedAt?: Date
186
166
 
187
- @ManyToOne(type => User, {
188
- nullable: true
189
- })
167
+ @ManyToOne(type => User, { nullable: true })
190
168
  @Field({ nullable: true })
191
169
  creator?: User
192
170
 
193
171
  @RelationId((dataSet: DataSet) => dataSet.creator)
194
172
  creatorId?: string
195
173
 
196
- @ManyToOne(type => User, {
197
- nullable: true
198
- })
174
+ @ManyToOne(type => User, { nullable: true })
199
175
  @Field({ nullable: true })
200
176
  updater?: User
201
177
 
@@ -1,5 +1,5 @@
1
1
  import { entities as DataItemEntities } from './data-item'
2
- /* IMPORT ENTITIES AND RESOLVERS */
2
+ import { entities as DataKeySetEntities, resolvers as DataKeySetResolvers } from './data-key-set'
3
3
  import { entities as DataOocEntities, resolvers as DataOocResolvers } from './data-ooc'
4
4
  import { entities as DataSampleEntities, resolvers as DataSampleResolvers } from './data-sample'
5
5
  import { entities as DataSensorEntities, resolvers as DataSensorResolvers } from './data-sensor'
@@ -12,6 +12,7 @@ import {
12
12
  import { entities as DataSpecEntities, resolvers as DataSpecResolvers } from './data-spec'
13
13
 
14
14
  /* EXPORT ENTITY TYPES */
15
+ export * from './data-key-set/data-key-set'
15
16
  export * from './data-ooc/data-ooc'
16
17
  export * from './data-sensor/data-sensor'
17
18
  export * from './data-sample/data-sample'
@@ -22,6 +23,7 @@ export * from './data-spec/data-spec'
22
23
 
23
24
  export const entities = [
24
25
  /* ENTITIES */
26
+ ...DataKeySetEntities,
25
27
  ...DataItemEntities,
26
28
  ...DataOocEntities,
27
29
  ...DataSensorEntities,
@@ -39,6 +41,7 @@ export const subscribers = [
39
41
  export const schema = {
40
42
  resolverClasses: [
41
43
  /* RESOLVER CLASSES */
44
+ ...DataKeySetResolvers,
42
45
  ...DataOocResolvers,
43
46
  ...DataSensorResolvers,
44
47
  ...DataSampleResolvers,
@@ -16,6 +16,10 @@ export default {
16
16
  tagname: 'data-sample-list-page',
17
17
  page: 'data-sample-list'
18
18
  },
19
+ {
20
+ tagname: 'data-sample-search-page',
21
+ page: 'data-sample-search'
22
+ },
19
23
  {
20
24
  tagname: 'data-ooc-list-page',
21
25
  page: 'data-ooc-list'
@@ -44,6 +48,10 @@ export default {
44
48
  tagname: 'data-report-embed-page',
45
49
  page: 'data-report-embed'
46
50
  },
51
+ {
52
+ tagname: 'data-key-set-list-page',
53
+ page: 'data-key-set-list'
54
+ }
47
55
  ],
48
56
  bootstrap
49
57
  }
@@ -7,6 +7,8 @@
7
7
  "field.corrector": "corrector",
8
8
  "field.corrected-at": "corrected at",
9
9
  "field.data": "data",
10
+ "field.data-key": "data key",
11
+ "field.data-key-set": "data key set",
10
12
  "field.data-sample": "data sample",
11
13
  "field.data-set": "data set",
12
14
  "field.device-id": "device id",
@@ -14,6 +16,11 @@
14
16
  "field.entry-type": "entry type",
15
17
  "field.entry-view": "entry view",
16
18
  "field.hidden": "hidden",
19
+ "field.key-01": "key 1",
20
+ "field.key-02": "key 2",
21
+ "field.key-03": "key 3",
22
+ "field.key-04": "key 4",
23
+ "field.key-05": "key 5",
17
24
  "field.latest-collected-at": "latest collected at",
18
25
  "field.monitor-type": "monitor type",
19
26
  "field.monitor-view": "monitor view",
@@ -34,6 +41,7 @@
34
41
  "field.spec": "spec",
35
42
  "field.status": "status",
36
43
  "field.supervisory-role": "supervisory role",
44
+ "field.t-key": "translation key",
37
45
  "field.tag": "tag name",
38
46
  "field.unit": "unit",
39
47
  "field.use-case": "use case",
@@ -51,12 +59,15 @@
51
59
  "text.manually collected": "manually collected",
52
60
  "title.data-entry-form": "data entry form",
53
61
  "title.data-entry list": "data entry list",
62
+ "title.data-key-item list": "data key item list",
63
+ "title.data-key-set list": "data key set list",
54
64
  "title.data-item list": "data item list",
55
65
  "title.data-monitor-view": "data monitor view",
56
66
  "title.data-report-view": "data report view",
57
67
  "title.data-ooc list": "data OOC list",
58
68
  "title.data-ooc view": "data OOC view",
59
69
  "title.data-sample list": "data sample list",
70
+ "title.data-sample search": "data sample search",
60
71
  "title.data-sample view": "data sample view",
61
72
  "title.data-sensor list": "data sensor list",
62
73
  "title.data-set list": "data set list",
@@ -9,11 +9,18 @@
9
9
  "field.data-sample": "데이타 샘플",
10
10
  "field.data-set": "데이타셋",
11
11
  "field.data": "데이타",
12
+ "field.data-key": "데이타 키",
13
+ "field.data-key-set": "데이타 키셋",
12
14
  "field.device-id": "디바이스 아이디",
13
15
  "field.entry-role": "입력담당 역할",
14
16
  "field.entry-type": "입력용 화면종류",
15
17
  "field.entry-view": "입력용 화면",
16
18
  "field.hidden": "숨기기",
19
+ "field.key-01": "데이타키 1",
20
+ "field.key-02": "데이타키 2",
21
+ "field.key-03": "데이타키 3",
22
+ "field.key-04": "데이타키 4",
23
+ "field.key-05": "데이타키 5",
17
24
  "field.latest-collected-at": "최근 수집 시간",
18
25
  "field.monitor-type": "모니터용 화면종류",
19
26
  "field.monitor-view": "모니터용 화면",
@@ -34,6 +41,7 @@
34
41
  "field.spec": "명세",
35
42
  "field.status": "상태",
36
43
  "field.supervisory-role": "관리자 역할",
44
+ "field.t-key": "번역 키",
37
45
  "field.tag": "태그이름",
38
46
  "field.unit": "단위",
39
47
  "field.use-case": "사용 사례",
@@ -50,12 +58,15 @@
50
58
  "text.data sample created successfully": "데이타 샘플이 성공적으로 생성되었습니다",
51
59
  "text.manually collected": "수동 수집",
52
60
  "title.data-entry-form": "데이타 입력",
61
+ "title.data-key-item list": "데이타 키 상세",
62
+ "title.data-key-set list": "데이타 키셋 조회",
53
63
  "title.data-item list": "데이타 아이템 조회",
54
64
  "title.data-monitor-view": "데이타 모니터",
55
65
  "title.data-ooc list": "데이타 이탈점 조회",
56
66
  "title.data-ooc view": "데이타 이탈점 상세",
57
67
  "title.data-report-view": "데이타 리포트",
58
68
  "title.data-sample list": "데이타 샘플 조회",
69
+ "title.data-sample search": "데이타 샘플 검색",
59
70
  "title.data-sample view": "데이타 샘플 상세",
60
71
  "title.data-sensor list": "데이타 센서 조회",
61
72
  "title.data-set list": "데이타 셋 조회",
@@ -7,12 +7,20 @@
7
7
  "field.corrector": "corrector",
8
8
  "field.corrected-at": "corrected at",
9
9
  "field.data": "data",
10
+ "field.data-key": "data key",
11
+ "field.data-key-set": "data key set",
10
12
  "field.data-sample": "data sample",
11
13
  "field.data-set": "data set",
12
14
  "field.device-id": "device id",
13
15
  "field.entry-role": "entry role",
14
16
  "field.entry-type": "entry type",
15
17
  "field.entry-view": "entry view",
18
+ "field.hidden": "hidden",
19
+ "field.key-01": "key 1",
20
+ "field.key-02": "key 2",
21
+ "field.key-03": "key 3",
22
+ "field.key-04": "key 4",
23
+ "field.key-05": "key 5",
16
24
  "field.latest-collected-at": "latest collected at",
17
25
  "field.monitor-type": "monitor type",
18
26
  "field.monitor-view": "monitor view",
@@ -21,7 +29,6 @@
21
29
  "field.oos": "out of critical limit",
22
30
  "field.ooc": "out of control limit",
23
31
  "field.options": "options",
24
- "field.hidden": "hidden",
25
32
  "field.partition-keys": "partition keys",
26
33
  "field.prev-schedule": "previous schedule",
27
34
  "field.quota": "sampling #",
@@ -33,6 +40,7 @@
33
40
  "field.spec": "spec",
34
41
  "field.status": "keadaan",
35
42
  "field.supervisory-role": "supervisory role",
43
+ "field.t-key": "translation key",
36
44
  "field.tag": "tag name",
37
45
  "field.unit": "unit",
38
46
  "field.use-case": "use case",
@@ -49,12 +57,15 @@
49
57
  "text.data ooc updated successfully": "a data ooc updated successfully",
50
58
  "text.manually collected": "manually collected",
51
59
  "title.data-entry-form": "data entry form",
60
+ "title.data-key-item list": "data key item list",
61
+ "title.data-key-set list": "data key set list",
52
62
  "title.data-item list": "data item list",
53
63
  "title.data-monitor-view": "data monitor view",
54
64
  "title.data-report-view": "data report view",
55
65
  "title.data-ooc list": "data OOC list",
56
66
  "title.data-ooc view": "data OOC view",
57
67
  "title.data-sample list": "data sample list",
68
+ "title.data-sample search": "data sample search",
58
69
  "title.data-sample view": "data sample view",
59
70
  "title.data-sensor list": "data sensor list",
60
71
  "title.data-set list": "data set list",