@things-factory/dataset 7.1.34 → 7.1.38

Sign up to get free protection for your applications and to get access to all the features.
Files changed (78) hide show
  1. package/client/activities/activity-ooc-resolve-edit.ts +1 -1
  2. package/client/activities/activity-ooc-review-edit.ts +1 -1
  3. package/client/pages/data-entry/data-entry-list-page.ts +7 -0
  4. package/client/pages/data-set/data-set-list-page.ts +24 -15
  5. package/dist-client/activities/activity-ooc-resolve-edit.js +1 -1
  6. package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
  7. package/dist-client/activities/activity-ooc-review-edit.js +1 -1
  8. package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
  9. package/dist-client/pages/data-entry/data-entry-list-page.js +7 -0
  10. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  11. package/dist-client/pages/data-set/data-set-list-page.js +24 -15
  12. package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
  13. package/dist-client/tsconfig.tsbuildinfo +1 -1
  14. package/dist-server/activities/activity-data-collect.d.ts +1 -0
  15. package/dist-server/activities/activity-data-collect.js +1 -0
  16. package/dist-server/activities/activity-data-collect.js.map +1 -1
  17. package/dist-server/activities/activity-data-review.d.ts +1 -0
  18. package/dist-server/activities/activity-data-review.js +1 -0
  19. package/dist-server/activities/activity-data-review.js.map +1 -1
  20. package/dist-server/activities/activity-ooc-resolve.d.ts +1 -0
  21. package/dist-server/activities/activity-ooc-resolve.js +1 -0
  22. package/dist-server/activities/activity-ooc-resolve.js.map +1 -1
  23. package/dist-server/activities/activity-ooc-review.d.ts +1 -0
  24. package/dist-server/activities/activity-ooc-review.js +14 -5
  25. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  26. package/dist-server/controllers/create-data-sample.js +18 -12
  27. package/dist-server/controllers/create-data-sample.js.map +1 -1
  28. package/dist-server/controllers/issue-data-collection-task.d.ts +2 -0
  29. package/dist-server/controllers/{issue-collect-data.js → issue-data-collection-task.js} +13 -10
  30. package/dist-server/controllers/issue-data-collection-task.js.map +1 -0
  31. package/dist-server/engine/task/issue-collect-data.js +2 -2
  32. package/dist-server/engine/task/issue-collect-data.js.map +1 -1
  33. package/dist-server/routes.js +5 -3
  34. package/dist-server/routes.js.map +1 -1
  35. package/dist-server/service/data-ooc/index.d.ts +1 -1
  36. package/dist-server/service/data-sample/data-sample-query.d.ts +1 -1
  37. package/dist-server/service/data-sample/data-sample-query.js +3 -3
  38. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  39. package/dist-server/service/data-set/data-set-mutation.js +8 -65
  40. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  41. package/dist-server/service/data-set/data-set-query.d.ts +1 -0
  42. package/dist-server/service/data-set/data-set-query.js +15 -0
  43. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  44. package/dist-server/service/data-set/data-set-type.d.ts +4 -3
  45. package/dist-server/service/data-set/data-set-type.js +20 -6
  46. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  47. package/dist-server/service/data-set/data-set.d.ts +3 -0
  48. package/dist-server/service/data-set/data-set.js +20 -0
  49. package/dist-server/service/data-set/data-set.js.map +1 -1
  50. package/dist-server/service/data-set/index.d.ts +1 -1
  51. package/dist-server/service/index.d.ts +2 -2
  52. package/dist-server/tsconfig.tsbuildinfo +1 -1
  53. package/helps/dataset/task/issue-collect-data.ja.md +1 -1
  54. package/helps/dataset/task/issue-collect-data.ko.md +1 -1
  55. package/helps/dataset/task/issue-collect-data.md +1 -1
  56. package/helps/dataset/task/issue-collect-data.ms.md +1 -1
  57. package/helps/dataset/task/issue-collect-data.zh.md +1 -1
  58. package/package.json +3 -3
  59. package/server/activities/activity-data-collect.ts +12 -2
  60. package/server/activities/activity-data-review.ts +6 -1
  61. package/server/activities/activity-ooc-resolve.ts +1 -0
  62. package/server/activities/activity-ooc-review.ts +30 -8
  63. package/server/controllers/create-data-sample.ts +18 -12
  64. package/server/controllers/{issue-collect-data.ts → issue-data-collection-task.ts} +11 -8
  65. package/server/engine/task/issue-collect-data.ts +2 -2
  66. package/server/routes.ts +5 -3
  67. package/server/service/data-sample/data-sample-query.ts +4 -4
  68. package/server/service/data-set/data-set-mutation.ts +4 -75
  69. package/server/service/data-set/data-set-query.ts +12 -0
  70. package/server/service/data-set/data-set-type.ts +16 -5
  71. package/server/service/data-set/data-set.ts +17 -0
  72. package/translations/en.json +2 -0
  73. package/translations/ja.json +2 -0
  74. package/translations/ko.json +2 -0
  75. package/translations/ms.json +2 -0
  76. package/translations/zh.json +2 -0
  77. package/dist-server/controllers/issue-collect-data.d.ts +0 -2
  78. package/dist-server/controllers/issue-collect-data.js.map +0 -1
@@ -150,6 +150,16 @@ export class DataSet {
150
150
  @RelationId((dataSet: DataSet) => dataSet.supervisoryRole)
151
151
  supervisoryRoleId?: string
152
152
 
153
+ @ManyToOne(type => Role, { nullable: true })
154
+ @Field(type => Role, {
155
+ nullable: true,
156
+ description: 'The final authority on resolving outlier related to that dataset.'
157
+ })
158
+ resolverRole?: Role
159
+
160
+ @RelationId((dataSet: DataSet) => dataSet.resolverRole)
161
+ resolverRoleId?: string
162
+
153
163
  @Column('simple-json', { nullable: true })
154
164
  @Field(type => [AssigneeItem], { nullable: true, description: 'Who to contact for OOC issues' })
155
165
  assignees?: AssigneeItem[]
@@ -285,6 +295,13 @@ export class DataSet {
285
295
  @Field({ nullable: true, description: 'The summary schedule ID of the dataset' })
286
296
  summaryScheduleId?: string
287
297
 
298
+ @Column({ nullable: true })
299
+ @Field({
300
+ nullable: true,
301
+ description: 'The maximum allowed time limit (in seconds) for completing the data entry operation'
302
+ })
303
+ timeLimit?: number
304
+
288
305
  @CreateDateColumn()
289
306
  @Field({ nullable: true, description: 'The date and time the dataset was created' })
290
307
  createdAt?: Date
@@ -70,6 +70,7 @@
70
70
  "field.report-view": "report view",
71
71
  "field.request-params": "request parameters",
72
72
  "field.requires-review": "requires review",
73
+ "field.resolver-role": "resolver role",
73
74
  "field.review-approval-line": "review approval line",
74
75
  "field.role": "role",
75
76
  "field.serial-no": "serial #",
@@ -82,6 +83,7 @@
82
83
  "field.supervisory-role": "supervisory role",
83
84
  "field.t-key": "translation key",
84
85
  "field.tag": "tag name",
86
+ "field.time-limit": "time limit",
85
87
  "field.time-period": "time period",
86
88
  "field.unit": "unit",
87
89
  "field.use-case": "use case",
@@ -41,6 +41,7 @@
41
41
  "field.entry-view": "入力用画面",
42
42
  "field.finalizing-function": "最終処理関数",
43
43
  "field.hidden": "隠し",
44
+ "field.hours-limit": "制限時間",
44
45
  "field.item": "項目",
45
46
  "field.key": "キ",
46
47
  "field.key-01": "キー1",
@@ -71,6 +72,7 @@
71
72
  "field.report-view": "レポート用画面",
72
73
  "field.request-params": "リクエスト パラメータ",
73
74
  "field.requires-review": "見直しが必要",
75
+ "field.resolver-role": "解決者役割",
74
76
  "field.review-approval-line": "決済ライン",
75
77
  "field.role": "ロール",
76
78
  "field.serial-no": "シリアル番号",
@@ -71,6 +71,7 @@
71
71
  "field.report-view": "리포트용 화면",
72
72
  "field.request-params": "요청 매개변수",
73
73
  "field.requires-review": "검토 요청",
74
+ "field.resolver-role": "해결자 역할",
74
75
  "field.review-approval-line": "결재라인",
75
76
  "field.role": "역할",
76
77
  "field.serial-no": "시리얼번호",
@@ -82,6 +83,7 @@
82
83
  "field.supervisory-role": "관리자 역할",
83
84
  "field.t-key": "번역 키",
84
85
  "field.tag": "태그이름",
86
+ "field.time-limit": "제한시간",
85
87
  "field.time-period": "시간단위",
86
88
  "field.unit": "단위",
87
89
  "field.use-case": "사용 사례",
@@ -71,6 +71,7 @@
71
71
  "field.report-view": "paparan laporan",
72
72
  "field.request-params": "parameter permintaan",
73
73
  "field.requires-review": "memerlukan semakan",
74
+ "field.resolver-role": "peranan penyelesai",
74
75
  "field.review-approval-line": "baris kelulusan",
75
76
  "field.role": "peranan",
76
77
  "field.serial-no": "no. siri",
@@ -82,6 +83,7 @@
82
83
  "field.supervisory-role": "peranan pengawasan",
83
84
  "field.t-key": "kunci terjemahan",
84
85
  "field.tag": "nama tag",
86
+ "field.time-limit": "had masa",
85
87
  "field.time-period": "tempoh masa",
86
88
  "field.unit": "unit",
87
89
  "field.use-case": "kes penggunaan",
@@ -71,6 +71,7 @@
71
71
  "field.report-view": "报告界面",
72
72
  "field.request-params": "请求参数",
73
73
  "field.requires-review": "需要审查",
74
+ "field.resolver-role": "解决者角色",
74
75
  "field.review-approval-line": "审批线",
75
76
  "field.role": "角色",
76
77
  "field.serial-no": "序列号",
@@ -82,6 +83,7 @@
82
83
  "field.supervisory-role": "监管角色",
83
84
  "field.t-key": "翻译键",
84
85
  "field.tag": "标签名",
86
+ "field.time-limit": "限制时间",
85
87
  "field.time-period": "时间单位",
86
88
  "field.unit": "单位",
87
89
  "field.use-case": "使用案例",
@@ -1,2 +0,0 @@
1
- import { ActivityInstance } from '@things-factory/worklist';
2
- export declare function issueCollectData(domainId: string, dataSetId: string, context: ResolverContext): Promise<ActivityInstance | void>;
@@ -1 +0,0 @@
1
- {"version":3,"file":"issue-collect-data.js","sourceRoot":"","sources":["../../server/controllers/issue-collect-data.ts"],"names":[],"mappings":";;AAOA,4CA2DC;AAlED,qCAA4B;AAE5B,iDAA6D;AAC7D,uDAA4E;AAE5E,2DAAsD;AAE/C,KAAK,UAAU,gBAAgB,CACpC,QAAgB,EAChB,SAAiB,EACjB,OAAwB;IAExB,MAAM,IAAA,qBAAa,GAAE,CAAC,WAAW,CAAC,KAAK,EAAC,EAAE,EAAC,EAAE;QAC3C,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,cAAM,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAEzE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,UAAU,QAAQ,aAAa,CAAC,CAAA;QAClD,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,kBAAO,CAAC,CAAC,OAAO,CAAC;YACtD,KAAK,EAAE;gBACL,MAAM,EAAE;oBACN,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;iBACrD;gBACD,EAAE,EAAE,SAAS;aACd;SACF,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAC,SAAS,CAAC;YAC3D,MAAM,EAAE,EAAE,EAAE,EAAE,IAAA,YAAE,EAAC,CAAC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE;YAChE,IAAI,EAAE,cAAc;SACrB,CAAC,CAAa,CAAA;QAEf,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;YAE7B,0DAA0D;YAC1D,IAAI,SAAS,IAAI,SAAS,YAAY,KAAK,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpE,MAAM,gBAAgB,GAAG;oBACvB,IAAI,EAAE,aAAa,OAAO,CAAC,IAAI,EAAE;oBACjC,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,UAAU,EAAE,QAAQ,CAAC,EAAE;oBACvB,KAAK,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;oBACjD,KAAK,EAAE;wBACL,SAAS,EAAE,OAAO,CAAC,EAAE;wBACrB,WAAW,EAAE,OAAO,CAAC,IAAI;qBAC1B;oBACD,SAAS;iBACV,CAAA;gBAED,OAAO,CAAC,KAAK,mCACR,OAAO,CAAC,KAAK,KAChB,MAAM;oBACN,EAAE,GACH,CAAA;gBAED,OAAO,MAAM,IAAA,gBAAK,EAAC,gBAAgB,EAAE,OAAO,CAAC,CAAA;YAC/C,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CACb,mDAAmD,OAAO,CAAC,IAAI,oCAAoC,CACpG,CAAA;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;QAC5D,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC","sourcesContent":["import { In } from 'typeorm'\n\nimport { Domain, getDataSource } from '@things-factory/shell'\nimport { Activity, ActivityInstance, issue } from '@things-factory/worklist'\n\nimport { DataSet } from '../service/data-set/data-set'\n\nexport async function issueCollectData(\n domainId: string,\n dataSetId: string,\n context: ResolverContext\n): Promise<ActivityInstance | void> {\n await getDataSource().transaction(async tx => {\n const domain = await tx.getRepository(Domain).findOneBy({ id: domainId })\n\n if (!domain) {\n throw new Error(`domain(${domainId}) not found`)\n }\n\n const dataSet = await tx.getRepository(DataSet).findOne({\n where: {\n domain: {\n id: In([domain.id, domain.parentId].filter(Boolean))\n },\n id: dataSetId\n }\n })\n\n const activity = (await tx.getRepository(Activity).findOneBy({\n domain: { id: In([domain.id, domain.parentId].filter(Boolean)) },\n name: 'Collect Data'\n })) as Activity\n\n if (activity) {\n const { assignees } = dataSet\n\n /* 해당 dataset에 대한 데이타 수집 태스크를 dataset assignees에게 할당한다. */\n if (assignees && assignees instanceof Array && assignees.length > 0) {\n const activityInstance = {\n name: `[Data 수집] ${dataSet.name}`,\n description: dataSet.description,\n activityId: activity.id,\n dueAt: new Date(Date.now() + 24 * 60 * 60 * 1000),\n input: {\n dataSetId: dataSet.id,\n dataSetName: dataSet.name\n },\n assignees\n }\n\n context.state = {\n ...context.state,\n domain,\n tx\n }\n\n return await issue(activityInstance, context)\n } else {\n throw new Error(\n `Assignees not set. So Data Collect Activity for ${dataSet.name}($dataSet.id) could not be issued.`\n )\n }\n } else {\n throw new Error(`Data Collect Activity is not installed.`)\n }\n })\n}\n"]}