@things-factory/worklist 9.0.0-beta.27 → 9.0.0-beta.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-client/activity-summary-generator.d.ts +2 -0
- package/dist-client/activity-summary-generator.js +114 -0
- package/dist-client/activity-summary-generator.js.map +1 -0
- package/dist-client/bootstrap.d.ts +5 -0
- package/dist-client/bootstrap.js +66 -0
- package/dist-client/bootstrap.js.map +1 -0
- package/dist-client/components/activity-/bowner-view.d.ts +1 -0
- package/dist-client/components/activity-/bowner-view.js +104 -0
- package/dist-client/components/activity-/bowner-view.js.map +1 -0
- package/dist-client/components/activity-approval-ribon.d.ts +12 -0
- package/dist-client/components/activity-approval-ribon.js +164 -0
- package/dist-client/components/activity-approval-ribon.js.map +1 -0
- package/dist-client/components/activity-instance-preview.d.ts +2 -0
- package/dist-client/components/activity-instance-preview.js +185 -0
- package/dist-client/components/activity-instance-preview.js.map +1 -0
- package/dist-client/components/activity-instance-ribon.d.ts +13 -0
- package/dist-client/components/activity-instance-ribon.js +158 -0
- package/dist-client/components/activity-instance-ribon.js.map +1 -0
- package/dist-client/components/activity-intro-view.d.ts +1 -0
- package/dist-client/components/activity-intro-view.js +104 -0
- package/dist-client/components/activity-intro-view.js.map +1 -0
- package/dist-client/components/activity-reporter-view.d.ts +1 -0
- package/dist-client/components/activity-reporter-view.js +103 -0
- package/dist-client/components/activity-reporter-view.js.map +1 -0
- package/dist-client/components/activity-starter-form.d.ts +19 -0
- package/dist-client/components/activity-starter-form.js +262 -0
- package/dist-client/components/activity-starter-form.js.map +1 -0
- package/dist-client/components/activity-thread-ribon.d.ts +13 -0
- package/dist-client/components/activity-thread-ribon.js +152 -0
- package/dist-client/components/activity-thread-ribon.js.map +1 -0
- package/dist-client/components/activity-thread-timeline.d.ts +24 -0
- package/dist-client/components/activity-thread-timeline.js +219 -0
- package/dist-client/components/activity-thread-timeline.js.map +1 -0
- package/dist-client/grist-editor/grist-editor-activity-search-key.d.ts +12 -0
- package/dist-client/grist-editor/grist-editor-activity-search-key.js +71 -0
- package/dist-client/grist-editor/grist-editor-activity-search-key.js.map +1 -0
- package/dist-client/grist-editor/grist-renderer-activity-search-key.d.ts +3 -0
- package/dist-client/grist-editor/grist-renderer-activity-search-key.js +25 -0
- package/dist-client/grist-editor/grist-renderer-activity-search-key.js.map +1 -0
- package/dist-client/grist-editor/popup-activity-search-keys-input.d.ts +17 -0
- package/dist-client/grist-editor/popup-activity-search-keys-input.js +175 -0
- package/dist-client/grist-editor/popup-activity-search-keys-input.js.map +1 -0
- package/dist-client/index.d.ts +3 -0
- package/dist-client/index.js +4 -0
- package/dist-client/index.js.map +1 -0
- package/dist-client/pages/activity/activity-list-page.d.ts +56 -0
- package/dist-client/pages/activity/activity-list-page.js +697 -0
- package/dist-client/pages/activity/activity-list-page.js.map +1 -0
- package/dist-client/pages/activity/activity-model-item-list.d.ts +24 -0
- package/dist-client/pages/activity/activity-model-item-list.js +292 -0
- package/dist-client/pages/activity/activity-model-item-list.js.map +1 -0
- package/dist-client/pages/activity/activity-page.d.ts +56 -0
- package/dist-client/pages/activity/activity-page.js +385 -0
- package/dist-client/pages/activity/activity-page.js.map +1 -0
- package/dist-client/pages/activity/activity-partial-view.d.ts +13 -0
- package/dist-client/pages/activity/activity-partial-view.js +56 -0
- package/dist-client/pages/activity/activity-partial-view.js.map +1 -0
- package/dist-client/pages/activity/starter-list-page.d.ts +37 -0
- package/dist-client/pages/activity/starter-list-page.js +209 -0
- package/dist-client/pages/activity/starter-list-page.js.map +1 -0
- package/dist-client/pages/activity-approval/activity-approval-importer.d.ts +23 -0
- package/dist-client/pages/activity-approval/activity-approval-importer.js +94 -0
- package/dist-client/pages/activity-approval/activity-approval-importer.js.map +1 -0
- package/dist-client/pages/activity-approval/activity-approval-list-page.d.ts +61 -0
- package/dist-client/pages/activity-approval/activity-approval-list-page.js +295 -0
- package/dist-client/pages/activity-approval/activity-approval-list-page.js.map +1 -0
- package/dist-client/pages/activity-approval/activity-approval-page.d.ts +61 -0
- package/dist-client/pages/activity-approval/activity-approval-page.js +471 -0
- package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-list-page.d.ts +35 -0
- package/dist-client/pages/activity-instance/activity-instance-list-page.js +212 -0
- package/dist-client/pages/activity-instance/activity-instance-list-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-search-page.d.ts +75 -0
- package/dist-client/pages/activity-instance/activity-instance-search-page.js +357 -0
- package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +52 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js +481 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -0
- package/dist-client/pages/activity-instance/activity-instance-view.d.ts +19 -0
- package/dist-client/pages/activity-instance/activity-instance-view.js +490 -0
- package/dist-client/pages/activity-instance/activity-instance-view.js.map +1 -0
- package/dist-client/pages/activity-stats/activity-stats-importer.d.ts +23 -0
- package/dist-client/pages/activity-stats/activity-stats-importer.js +94 -0
- package/dist-client/pages/activity-stats/activity-stats-importer.js.map +1 -0
- package/dist-client/pages/activity-stats/activity-stats-list-page.d.ts +61 -0
- package/dist-client/pages/activity-stats/activity-stats-list-page.js +295 -0
- package/dist-client/pages/activity-stats/activity-stats-list-page.js.map +1 -0
- package/dist-client/pages/activity-store/activity-store-page.d.ts +47 -0
- package/dist-client/pages/activity-store/activity-store-page.js +217 -0
- package/dist-client/pages/activity-store/activity-store-page.js.map +1 -0
- package/dist-client/pages/activity-supervisor/reporter-list-page.d.ts +36 -0
- package/dist-client/pages/activity-supervisor/reporter-list-page.js +228 -0
- package/dist-client/pages/activity-supervisor/reporter-list-page.js.map +1 -0
- package/dist-client/pages/activity-template/activity-template-importer.d.ts +11 -0
- package/dist-client/pages/activity-template/activity-template-importer.js +98 -0
- package/dist-client/pages/activity-template/activity-template-importer.js.map +1 -0
- package/dist-client/pages/activity-template/activity-template-list-page.d.ts +59 -0
- package/dist-client/pages/activity-template/activity-template-list-page.js +445 -0
- package/dist-client/pages/activity-template/activity-template-list-page.js.map +1 -0
- package/dist-client/pages/activity-template/activity-template-model-item-list.d.ts +1 -0
- package/dist-client/pages/activity-template/activity-template-model-item-list.js +41 -0
- package/dist-client/pages/activity-template/activity-template-model-item-list.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-importer.d.ts +11 -0
- package/dist-client/pages/activity-thread/activity-thread-importer.js +96 -0
- package/dist-client/pages/activity-thread/activity-thread-importer.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-list-page.d.ts +58 -0
- package/dist-client/pages/activity-thread/activity-thread-list-page.js +295 -0
- package/dist-client/pages/activity-thread/activity-thread-list-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-page.d.ts +62 -0
- package/dist-client/pages/activity-thread/activity-thread-page.js +494 -0
- package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-view-page.d.ts +56 -0
- package/dist-client/pages/activity-thread/activity-thread-view-page.js +313 -0
- package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-view.d.ts +14 -0
- package/dist-client/pages/activity-thread/activity-thread-view.js +339 -0
- package/dist-client/pages/activity-thread/activity-thread-view.js.map +1 -0
- package/dist-client/pages/dashboard/dashboard-home.d.ts +1 -0
- package/dist-client/pages/dashboard/dashboard-home.js +24 -0
- package/dist-client/pages/dashboard/dashboard-home.js.map +1 -0
- package/dist-client/pages/installable-activity/installable-activity-list-page.d.ts +44 -0
- package/dist-client/pages/installable-activity/installable-activity-list-page.js +433 -0
- package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -0
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.d.ts +1 -0
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.js +20 -0
- package/dist-client/pages/installable-activity/installable-activity-model-item-list.js.map +1 -0
- package/dist-client/pages/todo/approval-done-list-page.d.ts +41 -0
- package/dist-client/pages/todo/approval-done-list-page.js +345 -0
- package/dist-client/pages/todo/approval-done-list-page.js.map +1 -0
- package/dist-client/pages/todo/approval-pending-list-page.d.ts +47 -0
- package/dist-client/pages/todo/approval-pending-list-page.js +419 -0
- package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -0
- package/dist-client/pages/todo/done-list-calendar-page.d.ts +24 -0
- package/dist-client/pages/todo/done-list-calendar-page.js +109 -0
- package/dist-client/pages/todo/done-list-calendar-page.js.map +1 -0
- package/dist-client/pages/todo/done-list-page.d.ts +41 -0
- package/dist-client/pages/todo/done-list-page.js +364 -0
- package/dist-client/pages/todo/done-list-page.js.map +1 -0
- package/dist-client/pages/todo/draft-list-page.d.ts +38 -0
- package/dist-client/pages/todo/draft-list-page.js +285 -0
- package/dist-client/pages/todo/draft-list-page.js.map +1 -0
- package/dist-client/pages/todo/pickable-list-page.d.ts +41 -0
- package/dist-client/pages/todo/pickable-list-page.js +321 -0
- package/dist-client/pages/todo/pickable-list-page.js.map +1 -0
- package/dist-client/pages/todo/todo-list-page.d.ts +47 -0
- package/dist-client/pages/todo/todo-list-page.js +398 -0
- package/dist-client/pages/todo/todo-list-page.js.map +1 -0
- package/dist-client/pages/worklist-home.d.ts +1 -0
- package/dist-client/pages/worklist-home.js +18 -0
- package/dist-client/pages/worklist-home.js.map +1 -0
- package/dist-client/route.d.ts +1 -0
- package/dist-client/route.js +80 -0
- package/dist-client/route.js.map +1 -0
- package/dist-client/templates/activity-approval-context-template.d.ts +3 -0
- package/dist-client/templates/activity-approval-context-template.js +186 -0
- package/dist-client/templates/activity-approval-context-template.js.map +1 -0
- package/dist-client/templates/activity-instance-context-template.d.ts +3 -0
- package/dist-client/templates/activity-instance-context-template.js +281 -0
- package/dist-client/templates/activity-instance-context-template.js.map +1 -0
- package/dist-client/templates/activity-thread-context-template.d.ts +3 -0
- package/dist-client/templates/activity-thread-context-template.js +169 -0
- package/dist-client/templates/activity-thread-context-template.js.map +1 -0
- package/dist-client/tsconfig.tsbuildinfo +1 -0
- package/dist-client/types/activity-approval.d.ts +36 -0
- package/dist-client/types/activity-approval.js +17 -0
- package/dist-client/types/activity-approval.js.map +1 -0
- package/dist-client/types/activity-instance-type.d.ts +77 -0
- package/dist-client/types/activity-instance-type.js +11 -0
- package/dist-client/types/activity-instance-type.js.map +1 -0
- package/dist-client/types/activity-instance.d.ts +72 -0
- package/dist-client/types/activity-instance.js +36 -0
- package/dist-client/types/activity-instance.js.map +1 -0
- package/dist-client/types/activity-model-type.d.ts +31 -0
- package/dist-client/types/activity-model-type.js +18 -0
- package/dist-client/types/activity-model-type.js.map +1 -0
- package/dist-client/types/activity-search-key-item-type.d.ts +6 -0
- package/dist-client/types/activity-search-key-item-type.js +3 -0
- package/dist-client/types/activity-search-key-item-type.js.map +1 -0
- package/dist-client/types/activity-thread-history.d.ts +28 -0
- package/dist-client/types/activity-thread-history.js +7 -0
- package/dist-client/types/activity-thread-history.js.map +1 -0
- package/dist-client/types/activity-thread-type.d.ts +15 -0
- package/dist-client/types/activity-thread-type.js +7 -0
- package/dist-client/types/activity-thread-type.js.map +1 -0
- package/dist-client/types/activity-thread.d.ts +39 -0
- package/dist-client/types/activity-thread.js +18 -0
- package/dist-client/types/activity-thread.js.map +1 -0
- package/dist-client/types/activity.d.ts +66 -0
- package/dist-client/types/activity.js +40 -0
- package/dist-client/types/activity.js.map +1 -0
- package/dist-client/types/types.d.ts +23 -0
- package/dist-client/types/types.js +42 -0
- package/dist-client/types/types.js.map +1 -0
- package/dist-server/controllers/activity-approval/_abort.d.ts +5 -0
- package/dist-server/controllers/activity-approval/_abort.js +12 -0
- package/dist-server/controllers/activity-approval/_abort.js.map +1 -0
- package/dist-server/controllers/activity-approval/abort.d.ts +5 -0
- package/dist-server/controllers/activity-approval/abort.js +35 -0
- package/dist-server/controllers/activity-approval/abort.js.map +1 -0
- package/dist-server/controllers/activity-approval/approve.d.ts +5 -0
- package/dist-server/controllers/activity-approval/approve.js +90 -0
- package/dist-server/controllers/activity-approval/approve.js.map +1 -0
- package/dist-server/controllers/activity-approval/check-authority.d.ts +2 -0
- package/dist-server/controllers/activity-approval/check-authority.js +24 -0
- package/dist-server/controllers/activity-approval/check-authority.js.map +1 -0
- package/dist-server/controllers/activity-approval/delegate.d.ts +7 -0
- package/dist-server/controllers/activity-approval/delegate.js +42 -0
- package/dist-server/controllers/activity-approval/delegate.js.map +1 -0
- package/dist-server/controllers/activity-approval/reject.d.ts +5 -0
- package/dist-server/controllers/activity-approval/reject.js +36 -0
- package/dist-server/controllers/activity-approval/reject.js.map +1 -0
- package/dist-server/controllers/activity-approval/save.d.ts +5 -0
- package/dist-server/controllers/activity-approval/save.js +28 -0
- package/dist-server/controllers/activity-approval/save.js.map +1 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.d.ts +18 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.js +33 -0
- package/dist-server/controllers/activity-installation/activity-installation-controller.js.map +1 -0
- package/dist-server/controllers/activity-installation/call-webhook.d.ts +3 -0
- package/dist-server/controllers/activity-installation/call-webhook.js +42 -0
- package/dist-server/controllers/activity-installation/call-webhook.js.map +1 -0
- package/dist-server/controllers/activity-instance/abort.d.ts +5 -0
- package/dist-server/controllers/activity-instance/abort.js +54 -0
- package/dist-server/controllers/activity-instance/abort.js.map +1 -0
- package/dist-server/controllers/activity-instance/assign.d.ts +7 -0
- package/dist-server/controllers/activity-instance/assign.js +40 -0
- package/dist-server/controllers/activity-instance/assign.js.map +1 -0
- package/dist-server/controllers/activity-instance/draft.d.ts +3 -0
- package/dist-server/controllers/activity-instance/draft.js +57 -0
- package/dist-server/controllers/activity-instance/draft.js.map +1 -0
- package/dist-server/controllers/activity-instance/end.d.ts +6 -0
- package/dist-server/controllers/activity-instance/end.js +57 -0
- package/dist-server/controllers/activity-instance/end.js.map +1 -0
- package/dist-server/controllers/activity-instance/index.d.ts +6 -0
- package/dist-server/controllers/activity-instance/index.js +10 -0
- package/dist-server/controllers/activity-instance/index.js.map +1 -0
- package/dist-server/controllers/activity-instance/issue.d.ts +3 -0
- package/dist-server/controllers/activity-instance/issue.js +130 -0
- package/dist-server/controllers/activity-instance/issue.js.map +1 -0
- package/dist-server/controllers/activity-instance/pick.d.ts +2 -0
- package/dist-server/controllers/activity-instance/pick.js +32 -0
- package/dist-server/controllers/activity-instance/pick.js.map +1 -0
- package/dist-server/controllers/activity-thread/_abort.d.ts +5 -0
- package/dist-server/controllers/activity-thread/_abort.js +28 -0
- package/dist-server/controllers/activity-thread/_abort.js.map +1 -0
- package/dist-server/controllers/activity-thread/abort.d.ts +5 -0
- package/dist-server/controllers/activity-thread/abort.js +38 -0
- package/dist-server/controllers/activity-thread/abort.js.map +1 -0
- package/dist-server/controllers/activity-thread/check-authority.d.ts +2 -0
- package/dist-server/controllers/activity-thread/check-authority.js +33 -0
- package/dist-server/controllers/activity-thread/check-authority.js.map +1 -0
- package/dist-server/controllers/activity-thread/delegate.d.ts +7 -0
- package/dist-server/controllers/activity-thread/delegate.js +36 -0
- package/dist-server/controllers/activity-thread/delegate.js.map +1 -0
- package/dist-server/controllers/activity-thread/end.d.ts +6 -0
- package/dist-server/controllers/activity-thread/end.js +37 -0
- package/dist-server/controllers/activity-thread/end.js.map +1 -0
- package/dist-server/controllers/activity-thread/index.d.ts +7 -0
- package/dist-server/controllers/activity-thread/index.js +11 -0
- package/dist-server/controllers/activity-thread/index.js.map +1 -0
- package/dist-server/controllers/activity-thread/restart.d.ts +2 -0
- package/dist-server/controllers/activity-thread/restart.js +37 -0
- package/dist-server/controllers/activity-thread/restart.js.map +1 -0
- package/dist-server/controllers/activity-thread/save.d.ts +3 -0
- package/dist-server/controllers/activity-thread/save.js +39 -0
- package/dist-server/controllers/activity-thread/save.js.map +1 -0
- package/dist-server/controllers/activity-thread/start.d.ts +2 -0
- package/dist-server/controllers/activity-thread/start.js +36 -0
- package/dist-server/controllers/activity-thread/start.js.map +1 -0
- package/dist-server/controllers/activity-thread/submit.d.ts +6 -0
- package/dist-server/controllers/activity-thread/submit.js +92 -0
- package/dist-server/controllers/activity-thread/submit.js.map +1 -0
- package/dist-server/controllers/common.d.ts +21 -0
- package/dist-server/controllers/common.js +268 -0
- package/dist-server/controllers/common.js.map +1 -0
- package/dist-server/controllers/index.d.ts +3 -0
- package/dist-server/controllers/index.js +7 -0
- package/dist-server/controllers/index.js.map +1 -0
- package/dist-server/index.d.ts +3 -0
- package/dist-server/index.js +7 -0
- package/dist-server/index.js.map +1 -0
- package/dist-server/routes.d.ts +1 -0
- package/dist-server/routes.js +54 -0
- package/dist-server/routes.js.map +1 -0
- package/dist-server/service/activity/activity-history.d.ts +45 -0
- package/dist-server/service/activity/activity-history.js +224 -0
- package/dist-server/service/activity/activity-history.js.map +1 -0
- package/dist-server/service/activity/activity-model-type.d.ts +49 -0
- package/dist-server/service/activity/activity-model-type.js +138 -0
- package/dist-server/service/activity/activity-model-type.js.map +1 -0
- package/dist-server/service/activity/activity-mutation.d.ts +12 -0
- package/dist-server/service/activity/activity-mutation.js +334 -0
- package/dist-server/service/activity/activity-mutation.js.map +1 -0
- package/dist-server/service/activity/activity-query.d.ts +21 -0
- package/dist-server/service/activity/activity-query.js +306 -0
- package/dist-server/service/activity/activity-query.js.map +1 -0
- package/dist-server/service/activity/activity-search-key-item-type.d.ts +6 -0
- package/dist-server/service/activity/activity-search-key-item-type.js +28 -0
- package/dist-server/service/activity/activity-search-key-item-type.js.map +1 -0
- package/dist-server/service/activity/activity-type.d.ts +67 -0
- package/dist-server/service/activity/activity-type.js +247 -0
- package/dist-server/service/activity/activity-type.js.map +1 -0
- package/dist-server/service/activity/activity.d.ts +87 -0
- package/dist-server/service/activity/activity.js +301 -0
- package/dist-server/service/activity/activity.js.map +1 -0
- package/dist-server/service/activity/event-subscriber.d.ts +7 -0
- package/dist-server/service/activity/event-subscriber.js +21 -0
- package/dist-server/service/activity/event-subscriber.js.map +1 -0
- package/dist-server/service/activity/index.d.ts +8 -0
- package/dist-server/service/activity/index.js +12 -0
- package/dist-server/service/activity/index.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-mutation.d.ts +8 -0
- package/dist-server/service/activity-approval/activity-approval-mutation.js +80 -0
- package/dist-server/service/activity-approval/activity-approval-mutation.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-query.d.ts +17 -0
- package/dist-server/service/activity-approval/activity-approval-query.js +215 -0
- package/dist-server/service/activity-approval/activity-approval-query.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-subscription.d.ts +6 -0
- package/dist-server/service/activity-approval/activity-approval-subscription.js +48 -0
- package/dist-server/service/activity-approval/activity-approval-subscription.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval-type.d.ts +10 -0
- package/dist-server/service/activity-approval/activity-approval-type.js +39 -0
- package/dist-server/service/activity-approval/activity-approval-type.js.map +1 -0
- package/dist-server/service/activity-approval/activity-approval.d.ts +39 -0
- package/dist-server/service/activity-approval/activity-approval.js +164 -0
- package/dist-server/service/activity-approval/activity-approval.js.map +1 -0
- package/dist-server/service/activity-approval/event-subscriber.d.ts +7 -0
- package/dist-server/service/activity-approval/event-subscriber.js +46 -0
- package/dist-server/service/activity-approval/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-approval/index.d.ts +8 -0
- package/dist-server/service/activity-approval/index.js +12 -0
- package/dist-server/service/activity-approval/index.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-history-query.d.ts +12 -0
- package/dist-server/service/activity-instance/activity-instance-history-query.js +79 -0
- package/dist-server/service/activity-instance/activity-instance-history-query.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-history-type.d.ts +5 -0
- package/dist-server/service/activity-instance/activity-instance-history-type.js +21 -0
- package/dist-server/service/activity-instance/activity-instance-history-type.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-history.d.ts +61 -0
- package/dist-server/service/activity-instance/activity-instance-history.js +298 -0
- package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-mutation.d.ts +15 -0
- package/dist-server/service/activity-instance/activity-instance-mutation.js +144 -0
- package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-query.d.ts +27 -0
- package/dist-server/service/activity-instance/activity-instance-query.js +378 -0
- package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-subscription.d.ts +6 -0
- package/dist-server/service/activity-instance/activity-instance-subscription.js +54 -0
- package/dist-server/service/activity-instance/activity-instance-subscription.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance-type.d.ts +87 -0
- package/dist-server/service/activity-instance/activity-instance-type.js +284 -0
- package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -0
- package/dist-server/service/activity-instance/activity-instance.d.ts +75 -0
- package/dist-server/service/activity-instance/activity-instance.js +311 -0
- package/dist-server/service/activity-instance/activity-instance.js.map +1 -0
- package/dist-server/service/activity-instance/event-subscriber.d.ts +13 -0
- package/dist-server/service/activity-instance/event-subscriber.js +43 -0
- package/dist-server/service/activity-instance/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-instance/index.d.ts +10 -0
- package/dist-server/service/activity-instance/index.js +14 -0
- package/dist-server/service/activity-instance/index.js.map +1 -0
- package/dist-server/service/activity-stats/activity-stats-query.d.ts +4 -0
- package/dist-server/service/activity-stats/activity-stats-query.js +92 -0
- package/dist-server/service/activity-stats/activity-stats-query.js.map +1 -0
- package/dist-server/service/activity-stats/activity-stats-type.d.ts +14 -0
- package/dist-server/service/activity-stats/activity-stats-type.js +47 -0
- package/dist-server/service/activity-stats/activity-stats-type.js.map +1 -0
- package/dist-server/service/activity-stats/index.d.ts +2 -0
- package/dist-server/service/activity-stats/index.js +6 -0
- package/dist-server/service/activity-stats/index.js.map +1 -0
- package/dist-server/service/activity-summary/activity-summary-query.d.ts +8 -0
- package/dist-server/service/activity-summary/activity-summary-query.js +163 -0
- package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -0
- package/dist-server/service/activity-summary/activity-summary.d.ts +6 -0
- package/dist-server/service/activity-summary/activity-summary.js +28 -0
- package/dist-server/service/activity-summary/activity-summary.js.map +1 -0
- package/dist-server/service/activity-summary/index.d.ts +4 -0
- package/dist-server/service/activity-summary/index.js +8 -0
- package/dist-server/service/activity-summary/index.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-history.d.ts +32 -0
- package/dist-server/service/activity-template/activity-template-history.js +165 -0
- package/dist-server/service/activity-template/activity-template-history.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-mutation.d.ts +10 -0
- package/dist-server/service/activity-template/activity-template-mutation.js +170 -0
- package/dist-server/service/activity-template/activity-template-mutation.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-query.d.ts +14 -0
- package/dist-server/service/activity-template/activity-template-query.js +112 -0
- package/dist-server/service/activity-template/activity-template-query.js.map +1 -0
- package/dist-server/service/activity-template/activity-template-type.d.ts +44 -0
- package/dist-server/service/activity-template/activity-template-type.js +164 -0
- package/dist-server/service/activity-template/activity-template-type.js.map +1 -0
- package/dist-server/service/activity-template/activity-template.d.ts +36 -0
- package/dist-server/service/activity-template/activity-template.js +154 -0
- package/dist-server/service/activity-template/activity-template.js.map +1 -0
- package/dist-server/service/activity-template/event-subscriber.d.ts +7 -0
- package/dist-server/service/activity-template/event-subscriber.js +21 -0
- package/dist-server/service/activity-template/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-template/index.d.ts +8 -0
- package/dist-server/service/activity-template/index.js +12 -0
- package/dist-server/service/activity-template/index.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-history-query.d.ts +10 -0
- package/dist-server/service/activity-thread/activity-thread-history-query.js +69 -0
- package/dist-server/service/activity-thread/activity-thread-history-query.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-history.d.ts +39 -0
- package/dist-server/service/activity-thread/activity-thread-history.js +211 -0
- package/dist-server/service/activity-thread/activity-thread-history.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-mutation.d.ts +23 -0
- package/dist-server/service/activity-thread/activity-thread-mutation.js +134 -0
- package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-query.d.ts +21 -0
- package/dist-server/service/activity-thread/activity-thread-query.js +227 -0
- package/dist-server/service/activity-thread/activity-thread-query.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-subscription.d.ts +6 -0
- package/dist-server/service/activity-thread/activity-thread-subscription.js +45 -0
- package/dist-server/service/activity-thread/activity-thread-subscription.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread-type.d.ts +15 -0
- package/dist-server/service/activity-thread/activity-thread-type.js +50 -0
- package/dist-server/service/activity-thread/activity-thread-type.js.map +1 -0
- package/dist-server/service/activity-thread/activity-thread.d.ts +47 -0
- package/dist-server/service/activity-thread/activity-thread.js +197 -0
- package/dist-server/service/activity-thread/activity-thread.js.map +1 -0
- package/dist-server/service/activity-thread/event-subscriber.d.ts +13 -0
- package/dist-server/service/activity-thread/event-subscriber.js +45 -0
- package/dist-server/service/activity-thread/event-subscriber.js.map +1 -0
- package/dist-server/service/activity-thread/index.d.ts +10 -0
- package/dist-server/service/activity-thread/index.js +14 -0
- package/dist-server/service/activity-thread/index.js.map +1 -0
- package/dist-server/service/index.d.ts +12 -0
- package/dist-server/service/index.js +52 -0
- package/dist-server/service/index.js.map +1 -0
- package/dist-server/service/installable-activity/index.d.ts +6 -0
- package/dist-server/service/installable-activity/index.js +10 -0
- package/dist-server/service/installable-activity/index.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.d.ts +5 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.js +60 -0
- package/dist-server/service/installable-activity/installable-activity-mutation.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity-query.d.ts +7 -0
- package/dist-server/service/installable-activity/installable-activity-query.js +48 -0
- package/dist-server/service/installable-activity/installable-activity-query.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity-type.d.ts +5 -0
- package/dist-server/service/installable-activity/installable-activity-type.js +21 -0
- package/dist-server/service/installable-activity/installable-activity-type.js.map +1 -0
- package/dist-server/service/installable-activity/installable-activity.d.ts +24 -0
- package/dist-server/service/installable-activity/installable-activity.js +92 -0
- package/dist-server/service/installable-activity/installable-activity.js.map +1 -0
- package/dist-server/tsconfig.tsbuildinfo +1 -0
- package/package.json +10 -10
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.abort = abort;
|
|
4
|
+
const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
|
|
5
|
+
const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
|
|
6
|
+
const common_js_1 = require("../common.js");
|
|
7
|
+
const _abort_js_1 = require("../activity-thread/_abort.js");
|
|
8
|
+
async function abort({ id, reason }, context) {
|
|
9
|
+
const { domain, user, tx } = context.state;
|
|
10
|
+
var repository = tx.getRepository(activity_instance_js_1.ActivityInstance);
|
|
11
|
+
var activityInstance = await repository.findOne({
|
|
12
|
+
where: { domain: { id: domain.id }, id },
|
|
13
|
+
relations: [
|
|
14
|
+
'domain',
|
|
15
|
+
'activity',
|
|
16
|
+
'activityThreads',
|
|
17
|
+
'assigneeRole',
|
|
18
|
+
'supervisoryRole',
|
|
19
|
+
'updater',
|
|
20
|
+
'creator',
|
|
21
|
+
'starter',
|
|
22
|
+
'terminator'
|
|
23
|
+
]
|
|
24
|
+
});
|
|
25
|
+
if (!activityInstance) {
|
|
26
|
+
throw new Error(context.t('error.activity-instance not found', {
|
|
27
|
+
activityInstance: id
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
/*
|
|
31
|
+
Prerequisites for a Task to Be Aborted.
|
|
32
|
+
- The previous state of the task must not be End or Aborted.
|
|
33
|
+
*/
|
|
34
|
+
if (activityInstance.state == activity_instance_js_1.ActivityInstanceStatus.Aborted ||
|
|
35
|
+
activityInstance.state == activity_instance_js_1.ActivityInstanceStatus.Ended) {
|
|
36
|
+
throw new Error(context.t(`error.activity-instance is already terminated`, {
|
|
37
|
+
id,
|
|
38
|
+
state: activityInstance.state
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
/*
|
|
42
|
+
Actions to be processed when a task is aborted
|
|
43
|
+
- All related activity threads must be aborted.
|
|
44
|
+
*/
|
|
45
|
+
const TERMINATED = [activity_thread_js_1.ActivityThreadStatus.Aborted, activity_thread_js_1.ActivityThreadStatus.Ended];
|
|
46
|
+
for (let activityThread of activityInstance.activityThreads) {
|
|
47
|
+
if (TERMINATED.includes(activityThread.state)) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
await (0, _abort_js_1._abort)({ activityThread, reason }, context);
|
|
51
|
+
}
|
|
52
|
+
return await repository.save(Object.assign(Object.assign(Object.assign(Object.assign({}, activityInstance), { reason }), (await (0, common_js_1.evalActivityInstanceState)(id, context))), { transaction: 'abort', updater: user, terminatedAt: new Date(), terminator: user }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=abort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/abort.ts"],"names":[],"mappings":";;AAMA,sBAuEC;AA7ED,yFAAuF;AACvF,+FAA+G;AAC/G,4CAAwD;AAExD,4DAA4E;AAErE,KAAK,UAAU,KAAK,CACzB,EAAE,EAAE,EAAE,MAAM,EAAkC,EAC9C,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAA;IAEnD,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;YACT,QAAQ;YACR,UAAU;YACV,iBAAiB;YACjB,cAAc;YACd,iBAAiB;YACjB,SAAS;YACT,SAAS;YACT,SAAS;YACT,YAAY;SACb;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,IAAI,6CAAsB,CAAC,OAAO;QACxD,gBAAgB,CAAC,KAAK,IAAI,6CAAsB,CAAC,KAAK,EACtD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,EAAE;YACF,KAAK,EAAE,gBAAgB,CAAC,KAAK;SAC9B,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;MAGE;IAEF,MAAM,UAAU,GAAG,CAAC,yCAAoB,CAAC,OAAO,EAAE,yCAAoB,CAAC,KAAK,CAAC,CAAA;IAE7E,KAAK,IAAI,cAAc,IAAI,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC5D,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,SAAQ;QACV,CAAC;QAED,MAAM,IAAA,kBAAmB,EAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;IAChE,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,6DACvB,gBAAgB,KACnB,MAAM,KACH,CAAC,MAAM,IAAA,qCAAyB,EAAC,EAAE,EAAE,OAAO,CAAC,CAAC,KACjD,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;AACJ,CAAC","sourcesContent":["import { ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { evalActivityInstanceState } from '../common.js'\n\nimport { _abort as abortActivityThread } from '../activity-thread/_abort.js'\n\nexport async function abort(\n { id, reason }: { id: string; reason: string },\n context: ResolverContext\n): Promise<ActivityInstance> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityInstance)\n\n var activityInstance = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: [\n 'domain',\n 'activity',\n 'activityThreads',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\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 Aborted.\n - The previous state of the task must not be End or Aborted.\n */\n if (\n activityInstance.state == ActivityInstanceStatus.Aborted ||\n activityInstance.state == ActivityInstanceStatus.Ended\n ) {\n throw new Error(\n context.t(`error.activity-instance is already terminated`, {\n id,\n state: activityInstance.state\n })\n )\n }\n\n /* \n Actions to be processed when a task is aborted\n - All related activity threads must be aborted.\n */\n\n const TERMINATED = [ActivityThreadStatus.Aborted, ActivityThreadStatus.Ended]\n\n for (let activityThread of activityInstance.activityThreads) {\n if (TERMINATED.includes(activityThread.state)) {\n continue\n }\n\n await abortActivityThread({ activityThread, reason }, context)\n }\n\n return await repository.save({\n ...activityInstance,\n reason,\n ...(await evalActivityInstanceState(id, context)),\n transaction: 'abort',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n}\n"]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ActivityInstance } from '../../service/activity-instance/activity-instance.js';
|
|
2
|
+
export declare function assign({ id, assignees, reason, dueAt }: {
|
|
3
|
+
id: string;
|
|
4
|
+
assignees?: string[];
|
|
5
|
+
reason?: string;
|
|
6
|
+
dueAt?: Date;
|
|
7
|
+
}, context: ResolverContext): Promise<ActivityInstance>;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.assign = assign;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const auth_base_1 = require("@things-factory/auth-base");
|
|
6
|
+
const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
|
|
7
|
+
const common_js_1 = require("../common.js");
|
|
8
|
+
async function assign({ id, assignees, reason, dueAt }, context) {
|
|
9
|
+
const { domain, user, tx } = context.state;
|
|
10
|
+
const repository = tx.getRepository(activity_instance_js_1.ActivityInstance);
|
|
11
|
+
var activityInstance = await repository.findOne({
|
|
12
|
+
where: { domain: { id: domain.id }, id },
|
|
13
|
+
relations: ['domain', 'activity', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']
|
|
14
|
+
});
|
|
15
|
+
if (!activityInstance) {
|
|
16
|
+
throw new Error(context.t('error.activity-instance not found', {
|
|
17
|
+
activityInstance: id
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
/*
|
|
21
|
+
Prerequisites for a Task to Be Assigned.
|
|
22
|
+
- The previous state of the task must not be Assigned.
|
|
23
|
+
*/
|
|
24
|
+
if (activityInstance.state !== activity_instance_js_1.ActivityInstanceStatus.Issued &&
|
|
25
|
+
activityInstance.state !== activity_instance_js_1.ActivityInstanceStatus.Unassigned) {
|
|
26
|
+
throw new Error(context.t(`error.activity-instance should not be assigned`, {
|
|
27
|
+
id,
|
|
28
|
+
actual: activityInstance.state
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
if (dueAt) {
|
|
32
|
+
activityInstance.dueAt = dueAt;
|
|
33
|
+
}
|
|
34
|
+
const assignedUsers = await tx.getRepository(auth_base_1.User).findBy({
|
|
35
|
+
email: (0, typeorm_1.In)(assignees)
|
|
36
|
+
});
|
|
37
|
+
await (0, common_js_1.createActivityThreadsForUsers)('assign', activityInstance, assignedUsers, context);
|
|
38
|
+
return await tx.getRepository(activity_instance_js_1.ActivityInstance).findOneBy({ id: activityInstance.id });
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=assign.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assign.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/assign.ts"],"names":[],"mappings":";;AAOA,wBAgDC;AAvDD,qCAA4B;AAE5B,yDAAgD;AAEhD,+FAA+G;AAC/G,4CAA4D;AAErD,KAAK,UAAU,MAAM,CAC1B,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAuE,EACrG,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,uCAAgB,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,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,KAAK,6CAAsB,CAAC,MAAM;QACxD,gBAAgB,CAAC,KAAK,KAAK,6CAAsB,CAAC,UAAU,EAC5D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,EAAE;YACF,MAAM,EAAE,gBAAgB,CAAC,KAAK;SAC/B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,KAAK,EAAE,CAAC;QACV,gBAAgB,CAAC,KAAK,GAAG,KAAK,CAAA;IAChC,CAAC;IAED,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,gBAAI,CAAC,CAAC,MAAM,CAAC;QACxD,KAAK,EAAE,IAAA,YAAE,EAAC,SAAS,CAAC;KACrB,CAAC,CAAA;IAEF,MAAM,IAAA,yCAA6B,EAAC,QAAQ,EAAE,gBAAgB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAA;IAEvF,OAAO,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,gBAAgB,CAAC,EAAE,EAAE,CAAC,CAAA;AACxF,CAAC","sourcesContent":["import { In } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\n\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { createActivityThreadsForUsers } from '../common.js'\n\nexport async function assign(\n { id, assignees, reason, dueAt }: { id: string; assignees?: string[]; reason?: string; dueAt?: Date },\n context: ResolverContext\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.Unassigned\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).findBy({\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"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ActivityInstance } from '../../service/activity-instance/activity-instance.js';
|
|
2
|
+
import { ActivityInstanceDraft } from '../../service/activity-instance/activity-instance-type.js';
|
|
3
|
+
export declare function draft(activityInstance: ActivityInstanceDraft, context: ResolverContext): Promise<ActivityInstance>;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.draft = draft;
|
|
4
|
+
const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
|
|
5
|
+
const activity_js_1 = require("../../service/activity/activity.js");
|
|
6
|
+
const common_js_1 = require("../common.js");
|
|
7
|
+
async function draft(activityInstance, context) {
|
|
8
|
+
const { domain, user, tx } = context.state;
|
|
9
|
+
const { id, activityId, input, dueAt } = activityInstance;
|
|
10
|
+
var repository = tx.getRepository(activity_js_1.Activity);
|
|
11
|
+
var activity = {};
|
|
12
|
+
if (id) {
|
|
13
|
+
var previousActivityInstance = await tx.getRepository(activity_instance_js_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_js_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
|
+
}
|
|
34
|
+
if (activityId) {
|
|
35
|
+
activity = await repository.findOne({
|
|
36
|
+
where: { domain: { id: domain.id }, id: activityId },
|
|
37
|
+
relations: ['assigneeRole', 'supervisoryRole']
|
|
38
|
+
});
|
|
39
|
+
if (!activity) {
|
|
40
|
+
throw new Error(context.t('error.activity not found', {
|
|
41
|
+
activity: activityId
|
|
42
|
+
}));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
if (!activityInstance.assignees) {
|
|
46
|
+
activityInstance.assignees = activity.assignees;
|
|
47
|
+
}
|
|
48
|
+
if (!activityInstance.approvalLine) {
|
|
49
|
+
activityInstance.approvalLine = activity.approvalLine;
|
|
50
|
+
}
|
|
51
|
+
if (!dueAt && activity.standardTime) {
|
|
52
|
+
activityInstance.dueAt = new Date(Date.now() + activity.standardTime * 1000);
|
|
53
|
+
}
|
|
54
|
+
const activitySearchKeys = (0, common_js_1.fillActivitySearchKeys)(activity === null || activity === void 0 ? void 0 : activity.searchKeys, input);
|
|
55
|
+
return await tx.getRepository(activity_instance_js_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_js_1.ActivityInstanceStatus.Draft, domain, creator: user, updater: user }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=draft.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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.js'\nimport { ActivityInstanceDraft } from '../../service/activity-instance/activity-instance-type.js'\nimport { Activity } from '../../service/activity/activity.js'\nimport { fillActivitySearchKeys } from '../common.js'\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 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"]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.end = end;
|
|
4
|
+
const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
|
|
5
|
+
const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
|
|
6
|
+
const common_js_1 = require("../common.js");
|
|
7
|
+
async function end({ id, output, reason }, context) {
|
|
8
|
+
const { domain, user, tx } = context.state;
|
|
9
|
+
const repository = tx.getRepository(activity_instance_js_1.ActivityInstance);
|
|
10
|
+
var activityInstance = await repository.findOne({
|
|
11
|
+
where: { domain: { id: domain.id }, id },
|
|
12
|
+
relations: [
|
|
13
|
+
'domain',
|
|
14
|
+
'activity',
|
|
15
|
+
'activityThreads',
|
|
16
|
+
'assigneeRole',
|
|
17
|
+
'supervisoryRole',
|
|
18
|
+
'updater',
|
|
19
|
+
'creator',
|
|
20
|
+
'starter',
|
|
21
|
+
'terminator'
|
|
22
|
+
]
|
|
23
|
+
});
|
|
24
|
+
if (!activityInstance) {
|
|
25
|
+
throw new Error(context.t('error.activity-instance not found', {
|
|
26
|
+
activityInstance: id
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
/*
|
|
30
|
+
Prerequisites for a Task to Be End.
|
|
31
|
+
- The previous state of the task must not be End or Aborted.
|
|
32
|
+
- There should be no unfinished activity threads.
|
|
33
|
+
*/
|
|
34
|
+
if (activityInstance.state == activity_instance_js_1.ActivityInstanceStatus.Aborted ||
|
|
35
|
+
activityInstance.state == activity_instance_js_1.ActivityInstanceStatus.Ended) {
|
|
36
|
+
throw new Error(context.t(`error.activity-instance is already terminated`, {
|
|
37
|
+
id,
|
|
38
|
+
state: activityInstance.state
|
|
39
|
+
}));
|
|
40
|
+
}
|
|
41
|
+
const TERMINATED = [activity_thread_js_1.ActivityThreadStatus.Aborted, activity_thread_js_1.ActivityThreadStatus.Ended];
|
|
42
|
+
for (let activityThread of activityInstance.activityThreads) {
|
|
43
|
+
if (TERMINATED.includes(activityThread.state)) {
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
throw new Error(context.t(`error.all activity threads should be terminated`, {
|
|
47
|
+
activityThread: activityThread.id,
|
|
48
|
+
state: activityInstance.state
|
|
49
|
+
}));
|
|
50
|
+
}
|
|
51
|
+
if (!activityInstance.startedAt) {
|
|
52
|
+
activityInstance.startedAt = new Date();
|
|
53
|
+
}
|
|
54
|
+
return await repository.save(Object.assign(Object.assign({}, activityInstance), { reason,
|
|
55
|
+
output, transaction: 'end', state: await (0, common_js_1.evalActivityInstanceState)(id, context), updater: user, terminatedAt: new Date(), terminator: user }));
|
|
56
|
+
}
|
|
57
|
+
//# sourceMappingURL=end.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"end.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/end.ts"],"names":[],"mappings":";;AAIA,kBA4EC;AAhFD,+FAA+G;AAC/G,yFAAuF;AACvF,4CAAwD;AAEjD,KAAK,UAAU,GAAG,CACvB,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAoD,EACxE,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAC1C,MAAM,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,uCAAgB,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;YACT,QAAQ;YACR,UAAU;YACV,iBAAiB;YACjB,cAAc;YACd,iBAAiB;YACjB,SAAS;YACT,SAAS;YACT,SAAS;YACT,YAAY;SACb;KACF,CAAC,CAAA;IAEF,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;;MAIE;IACF,IACE,gBAAgB,CAAC,KAAK,IAAI,6CAAsB,CAAC,OAAO;QACxD,gBAAgB,CAAC,KAAK,IAAI,6CAAsB,CAAC,KAAK,EACtD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,+CAA+C,EAAE;YACzD,EAAE;YACF,KAAK,EAAE,gBAAgB,CAAC,KAAK;SAC9B,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,UAAU,GAAG,CAAC,yCAAoB,CAAC,OAAO,EAAE,yCAAoB,CAAC,KAAK,CAAC,CAAA;IAE7E,KAAK,IAAI,cAAc,IAAI,gBAAgB,CAAC,eAAe,EAAE,CAAC;QAC5D,IAAI,UAAU,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;YAC9C,SAAQ;QACV,CAAC;QAED,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,iDAAiD,EAAE;YAC3D,cAAc,EAAE,cAAc,CAAC,EAAE;YACjC,KAAK,EAAE,gBAAgB,CAAC,KAAK;SAC9B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,CAAC;QAChC,gBAAgB,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IACzC,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,gCACxB,gBAAgB,KACnB,MAAM;QACN,MAAM,EACN,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,MAAM,IAAA,qCAAyB,EAAC,EAAE,EAAE,OAAO,CAAC,EACnD,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,GACV,CAAC,CAAA;AACX,CAAC","sourcesContent":["import { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { evalActivityInstanceState } from '../common.js'\n\nexport async function end(\n { id, output, reason }: { id: string; output?: object; reason?: string },\n context: ResolverContext\n): Promise<ActivityInstance> {\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: [\n 'domain',\n 'activity',\n 'activityThreads',\n 'assigneeRole',\n 'supervisoryRole',\n 'updater',\n 'creator',\n 'starter',\n 'terminator'\n ]\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 End.\n - The previous state of the task must not be End or Aborted.\n - There should be no unfinished activity threads.\n */\n if (\n activityInstance.state == ActivityInstanceStatus.Aborted ||\n activityInstance.state == ActivityInstanceStatus.Ended\n ) {\n throw new Error(\n context.t(`error.activity-instance is already terminated`, {\n id,\n state: activityInstance.state\n })\n )\n }\n\n const TERMINATED = [ActivityThreadStatus.Aborted, ActivityThreadStatus.Ended]\n\n for (let activityThread of activityInstance.activityThreads) {\n if (TERMINATED.includes(activityThread.state)) {\n continue\n }\n\n throw new Error(\n context.t(`error.all activity threads should be terminated`, {\n activityThread: activityThread.id,\n state: activityInstance.state\n })\n )\n }\n\n if (!activityInstance.startedAt) {\n activityInstance.startedAt = new Date()\n }\n\n return await repository.save({\n ...activityInstance,\n reason,\n output,\n transaction: 'end',\n state: await evalActivityInstanceState(id, context),\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n } as any)\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
tslib_1.__exportStar(require("./draft.js"), exports);
|
|
5
|
+
tslib_1.__exportStar(require("./issue.js"), exports);
|
|
6
|
+
tslib_1.__exportStar(require("./pick.js"), exports);
|
|
7
|
+
tslib_1.__exportStar(require("./assign.js"), exports);
|
|
8
|
+
tslib_1.__exportStar(require("./abort.js"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./end.js"), exports);
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B;AAC1B,qDAA0B;AAC1B,oDAAyB;AACzB,sDAA2B;AAC3B,qDAA0B;AAC1B,mDAAwB","sourcesContent":["export * from './draft.js'\nexport * from './issue.js'\nexport * from './pick.js'\nexport * from './assign.js'\nexport * from './abort.js'\nexport * from './end.js'\n"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ActivityInstance } from '../../service/activity-instance/activity-instance.js';
|
|
2
|
+
import { ActivityInstanceIssue } from '../../service/activity-instance/activity-instance-type.js';
|
|
3
|
+
export declare function issue(activityInstance: ActivityInstanceIssue, context: ResolverContext): Promise<ActivityInstance>;
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.issue = issue;
|
|
4
|
+
const typeorm_1 = require("typeorm");
|
|
5
|
+
const activity_js_1 = require("../../service/activity/activity.js");
|
|
6
|
+
const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
|
|
7
|
+
const common_js_1 = require("../common.js");
|
|
8
|
+
const submit_js_1 = require("../activity-thread/submit.js");
|
|
9
|
+
async function issue(activityInstance, context) {
|
|
10
|
+
const { domain, user, tx } = context.state;
|
|
11
|
+
const issuedAt = new Date();
|
|
12
|
+
var { id, name, description, assignees, uiType, uiSource, viewType, viewSource, dueAt, priority, approvalLine, activityId, activityType, assigneeRole, supervisoryRole, input } = activityInstance;
|
|
13
|
+
var origin = id
|
|
14
|
+
? await tx.getRepository(activity_instance_js_1.ActivityInstance).findOne({
|
|
15
|
+
where: { domain: { id: domain.id }, id },
|
|
16
|
+
relations: [
|
|
17
|
+
'domain',
|
|
18
|
+
'activity',
|
|
19
|
+
'assigneeRole',
|
|
20
|
+
'supervisoryRole',
|
|
21
|
+
'updater',
|
|
22
|
+
'creator',
|
|
23
|
+
'starter',
|
|
24
|
+
'terminator'
|
|
25
|
+
]
|
|
26
|
+
})
|
|
27
|
+
: null;
|
|
28
|
+
/*
|
|
29
|
+
Prerequisites for a Task to Be Issued.
|
|
30
|
+
- The previous state of the task should be Draft.
|
|
31
|
+
*/
|
|
32
|
+
if (origin && origin.state !== activity_instance_js_1.ActivityInstanceStatus.Draft) {
|
|
33
|
+
throw new Error(context.t(`error.activity-instance is already issued`, {
|
|
34
|
+
id: id,
|
|
35
|
+
state: origin.state
|
|
36
|
+
}));
|
|
37
|
+
}
|
|
38
|
+
var repository = tx.getRepository(activity_js_1.Activity);
|
|
39
|
+
var activity = (origin === null || origin === void 0 ? void 0 : origin.activity) ||
|
|
40
|
+
(await repository.findOne({
|
|
41
|
+
where: { domain: domain.parentId ? { id: (0, typeorm_1.In)([domain.id, domain.parentId]) } : { id: domain.id }, id: activityId },
|
|
42
|
+
relations: ['assigneeRole', 'supervisoryRole']
|
|
43
|
+
}));
|
|
44
|
+
if (!activity) {
|
|
45
|
+
throw new Error(context.t('error.activity not found', {
|
|
46
|
+
activity: activityId
|
|
47
|
+
}));
|
|
48
|
+
}
|
|
49
|
+
if (!origin) {
|
|
50
|
+
activityInstance.name = name || activity.name;
|
|
51
|
+
activityInstance.description = description || activity.description;
|
|
52
|
+
activityInstance.activityType = activityType || activity.activityType;
|
|
53
|
+
activityInstance.uiType = uiType || activity.uiType;
|
|
54
|
+
activityInstance.uiSource = uiSource || activity.uiSource;
|
|
55
|
+
activityInstance.viewType = viewType || activity.viewType;
|
|
56
|
+
activityInstance.viewSource = viewSource || activity.viewSource;
|
|
57
|
+
activityInstance.assigneeRole = assigneeRole || activity.assigneeRole;
|
|
58
|
+
activityInstance.supervisoryRole = supervisoryRole || activity.supervisoryRole;
|
|
59
|
+
activityInstance.priority = priority !== null && priority !== void 0 ? priority : activity.priority;
|
|
60
|
+
activityInstance.adhocType = 'standard';
|
|
61
|
+
activityInstance.refBy = activityId;
|
|
62
|
+
if (!assignees || !approvalLine) {
|
|
63
|
+
if (!assignees) {
|
|
64
|
+
assignees = activityInstance.assignees = activity.assignees;
|
|
65
|
+
}
|
|
66
|
+
if (!approvalLine) {
|
|
67
|
+
approvalLine = activityInstance.approvalLine = activity.approvalLine;
|
|
68
|
+
}
|
|
69
|
+
if (!dueAt && activity.standardTime) {
|
|
70
|
+
activityInstance.dueAt = new Date(issuedAt.getTime() + activity.standardTime * 1000);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const activitySearchKeys = (0, common_js_1.fillActivitySearchKeys)(activity === null || activity === void 0 ? void 0 : activity.searchKeys, input);
|
|
75
|
+
if (activity.startingType == 'post') {
|
|
76
|
+
/*
|
|
77
|
+
startingType이 'post'이면,
|
|
78
|
+
activityInstance 이슈와 동시에 issuer에게 할당된 activityThread가 생성되고 submit까지 모두 완료되게 된다.
|
|
79
|
+
만일, 결재선이 있다면, 상신되게 된다.
|
|
80
|
+
*/
|
|
81
|
+
const posted = await tx.getRepository(activity_instance_js_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), activityInstance), { transaction: 'post', activity }), activitySearchKeys), { state: activity_instance_js_1.ActivityInstanceStatus.Started, domain, issuer: user, updater: user, issuedAt, startedAt: issuedAt }));
|
|
82
|
+
const thread = await (0, common_js_1.createActivityThreadForUser)('post', posted, user, context);
|
|
83
|
+
/* post 방식은 thread가 하나이므로, instance의 output을 그대로 thread의 output이라고 판단할 수 있다. 따라서, 아래 로직은 제거한다. */
|
|
84
|
+
// const data = { ...activityInstance.input, ...activityInstance.output }
|
|
85
|
+
// const output = (activity.model || [])
|
|
86
|
+
// .filter(item => item.inout === 'inout' || item.inout === 'out')
|
|
87
|
+
// .reduce((inout, item) => {
|
|
88
|
+
// inout[item.tag] = data[item.tag]
|
|
89
|
+
// return inout
|
|
90
|
+
// }, {})
|
|
91
|
+
await (0, submit_js_1.submit)({ id: thread.id, output: activityInstance.output }, context);
|
|
92
|
+
return await tx.getRepository(activity_instance_js_1.ActivityInstance).findOneBy({ id: posted.id });
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const issued = await tx.getRepository(activity_instance_js_1.ActivityInstance).save(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ creator: user }, origin), activityInstance), { transaction: 'issue', activity }), activitySearchKeys), { state: activity_instance_js_1.ActivityInstanceStatus.Issued, domain, issuer: user, updater: user, issuedAt }));
|
|
96
|
+
/*
|
|
97
|
+
1. 하나의 thread가 필요한 경우 (대부분)
|
|
98
|
+
조건 : activityInstance의 threadsMin이 1 이어야 한다.
|
|
99
|
+
로직 1 : getSystemUserFromOrgMemberItem 의 결과가 한명이라면 그대로 activityThread.assignee로 직접 할당한다.
|
|
100
|
+
로직 2 : getSystemUserFromOrgMemberItem 의 결과가 한명이 아니라면, assignee타입이 assigneeRole 인 경우에만 처리가 가능하다.
|
|
101
|
+
이 경우에는 assignee를 비운다. - createActivityThreadWithUnassigned
|
|
102
|
+
2. 할당되지 않은 복수개의 thread가 필요한 경우
|
|
103
|
+
조건 : threadsMin이 1 이상이어야 한다.
|
|
104
|
+
로직 1 : getSystemUserFromOrgMemberItem 의 결과와 threadsMin 값이 같다면, 그대로 activityThread.assignee로 직접 할당한다. createActivityThreadsForAllRoleUsers
|
|
105
|
+
로직 2 : createActivityThreadWithUnassigned
|
|
106
|
+
3. 모든 assignee가 처리를 해야하는 경우
|
|
107
|
+
조건 : threadsMin이 0 이어야 한다.
|
|
108
|
+
로직 : getSystemUserFromOrgMemberItem 의 결과로 createActivityThreadsForUsers
|
|
109
|
+
*/
|
|
110
|
+
// assignees가 복수인 것은 아무 의미가 없다.
|
|
111
|
+
const assignedUsers = await Promise.all((assignees || []).map(assignee => (0, common_js_1.getSystemUserFromOrgMemberItem)(assignee, context)));
|
|
112
|
+
if (assignedUsers.length == 0) {
|
|
113
|
+
if (issued.assigneeRoleId) {
|
|
114
|
+
if (issued.threadsMin === 0) {
|
|
115
|
+
/* assigneeRoleId에 해당하는 모든 assignee 에게 태스크를 할당하는 경우 */
|
|
116
|
+
await (0, common_js_1.createActivityThreadsForAllRoleUsers)('issue', issued, context);
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
/* minimum threads 설정에 따른 pending assignment 상태로 activityThread를 만드는 경우 */
|
|
120
|
+
await (0, common_js_1.createActivityThreadWithUnassigned)('issue', issued, context);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
await (0, common_js_1.createActivityThreadsForUsers)('issue', issued, assignedUsers, context);
|
|
126
|
+
}
|
|
127
|
+
return await tx.getRepository(activity_instance_js_1.ActivityInstance).findOneBy({ id: issued.id });
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
//# 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 { In } from 'typeorm'\nimport { Activity } from '../../service/activity/activity.js'\nimport { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { ActivityInstanceIssue } from '../../service/activity-instance/activity-instance-type.js'\nimport {\n createActivityThreadWithUnassigned,\n createActivityThreadsForAllRoleUsers,\n createActivityThreadsForUsers,\n getSystemUserFromOrgMemberItem,\n createActivityThreadForUser,\n fillActivitySearchKeys\n} from '../common.js'\nimport { submit } from '../activity-thread/submit.js'\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: domain.parentId ? { id: In([domain.id, domain.parentId]) } : { 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 activityInstance.adhocType = 'standard'\n activityInstance.refBy = activityId\n\n if (!assignees || !approvalLine) {\n if (!assignees) {\n assignees = activityInstance.assignees = activity.assignees\n }\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\n /* post 방식은 thread가 하나이므로, instance의 output을 그대로 thread의 output이라고 판단할 수 있다. 따라서, 아래 로직은 제거한다. */\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.tag] = data[item.tag]\n // return inout\n // }, {})\n\n await submit({ id: thread.id, output: activityInstance.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 /*\n 1. 하나의 thread가 필요한 경우 (대부분)\n 조건 : activityInstance의 threadsMin이 1 이어야 한다.\n 로직 1 : getSystemUserFromOrgMemberItem 의 결과가 한명이라면 그대로 activityThread.assignee로 직접 할당한다.\n 로직 2 : getSystemUserFromOrgMemberItem 의 결과가 한명이 아니라면, assignee타입이 assigneeRole 인 경우에만 처리가 가능하다.\n 이 경우에는 assignee를 비운다. - createActivityThreadWithUnassigned\n 2. 할당되지 않은 복수개의 thread가 필요한 경우\n 조건 : threadsMin이 1 이상이어야 한다.\n 로직 1 : getSystemUserFromOrgMemberItem 의 결과와 threadsMin 값이 같다면, 그대로 activityThread.assignee로 직접 할당한다. createActivityThreadsForAllRoleUsers\n 로직 2 : createActivityThreadWithUnassigned\n 3. 모든 assignee가 처리를 해야하는 경우\n 조건 : threadsMin이 0 이어야 한다.\n 로직 : getSystemUserFromOrgMemberItem 의 결과로 createActivityThreadsForUsers\n */\n\n // assignees가 복수인 것은 아무 의미가 없다.\n const assignedUsers = await Promise.all(\n (assignees || []).map(assignee => getSystemUserFromOrgMemberItem(assignee, context))\n )\n\n if (assignedUsers.length == 0) {\n if (issued.assigneeRoleId) {\n if (issued.threadsMin === 0) {\n /* assigneeRoleId에 해당하는 모든 assignee 에게 태스크를 할당하는 경우 */\n await createActivityThreadsForAllRoleUsers('issue', issued, context)\n } else {\n /* minimum threads 설정에 따른 pending assignment 상태로 activityThread를 만드는 경우 */\n await createActivityThreadWithUnassigned('issue', issued, context)\n }\n }\n } else {\n await createActivityThreadsForUsers('issue', issued, assignedUsers, context)\n }\n\n return await tx.getRepository(ActivityInstance).findOneBy({ id: issued.id })\n }\n}\n"]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.pick = pick;
|
|
4
|
+
const activity_instance_js_1 = require("../../service/activity-instance/activity-instance.js");
|
|
5
|
+
const common_js_1 = require("../common.js");
|
|
6
|
+
async function pick(id, context) {
|
|
7
|
+
const { domain, user, tx } = context.state;
|
|
8
|
+
const repository = tx.getRepository(activity_instance_js_1.ActivityInstance);
|
|
9
|
+
var activityInstance = await repository.findOne({
|
|
10
|
+
where: { domain: { id: domain.id }, id },
|
|
11
|
+
relations: ['domain', 'activity', 'assigneeRole', 'supervisoryRole', 'updater', 'creator', 'starter', 'terminator']
|
|
12
|
+
});
|
|
13
|
+
if (!activityInstance) {
|
|
14
|
+
throw new Error(context.t('error.activity-instance not found', {
|
|
15
|
+
activityInstance: id
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
/*
|
|
19
|
+
Prerequisites for a Task to Be Picked.
|
|
20
|
+
- The previous state of the task must not be Assigned.
|
|
21
|
+
*/
|
|
22
|
+
if (activityInstance.state !== activity_instance_js_1.ActivityInstanceStatus.Issued &&
|
|
23
|
+
activityInstance.state !== activity_instance_js_1.ActivityInstanceStatus.Unassigned) {
|
|
24
|
+
throw new Error(context.t(`error.activity-instance should not be assigned`, {
|
|
25
|
+
id,
|
|
26
|
+
actual: activityInstance.state
|
|
27
|
+
}));
|
|
28
|
+
}
|
|
29
|
+
const picked = await repository.save(Object.assign(Object.assign({}, activityInstance), { transaction: 'pick', updater: user }));
|
|
30
|
+
return (await (0, common_js_1.createActivityThreadsForUsers)('pick', picked, [user], context))[0];
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=pick.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pick.js","sourceRoot":"","sources":["../../../server/controllers/activity-instance/pick.ts"],"names":[],"mappings":";;AAIA,oBAwCC;AA5CD,+FAA+G;AAE/G,4CAA4D;AAErD,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,uCAAgB,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,CAAC;QACtB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,mCAAmC,EAAE;YAC7C,gBAAgB,EAAE,EAAE;SACrB,CAAC,CACH,CAAA;IACH,CAAC;IAED;;;MAGE;IACF,IACE,gBAAgB,CAAC,KAAK,KAAK,6CAAsB,CAAC,MAAM;QACxD,gBAAgB,CAAC,KAAK,KAAK,6CAAsB,CAAC,UAAU,EAC5D,CAAC;QACD,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,gDAAgD,EAAE;YAC1D,EAAE;YACF,MAAM,EAAE,gBAAgB,CAAC,KAAK;SAC/B,CAAC,CACH,CAAA;IACH,CAAC;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,yCAA6B,EAAC,MAAM,EAAE,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAClF,CAAC","sourcesContent":["import { ActivityInstance, ActivityInstanceStatus } from '../../service/activity-instance/activity-instance.js'\nimport { ActivityThread } from '../../service/activity-thread/activity-thread.js'\nimport { createActivityThreadsForUsers } from '../common.js'\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.Unassigned\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"]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports._abort = _abort;
|
|
4
|
+
const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
|
|
5
|
+
const activity_approval_js_1 = require("../../service/activity-approval/activity-approval.js");
|
|
6
|
+
const _abort_js_1 = require("../activity-approval/_abort.js");
|
|
7
|
+
async function _abort({ activityThread, reason }, context) {
|
|
8
|
+
const { domain, user, tx } = context.state;
|
|
9
|
+
var repository = tx.getRepository(activity_thread_js_1.ActivityThread);
|
|
10
|
+
let activityApprovals = await tx.getRepository(activity_approval_js_1.ActivityApproval).find({
|
|
11
|
+
where: {
|
|
12
|
+
activityThread: { id: activityThread.id },
|
|
13
|
+
judgment: activity_approval_js_1.ActivityApprovalJudgment.Pending
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
/*
|
|
17
|
+
Actions to be processed when a activity thread is aborted
|
|
18
|
+
- All related activity approvals must be aborted.
|
|
19
|
+
*/
|
|
20
|
+
for (let activityApproval of activityApprovals) {
|
|
21
|
+
await (0, _abort_js_1._abort)({
|
|
22
|
+
activityApproval,
|
|
23
|
+
comment: reason
|
|
24
|
+
}, context);
|
|
25
|
+
}
|
|
26
|
+
return await repository.save(Object.assign(Object.assign({}, activityThread), { reason, state: activity_thread_js_1.ActivityThreadStatus.Aborted, transaction: 'abort', updater: user, terminatedAt: new Date(), terminator: user }));
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=_abort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"_abort.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/_abort.ts"],"names":[],"mappings":";;AAIA,wBAsCC;AA1CD,yFAAuG;AACvG,+FAAiH;AACjH,8DAAgF;AAEzE,KAAK,UAAU,MAAM,CAC1B,EAAE,cAAc,EAAE,MAAM,EAAsD,EAC9E,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mCAAc,CAAC,CAAA;IAEjD,IAAI,iBAAiB,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,uCAAgB,CAAC,CAAC,IAAI,CAAC;QACpE,KAAK,EAAE;YACL,cAAc,EAAE,EAAE,EAAE,EAAE,cAAc,CAAC,EAAE,EAAE;YACzC,QAAQ,EAAE,+CAAwB,CAAC,OAAO;SAC3C;KACF,CAAC,CAAA;IAEF;;;MAGE;IACF,KAAK,IAAI,gBAAgB,IAAI,iBAAiB,EAAE,CAAC;QAC/C,MAAM,IAAA,kBAAqB,EACzB;YACE,gBAAgB;YAChB,OAAO,EAAE,MAAM;SAChB,EACD,OAAO,CACR,CAAA;IACH,CAAC;IAED,OAAO,MAAM,UAAU,CAAC,IAAI,iCACvB,cAAc,KACjB,MAAM,EACN,KAAK,EAAE,yCAAoB,CAAC,OAAO,EACnC,WAAW,EAAE,OAAO,EACpB,OAAO,EAAE,IAAI,EACb,YAAY,EAAE,IAAI,IAAI,EAAE,EACxB,UAAU,EAAE,IAAI,IAChB,CAAA;AACJ,CAAC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { ActivityApproval, ActivityApprovalJudgment } from '../../service/activity-approval/activity-approval.js'\nimport { _abort as abortActivityApproval } from '../activity-approval/_abort.js'\n\nexport async function _abort(\n { activityThread, reason }: { activityThread: ActivityThread; reason: string },\n context: ResolverContext\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityThread)\n\n let activityApprovals = await tx.getRepository(ActivityApproval).find({\n where: {\n activityThread: { id: activityThread.id },\n judgment: ActivityApprovalJudgment.Pending\n }\n })\n\n /* \n Actions to be processed when a activity thread is aborted\n - All related activity approvals must be aborted.\n */\n for (let activityApproval of activityApprovals) {\n await abortActivityApproval(\n {\n activityApproval,\n comment: reason\n },\n context\n )\n }\n\n return await repository.save({\n ...activityThread,\n reason,\n state: ActivityThreadStatus.Aborted,\n transaction: 'abort',\n updater: user,\n terminatedAt: new Date(),\n terminator: user\n })\n}\n"]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.abort = abort;
|
|
4
|
+
const activity_thread_js_1 = require("../../service/activity-thread/activity-thread.js");
|
|
5
|
+
const common_js_1 = require("../common.js");
|
|
6
|
+
const _abort_js_1 = require("./_abort.js");
|
|
7
|
+
const check_authority_js_1 = require("./check-authority.js");
|
|
8
|
+
async function abort({ id, reason }, context) {
|
|
9
|
+
const { domain, user, tx } = context.state;
|
|
10
|
+
var repository = tx.getRepository(activity_thread_js_1.ActivityThread);
|
|
11
|
+
var activityThread = await repository.findOne({
|
|
12
|
+
where: { domain: { id: domain.id }, id },
|
|
13
|
+
relations: ['domain', 'activityInstance', 'assignee', 'creator', 'updater']
|
|
14
|
+
});
|
|
15
|
+
if (!activityThread) {
|
|
16
|
+
throw new Error(context.t('error.activity-thread not found', {
|
|
17
|
+
activityThread: id
|
|
18
|
+
}));
|
|
19
|
+
}
|
|
20
|
+
await (0, check_authority_js_1.checkAuthority)(activityThread, context);
|
|
21
|
+
/*
|
|
22
|
+
Prerequisites for a activity thread to Be Aborted.
|
|
23
|
+
- The previous state of the activity thread must not be End or Aborted.
|
|
24
|
+
*/
|
|
25
|
+
if (activityThread.state == activity_thread_js_1.ActivityThreadStatus.Aborted || activityThread.state == activity_thread_js_1.ActivityThreadStatus.Ended) {
|
|
26
|
+
throw new Error(context.t(`error.activity-thread is already terminated`, {
|
|
27
|
+
id,
|
|
28
|
+
state: activityThread.state
|
|
29
|
+
}));
|
|
30
|
+
}
|
|
31
|
+
if (!activityThread.startedAt) {
|
|
32
|
+
activityThread.startedAt = new Date();
|
|
33
|
+
}
|
|
34
|
+
const result = await (0, _abort_js_1._abort)({ activityThread, reason }, context);
|
|
35
|
+
await (0, common_js_1.updateActivityInstanceState)(activityThread.activityInstanceId, { causedBy: [result] }, context);
|
|
36
|
+
return result;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=abort.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"abort.js","sourceRoot":"","sources":["../../../server/controllers/activity-thread/abort.ts"],"names":[],"mappings":";;AAKA,sBA6CC;AAlDD,yFAAuG;AACvG,4CAA0D;AAC1D,2CAAoC;AACpC,6DAAqD;AAE9C,KAAK,UAAU,KAAK,CACzB,EAAE,EAAE,EAAE,MAAM,EAAkC,EAC9C,OAAwB;IAExB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,KAAK,CAAA;IAE1C,IAAI,UAAU,GAAG,EAAE,CAAC,aAAa,CAAC,mCAAc,CAAC,CAAA;IAEjD,IAAI,cAAc,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC;QAC5C,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE;QACxC,SAAS,EAAE,CAAC,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC;KAC5E,CAAC,CAAA;IAEF,IAAI,CAAC,cAAc,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,iCAAiC,EAAE;YAC3C,cAAc,EAAE,EAAE;SACnB,CAAC,CACH,CAAA;IACH,CAAC;IAED,MAAM,IAAA,mCAAc,EAAC,cAAc,EAAE,OAAO,CAAC,CAAA;IAE7C;;;MAGE;IACF,IAAI,cAAc,CAAC,KAAK,IAAI,yCAAoB,CAAC,OAAO,IAAI,cAAc,CAAC,KAAK,IAAI,yCAAoB,CAAC,KAAK,EAAE,CAAC;QAC/G,MAAM,IAAI,KAAK,CACb,OAAO,CAAC,CAAC,CAAC,6CAA6C,EAAE;YACvD,EAAE;YACF,KAAK,EAAE,cAAc,CAAC,KAAK;SAC5B,CAAC,CACH,CAAA;IACH,CAAC;IAED,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,CAAC;QAC9B,cAAc,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAA;IACvC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,IAAA,kBAAM,EAAC,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,CAAA;IAEhE,MAAM,IAAA,uCAA2B,EAAC,cAAc,CAAC,kBAAkB,EAAE,EAAE,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,CAAA;IAErG,OAAO,MAAM,CAAA;AACf,CAAC","sourcesContent":["import { ActivityThread, ActivityThreadStatus } from '../../service/activity-thread/activity-thread.js'\nimport { updateActivityInstanceState } from '../common.js'\nimport { _abort } from './_abort.js'\nimport { checkAuthority } from './check-authority.js'\n\nexport async function abort(\n { id, reason }: { id: string; reason: string },\n context: ResolverContext\n): Promise<ActivityThread> {\n const { domain, user, tx } = context.state\n\n var repository = tx.getRepository(ActivityThread)\n\n var activityThread = await repository.findOne({\n where: { domain: { id: domain.id }, id },\n relations: ['domain', 'activityInstance', 'assignee', 'creator', 'updater']\n })\n\n if (!activityThread) {\n throw new Error(\n context.t('error.activity-thread not found', {\n activityThread: id\n })\n )\n }\n\n await checkAuthority(activityThread, context)\n\n /* \n Prerequisites for a activity thread to Be Aborted.\n - The previous state of the activity thread must not be End or Aborted.\n */\n if (activityThread.state == ActivityThreadStatus.Aborted || activityThread.state == ActivityThreadStatus.Ended) {\n throw new Error(\n context.t(`error.activity-thread is already terminated`, {\n id,\n state: activityThread.state\n })\n )\n }\n\n if (!activityThread.startedAt) {\n activityThread.startedAt = new Date()\n }\n\n const result = await _abort({ activityThread, reason }, context)\n\n await updateActivityInstanceState(activityThread.activityInstanceId, { causedBy: [result] }, context)\n\n return result\n}\n"]}
|