@things-factory/worklist 5.0.11 → 5.0.13

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 (111) hide show
  1. package/client/components/activity-/bowner-view.js +0 -1
  2. package/client/components/activity-instance-preview.js +1 -2
  3. package/client/components/activity-intro-view.ts +0 -1
  4. package/client/components/activity-reporter-view.js +0 -1
  5. package/client/components/activity-starter-form.js +2 -3
  6. package/client/pages/activity/{activity-list-page.js → activity-list-page.ts} +24 -34
  7. package/client/pages/activity/activity-model-item-list.js +4 -1
  8. package/client/pages/activity/activity-page.js +1 -2
  9. package/client/pages/activity-instance/activity-instance-page.js +1 -1
  10. package/client/pages/activity-thread/activity-thread-page.js +1 -1
  11. package/client/pages/todo/draft-list-page.js +2 -0
  12. package/client/pages/{worklist-home.js → worklist-home.ts} +2 -6
  13. package/dist-client/components/activity-/bowner-view.js +0 -1
  14. package/dist-client/components/activity-/bowner-view.js.map +1 -1
  15. package/dist-client/components/activity-instance-preview.js +1 -2
  16. package/dist-client/components/activity-instance-preview.js.map +1 -1
  17. package/dist-client/components/activity-intro-view.d.ts +0 -1
  18. package/dist-client/components/activity-intro-view.js +0 -1
  19. package/dist-client/components/activity-intro-view.js.map +1 -1
  20. package/dist-client/components/activity-reporter-view.js +0 -1
  21. package/dist-client/components/activity-reporter-view.js.map +1 -1
  22. package/dist-client/components/activity-starter-form.js +2 -3
  23. package/dist-client/components/activity-starter-form.js.map +1 -1
  24. package/dist-client/pages/activity/activity-list-page.d.ts +12 -262
  25. package/dist-client/pages/activity/activity-list-page.js +45 -34
  26. package/dist-client/pages/activity/activity-list-page.js.map +1 -1
  27. package/dist-client/pages/activity/activity-model-item-list.d.ts +25 -0
  28. package/dist-client/pages/activity/activity-model-item-list.js +4 -1
  29. package/dist-client/pages/activity/activity-model-item-list.js.map +1 -1
  30. package/dist-client/pages/activity/activity-page.js +1 -2
  31. package/dist-client/pages/activity/activity-page.js.map +1 -1
  32. package/dist-client/pages/activity-instance/activity-instance-page.js +1 -1
  33. package/dist-client/pages/activity-instance/activity-instance-page.js.map +1 -1
  34. package/dist-client/pages/activity-thread/activity-thread-page.js +1 -1
  35. package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
  36. package/dist-client/pages/todo/draft-list-page.js +2 -0
  37. package/dist-client/pages/todo/draft-list-page.js.map +1 -1
  38. package/dist-client/pages/worklist-home.js +7 -6
  39. package/dist-client/pages/worklist-home.js.map +1 -1
  40. package/dist-client/tsconfig.tsbuildinfo +1 -1
  41. package/dist-server/controllers/activity-instance/abort.js +4 -3
  42. package/dist-server/controllers/activity-instance/abort.js.map +1 -1
  43. package/dist-server/controllers/activity-instance/adjust.js +3 -2
  44. package/dist-server/controllers/activity-instance/adjust.js.map +1 -1
  45. package/dist-server/controllers/activity-instance/assign.js +9 -23
  46. package/dist-server/controllers/activity-instance/assign.js.map +1 -1
  47. package/dist-server/controllers/activity-instance/delegate.js +5 -4
  48. package/dist-server/controllers/activity-instance/delegate.js.map +1 -1
  49. package/dist-server/controllers/activity-instance/draft.js +6 -5
  50. package/dist-server/controllers/activity-instance/draft.js.map +1 -1
  51. package/dist-server/controllers/activity-instance/end.js +5 -4
  52. package/dist-server/controllers/activity-instance/end.js.map +1 -1
  53. package/dist-server/controllers/activity-instance/pick.js +6 -4
  54. package/dist-server/controllers/activity-instance/pick.js.map +1 -1
  55. package/dist-server/controllers/activity-instance/post.js +10 -4
  56. package/dist-server/controllers/activity-instance/post.js.map +1 -1
  57. package/dist-server/controllers/activity-instance/start.js +3 -2
  58. package/dist-server/controllers/activity-instance/start.js.map +1 -1
  59. package/dist-server/controllers/activity-instance/terminate.js +5 -4
  60. package/dist-server/controllers/activity-instance/terminate.js.map +1 -1
  61. package/dist-server/controllers/activity-thread/abort.js +3 -2
  62. package/dist-server/controllers/activity-thread/abort.js.map +1 -1
  63. package/dist-server/controllers/activity-thread/adjust.js +2 -1
  64. package/dist-server/controllers/activity-thread/adjust.js.map +1 -1
  65. package/dist-server/controllers/activity-thread/delegate.js +4 -3
  66. package/dist-server/controllers/activity-thread/delegate.js.map +1 -1
  67. package/dist-server/controllers/activity-thread/end.js +4 -3
  68. package/dist-server/controllers/activity-thread/end.js.map +1 -1
  69. package/dist-server/controllers/activity-thread/save.js +2 -1
  70. package/dist-server/controllers/activity-thread/save.js.map +1 -1
  71. package/dist-server/controllers/activity-thread/start.js +4 -3
  72. package/dist-server/controllers/activity-thread/start.js.map +1 -1
  73. package/dist-server/controllers/activity-thread/terminate.js +3 -2
  74. package/dist-server/controllers/activity-thread/terminate.js.map +1 -1
  75. package/dist-server/controllers/common.js +23 -6
  76. package/dist-server/controllers/common.js.map +1 -1
  77. package/dist-server/service/activity-instance/activity-instance-mutation.js +15 -17
  78. package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -1
  79. package/dist-server/service/activity-instance/activity-instance-type.js +9 -1
  80. package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
  81. package/dist-server/service/activity-template/activity-template-query.js +14 -0
  82. package/dist-server/service/activity-template/activity-template-query.js.map +1 -1
  83. package/dist-server/service/activity-thread/activity-thread-mutation.js +5 -5
  84. package/dist-server/service/activity-thread/activity-thread-mutation.js.map +1 -1
  85. package/dist-server/service/activity-thread/event-subscriber.js +3 -3
  86. package/dist-server/service/activity-thread/event-subscriber.js.map +1 -1
  87. package/dist-server/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +2 -2
  89. package/server/controllers/activity-instance/abort.ts +6 -7
  90. package/server/controllers/activity-instance/adjust.ts +5 -7
  91. package/server/controllers/activity-instance/assign.ts +14 -42
  92. package/server/controllers/activity-instance/delegate.ts +7 -5
  93. package/server/controllers/activity-instance/draft.ts +7 -9
  94. package/server/controllers/activity-instance/end.ts +6 -5
  95. package/server/controllers/activity-instance/pick.ts +12 -5
  96. package/server/controllers/activity-instance/post.ts +14 -8
  97. package/server/controllers/activity-instance/start.ts +5 -3
  98. package/server/controllers/activity-instance/terminate.ts +7 -5
  99. package/server/controllers/activity-thread/abort.ts +4 -6
  100. package/server/controllers/activity-thread/adjust.ts +3 -6
  101. package/server/controllers/activity-thread/delegate.ts +5 -4
  102. package/server/controllers/activity-thread/end.ts +5 -4
  103. package/server/controllers/activity-thread/save.ts +3 -6
  104. package/server/controllers/activity-thread/start.ts +5 -8
  105. package/server/controllers/activity-thread/terminate.ts +3 -3
  106. package/server/controllers/common.ts +33 -14
  107. package/server/service/activity-instance/activity-instance-mutation.ts +10 -12
  108. package/server/service/activity-instance/activity-instance-type.ts +10 -4
  109. package/server/service/activity-template/activity-template-query.ts +10 -0
  110. package/server/service/activity-thread/activity-thread-mutation.ts +5 -5
  111. package/server/service/activity-thread/event-subscriber.ts +3 -3
@@ -1,21 +1,33 @@
1
- import { EntityManager } from 'typeorm'
2
-
3
1
  import { Role, User } from '@things-factory/auth-base'
4
- import { Domain } from '@things-factory/shell'
5
2
 
6
3
  import { ActivityInstance, ActivityInstanceStatus } from '../service/activity-instance/activity-instance'
7
4
  import { ActivityThread, ActivityThreadStatus } from '../service/activity-thread/activity-thread'
8
5
 
9
- export type ContextStatus = { domain?: Domain; user?: User; tx?: EntityManager; t?: (...args: any[]) => string }
6
+ export async function updateActivityInstanceState(id: string, context: any) {
7
+ const { tx } = context.state
10
8
 
11
- export async function updateActivityInstanceState(id: string, { tx }: ContextStatus) {
12
9
  await tx.getRepository(ActivityInstance).save({
13
- ...(await tx.getRepository(ActivityInstance).findOne(id)),
14
- state: await evalActivityInstanceState(id, { tx })
10
+ ...(await tx.getRepository(ActivityInstance).findOne({
11
+ where: { id },
12
+ relations: [
13
+ 'domain',
14
+ 'activity',
15
+ 'assigneeRole',
16
+ 'supervisoryRole',
17
+ 'updater',
18
+ 'creator',
19
+ 'starter',
20
+ 'terminator'
21
+ ]
22
+ })),
23
+ transaction: 'thread' /* change by transaction of activity thread */,
24
+ state: await evalActivityInstanceState(id, context)
15
25
  })
16
26
  }
17
27
 
18
- export async function evalActivityInstanceState(id: string, { tx }: ContextStatus): Promise<ActivityInstanceStatus> {
28
+ export async function evalActivityInstanceState(id: string, context: any): Promise<ActivityInstanceStatus> {
29
+ const { tx } = context.state
30
+
19
31
  const activityInstance = await tx.getRepository(ActivityInstance).findOne(id, { relations: ['activityThreads'] })
20
32
  const { threadsMin, threadsMax, activityThreads, state, dueAt } = activityInstance
21
33
 
@@ -42,10 +54,13 @@ export async function evalActivityInstanceState(id: string, { tx }: ContextStatu
42
54
  }
43
55
 
44
56
  export async function createActivityThreadsForUsers(
45
- activityInstance,
46
- assignees,
47
- { domain, user, tx, t }: ContextStatus
57
+ transaction: string,
58
+ activityInstance: ActivityInstance,
59
+ assignees: User[],
60
+ context: any
48
61
  ): Promise<[ActivityThread]> {
62
+ const { domain, user, tx } = context.state
63
+
49
64
  const threadRepo = tx.getRepository(ActivityThread)
50
65
  const now = new Date()
51
66
 
@@ -56,6 +71,7 @@ export async function createActivityThreadsForUsers(
56
71
  state: ActivityThreadStatus.Assigned,
57
72
  activityInstance,
58
73
  domain,
74
+ transaction,
59
75
  creator: user,
60
76
  updater: user,
61
77
  dueAt: activityInstance.dueAt,
@@ -66,9 +82,12 @@ export async function createActivityThreadsForUsers(
66
82
  }
67
83
 
68
84
  export async function createActivityThreadsForAllRoleUsers(
69
- activityInstance,
70
- { domain, user, tx, t }: ContextStatus
85
+ transaction: string,
86
+ activityInstance: ActivityInstance,
87
+ context: any
71
88
  ): Promise<[ActivityThread]> {
89
+ const { tx } = context.state
90
+
72
91
  // find how many users are having given role
73
92
  const assigneeRole = (await tx
74
93
  .getRepository(Role)
@@ -80,5 +99,5 @@ export async function createActivityThreadsForAllRoleUsers(
80
99
  }
81
100
 
82
101
  // create activity-thread for all of users having given role
83
- return await createActivityThreadsForUsers(activityInstance, assignees, { domain, user, tx, t })
102
+ return await createActivityThreadsForUsers(transaction, activityInstance, assignees, context)
84
103
  }
@@ -15,7 +15,7 @@ export class ActivityInstanceMutation {
15
15
  @Arg('activityInstance') activityInstance: NewActivityInstance,
16
16
  @Ctx() context: any
17
17
  ): Promise<ActivityInstance> {
18
- return await draft(activityInstance, context.state)
18
+ return await draft(activityInstance, context)
19
19
  }
20
20
 
21
21
  @Directive('@transaction')
@@ -24,7 +24,7 @@ export class ActivityInstanceMutation {
24
24
  @Arg('activityInstance') activityInstance: ActivityInstancePost,
25
25
  @Ctx() context: any
26
26
  ): Promise<ActivityInstance> {
27
- return await post(activityInstance, context.state)
27
+ return await post(activityInstance, context)
28
28
  }
29
29
 
30
30
  @Directive('@transaction')
@@ -34,15 +34,14 @@ export class ActivityInstanceMutation {
34
34
  'To pick an activity ActivityInstance voluntarily. [cautions] This resolver will return a assigned ActivityThread.'
35
35
  })
36
36
  async pickActivityInstance(@Arg('id') id: string, @Ctx() context: any): Promise<ActivityThread> {
37
- return await pick(id, context.state)
37
+ return await pick(id, context)
38
38
  }
39
39
 
40
40
  @Directive('@transaction')
41
41
  @Mutation(returns => ActivityInstance, { description: 'To assign a ActivityInstance' })
42
42
  async assignActivityInstance(
43
43
  @Arg('id') id: string,
44
- @Arg('assigneeRole', { nullable: true }) assigneeRole: string,
45
- @Arg('supervisoryRole', { nullable: true }) supervisoryRole: string,
44
+ @Arg('assignees', type => [String], { nullable: true, description: 'Email of assignee users' }) assignees: string[],
46
45
  @Arg('reason', { nullable: true }) reason: string,
47
46
  @Arg('dueAt', { nullable: true }) dueAt: Date,
48
47
  @Ctx() context: any
@@ -50,12 +49,11 @@ export class ActivityInstanceMutation {
50
49
  return await assign(
51
50
  {
52
51
  id,
53
- assigneeRole,
54
- supervisoryRole,
52
+ assignees,
55
53
  reason,
56
54
  dueAt
57
55
  },
58
- context.state
56
+ context
59
57
  )
60
58
  }
61
59
 
@@ -66,7 +64,7 @@ export class ActivityInstanceMutation {
66
64
  @Arg('patch') patch: ActivityInstancePatch,
67
65
  @Ctx() context: any
68
66
  ): Promise<ActivityInstance> {
69
- return await adjust(id, patch, context.state)
67
+ return await adjust(id, patch, context)
70
68
  }
71
69
 
72
70
  @Directive('@transaction')
@@ -78,7 +76,7 @@ export class ActivityInstanceMutation {
78
76
  @Arg('reason', { nullable: true }) reason: string,
79
77
  @Ctx() context: any
80
78
  ): Promise<ActivityInstance> {
81
- return await delegate({ id, assigneeRole, dueAt, reason }, context.state)
79
+ return await delegate({ id, assigneeRole, dueAt, reason }, context)
82
80
  }
83
81
 
84
82
  @Directive('@transaction')
@@ -89,7 +87,7 @@ export class ActivityInstanceMutation {
89
87
  @Arg('reason', { nullable: true }) reason: string,
90
88
  @Ctx() context: any
91
89
  ): Promise<ActivityInstance> {
92
- return await end({ id, output, reason }, context.state)
90
+ return await end({ id, output, reason }, context)
93
91
  }
94
92
 
95
93
  @Directive('@transaction')
@@ -99,6 +97,6 @@ export class ActivityInstanceMutation {
99
97
  @Arg('reason', { nullable: true }) reason: string,
100
98
  @Ctx() context: any
101
99
  ): Promise<ActivityInstance> {
102
- return await abort({ id, reason }, context.state)
100
+ return await abort({ id, reason }, context)
103
101
  }
104
102
  }
@@ -1,6 +1,6 @@
1
1
  import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
2
2
 
3
- import { Role, User } from '@things-factory/auth-base'
3
+ import { Role } from '@things-factory/auth-base'
4
4
  import { ObjectRef, ScalarDate, ScalarObject } from '@things-factory/shell'
5
5
 
6
6
  import { ActivityType, ActivityUIType } from '../activity/activity'
@@ -12,7 +12,7 @@ export class NewActivityInstance {
12
12
  name: string
13
13
 
14
14
  @Field({ nullable: true })
15
- activityId?: string
15
+ activityId: string
16
16
 
17
17
  @Field({ nullable: true })
18
18
  description?: string
@@ -110,8 +110,8 @@ export class ActivityInstancePost {
110
110
  @Field(type => ObjectRef, { nullable: true })
111
111
  assigneeRole?: Role
112
112
 
113
- @Field(type => [ObjectRef], { nullable: true })
114
- assignees?: User[]
113
+ @Field(type => [String], { nullable: true, description: 'Email of assignee users' })
114
+ assignees?: string[]
115
115
  }
116
116
 
117
117
  @InputType()
@@ -137,6 +137,12 @@ export class ActivityInstancePatch {
137
137
  @Field({ nullable: true })
138
138
  state?: ActivityInstanceStatus
139
139
 
140
+ @Field(type => Int, { nullable: true })
141
+ threadsMin?: number
142
+
143
+ @Field(type => Int, { nullable: true })
144
+ threadsMax?: number
145
+
140
146
  @Field(type => ScalarDate, { nullable: true })
141
147
  dueAt?: Date
142
148
 
@@ -5,6 +5,7 @@ import { Attachment } from '@things-factory/attachment-base'
5
5
  import { User } from '@things-factory/auth-base'
6
6
  import { Domain, getQueryBuilderFromListParams, ListParam } from '@things-factory/shell'
7
7
 
8
+ import { ActivityModelItem } from '../activity/activity-model-type'
8
9
  import { ActivityTemplate } from './activity-template'
9
10
  import { ActivityTemplateList } from './activity-template-type'
10
11
 
@@ -35,6 +36,15 @@ export class ActivityTemplateQuery {
35
36
  return { items, total }
36
37
  }
37
38
 
39
+ @FieldResolver(type => [ActivityModelItem])
40
+ async model(@Root() activityTemplate: ActivityTemplate): Promise<ActivityModelItem[]> {
41
+ if (activityTemplate.model instanceof Array) {
42
+ return activityTemplate.model.filter(model => model.name)
43
+ }
44
+
45
+ return []
46
+ }
47
+
38
48
  @FieldResolver(type => String)
39
49
  async thumbnail(@Root() activityTemplate: ActivityTemplate): Promise<string | undefined> {
40
50
  const attachment: Attachment = await getRepository(Attachment).findOne({
@@ -143,7 +143,7 @@ export class ActivityThreadMutation {
143
143
  @Arg('reason', { nullable: true }) reason: string,
144
144
  @Ctx() context: any
145
145
  ): Promise<ActivityThread> {
146
- return await start(id, output, reason, context.state)
146
+ return await start(id, output, reason, context)
147
147
  }
148
148
 
149
149
  @Directive('@transaction')
@@ -155,7 +155,7 @@ export class ActivityThreadMutation {
155
155
  @Arg('reason', { nullable: true }) reason: string,
156
156
  @Ctx() context: any
157
157
  ): Promise<ActivityThread> {
158
- return await delegate({ id, assigneeRole, dueAt, reason }, context.state)
158
+ return await delegate({ id, assigneeRole, dueAt, reason }, context)
159
159
  }
160
160
 
161
161
  @Directive('@transaction')
@@ -165,7 +165,7 @@ export class ActivityThreadMutation {
165
165
  @Arg('save') save: ActivityThreadSave,
166
166
  @Ctx() context: any
167
167
  ): Promise<ActivityThread> {
168
- return await saveActivityThread(id, save, context.state)
168
+ return await saveActivityThread(id, save, context)
169
169
  }
170
170
 
171
171
  @Directive('@transaction')
@@ -176,7 +176,7 @@ export class ActivityThreadMutation {
176
176
  @Arg('reason', { nullable: true }) reason: string,
177
177
  @Ctx() context: any
178
178
  ): Promise<ActivityThread> {
179
- return await end({ id, output, reason }, context.state)
179
+ return await end({ id, output, reason }, context)
180
180
  }
181
181
 
182
182
  @Directive('@transaction')
@@ -186,6 +186,6 @@ export class ActivityThreadMutation {
186
186
  @Arg('reason', { nullable: true }) reason: string,
187
187
  @Ctx() context: any
188
188
  ): Promise<ActivityThread> {
189
- return await abort({ id, reason }, context.state)
189
+ return await abort({ id, reason }, context)
190
190
  }
191
191
  }
@@ -15,7 +15,7 @@ export class ActivityThreadSubscriber implements EntitySubscriberInterface<Activ
15
15
  async afterInsert(event: InsertEvent<ActivityThread>): Promise<any> {
16
16
  const activityThread = event.entity
17
17
 
18
- await updateActivityInstanceState(activityThread.activityInstanceId, { tx: event.manager })
18
+ await updateActivityInstanceState(activityThread.activityInstanceId, { state: { tx: event.manager } })
19
19
 
20
20
  pubsub.publish('activity-thread', {
21
21
  activityThread
@@ -27,7 +27,7 @@ export class ActivityThreadSubscriber implements EntitySubscriberInterface<Activ
27
27
  async afterUpdate(event: UpdateEvent<ActivityThread>): Promise<any> {
28
28
  const activityThread = event.entity
29
29
 
30
- await updateActivityInstanceState(activityThread.activityInstanceId, { tx: event.manager })
30
+ await updateActivityInstanceState(activityThread.activityInstanceId, { state: { tx: event.manager } })
31
31
 
32
32
  pubsub.publish('activity-thread', {
33
33
  activityThread
@@ -38,6 +38,6 @@ export class ActivityThreadSubscriber implements EntitySubscriberInterface<Activ
38
38
  async afterRemove(event: RemoveEvent<ActivityThread>): Promise<any> {
39
39
  const activityThread = event.entity
40
40
 
41
- await updateActivityInstanceState(activityThread.activityInstanceId, { tx: event.manager })
41
+ await updateActivityInstanceState(activityThread.activityInstanceId, { state: { tx: event.manager } })
42
42
  }
43
43
  }