@things-factory/worklist 6.0.45 → 6.0.47

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 (161) hide show
  1. package/client/bootstrap.ts +5 -0
  2. package/client/components/activity-starter-form.ts +53 -303
  3. package/client/pages/activity/activity-list-page.ts +44 -28
  4. package/client/pages/activity/activity-page.ts +7 -5
  5. package/client/pages/activity/activity-partial-view.ts +2 -1
  6. package/client/pages/activity/starter-list-page.ts +16 -11
  7. package/client/pages/activity-approval/activity-approval-page.ts +21 -9
  8. package/client/pages/activity-instance/activity-instance-search-page.ts +2 -19
  9. package/client/pages/activity-instance/activity-instance-start-page.ts +517 -0
  10. package/client/pages/activity-thread/activity-thread-page.ts +5 -3
  11. package/client/pages/activity-thread/activity-thread-view-page.ts +4 -2
  12. package/client/pages/installable-activity/installable-activity-list-page.ts +7 -5
  13. package/client/pages/todo/approval-done-list-page.ts +7 -7
  14. package/client/pages/todo/approval-pending-list-page.ts +48 -10
  15. package/client/pages/todo/done-list-page.ts +1 -1
  16. package/client/pages/todo/draft-list-page.ts +26 -102
  17. package/client/pages/todo/todo-list-page.ts +1 -1
  18. package/client/route.ts +2 -2
  19. package/client/templates/activity-approval-context-template.ts +4 -0
  20. package/client/templates/activity-instance-context-template.ts +171 -0
  21. package/client/templates/activity-thread-context-template.ts +4 -0
  22. package/client/types/activity-instance-type.ts +4 -2
  23. package/client/types/activity-instance.ts +2 -2
  24. package/client/types/activity.ts +7 -0
  25. package/client/types/types.ts +8 -0
  26. package/dist-client/bootstrap.d.ts +1 -0
  27. package/dist-client/bootstrap.js +5 -0
  28. package/dist-client/bootstrap.js.map +1 -1
  29. package/dist-client/components/activity-starter-form.d.ts +2 -5
  30. package/dist-client/components/activity-starter-form.js +55 -247
  31. package/dist-client/components/activity-starter-form.js.map +1 -1
  32. package/dist-client/pages/activity/activity-list-page.d.ts +1 -1
  33. package/dist-client/pages/activity/activity-list-page.js +45 -30
  34. package/dist-client/pages/activity/activity-list-page.js.map +1 -1
  35. package/dist-client/pages/activity/activity-page.d.ts +1 -1
  36. package/dist-client/pages/activity/activity-page.js +5 -5
  37. package/dist-client/pages/activity/activity-page.js.map +1 -1
  38. package/dist-client/pages/activity/activity-partial-view.js +2 -2
  39. package/dist-client/pages/activity/activity-partial-view.js.map +1 -1
  40. package/dist-client/pages/activity/starter-list-page.d.ts +1 -0
  41. package/dist-client/pages/activity/starter-list-page.js +14 -11
  42. package/dist-client/pages/activity/starter-list-page.js.map +1 -1
  43. package/dist-client/pages/activity-approval/activity-approval-page.d.ts +3 -3
  44. package/dist-client/pages/activity-approval/activity-approval-page.js +16 -9
  45. package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -1
  46. package/dist-client/pages/activity-instance/activity-instance-page.d.ts +2 -2
  47. package/dist-client/pages/activity-instance/activity-instance-page.js +19 -10
  48. package/dist-client/pages/activity-instance/activity-instance-page.js.map +1 -1
  49. package/dist-client/pages/activity-instance/activity-instance-search-page.js +1 -8
  50. package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -1
  51. package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +49 -0
  52. package/dist-client/pages/activity-instance/activity-instance-start-page.js +451 -0
  53. package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -0
  54. package/dist-client/pages/activity-thread/activity-thread-page.js +3 -3
  55. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
  56. package/dist-client/pages/activity-thread/activity-thread-view-page.js +2 -2
  57. package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -1
  58. package/dist-client/pages/installable-activity/installable-activity-list-page.js +7 -5
  59. package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -1
  60. package/dist-client/pages/todo/approval-done-list-page.js +7 -7
  61. package/dist-client/pages/todo/approval-done-list-page.js.map +1 -1
  62. package/dist-client/pages/todo/approval-pending-list-page.js +44 -9
  63. package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -1
  64. package/dist-client/pages/todo/done-list-page.js +1 -1
  65. package/dist-client/pages/todo/done-list-page.js.map +1 -1
  66. package/dist-client/pages/todo/draft-list-page.d.ts +1 -0
  67. package/dist-client/pages/todo/draft-list-page.js +25 -99
  68. package/dist-client/pages/todo/draft-list-page.js.map +1 -1
  69. package/dist-client/pages/todo/todo-list-page.js +1 -1
  70. package/dist-client/pages/todo/todo-list-page.js.map +1 -1
  71. package/dist-client/route.d.ts +1 -1
  72. package/dist-client/route.js +2 -2
  73. package/dist-client/route.js.map +1 -1
  74. package/dist-client/templates/activity-approval-context-template.js +4 -0
  75. package/dist-client/templates/activity-approval-context-template.js.map +1 -1
  76. package/dist-client/templates/activity-instance-context-template.d.ts +2 -0
  77. package/dist-client/templates/activity-instance-context-template.js +145 -0
  78. package/dist-client/templates/activity-instance-context-template.js.map +1 -0
  79. package/dist-client/templates/activity-thread-context-template.js +4 -0
  80. package/dist-client/templates/activity-thread-context-template.js.map +1 -1
  81. package/dist-client/tsconfig.tsbuildinfo +1 -1
  82. package/dist-client/types/activity-instance-type.d.ts +3 -2
  83. package/dist-client/types/activity-instance-type.js +2 -2
  84. package/dist-client/types/activity-instance-type.js.map +1 -1
  85. package/dist-client/types/activity-instance.d.ts +1 -1
  86. package/dist-client/types/activity-instance.js +2 -2
  87. package/dist-client/types/activity-instance.js.map +1 -1
  88. package/dist-client/types/activity.d.ts +5 -0
  89. package/dist-client/types/activity.js +5 -0
  90. package/dist-client/types/activity.js.map +1 -1
  91. package/dist-client/types/types.d.ts +4 -0
  92. package/dist-client/types/types.js +6 -0
  93. package/dist-client/types/types.js.map +1 -1
  94. package/dist-server/controllers/activity-instance/assign.js +1 -1
  95. package/dist-server/controllers/activity-instance/assign.js.map +1 -1
  96. package/dist-server/controllers/activity-instance/draft.js +24 -6
  97. package/dist-server/controllers/activity-instance/draft.js.map +1 -1
  98. package/dist-server/controllers/activity-instance/index.js +1 -1
  99. package/dist-server/controllers/activity-instance/index.js.map +1 -1
  100. package/dist-server/controllers/activity-instance/issue.js +105 -0
  101. package/dist-server/controllers/activity-instance/issue.js.map +1 -0
  102. package/dist-server/controllers/activity-instance/pick.js +1 -1
  103. package/dist-server/controllers/activity-instance/pick.js.map +1 -1
  104. package/dist-server/controllers/activity-instance/post.js +7 -7
  105. package/dist-server/controllers/activity-instance/post.js.map +1 -1
  106. package/dist-server/controllers/common.js +33 -9
  107. package/dist-server/controllers/common.js.map +1 -1
  108. package/dist-server/routes.js +2 -2
  109. package/dist-server/routes.js.map +1 -1
  110. package/dist-server/service/activity/activity-history.js +6 -2
  111. package/dist-server/service/activity/activity-history.js.map +1 -1
  112. package/dist-server/service/activity/activity-query.js +84 -1
  113. package/dist-server/service/activity/activity-query.js.map +1 -1
  114. package/dist-server/service/activity/activity-type.js +8 -0
  115. package/dist-server/service/activity/activity-type.js.map +1 -1
  116. package/dist-server/service/activity/activity.js +36 -3
  117. package/dist-server/service/activity/activity.js.map +1 -1
  118. package/dist-server/service/activity-instance/activity-instance-history.js +1 -1
  119. package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -1
  120. package/dist-server/service/activity-instance/activity-instance-mutation.js +6 -6
  121. package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -1
  122. package/dist-server/service/activity-instance/activity-instance-query.js +2 -2
  123. package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
  124. package/dist-server/service/activity-instance/activity-instance-type.js +62 -50
  125. package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
  126. package/dist-server/service/activity-instance/activity-instance.js +4 -23
  127. package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
  128. package/dist-server/service/activity-summary/activity-summary-query.js +1 -1
  129. package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -1
  130. package/dist-server/service/installable-activity/installable-activity.js +4 -0
  131. package/dist-server/service/installable-activity/installable-activity.js.map +1 -1
  132. package/dist-server/tsconfig.tsbuildinfo +1 -1
  133. package/helps/worklist/activity.md +91 -0
  134. package/helps/worklist/draft-list.md +5 -1
  135. package/helps/worklist/starter-list.md +34 -0
  136. package/package.json +2 -2
  137. package/server/controllers/activity-instance/assign.ts +1 -1
  138. package/server/controllers/activity-instance/draft.ts +33 -6
  139. package/server/controllers/activity-instance/index.ts +1 -1
  140. package/server/controllers/activity-instance/issue.ts +175 -0
  141. package/server/controllers/activity-instance/pick.ts +1 -1
  142. package/server/controllers/common.ts +43 -9
  143. package/server/routes.ts +2 -2
  144. package/server/service/activity/activity-history.ts +5 -2
  145. package/server/service/activity/activity-query.ts +85 -2
  146. package/server/service/activity/activity-type.ts +15 -2
  147. package/server/service/activity/activity.ts +28 -2
  148. package/server/service/activity-instance/activity-instance-history.ts +1 -1
  149. package/server/service/activity-instance/activity-instance-mutation.ts +7 -7
  150. package/server/service/activity-instance/activity-instance-query.ts +3 -3
  151. package/server/service/activity-instance/activity-instance-type.ts +13 -4
  152. package/server/service/activity-instance/activity-instance.ts +4 -16
  153. package/server/service/activity-summary/activity-summary-query.ts +1 -1
  154. package/server/service/installable-activity/installable-activity.ts +4 -1
  155. package/things-factory.config.js +1 -1
  156. package/translations/en.json +13 -0
  157. package/translations/ko.json +17 -4
  158. package/translations/ms.json +13 -0
  159. package/translations/zh.json +13 -0
  160. package/client/pages/activity-instance/activity-instance-page.ts +0 -445
  161. package/server/controllers/activity-instance/post.ts +0 -140
@@ -2,7 +2,8 @@ import { Role } from '@operato/shell';
2
2
  import { ApprovalLineItem } from '@things-factory/organization';
3
3
  import { ActivityType, ActivityUIType } from './activity';
4
4
  import { AssigneeItem, ActivityInstance, ActivityInstanceStatus } from './activity-instance';
5
- export declare class NewActivityInstance {
5
+ export declare class ActivityInstanceDraft {
6
+ id?: string;
6
7
  name?: string;
7
8
  activityId?: string;
8
9
  description?: string;
@@ -24,7 +25,7 @@ export declare class NewActivityInstance {
24
25
  assignees?: AssigneeItem[];
25
26
  approvalLine?: ApprovalLineItem[];
26
27
  }
27
- export declare class ActivityInstancePost {
28
+ export declare class ActivityInstanceIssue {
28
29
  id?: string;
29
30
  name?: string;
30
31
  activityId?: string;
@@ -1,6 +1,6 @@
1
- export class NewActivityInstance {
1
+ export class ActivityInstanceDraft {
2
2
  }
3
- export class ActivityInstancePost {
3
+ export class ActivityInstanceIssue {
4
4
  }
5
5
  export class ActivityInstanceSave {
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"activity-instance-type.js","sourceRoot":"","sources":["../../client/types/activity-instance-type.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,mBAAmB;CAoC/B;AAED,MAAM,OAAO,oBAAoB;CAsChC;AAED,MAAM,OAAO,oBAAoB;CAMhC;AAED,MAAM,OAAO,qBAAqB;CAwBjC;AAED,MAAM,OAAO,oBAAoB;CAIhC","sourcesContent":["import { Role } from '@operato/shell'\nimport { ApprovalLineItem } from '@things-factory/organization'\n\nimport { ActivityType, ActivityUIType } from './activity'\nimport { AssigneeItem, ActivityInstance, ActivityInstanceStatus } from './activity-instance'\n\nexport class NewActivityInstance {\n name?: string\n\n activityId?: string\n\n description?: string\n\n priority?: number\n\n reason?: string\n\n threadsMin?: number\n\n threadsMax?: number\n\n dueAt?: Date\n\n input?: { [key: string]: any }\n\n adhocType?: string\n\n refBy?: string\n\n activityType?: ActivityType\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n supervisoryRole?: Role\n\n assigneeRole?: Role\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n}\n\nexport class ActivityInstancePost {\n id?: string\n\n name?: string\n\n activityId?: string\n\n description?: string\n\n priority?: number\n\n reason?: string\n\n threadsMin?: number\n\n threadsMax?: number\n\n dueAt?: Date\n\n input?: { [key: string]: any }\n\n adhocType?: string\n\n refBy?: string\n\n activityType?: ActivityType\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n supervisoryRole?: Role\n\n assigneeRole?: Role\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n}\n\nexport class ActivityInstanceSave {\n output?: { [key: string]: any }\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n}\n\nexport class ActivityInstancePatch {\n id?: string\n\n name?: string\n\n description?: string\n\n priority?: number\n\n state?: ActivityInstanceStatus\n\n threadsMin?: number\n\n threadsMax?: number\n\n dueAt?: Date\n\n input?: { [key: string]: any }\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n\n cuFlag?: string\n}\n\nexport class ActivityInstanceList {\n items?: ActivityInstance[]\n\n total?: number\n}\n"]}
1
+ {"version":3,"file":"activity-instance-type.js","sourceRoot":"","sources":["../../client/types/activity-instance-type.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,qBAAqB;CAsCjC;AAED,MAAM,OAAO,qBAAqB;CAsCjC;AAED,MAAM,OAAO,oBAAoB;CAMhC;AAED,MAAM,OAAO,qBAAqB;CAwBjC;AAED,MAAM,OAAO,oBAAoB;CAIhC","sourcesContent":["import { Role } from '@operato/shell'\nimport { ApprovalLineItem } from '@things-factory/organization'\n\nimport { ActivityType, ActivityUIType } from './activity'\nimport { AssigneeItem, ActivityInstance, ActivityInstanceStatus } from './activity-instance'\n\nexport class ActivityInstanceDraft {\n id?: string\n\n name?: string\n\n activityId?: string\n\n description?: string\n\n priority?: number\n\n reason?: string\n\n threadsMin?: number\n\n threadsMax?: number\n\n dueAt?: Date\n\n input?: { [key: string]: any }\n\n adhocType?: string\n\n refBy?: string\n\n activityType?: ActivityType\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n supervisoryRole?: Role\n\n assigneeRole?: Role\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n}\n\nexport class ActivityInstanceIssue {\n id?: string\n\n name?: string\n\n activityId?: string\n\n description?: string\n\n priority?: number\n\n reason?: string\n\n threadsMin?: number\n\n threadsMax?: number\n\n dueAt?: Date\n\n input?: { [key: string]: any }\n\n adhocType?: string\n\n refBy?: string\n\n activityType?: ActivityType\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n supervisoryRole?: Role\n\n assigneeRole?: Role\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n}\n\nexport class ActivityInstanceSave {\n output?: { [key: string]: any }\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n}\n\nexport class ActivityInstancePatch {\n id?: string\n\n name?: string\n\n description?: string\n\n priority?: number\n\n state?: ActivityInstanceStatus\n\n threadsMin?: number\n\n threadsMax?: number\n\n dueAt?: Date\n\n input?: { [key: string]: any }\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n\n cuFlag?: string\n}\n\nexport class ActivityInstanceList {\n items?: ActivityInstance[]\n\n total?: number\n}\n"]}
@@ -4,7 +4,7 @@ import { ActivityThread } from './activity-thread';
4
4
  import { Activity, ActivityType, ActivityUIType } from './activity';
5
5
  export declare enum ActivityInstanceStatus {
6
6
  Draft = "draft",
7
- Posted = "posted",
7
+ Issued = "issued",
8
8
  PendingAssignment = "pending-assignment",
9
9
  Assigned = "assigned",
10
10
  Started = "started",
@@ -1,7 +1,7 @@
1
1
  export var ActivityInstanceStatus;
2
2
  (function (ActivityInstanceStatus) {
3
3
  ActivityInstanceStatus["Draft"] = "draft";
4
- ActivityInstanceStatus["Posted"] = "posted";
4
+ ActivityInstanceStatus["Issued"] = "issued";
5
5
  ActivityInstanceStatus["PendingAssignment"] = "pending-assignment";
6
6
  ActivityInstanceStatus["Assigned"] = "assigned";
7
7
  ActivityInstanceStatus["Started"] = "started";
@@ -25,7 +25,7 @@ export class ActivityInstance {
25
25
  }
26
26
  isDelegatable() {
27
27
  switch (this.state) {
28
- case ActivityInstanceStatus.Posted:
28
+ case ActivityInstanceStatus.Issued:
29
29
  case ActivityInstanceStatus.Assigned:
30
30
  return true;
31
31
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"activity-instance.js","sourceRoot":"","sources":["../../client/types/activity-instance.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,sBASX;AATD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,kEAAwC,CAAA;IACxC,+CAAqB,CAAA;IACrB,6CAAmB,CAAA;IACnB,6CAAmB,CAAA;IACnB,yCAAe,CAAA;IACf,6CAAmB,CAAA;AACrB,CAAC,EATW,sBAAsB,KAAtB,sBAAsB,QASjC;AAED,MAAM,OAAO,YAAY;CAMxB;AAED,MAAM,OAAO,gBAAgB;IAA7B;QAGE,YAAO,GAAY,CAAC,CAAA;QAYpB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAQnB,aAAQ,GAAY,CAAC,CAAA;QAMrB,eAAU,GAAY,CAAC,CAAA;QAEvB,eAAU,GAAY,CAAC,CAAA;IA2DzB,CAAC;IATC,aAAa;QACX,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,sBAAsB,CAAC,MAAM,CAAC;YACnC,KAAK,sBAAsB,CAAC,QAAQ;gBAClC,OAAO,IAAI,CAAA;YACb;gBACE,OAAO,KAAK,CAAA;SACf;IACH,CAAC;CACF","sourcesContent":["import { Domain, User, Role } from '@operato/shell'\nimport { OrgMemberTargetType, OrgMemberTarget, ApprovalLineItem } from '@things-factory/organization'\n\nimport { ActivityThread } from './activity-thread'\nimport { Activity, ActivityType, ActivityUIType } from './activity'\n\nexport enum ActivityInstanceStatus {\n Draft = 'draft',\n Posted = 'posted',\n PendingAssignment = 'pending-assignment',\n Assigned = 'assigned',\n Started = 'started',\n Pending = 'pending',\n Ended = 'ended',\n Aborted = 'aborted'\n}\n\nexport class AssigneeItem {\n type?: OrgMemberTargetType\n\n value?: string\n\n assignee?: OrgMemberTarget\n}\n\nexport class ActivityInstance {\n id?: string\n\n version?: number = 1\n\n domain?: Domain\n\n name?: string\n\n description?: string\n\n activityType?: ActivityType\n\n adhocType?: string\n\n key01?: string = ''\n\n key02?: string = ''\n\n key03?: string = ''\n\n key04?: string = ''\n\n key05?: string = ''\n\n activityThreads?: ActivityThread[]\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n priority?: number = 1\n\n state?: ActivityInstanceStatus\n\n reason?: string\n\n threadsMin?: number = 0\n\n threadsMax?: number = 0\n\n input?: { [key: string]: any }\n\n output?: { [key: string]: any }\n\n refBy?: string\n\n activity?: Activity\n\n assigneeRole?: Role\n\n supervisoryRole?: Role\n\n dueAt?: Date\n\n transaction?: string\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n\n createdAt?: Date\n\n updatedAt?: Date\n\n assignedAt?: Date\n\n startedAt?: Date\n\n terminatedAt?: Date\n\n creator?: User\n\n creatorId?: string\n\n updater?: User\n\n updaterId?: string\n\n starter?: User\n\n starterId?: string\n\n terminator?: User\n\n terminatorId?: string\n\n thumbnail?: string\n\n isDelegatable(): boolean {\n switch (this.state) {\n case ActivityInstanceStatus.Posted:\n case ActivityInstanceStatus.Assigned:\n return true\n default:\n return false\n }\n }\n}\n"]}
1
+ {"version":3,"file":"activity-instance.js","sourceRoot":"","sources":["../../client/types/activity-instance.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,sBASX;AATD,WAAY,sBAAsB;IAChC,yCAAe,CAAA;IACf,2CAAiB,CAAA;IACjB,kEAAwC,CAAA;IACxC,+CAAqB,CAAA;IACrB,6CAAmB,CAAA;IACnB,6CAAmB,CAAA;IACnB,yCAAe,CAAA;IACf,6CAAmB,CAAA;AACrB,CAAC,EATW,sBAAsB,KAAtB,sBAAsB,QASjC;AAED,MAAM,OAAO,YAAY;CAMxB;AAED,MAAM,OAAO,gBAAgB;IAA7B;QAGE,YAAO,GAAY,CAAC,CAAA;QAYpB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAEnB,UAAK,GAAY,EAAE,CAAA;QAQnB,aAAQ,GAAY,CAAC,CAAA;QAMrB,eAAU,GAAY,CAAC,CAAA;QAEvB,eAAU,GAAY,CAAC,CAAA;IA2DzB,CAAC;IATC,aAAa;QACX,QAAQ,IAAI,CAAC,KAAK,EAAE;YAClB,KAAK,sBAAsB,CAAC,MAAM,CAAC;YACnC,KAAK,sBAAsB,CAAC,QAAQ;gBAClC,OAAO,IAAI,CAAA;YACb;gBACE,OAAO,KAAK,CAAA;SACf;IACH,CAAC;CACF","sourcesContent":["import { Domain, User, Role } from '@operato/shell'\nimport { OrgMemberTargetType, OrgMemberTarget, ApprovalLineItem } from '@things-factory/organization'\n\nimport { ActivityThread } from './activity-thread'\nimport { Activity, ActivityType, ActivityUIType } from './activity'\n\nexport enum ActivityInstanceStatus {\n Draft = 'draft',\n Issued = 'issued',\n PendingAssignment = 'pending-assignment',\n Assigned = 'assigned',\n Started = 'started',\n Pending = 'pending',\n Ended = 'ended',\n Aborted = 'aborted'\n}\n\nexport class AssigneeItem {\n type?: OrgMemberTargetType\n\n value?: string\n\n assignee?: OrgMemberTarget\n}\n\nexport class ActivityInstance {\n id?: string\n\n version?: number = 1\n\n domain?: Domain\n\n name?: string\n\n description?: string\n\n activityType?: ActivityType\n\n adhocType?: string\n\n key01?: string = ''\n\n key02?: string = ''\n\n key03?: string = ''\n\n key04?: string = ''\n\n key05?: string = ''\n\n activityThreads?: ActivityThread[]\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n priority?: number = 1\n\n state?: ActivityInstanceStatus\n\n reason?: string\n\n threadsMin?: number = 0\n\n threadsMax?: number = 0\n\n input?: { [key: string]: any }\n\n output?: { [key: string]: any }\n\n refBy?: string\n\n activity?: Activity\n\n assigneeRole?: Role\n\n supervisoryRole?: Role\n\n dueAt?: Date\n\n transaction?: string\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n\n createdAt?: Date\n\n updatedAt?: Date\n\n assignedAt?: Date\n\n startedAt?: Date\n\n terminatedAt?: Date\n\n creator?: User\n\n creatorId?: string\n\n updater?: User\n\n updaterId?: string\n\n starter?: User\n\n starterId?: string\n\n terminator?: User\n\n terminatorId?: string\n\n thumbnail?: string\n\n isDelegatable(): boolean {\n switch (this.state) {\n case ActivityInstanceStatus.Issued:\n case ActivityInstanceStatus.Assigned:\n return true\n default:\n return false\n }\n }\n}\n"]}
@@ -27,6 +27,10 @@ export declare enum ActivityUIType {
27
27
  Page = "page",
28
28
  External = "external"
29
29
  }
30
+ export declare enum ActivityStartingType {
31
+ post = "post",
32
+ issue = "issue"
33
+ }
30
34
  export declare class Activity {
31
35
  id?: string;
32
36
  version?: number;
@@ -39,6 +43,7 @@ export declare class Activity {
39
43
  model?: ActivityModelItem[];
40
44
  priority?: number;
41
45
  startable?: boolean;
46
+ startingType?: ActivityStartingType;
42
47
  schedule?: string;
43
48
  timzeone?: string;
44
49
  standardTime?: number;
@@ -26,6 +26,11 @@ export var ActivityUIType;
26
26
  ActivityUIType["Page"] = "page";
27
27
  ActivityUIType["External"] = "external";
28
28
  })(ActivityUIType || (ActivityUIType = {}));
29
+ export var ActivityStartingType;
30
+ (function (ActivityStartingType) {
31
+ ActivityStartingType["post"] = "post";
32
+ ActivityStartingType["issue"] = "issue";
33
+ })(ActivityStartingType || (ActivityStartingType = {}));
29
34
  export class Activity {
30
35
  constructor() {
31
36
  this.version = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../client/types/activity.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,8CAA8B,CAAA;IAC9B,iCAAiB,CAAA;IACjB,0CAA0B,CAAA;IAC1B,6BAAa,CAAA;AACf,CAAC,EAXW,YAAY,KAAZ,YAAY,QAWvB;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,iCAAe,CAAA;IACf,kDAAgC,CAAA;IAChC,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAED,MAAM,OAAO,QAAQ;IAArB;QAGE,YAAO,GAAY,CAAC,CAAA;QAgBpB,aAAQ,GAAY,CAAC,CAAA;IA2CvB,CAAC;CAAA","sourcesContent":["import { Domain, User, Role } from '@operato/shell'\nimport { ApprovalLineItem, AssigneeItem } from '@things-factory/organization'\n\nimport { ActivityModelItem } from './activity-model-type'\nimport { ActivitySearchKeyItem } from './activity-search-key-item-type'\n\nexport enum ActivityStatus {\n Draft = 'draft',\n Released = 'released',\n Deprecated = 'deprecated'\n}\n\nexport enum ActivityType {\n Task = 'task',\n Service = 'service',\n Send = 'send',\n Receive = 'receive',\n User = 'user',\n Manual = 'manual',\n BusinessRule = 'business-rule',\n Script = 'script',\n Subprocess = 'sub-process',\n Call = 'call'\n}\n\nexport enum ActivityUIType {\n Generated = 'generated',\n Template = 'template',\n Board = 'board',\n CustomElement = 'custom-element',\n Page = 'page',\n External = 'external'\n}\n\nexport class Activity {\n id?: string\n\n version?: number = 1\n\n domain?: Domain\n\n name?: string\n\n description?: string\n\n activityType?: ActivityType\n\n state?: ActivityStatus\n\n searchKeys?: ActivitySearchKeyItem[]\n\n model?: ActivityModelItem[]\n\n priority?: number = 1\n\n startable?: boolean\n\n schedule?: string\n\n timzeone?: string\n\n standardTime?: number\n\n issuerRole?: Role\n\n assigneeRole?: Role\n\n supervisoryRole?: Role\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n viewType?: ActivityUIType\n\n viewSource?: string\n\n reportType?: ActivityUIType\n\n reportSource?: string\n\n createdAt?: Date\n\n updatedAt?: Date\n\n client?: User\n\n creator?: User\n\n updater?: User\n\n thumbnail?: string\n}\n"]}
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../client/types/activity.ts"],"names":[],"mappings":"AAMA,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,iCAAe,CAAA;IACf,uCAAqB,CAAA;IACrB,2CAAyB,CAAA;AAC3B,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB;AAED,MAAM,CAAN,IAAY,YAWX;AAXD,WAAY,YAAY;IACtB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,8CAA8B,CAAA;IAC9B,iCAAiB,CAAA;IACjB,0CAA0B,CAAA;IAC1B,6BAAa,CAAA;AACf,CAAC,EAXW,YAAY,KAAZ,YAAY,QAWvB;AAED,MAAM,CAAN,IAAY,cAOX;AAPD,WAAY,cAAc;IACxB,yCAAuB,CAAA;IACvB,uCAAqB,CAAA;IACrB,iCAAe,CAAA;IACf,kDAAgC,CAAA;IAChC,+BAAa,CAAA;IACb,uCAAqB,CAAA;AACvB,CAAC,EAPW,cAAc,KAAd,cAAc,QAOzB;AAED,MAAM,CAAN,IAAY,oBAGX;AAHD,WAAY,oBAAoB;IAC9B,qCAAa,CAAA;IACb,uCAAe,CAAA;AACjB,CAAC,EAHW,oBAAoB,KAApB,oBAAoB,QAG/B;AAED,MAAM,OAAO,QAAQ;IAArB;QAGE,YAAO,GAAY,CAAC,CAAA;QAgBpB,aAAQ,GAAY,CAAC,CAAA;IA6CvB,CAAC;CAAA","sourcesContent":["import { Domain, User, Role } from '@operato/shell'\nimport { ApprovalLineItem, AssigneeItem } from '@things-factory/organization'\n\nimport { ActivityModelItem } from './activity-model-type'\nimport { ActivitySearchKeyItem } from './activity-search-key-item-type'\n\nexport enum ActivityStatus {\n Draft = 'draft',\n Released = 'released',\n Deprecated = 'deprecated'\n}\n\nexport enum ActivityType {\n Task = 'task',\n Service = 'service',\n Send = 'send',\n Receive = 'receive',\n User = 'user',\n Manual = 'manual',\n BusinessRule = 'business-rule',\n Script = 'script',\n Subprocess = 'sub-process',\n Call = 'call'\n}\n\nexport enum ActivityUIType {\n Generated = 'generated',\n Template = 'template',\n Board = 'board',\n CustomElement = 'custom-element',\n Page = 'page',\n External = 'external'\n}\n\nexport enum ActivityStartingType {\n post = 'post',\n issue = 'issue'\n}\n\nexport class Activity {\n id?: string\n\n version?: number = 1\n\n domain?: Domain\n\n name?: string\n\n description?: string\n\n activityType?: ActivityType\n\n state?: ActivityStatus\n\n searchKeys?: ActivitySearchKeyItem[]\n\n model?: ActivityModelItem[]\n\n priority?: number = 1\n\n startable?: boolean\n\n startingType?: ActivityStartingType\n\n schedule?: string\n\n timzeone?: string\n\n standardTime?: number\n\n issuerRole?: Role\n\n assigneeRole?: Role\n\n supervisoryRole?: Role\n\n assignees?: AssigneeItem[]\n\n approvalLine?: ApprovalLineItem[]\n\n uiType?: ActivityUIType\n\n uiSource?: string\n\n viewType?: ActivityUIType\n\n viewSource?: string\n\n reportType?: ActivityUIType\n\n reportSource?: string\n\n createdAt?: Date\n\n updatedAt?: Date\n\n client?: User\n\n creator?: User\n\n updater?: User\n\n thumbnail?: string\n}\n"]}
@@ -13,3 +13,7 @@ export declare const ActivityTypes: {
13
13
  display: string;
14
14
  value: string;
15
15
  }[];
16
+ export declare const ActivityStartingTypes: {
17
+ display: string;
18
+ value: string;
19
+ }[];
@@ -1,3 +1,4 @@
1
+ import { i18next } from '@operato/i18n';
1
2
  export const Priorities = [
2
3
  { display: '', value: '' },
3
4
  { display: 'Emergency', value: 3 },
@@ -27,4 +28,9 @@ export const ActivityTypes = [
27
28
  { display: 'Subprocess', value: 'sub-process' },
28
29
  { display: 'Call', value: 'call' }
29
30
  ];
31
+ export const ActivityStartingTypes = [
32
+ { display: '', value: '' },
33
+ { display: i18next.t('label.activity-starting-type-post'), value: 'post' },
34
+ { display: i18next.t('label.activity-starting-type-issue'), value: 'issue' }
35
+ ];
30
36
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../client/types/types.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;IAClC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;IAClC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;IAC/B,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;CAC7B,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC5C,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IAC1C,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACpC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACrD,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE;CAC/C,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACxC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACxC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IACnD,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC/C,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACnC,CAAA","sourcesContent":["export const Priorities = [\n { display: '', value: '' },\n { display: 'Emergency', value: 3 },\n { display: 'Important', value: 2 },\n { display: 'Normal', value: 1 },\n { display: 'Low', value: 0 }\n]\n\nexport const ActivityUITypes = [\n { display: '', value: '' },\n { display: 'Generated', value: 'generated' },\n { display: 'Template', value: 'template' },\n { display: 'Board', value: 'board' },\n { display: 'CustomElement', value: 'custom-element' },\n { display: 'Page', value: 'page' },\n { display: 'External URL', value: 'external' }\n]\n\nexport const ActivityTypes = [\n { display: '', value: '' },\n { display: 'Task', value: 'task' },\n { display: 'Service', value: 'service' },\n { display: 'Send', value: 'send' },\n { display: 'Receive', value: 'receive' },\n { display: 'User', value: 'user' },\n { display: 'Manual', value: 'manual' },\n { display: 'BusinessRule', value: 'business-rule' },\n { display: 'Script', value: 'script' },\n { display: 'Subprocess', value: 'sub-process' },\n { display: 'Call', value: 'call' }\n]\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../client/types/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAA;AAEvC,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;IAClC,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE;IAClC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE;IAC/B,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE;CAC7B,CAAA;AAED,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;IAC5C,EAAE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IAC1C,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACpC,EAAE,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,gBAAgB,EAAE;IACrD,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE;CAC/C,CAAA;AAED,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACxC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACxC,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAClC,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE;IACnD,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACtC,EAAE,OAAO,EAAE,YAAY,EAAE,KAAK,EAAE,aAAa,EAAE;IAC/C,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;CACnC,CAAA;AAED,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE;IAC1B,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,mCAAmC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE;IAC1E,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE;CAC7E,CAAA","sourcesContent":["import { i18next } from '@operato/i18n'\n\nexport const Priorities = [\n { display: '', value: '' },\n { display: 'Emergency', value: 3 },\n { display: 'Important', value: 2 },\n { display: 'Normal', value: 1 },\n { display: 'Low', value: 0 }\n]\n\nexport const ActivityUITypes = [\n { display: '', value: '' },\n { display: 'Generated', value: 'generated' },\n { display: 'Template', value: 'template' },\n { display: 'Board', value: 'board' },\n { display: 'CustomElement', value: 'custom-element' },\n { display: 'Page', value: 'page' },\n { display: 'External URL', value: 'external' }\n]\n\nexport const ActivityTypes = [\n { display: '', value: '' },\n { display: 'Task', value: 'task' },\n { display: 'Service', value: 'service' },\n { display: 'Send', value: 'send' },\n { display: 'Receive', value: 'receive' },\n { display: 'User', value: 'user' },\n { display: 'Manual', value: 'manual' },\n { display: 'BusinessRule', value: 'business-rule' },\n { display: 'Script', value: 'script' },\n { display: 'Subprocess', value: 'sub-process' },\n { display: 'Call', value: 'call' }\n]\n\nexport const ActivityStartingTypes = [\n { display: '', value: '' },\n { display: i18next.t('label.activity-starting-type-post'), value: 'post' },\n { display: i18next.t('label.activity-starting-type-issue'), value: 'issue' }\n]\n"]}
@@ -21,7 +21,7 @@ async function assign({ id, assignees, reason, dueAt }, context) {
21
21
  Prerequisites for a Task to Be Assigned.
22
22
  - The previous state of the task must not be Assigned.
23
23
  */
24
- if (activityInstance.state !== activity_instance_1.ActivityInstanceStatus.Posted &&
24
+ if (activityInstance.state !== activity_instance_1.ActivityInstanceStatus.Issued &&
25
25
  activityInstance.state !== activity_instance_1.ActivityInstanceStatus.PendingAssignment) {
26
26
  throw new Error(context.t(`error.activity-instance should not be assigned`, {
27
27
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/assign.ts"],"names":[],"mappings":";;;AAAA,qCAA4B;AAE5B,yDAAgD;AAEhD,yFAA4G;AAC5G,sCAAyD;AAElD,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAuE,EACrG,OAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAErD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;KACpH,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,MAAM;QACxD,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,iBAAiB,EACnE;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,EAAE;YACF,MAAM,EAAE,gBAAgB,CAAC,KAAK;SAC/B,CAAC,CACH,CAAA;KACF;IAED,IAAI,KAAK,EAAE;QACT,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;KAC/B;IAED,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,IAAI,CAAC;QACtD,KAAK,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC;KACrB,CAAC,CAAA;IAEF,MAAM,IAAA,sCAA6B,EAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAEvF,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAA;AACxF,CAAC;AAhDD,wBAgDC","sourcesContent":["import { In } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\n\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { createActivityThreadsForUsers } from '../common'\n\nexport async function assign(\n { id, assignees, reason, dueAt }: { id: string; assignees?: string[]; reason?: string; dueAt?: Date },\n context: any\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ActivityInstance)\n\n var activityInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activity', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']\n })\n\n if (!activityInstance) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityInstance: id\n })\n )\n }\n\n /* \n Prerequisites for a Task to Be Assigned.\n - The previous state of the task must not be Assigned.\n */\n if (\n activityInstance.state !== ActivityInstanceStatus.Posted &&\n activityInstance.state !== ActivityInstanceStatus.PendingAssignment\n ) {\n throw new Error(\n context.t(`error.activity-instance should not be assigned`, {\n id,\n actual: activityInstance.state\n })\n )\n }\n\n if (dueAt) {\n activityInstance.dueAt = dueAt\n }\n\n const assignedUsers = await tx.getRepository(User).find({\n email: In(assignees)\n })\n\n await createActivityThreadsForUsers('assign', activityInstance, assignedUsers, context)\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: activityInstance.id })\n}\n"]}
1
+ {"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/assign.ts"],"names":[],"mappings":";;;AAAA,qCAA4B;AAE5B,yDAAgD;AAEhD,yFAA4G;AAC5G,sCAAyD;AAElD,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAuE,EACrG,OAAY;IAEZ,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAErD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;KACpH,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,MAAM;QACxD,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,iBAAiB,EACnE;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,EAAE;YACF,MAAM,EAAE,gBAAgB,CAAC,KAAK;SAC/B,CAAC,CACH,CAAA;KACF;IAED,IAAI,KAAK,EAAE;QACT,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;KAC/B;IAED,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,IAAI,CAAC;QACtD,KAAK,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC;KACrB,CAAC,CAAA;IAEF,MAAM,IAAA,sCAA6B,EAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAEvF,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAA;AACxF,CAAC;AAhDD,wBAgDC","sourcesContent":["import { In } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\n\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { createActivityThreadsForUsers } from '../common'\n\nexport async function assign(\n { id, assignees, reason, dueAt }: { id: string; assignees?: string[]; reason?: string; dueAt?: Date },\n context: any\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n\n const repository = tx.getRepository(ActivityInstance)\n\n var activityInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activity', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']\n })\n\n if (!activityInstance) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityInstance: id\n })\n )\n }\n\n /* \n Prerequisites for a Task to Be Assigned.\n - The previous state of the task must not be Assigned.\n */\n if (\n activityInstance.state !== ActivityInstanceStatus.Issued &&\n activityInstance.state !== ActivityInstanceStatus.PendingAssignment\n ) {\n throw new Error(\n context.t(`error.activity-instance should not be assigned`, {\n id,\n actual: activityInstance.state\n })\n )\n }\n\n if (dueAt) {\n activityInstance.dueAt = dueAt\n }\n\n const assignedUsers = await tx.getRepository(User).find({\n email: In(assignees)\n })\n\n await createActivityThreadsForUsers('assign', activityInstance, assignedUsers, context)\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: activityInstance.id })\n}\n"]}
@@ -6,9 +6,31 @@ const activity_1 = require("../../service/activity/activity");
6
6
  const common_1 = require("../common");
7
7
  async function draft(activityInstance, context) {
8
8
  const { domain, user, tx } = context.state;
9
- const { activityId, input, dueAt } = activityInstance;
9
+ const { id, activityId, input, dueAt } = activityInstance;
10
10
  var repository = tx.getRepository(activity_1.Activity);
11
11
  var activity = {};
12
+ if (id) {
13
+ var previousActivityInstance = await tx.getRepository(activity_instance_1.ActivityInstance).findOne({
14
+ where: { domain: { id: domain.id }, id },
15
+ relations: ['activity']
16
+ });
17
+ if (!previousActivityInstance) {
18
+ throw new Error(context.t('error.activityInstance not found', {
19
+ activityInstance: id
20
+ }));
21
+ }
22
+ if (previousActivityInstance.state !== activity_instance_1.ActivityInstanceStatus.Draft) {
23
+ throw new Error(context.t('error.activityInstance state should be draft', {
24
+ activityInstance: id,
25
+ state: previousActivityInstance.state
26
+ }));
27
+ }
28
+ activity = previousActivityInstance.activity;
29
+ }
30
+ else {
31
+ activityInstance.adhocType = 'standard';
32
+ activityInstance.refBy = activityId;
33
+ }
12
34
  if (activityId) {
13
35
  activity = await repository.findOne({
14
36
  where: { domain: { id: domain.id }, id: activityId },
@@ -20,8 +42,6 @@ async function draft(activityInstance, context) {
20
42
  }));
21
43
  }
22
44
  }
23
- activityInstance.adhocType = 'standard';
24
- activityInstance.refBy = activityId;
25
45
  if (!activityInstance.assignees) {
26
46
  activityInstance.assignees = activity.assignees;
27
47
  }
@@ -39,8 +59,6 @@ async function draft(activityInstance, context) {
39
59
  };
40
60
  });
41
61
  }
42
- else {
43
- }
44
62
  if (activityInstance.approvalLine) {
45
63
  activityInstance.approvalLine = activityInstance.approvalLine.map(approval => {
46
64
  return {
@@ -50,7 +68,7 @@ async function draft(activityInstance, context) {
50
68
  });
51
69
  }
52
70
  const activitySearchKeys = (0, common_1.fillActivitySearchKeys)(activity === null || activity === void 0 ? void 0 : activity.searchKeys, input);
53
- return await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign({ activityType: activity.activityType, uiType: activity.uiType, uiSource: activity.uiSource, viewType: activity.viewType, viewSource: activity.viewSource, assigneeRole: activity.assigneeRole, supervisoryRole: activity.supervisoryRole }, activityInstance), { transaction: 'draft', activity }), activitySearchKeys), { state: activity_instance_1.ActivityInstanceStatus.Draft, domain, creator: user, updater: user }));
71
+ return await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, previousActivityInstance), { activityType: activity.activityType, uiType: activity.uiType, uiSource: activity.uiSource, viewType: activity.viewType, viewSource: activity.viewSource, assigneeRole: activity.assigneeRole, supervisoryRole: activity.supervisoryRole }), activityInstance), { transaction: 'draft', activity }), activitySearchKeys), { state: activity_instance_1.ActivityInstanceStatus.Draft, domain, creator: user, updater: user }));
54
72
  }
55
73
  exports.draft = draft;
56
74
  //# sourceMappingURL=draft.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/draft.ts"],"names":[],"mappings":";;;AAAA,yFAA4G;AAE5G,8DAA0D;AAC1D,sCAAkD;AAE3C,KAAK,UAAU,KAAK,CACzB,gBAAqC,EACrC,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,gBAAgB,CAAA;IAErD,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mBAAQ,CAAC,CAAA;IAC3C,IAAI,QAAQ,GAAG,EAAc,CAAA;IAE7B,IAAI,UAAU,EAAE;QACd,QAAQ,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;YAClC,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE;YACpD,SAAS,EAAE,CAAC,cAAc,EAAE,iBAAiB,CAAC;SAC/C,CAAC,CAAA;QAEF,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,0BAA0B,EAAE;gBACpC,QAAQ,EAAE,UAAU;aACrB,CAAC,CACH,CAAA;SACF;KACF;IAED,gBAAgB,CAAC,SAAS,GAAG,UAAU,CAAA;IACvC,gBAAgB,CAAC,KAAK,GAAG,UAAU,CAAA;IACnC,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;QAC/B,gBAAgB,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAA;KAChD;IACD,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;QAClC,gBAAgB,CAAC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAA;KACtD;IAED,IAAI,CAAC,KAAK,IAAI,QAAQ,CAAC,YAAY,EAAE;QACnC,gBAAgB,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,YAAY,GAAG,IAAI,CAAC,CAAA;KAC7E;IAED,IAAI,gBAAgB,CAAC,SAAS,EAAE;QAC9B,gBAAgB,CAAC,SAAS,GAAG,gBAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YACrE,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAA;QACH,CAAC,CAAC,CAAA;KACH;SAAM;KACN;IAED,IAAI,gBAAgB,CAAC,YAAY,EAAE;QACjC,gBAAgB,CAAC,YAAY,GAAG,gBAAgB,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE;YAC3E,OAAO;gBACL,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,KAAK,EAAE,QAAQ,CAAC,KAAK;aACtB,CAAA;QACH,CAAC,CAAC,CAAA;KACH;IAED,MAAM,kBAAkB,GAAG,IAAA,+BAAsB,EAAC,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,UAAU,EAAE,KAAK,CAAC,CAAA;IAE9E,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAC,IAAI,2DAClD,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnC,MAAM,EAAE,QAAQ,CAAC,MAAM,EACvB,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAC3B,UAAU,EAAE,QAAQ,CAAC,UAAU,EAC/B,YAAY,EAAE,QAAQ,CAAC,YAAY,EACnC,eAAe,EAAE,QAAQ,CAAC,eAAe,IACtC,gBAAgB,KACnB,WAAW,EAAE,OAAO,EACpB,QAAQ,KACL,kBAAkB,KACrB,KAAK,EAAE,0CAAsB,CAAC,KAAK,EACnC,MAAM,EACN,OAAO,EAAE,IAAI,EACb,OAAO,EAAE,IAAI,IACb,CAAA;AACJ,CAAC;AA5ED,sBA4EC","sourcesContent":["import { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { NewActivityInstance } from '../../service/activity-instance/activity-instance-type'\nimport { Activity } from '../../service/activity/activity'\nimport { fillActivitySearchKeys } from '../common'\n\nexport async function draft(\n activityInstance: NewActivityInstance,\n context: ResolverContext\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n const { activityId, input, dueAt } = activityInstance\n\n var repository = tx.getRepository(Activity)\n var activity = {} as Activity\n\n if (activityId) {\n activity = await repository.findOne({\n where: { domain: { id: domain.id }, id: activityId },\n relations: ['assigneeRole', 'supervisoryRole']\n })\n\n if (!activity) {\n throw new Error(\n context.t('error.activity not found', {\n activity: activityId\n })\n )\n }\n }\n\n activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n if (!activityInstance.assignees) {\n activityInstance.assignees = activity.assignees\n }\n if (!activityInstance.approvalLine) {\n activityInstance.approvalLine = activity.approvalLine\n }\n\n if (!dueAt && activity.standardTime) {\n activityInstance.dueAt = new Date(Date.now() + activity.standardTime * 1000)\n }\n\n if (activityInstance.assignees) {\n activityInstance.assignees = activityInstance.assignees.map(assignee => {\n return {\n type: assignee.type,\n value: assignee.value\n }\n })\n } else {\n }\n\n if (activityInstance.approvalLine) {\n activityInstance.approvalLine = activityInstance.approvalLine.map(approval => {\n return {\n type: approval.type,\n value: approval.value\n }\n })\n }\n\n const activitySearchKeys = fillActivitySearchKeys(activity?.searchKeys, input)\n\n return await tx.getRepository(ActivityInstance).save({\n activityType: activity.activityType,\n uiType: activity.uiType,\n uiSource: activity.uiSource,\n viewType: activity.viewType,\n viewSource: activity.viewSource,\n assigneeRole: activity.assigneeRole,\n supervisoryRole: activity.supervisoryRole,\n ...activityInstance,\n transaction: 'draft',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Draft,\n domain,\n creator: user,\n updater: user\n })\n}\n"]}
1
+ {"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/draft.ts"],"names":[],"mappings":"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","sourcesContent":["import { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { ActivityInstanceDraft } from '../../service/activity-instance/activity-instance-type'\nimport { Activity } from '../../service/activity/activity'\nimport { fillActivitySearchKeys } from '../common'\n\nexport async function draft(\n activityInstance: ActivityInstanceDraft,\n context: ResolverContext\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n const { id, activityId, input, dueAt } = activityInstance\n\n var repository = tx.getRepository(Activity)\n var activity = {} as Activity\n\n if (id) {\n var previousActivityInstance = await tx.getRepository(ActivityInstance).findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['activity']\n })\n\n if (!previousActivityInstance) {\n throw new Error(\n context.t('error.activityInstance not found', {\n activityInstance: id\n })\n )\n }\n\n if (previousActivityInstance.state !== ActivityInstanceStatus.Draft) {\n throw new Error(\n context.t('error.activityInstance state should be draft', {\n activityInstance: id,\n state: previousActivityInstance.state\n })\n )\n }\n\n activity = previousActivityInstance.activity\n } else {\n activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n }\n\n if (activityId) {\n activity = await repository.findOne({\n where: { domain: { id: domain.id }, id: activityId },\n relations: ['assigneeRole', 'supervisoryRole']\n })\n\n if (!activity) {\n throw new Error(\n context.t('error.activity not found', {\n activity: activityId\n })\n )\n }\n }\n\n if (!activityInstance.assignees) {\n activityInstance.assignees = activity.assignees\n }\n if (!activityInstance.approvalLine) {\n activityInstance.approvalLine = activity.approvalLine\n }\n\n if (!dueAt && activity.standardTime) {\n activityInstance.dueAt = new Date(Date.now() + activity.standardTime * 1000)\n }\n\n if (activityInstance.assignees) {\n activityInstance.assignees = activityInstance.assignees.map(assignee => {\n return {\n type: assignee.type,\n value: assignee.value\n }\n })\n }\n\n if (activityInstance.approvalLine) {\n activityInstance.approvalLine = activityInstance.approvalLine.map(approval => {\n return {\n type: approval.type,\n value: approval.value\n }\n })\n }\n\n const activitySearchKeys = fillActivitySearchKeys(activity?.searchKeys, input)\n\n return await tx.getRepository(ActivityInstance).save({\n ...previousActivityInstance,\n activityType: activity.activityType,\n uiType: activity.uiType,\n uiSource: activity.uiSource,\n viewType: activity.viewType,\n viewSource: activity.viewSource,\n assigneeRole: activity.assigneeRole,\n supervisoryRole: activity.supervisoryRole,\n ...activityInstance,\n transaction: 'draft',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Draft,\n domain,\n creator: user,\n updater: user\n })\n}\n"]}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./draft"), exports);
5
- tslib_1.__exportStar(require("./post"), exports);
5
+ tslib_1.__exportStar(require("./issue"), exports);
6
6
  tslib_1.__exportStar(require("./pick"), exports);
7
7
  tslib_1.__exportStar(require("./assign"), exports);
8
8
  tslib_1.__exportStar(require("./abort"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,iDAAsB;AACtB,iDAAsB;AACtB,mDAAwB;AACxB,kDAAuB;AACvB,gDAAqB","sourcesContent":["export * from './draft'\nexport * from './post'\nexport * from './pick'\nexport * from './assign'\nexport * from './abort'\nexport * from './end'\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/index.ts"],"names":[],"mappings":";;;AAAA,kDAAuB;AACvB,kDAAuB;AACvB,iDAAsB;AACtB,mDAAwB;AACxB,kDAAuB;AACvB,gDAAqB","sourcesContent":["export * from './draft'\nexport * from './issue'\nexport * from './pick'\nexport * from './assign'\nexport * from './abort'\nexport * from './end'\n"]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.issue = void 0;
4
+ const activity_1 = require("../../service/activity/activity");
5
+ const activity_instance_1 = require("../../service/activity-instance/activity-instance");
6
+ const common_1 = require("../common");
7
+ const submit_1 = require("../activity-thread/submit");
8
+ async function issue(activityInstance, context) {
9
+ const { domain, user, tx } = context.state;
10
+ const issuedAt = new Date();
11
+ var { id, name, description, assignees, uiType, uiSource, viewType, viewSource, dueAt, priority, approvalLine, activityId, activityType, assigneeRole, supervisoryRole, input } = activityInstance;
12
+ var origin = id
13
+ ? await tx.getRepository(activity_instance_1.ActivityInstance).findOne({
14
+ where: { domain: { id: domain.id }, id },
15
+ relations: [
16
+ 'domain',
17
+ 'activity',
18
+ 'assigneeRole',
19
+ 'supervisoryRole',
20
+ 'updater',
21
+ 'creator',
22
+ 'starter',
23
+ 'terminator'
24
+ ]
25
+ })
26
+ : null;
27
+ /*
28
+ Prerequisites for a Task to Be Issued.
29
+ - The previous state of the task should be Draft.
30
+ */
31
+ if (origin && origin.state !== activity_instance_1.ActivityInstanceStatus.Draft) {
32
+ throw new Error(context.t(`error.activity-instance is already issued`, {
33
+ id: id,
34
+ state: origin.state
35
+ }));
36
+ }
37
+ var repository = tx.getRepository(activity_1.Activity);
38
+ var activity = (origin === null || origin === void 0 ? void 0 : origin.activity) ||
39
+ (await repository.findOne({
40
+ where: { domain: { id: domain.id }, id: activityId },
41
+ relations: ['assigneeRole', 'supervisoryRole']
42
+ }));
43
+ if (!activity) {
44
+ throw new Error(context.t('error.activity not found', {
45
+ activity: activityId
46
+ }));
47
+ }
48
+ if (!origin) {
49
+ activityInstance.name = name || activity.name;
50
+ activityInstance.description = description || activity.description;
51
+ activityInstance.activityType = activityType || activity.activityType;
52
+ activityInstance.uiType = uiType || activity.uiType;
53
+ activityInstance.uiSource = uiSource || activity.uiSource;
54
+ activityInstance.viewType = viewType || activity.viewType;
55
+ activityInstance.viewSource = viewSource || activity.viewSource;
56
+ activityInstance.assigneeRole = assigneeRole || activity.assigneeRole;
57
+ activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole;
58
+ activityInstance.priority = priority !== null && priority !== void 0 ? priority : activity.priority;
59
+ if (!assignees || !approvalLine) {
60
+ activityInstance.adhocType = 'standard';
61
+ activityInstance.refBy = activityId;
62
+ if (!assignees) {
63
+ assignees = activityInstance.assignees = activity.assignees;
64
+ }
65
+ if (!approvalLine) {
66
+ approvalLine = activityInstance.approvalLine = activity.approvalLine;
67
+ }
68
+ if (!dueAt && activity.standardTime) {
69
+ activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000);
70
+ }
71
+ }
72
+ }
73
+ const activitySearchKeys = (0, common_1.fillActivitySearchKeys)(activity === null || activity === void 0 ? void 0 : activity.searchKeys, input);
74
+ if (activity.startingType == 'post') {
75
+ /*
76
+ startingType이 'post'이면,
77
+ activityInstance 이슈와 동시에 issuer에게 할당된 activityThread가 생성되고 submit까지 모두 완료되게 된다.
78
+ 만일, 결재선이 있다면, 상신되게 된다.
79
+ */
80
+ const posted = await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), activityInstance), { transaction: 'post', activity }), activitySearchKeys), { state: activity_instance_1.ActivityInstanceStatus.Started, domain, issuer: user, updater: user, issuedAt, startedAt: issuedAt }));
81
+ const thread = await (0, common_1.createActivityThreadForUser)('post', posted, user, context);
82
+ const data = Object.assign(Object.assign({}, activityInstance.input), activityInstance.output);
83
+ const output = (activity.model || [])
84
+ .filter(item => item.inout === 'inout' || item.inout === 'out')
85
+ .reduce((inout, item) => {
86
+ inout[item.name] = data[item.name];
87
+ return inout;
88
+ }, {});
89
+ (0, submit_1.submit)({ id: thread.id, output }, context);
90
+ return await tx.getRepository(activity_instance_1.ActivityInstance).findOneBy({ id: posted.id });
91
+ }
92
+ else {
93
+ const issued = await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), activityInstance), { transaction: 'issue', activity }), activitySearchKeys), { state: activity_instance_1.ActivityInstanceStatus.Issued, domain, issuer: user, updater: user, issuedAt }));
94
+ const assignedUsers = await Promise.all((assignees || []).map(assignee => (0, common_1.getSystemUserFromOrgMemberItem)(assignee, context)));
95
+ if (assignedUsers.length == 0 && issued.threadsMin === 0 && issued.assigneeRoleId) {
96
+ await (0, common_1.createActivityThreadsForAllRoleUsers)('issue', issued, context);
97
+ }
98
+ if (assignedUsers.length > 0) {
99
+ await (0, common_1.createActivityThreadsForUsers)('issue', issued, assignedUsers, context);
100
+ }
101
+ return await tx.getRepository(activity_instance_1.ActivityInstance).findOneBy({ id: issued.id });
102
+ }
103
+ }
104
+ exports.issue = issue;
105
+ //# sourceMappingURL=issue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"issue.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/issue.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from '../../service/activity/activity'\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { ActivityInstanceIssue } from '../../service/activity-instance/activity-instance-type'\nimport {\n createActivityThreadsForAllRoleUsers,\n createActivityThreadsForUsers,\n getSystemUserFromOrgMemberItem,\n createActivityThreadForUser,\n fillActivitySearchKeys\n} from '../common'\nimport { submit } from '../activity-thread/submit'\n\nexport async function issue(\n activityInstance: ActivityInstanceIssue,\n context: ResolverContext\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n const issuedAt = new Date()\n var {\n id,\n name,\n description,\n assignees,\n uiType,\n uiSource,\n viewType,\n viewSource,\n dueAt,\n priority,\n approvalLine,\n activityId,\n activityType,\n assigneeRole,\n supervisoryRole,\n input\n } = activityInstance\n\n var origin = id\n ? await tx.getRepository(ActivityInstance).findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'activity',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n : null\n\n /* \n Prerequisites for a Task to Be Issued.\n - The previous state of the task should be Draft.\n */\n if (origin && origin.state !== ActivityInstanceStatus.Draft) {\n throw new Error(\n context.t(`error.activity-instance is already issued`, {\n id: id,\n state: origin.state\n })\n )\n }\n\n var repository = tx.getRepository(Activity)\n var activity =\n origin?.activity ||\n (await repository.findOne({\n where: { domain: { id: domain.id }, id: activityId },\n relations: ['assigneeRole', 'supervisoryRole']\n }))\n\n if (!activity) {\n throw new Error(\n context.t('error.activity not found', {\n activity: activityId\n })\n )\n }\n\n if (!origin) {\n activityInstance.name = name || activity.name\n activityInstance.description = description || activity.description\n activityInstance.activityType = activityType || activity.activityType\n activityInstance.uiType = uiType || activity.uiType\n activityInstance.uiSource = uiSource || activity.uiSource\n activityInstance.viewType = viewType || activity.viewType\n activityInstance.viewSource = viewSource || activity.viewSource\n activityInstance.assigneeRole = assigneeRole || activity.assigneeRole\n activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole\n activityInstance.priority = priority ?? activity.priority\n\n if (!assignees || !approvalLine) {\n activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n if (!assignees) {\n assignees = activityInstance.assignees = activity.assignees\n }\n if (!approvalLine) {\n approvalLine = activityInstance.approvalLine = activity.approvalLine\n }\n\n if (!dueAt && activity.standardTime) {\n activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000)\n }\n }\n }\n\n const activitySearchKeys = fillActivitySearchKeys(activity?.searchKeys, input)\n\n if (activity.startingType == 'post') {\n /* \n startingType이 'post'이면, \n activityInstance 이슈와 동시에 issuer에게 할당된 activityThread가 생성되고 submit까지 모두 완료되게 된다.\n 만일, 결재선이 있다면, 상신되게 된다.\n */\n const posted = await tx.getRepository(ActivityInstance).save({\n creator: user,\n ...origin,\n ...activityInstance,\n transaction: 'post',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Started,\n domain,\n issuer: user,\n updater: user,\n issuedAt,\n startedAt: issuedAt\n })\n\n const thread = await createActivityThreadForUser('post', posted, user, context)\n const data = { ...activityInstance.input, ...activityInstance.output }\n const output = (activity.model || [])\n .filter(item => item.inout === 'inout' || item.inout === 'out')\n .reduce((inout, item) => {\n inout[item.name] = data[item.name]\n return inout\n }, {})\n\n submit({ id: thread.id, output }, context)\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: posted.id })\n } else {\n const issued = await tx.getRepository(ActivityInstance).save({\n creator: user,\n ...origin,\n ...activityInstance,\n transaction: 'issue',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Issued,\n domain,\n issuer: user,\n updater: user,\n issuedAt\n })\n\n const assignedUsers = await Promise.all(\n (assignees || []).map(assignee => getSystemUserFromOrgMemberItem(assignee, context))\n )\n\n if (assignedUsers.length == 0 && issued.threadsMin === 0 && issued.assigneeRoleId) {\n await createActivityThreadsForAllRoleUsers('issue', issued, context)\n }\n\n if (assignedUsers.length > 0) {\n await createActivityThreadsForUsers('issue', issued, assignedUsers, context)\n }\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: issued.id })\n }\n}\n"]}
@@ -19,7 +19,7 @@ async function pick(id, context) {
19
19
  Prerequisites for a Task to Be Picked.
20
20
  - The previous state of the task must not be Assigned.
21
21
  */
22
- if (activityInstance.state !== activity_instance_1.ActivityInstanceStatus.Posted &&
22
+ if (activityInstance.state !== activity_instance_1.ActivityInstanceStatus.Issued &&
23
23
  activityInstance.state !== activity_instance_1.ActivityInstanceStatus.PendingAssignment) {
24
24
  throw new Error(context.t(`error.activity-instance should not be assigned`, {
25
25
  id,
@@ -1 +1 @@
1
- {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/pick.ts"],"names":[],"mappings":";;;AAAA,yFAA4G;AAE5G,sCAAyD;AAElD,KAAK,UAAU,IAAI,CAAC,EAAU,EAAE,OAAwB;IAC7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAErD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;KACpH,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,MAAM;QACxD,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,iBAAiB,EACnE;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,EAAE;YACF,MAAM,EAAE,gBAAgB,CAAC,KAAK;SAC/B,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,gBAAgB,KACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,OAAO,CAAC,MAAM,IAAA,sCAA6B,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClF,CAAC;AAxCD,oBAwCC","sourcesContent":["import { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { ActivityThread } from '../../service/activity-thread/activity-thread'\nimport { createActivityThreadsForUsers } from '../common'\n\nexport async function pick(id: string, context: ResolverContext): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(ActivityInstance)\n\n var activityInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activity', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']\n })\n\n if (!activityInstance) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityInstance: id\n })\n )\n }\n\n /* \n Prerequisites for a Task to Be Picked.\n - The previous state of the task must not be Assigned.\n */\n if (\n activityInstance.state !== ActivityInstanceStatus.Posted &&\n activityInstance.state !== ActivityInstanceStatus.PendingAssignment\n ) {\n throw new Error(\n context.t(`error.activity-instance should not be assigned`, {\n id,\n actual: activityInstance.state\n })\n )\n }\n\n const picked = await repository.save({\n ...activityInstance,\n transaction: 'pick',\n updater: user\n })\n\n return (await createActivityThreadsForUsers('pick', picked, [user], context))[0]\n}\n"]}
1
+ {"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/pick.ts"],"names":[],"mappings":";;;AAAA,yFAA4G;AAE5G,sCAAyD;AAElD,KAAK,UAAU,IAAI,CAAC,EAAU,EAAE,OAAwB;IAC7D,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,oCAAgB,CAAC,CAAA;IAErD,IAAI,gBAAgB,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC9C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,cAAc,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,CAAC;KACpH,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE;QACrB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;KACF;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,MAAM;QACxD,gBAAgB,CAAC,KAAK,KAAK,0CAAsB,CAAC,iBAAiB,EACnE;QACA,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,EAAE;YACF,MAAM,EAAE,gBAAgB,CAAC,KAAK;SAC/B,CAAC,CACH,CAAA;KACF;IAED,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,iCAC/B,gBAAgB,KACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,IAAI,IACb,CAAA;IAEF,OAAO,CAAC,MAAM,IAAA,sCAA6B,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClF,CAAC;AAxCD,oBAwCC","sourcesContent":["import { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { ActivityThread } from '../../service/activity-thread/activity-thread'\nimport { createActivityThreadsForUsers } from '../common'\n\nexport async function pick(id: string, context: ResolverContext): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n const repository = tx.getRepository(ActivityInstance)\n\n var activityInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activity', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']\n })\n\n if (!activityInstance) {\n throw new Error(\n context.t('error.activity-instance not found', {\n activityInstance: id\n })\n )\n }\n\n /* \n Prerequisites for a Task to Be Picked.\n - The previous state of the task must not be Assigned.\n */\n if (\n activityInstance.state !== ActivityInstanceStatus.Issued &&\n activityInstance.state !== ActivityInstanceStatus.PendingAssignment\n ) {\n throw new Error(\n context.t(`error.activity-instance should not be assigned`, {\n id,\n actual: activityInstance.state\n })\n )\n }\n\n const picked = await repository.save({\n ...activityInstance,\n transaction: 'pick',\n updater: user\n })\n\n return (await createActivityThreadsForUsers('pick', picked, [user], context))[0]\n}\n"]}
@@ -24,11 +24,11 @@ async function post(activityInstance, context) {
24
24
  })
25
25
  : null;
26
26
  /*
27
- Prerequisites for a Task to Be Posted.
27
+ Prerequisites for a Task to Be Issued.
28
28
  - The previous state of the task should be Draft.
29
29
  */
30
30
  if (origin && origin.state !== activity_instance_1.ActivityInstanceStatus.Draft) {
31
- throw new Error(context.t(`error.activity-instance is already posted`, {
31
+ throw new Error(context.t(`error.activity-instance is already issued`, {
32
32
  id: id,
33
33
  state: origin.state
34
34
  }));
@@ -72,15 +72,15 @@ async function post(activityInstance, context) {
72
72
  }
73
73
  }
74
74
  const activitySearchKeys = (0, common_1.fillActivitySearchKeys)(activity === null || activity === void 0 ? void 0 : activity.searchKeys, input);
75
- const posted = await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), activityInstance), { transaction: 'post', activity }), activitySearchKeys), { state: activity_instance_1.ActivityInstanceStatus.Posted, domain, issuer: user, updater: user, issuedAt }));
75
+ const issued = await tx.getRepository(activity_instance_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), activityInstance), { transaction: 'issue', activity }), activitySearchKeys), { state: activity_instance_1.ActivityInstanceStatus.Issued, domain, issuer: user, updater: user, issuedAt }));
76
76
  const assignedUsers = await Promise.all((assignees || []).map(assignee => (0, common_1.getSystemUserFromOrgMemberItem)(assignee, context)));
77
- if (assignedUsers.length == 0 && posted.threadsMin === 0 && posted.assigneeRoleId) {
78
- await (0, common_1.createActivityThreadsForAllRoleUsers)('post', posted, context);
77
+ if (assignedUsers.length == 0 && issued.threadsMin === 0 && issued.assigneeRoleId) {
78
+ await (0, common_1.createActivityThreadsForAllRoleUsers)('post', issued, context);
79
79
  }
80
80
  if (assignedUsers.length > 0) {
81
- await (0, common_1.createActivityThreadsForUsers)('post', posted, assignedUsers, context);
81
+ await (0, common_1.createActivityThreadsForUsers)('post', issued, assignedUsers, context);
82
82
  }
83
- return await tx.getRepository(activity_instance_1.ActivityInstance).findOneBy({ id: posted.id });
83
+ return await tx.getRepository(activity_instance_1.ActivityInstance).findOneBy({ id: issued.id });
84
84
  }
85
85
  exports.post = post;
86
86
  //# sourceMappingURL=post.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from '../../service/activity/activity'\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { ActivityInstancePost } from '../../service/activity-instance/activity-instance-type'\nimport {\n createActivityThreadsForAllRoleUsers,\n createActivityThreadsForUsers,\n getSystemUserFromOrgMemberItem,\n fillActivitySearchKeys\n} from '../common'\n\nexport async function post(\n activityInstance: ActivityInstancePost,\n context: ResolverContext\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n const issuedAt = new Date()\n var {\n id,\n name,\n description,\n assignees,\n uiType,\n uiSource,\n viewType,\n viewSource,\n dueAt,\n priority,\n approvalLine,\n activityId,\n activityType,\n assigneeRole,\n supervisoryRole,\n input\n } = activityInstance\n\n var origin = id\n ? await tx.getRepository(ActivityInstance).findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'activity',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n : null\n\n /* \n Prerequisites for a Task to Be Posted.\n - The previous state of the task should be Draft.\n */\n if (origin && origin.state !== ActivityInstanceStatus.Draft) {\n throw new Error(\n context.t(`error.activity-instance is already posted`, {\n id: id,\n state: origin.state\n })\n )\n }\n\n if (!origin && activityId) {\n var repository = tx.getRepository(Activity)\n var activity = {} as Activity\n\n if (activityId) {\n activity = await repository.findOne({\n where: { domain: { id: domain.id }, id: activityId },\n relations: ['assigneeRole', 'supervisoryRole']\n })\n\n if (!activity) {\n throw new Error(\n context.t('error.activity not found', {\n activity: activityId\n })\n )\n }\n }\n\n activityInstance.name = name || activity.name\n activityInstance.description = description || activity.description\n activityInstance.activityType = activityType || activity.activityType\n activityInstance.uiType = uiType || activity.uiType\n activityInstance.uiSource = uiSource || activity.uiSource\n activityInstance.viewType = viewType || activity.viewType\n activityInstance.viewSource = viewSource || activity.viewSource\n activityInstance.assigneeRole = assigneeRole || activity.assigneeRole\n activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole\n activityInstance.priority = priority ?? activity.priority\n\n if (!assignees || !approvalLine) {\n activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n if (!assignees) {\n assignees = activityInstance.assignees = activity.assignees\n }\n if (!approvalLine) {\n approvalLine = activityInstance.approvalLine = activity.approvalLine\n }\n\n if (!dueAt && activity.standardTime) {\n activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000)\n }\n }\n }\n\n const activitySearchKeys = fillActivitySearchKeys(activity?.searchKeys, input)\n\n const posted = await tx.getRepository(ActivityInstance).save({\n creator: user,\n ...origin,\n ...activityInstance,\n transaction: 'post',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Posted,\n domain,\n issuer: user,\n updater: user,\n issuedAt\n })\n\n const assignedUsers = await Promise.all(\n (assignees || []).map(assignee => getSystemUserFromOrgMemberItem(assignee, context))\n )\n\n if (assignedUsers.length == 0 && posted.threadsMin === 0 && posted.assigneeRoleId) {\n await createActivityThreadsForAllRoleUsers('post', posted, context)\n }\n\n if (assignedUsers.length > 0) {\n await createActivityThreadsForUsers('post', posted, assignedUsers, context)\n }\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: posted.id })\n}\n"]}
1
+ {"version":3,"file":"post.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/post.ts"],"names":[],"mappings":"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","sourcesContent":["import { Activity } from '../../service/activity/activity'\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance'\nimport { ActivityInstanceIssue } from '../../service/activity-instance/activity-instance-type'\nimport {\n createActivityThreadsForAllRoleUsers,\n createActivityThreadsForUsers,\n getSystemUserFromOrgMemberItem,\n fillActivitySearchKeys\n} from '../common'\n\nexport async function post(\n activityInstance: ActivityInstanceIssue,\n context: ResolverContext\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n const issuedAt = new Date()\n var {\n id,\n name,\n description,\n assignees,\n uiType,\n uiSource,\n viewType,\n viewSource,\n dueAt,\n priority,\n approvalLine,\n activityId,\n activityType,\n assigneeRole,\n supervisoryRole,\n input\n } = activityInstance\n\n var origin = id\n ? await tx.getRepository(ActivityInstance).findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'activity',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\n })\n : null\n\n /* \n Prerequisites for a Task to Be Issued.\n - The previous state of the task should be Draft.\n */\n if (origin && origin.state !== ActivityInstanceStatus.Draft) {\n throw new Error(\n context.t(`error.activity-instance is already issued`, {\n id: id,\n state: origin.state\n })\n )\n }\n\n if (!origin && activityId) {\n var repository = tx.getRepository(Activity)\n var activity = {} as Activity\n\n if (activityId) {\n activity = await repository.findOne({\n where: { domain: { id: domain.id }, id: activityId },\n relations: ['assigneeRole', 'supervisoryRole']\n })\n\n if (!activity) {\n throw new Error(\n context.t('error.activity not found', {\n activity: activityId\n })\n )\n }\n }\n\n activityInstance.name = name || activity.name\n activityInstance.description = description || activity.description\n activityInstance.activityType = activityType || activity.activityType\n activityInstance.uiType = uiType || activity.uiType\n activityInstance.uiSource = uiSource || activity.uiSource\n activityInstance.viewType = viewType || activity.viewType\n activityInstance.viewSource = viewSource || activity.viewSource\n activityInstance.assigneeRole = assigneeRole || activity.assigneeRole\n activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole\n activityInstance.priority = priority ?? activity.priority\n\n if (!assignees || !approvalLine) {\n activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n if (!assignees) {\n assignees = activityInstance.assignees = activity.assignees\n }\n if (!approvalLine) {\n approvalLine = activityInstance.approvalLine = activity.approvalLine\n }\n\n if (!dueAt && activity.standardTime) {\n activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000)\n }\n }\n }\n\n const activitySearchKeys = fillActivitySearchKeys(activity?.searchKeys, input)\n\n const issued = await tx.getRepository(ActivityInstance).save({\n creator: user,\n ...origin,\n ...activityInstance,\n transaction: 'issue',\n activity,\n ...activitySearchKeys,\n state: ActivityInstanceStatus.Issued,\n domain,\n issuer: user,\n updater: user,\n issuedAt\n })\n\n const assignedUsers = await Promise.all(\n (assignees || []).map(assignee => getSystemUserFromOrgMemberItem(assignee, context))\n )\n\n if (assignedUsers.length == 0 && issued.threadsMin === 0 && issued.assigneeRoleId) {\n await createActivityThreadsForAllRoleUsers('post', issued, context)\n }\n\n if (assignedUsers.length > 0) {\n await createActivityThreadsForUsers('post', issued, assignedUsers, context)\n }\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: issued.id })\n}\n"]}