@things-factory/worklist 6.0.45 → 6.0.47
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/client/bootstrap.ts +5 -0
- package/client/components/activity-starter-form.ts +53 -303
- package/client/pages/activity/activity-list-page.ts +44 -28
- package/client/pages/activity/activity-page.ts +7 -5
- package/client/pages/activity/activity-partial-view.ts +2 -1
- package/client/pages/activity/starter-list-page.ts +16 -11
- package/client/pages/activity-approval/activity-approval-page.ts +21 -9
- package/client/pages/activity-instance/activity-instance-search-page.ts +2 -19
- package/client/pages/activity-instance/activity-instance-start-page.ts +517 -0
- package/client/pages/activity-thread/activity-thread-page.ts +5 -3
- package/client/pages/activity-thread/activity-thread-view-page.ts +4 -2
- package/client/pages/installable-activity/installable-activity-list-page.ts +7 -5
- package/client/pages/todo/approval-done-list-page.ts +7 -7
- package/client/pages/todo/approval-pending-list-page.ts +48 -10
- package/client/pages/todo/done-list-page.ts +1 -1
- package/client/pages/todo/draft-list-page.ts +26 -102
- package/client/pages/todo/todo-list-page.ts +1 -1
- package/client/route.ts +2 -2
- package/client/templates/activity-approval-context-template.ts +4 -0
- package/client/templates/activity-instance-context-template.ts +171 -0
- package/client/templates/activity-thread-context-template.ts +4 -0
- package/client/types/activity-instance-type.ts +4 -2
- package/client/types/activity-instance.ts +2 -2
- package/client/types/activity.ts +7 -0
- package/client/types/types.ts +8 -0
- package/dist-client/bootstrap.d.ts +1 -0
- package/dist-client/bootstrap.js +5 -0
- package/dist-client/bootstrap.js.map +1 -1
- package/dist-client/components/activity-starter-form.d.ts +2 -5
- package/dist-client/components/activity-starter-form.js +55 -247
- package/dist-client/components/activity-starter-form.js.map +1 -1
- package/dist-client/pages/activity/activity-list-page.d.ts +1 -1
- package/dist-client/pages/activity/activity-list-page.js +45 -30
- package/dist-client/pages/activity/activity-list-page.js.map +1 -1
- package/dist-client/pages/activity/activity-page.d.ts +1 -1
- package/dist-client/pages/activity/activity-page.js +5 -5
- package/dist-client/pages/activity/activity-page.js.map +1 -1
- package/dist-client/pages/activity/activity-partial-view.js +2 -2
- package/dist-client/pages/activity/activity-partial-view.js.map +1 -1
- package/dist-client/pages/activity/starter-list-page.d.ts +1 -0
- package/dist-client/pages/activity/starter-list-page.js +14 -11
- package/dist-client/pages/activity/starter-list-page.js.map +1 -1
- package/dist-client/pages/activity-approval/activity-approval-page.d.ts +3 -3
- package/dist-client/pages/activity-approval/activity-approval-page.js +16 -9
- package/dist-client/pages/activity-approval/activity-approval-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-page.d.ts +2 -2
- package/dist-client/pages/activity-instance/activity-instance-page.js +19 -10
- package/dist-client/pages/activity-instance/activity-instance-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-search-page.js +1 -8
- package/dist-client/pages/activity-instance/activity-instance-search-page.js.map +1 -1
- package/dist-client/pages/activity-instance/activity-instance-start-page.d.ts +49 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js +451 -0
- package/dist-client/pages/activity-instance/activity-instance-start-page.js.map +1 -0
- package/dist-client/pages/activity-thread/activity-thread-page.js +3 -3
- package/dist-client/pages/activity-thread/activity-thread-page.js.map +1 -1
- package/dist-client/pages/activity-thread/activity-thread-view-page.js +2 -2
- package/dist-client/pages/activity-thread/activity-thread-view-page.js.map +1 -1
- package/dist-client/pages/installable-activity/installable-activity-list-page.js +7 -5
- package/dist-client/pages/installable-activity/installable-activity-list-page.js.map +1 -1
- package/dist-client/pages/todo/approval-done-list-page.js +7 -7
- package/dist-client/pages/todo/approval-done-list-page.js.map +1 -1
- package/dist-client/pages/todo/approval-pending-list-page.js +44 -9
- package/dist-client/pages/todo/approval-pending-list-page.js.map +1 -1
- package/dist-client/pages/todo/done-list-page.js +1 -1
- package/dist-client/pages/todo/done-list-page.js.map +1 -1
- package/dist-client/pages/todo/draft-list-page.d.ts +1 -0
- package/dist-client/pages/todo/draft-list-page.js +25 -99
- package/dist-client/pages/todo/draft-list-page.js.map +1 -1
- package/dist-client/pages/todo/todo-list-page.js +1 -1
- package/dist-client/pages/todo/todo-list-page.js.map +1 -1
- package/dist-client/route.d.ts +1 -1
- package/dist-client/route.js +2 -2
- package/dist-client/route.js.map +1 -1
- package/dist-client/templates/activity-approval-context-template.js +4 -0
- package/dist-client/templates/activity-approval-context-template.js.map +1 -1
- package/dist-client/templates/activity-instance-context-template.d.ts +2 -0
- package/dist-client/templates/activity-instance-context-template.js +145 -0
- package/dist-client/templates/activity-instance-context-template.js.map +1 -0
- package/dist-client/templates/activity-thread-context-template.js +4 -0
- package/dist-client/templates/activity-thread-context-template.js.map +1 -1
- package/dist-client/tsconfig.tsbuildinfo +1 -1
- package/dist-client/types/activity-instance-type.d.ts +3 -2
- package/dist-client/types/activity-instance-type.js +2 -2
- package/dist-client/types/activity-instance-type.js.map +1 -1
- package/dist-client/types/activity-instance.d.ts +1 -1
- package/dist-client/types/activity-instance.js +2 -2
- package/dist-client/types/activity-instance.js.map +1 -1
- package/dist-client/types/activity.d.ts +5 -0
- package/dist-client/types/activity.js +5 -0
- package/dist-client/types/activity.js.map +1 -1
- package/dist-client/types/types.d.ts +4 -0
- package/dist-client/types/types.js +6 -0
- package/dist-client/types/types.js.map +1 -1
- package/dist-server/controllers/activity-instance/assign.js +1 -1
- package/dist-server/controllers/activity-instance/assign.js.map +1 -1
- package/dist-server/controllers/activity-instance/draft.js +24 -6
- package/dist-server/controllers/activity-instance/draft.js.map +1 -1
- package/dist-server/controllers/activity-instance/index.js +1 -1
- package/dist-server/controllers/activity-instance/index.js.map +1 -1
- package/dist-server/controllers/activity-instance/issue.js +105 -0
- package/dist-server/controllers/activity-instance/issue.js.map +1 -0
- package/dist-server/controllers/activity-instance/pick.js +1 -1
- package/dist-server/controllers/activity-instance/pick.js.map +1 -1
- package/dist-server/controllers/activity-instance/post.js +7 -7
- package/dist-server/controllers/activity-instance/post.js.map +1 -1
- package/dist-server/controllers/common.js +33 -9
- package/dist-server/controllers/common.js.map +1 -1
- package/dist-server/routes.js +2 -2
- package/dist-server/routes.js.map +1 -1
- package/dist-server/service/activity/activity-history.js +6 -2
- package/dist-server/service/activity/activity-history.js.map +1 -1
- package/dist-server/service/activity/activity-query.js +84 -1
- package/dist-server/service/activity/activity-query.js.map +1 -1
- package/dist-server/service/activity/activity-type.js +8 -0
- package/dist-server/service/activity/activity-type.js.map +1 -1
- package/dist-server/service/activity/activity.js +36 -3
- package/dist-server/service/activity/activity.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-history.js +1 -1
- package/dist-server/service/activity-instance/activity-instance-history.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-mutation.js +6 -6
- package/dist-server/service/activity-instance/activity-instance-mutation.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-query.js +2 -2
- package/dist-server/service/activity-instance/activity-instance-query.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance-type.js +62 -50
- package/dist-server/service/activity-instance/activity-instance-type.js.map +1 -1
- package/dist-server/service/activity-instance/activity-instance.js +4 -23
- package/dist-server/service/activity-instance/activity-instance.js.map +1 -1
- package/dist-server/service/activity-summary/activity-summary-query.js +1 -1
- package/dist-server/service/activity-summary/activity-summary-query.js.map +1 -1
- package/dist-server/service/installable-activity/installable-activity.js +4 -0
- package/dist-server/service/installable-activity/installable-activity.js.map +1 -1
- package/dist-server/tsconfig.tsbuildinfo +1 -1
- package/helps/worklist/activity.md +91 -0
- package/helps/worklist/draft-list.md +5 -1
- package/helps/worklist/starter-list.md +34 -0
- package/package.json +2 -2
- package/server/controllers/activity-instance/assign.ts +1 -1
- package/server/controllers/activity-instance/draft.ts +33 -6
- package/server/controllers/activity-instance/index.ts +1 -1
- package/server/controllers/activity-instance/issue.ts +175 -0
- package/server/controllers/activity-instance/pick.ts +1 -1
- package/server/controllers/common.ts +43 -9
- package/server/routes.ts +2 -2
- package/server/service/activity/activity-history.ts +5 -2
- package/server/service/activity/activity-query.ts +85 -2
- package/server/service/activity/activity-type.ts +15 -2
- package/server/service/activity/activity.ts +28 -2
- package/server/service/activity-instance/activity-instance-history.ts +1 -1
- package/server/service/activity-instance/activity-instance-mutation.ts +7 -7
- package/server/service/activity-instance/activity-instance-query.ts +3 -3
- package/server/service/activity-instance/activity-instance-type.ts +13 -4
- package/server/service/activity-instance/activity-instance.ts +4 -16
- package/server/service/activity-summary/activity-summary-query.ts +1 -1
- package/server/service/installable-activity/installable-activity.ts +4 -1
- package/things-factory.config.js +1 -1
- package/translations/en.json +13 -0
- package/translations/ko.json +17 -4
- package/translations/ms.json +13 -0
- package/translations/zh.json +13 -0
- package/client/pages/activity-instance/activity-instance-page.ts +0 -445
- package/server/controllers/activity-instance/post.ts +0 -140
|
@@ -5,8 +5,15 @@ import { Field, ID, InputType, Int, ObjectType } from 'type-graphql'
|
|
|
5
5
|
import { ObjectRef, ScalarObject } from '@things-factory/shell'
|
|
6
6
|
import { ApprovalLineItem } from '@things-factory/organization'
|
|
7
7
|
|
|
8
|
-
import {
|
|
9
|
-
|
|
8
|
+
import {
|
|
9
|
+
Activity,
|
|
10
|
+
ActivityStartingType,
|
|
11
|
+
ActivityStatus,
|
|
12
|
+
ActivityType,
|
|
13
|
+
ActivityUIType,
|
|
14
|
+
AssigneeItem,
|
|
15
|
+
MultipleInstanceType
|
|
16
|
+
} from './activity'
|
|
10
17
|
import { ActivityModelItem } from './activity-model-type'
|
|
11
18
|
import { ActivitySearchKeyItem } from './activity-search-key-item-type'
|
|
12
19
|
|
|
@@ -36,6 +43,9 @@ export class NewActivity {
|
|
|
36
43
|
@Field({ nullable: true })
|
|
37
44
|
startable?: boolean
|
|
38
45
|
|
|
46
|
+
@Field({ nullable: true })
|
|
47
|
+
startingType?: ActivityStartingType
|
|
48
|
+
|
|
39
49
|
@Field({ nullable: true })
|
|
40
50
|
multiple?: MultipleInstanceType
|
|
41
51
|
|
|
@@ -120,6 +130,9 @@ export class ActivityPatch {
|
|
|
120
130
|
@Field({ nullable: true })
|
|
121
131
|
startable?: boolean
|
|
122
132
|
|
|
133
|
+
@Field({ nullable: true })
|
|
134
|
+
startingType?: ActivityStartingType
|
|
135
|
+
|
|
123
136
|
@Field({ nullable: true })
|
|
124
137
|
multiple?: MultipleInstanceType
|
|
125
138
|
|
|
@@ -13,9 +13,8 @@ import {
|
|
|
13
13
|
|
|
14
14
|
import { Role, User } from '@things-factory/auth-base'
|
|
15
15
|
import { Domain } from '@things-factory/shell'
|
|
16
|
-
import { ApprovalLineItem } from '@things-factory/organization'
|
|
16
|
+
import { OrgMemberTargetType, OrgMemberTarget, ApprovalLineItem } from '@things-factory/organization'
|
|
17
17
|
|
|
18
|
-
import { AssigneeItem } from '../activity-instance/activity-instance'
|
|
19
18
|
import { ActivityModelItem } from './activity-model-type'
|
|
20
19
|
import { ActivitySearchKeyItem } from './activity-search-key-item-type'
|
|
21
20
|
|
|
@@ -30,6 +29,17 @@ registerEnumType(ActivityStatus, {
|
|
|
30
29
|
description: 'state enumeration of a activity'
|
|
31
30
|
})
|
|
32
31
|
|
|
32
|
+
export enum ActivityStartingType {
|
|
33
|
+
None = '',
|
|
34
|
+
Post = 'post',
|
|
35
|
+
Issue = 'issue'
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
registerEnumType(ActivityStartingType, {
|
|
39
|
+
name: 'ActivityStartingType',
|
|
40
|
+
description: 'whether the purpose of starting the activity is to issue or post'
|
|
41
|
+
})
|
|
42
|
+
|
|
33
43
|
export enum ActivityType {
|
|
34
44
|
Task = 'task',
|
|
35
45
|
Service = 'service',
|
|
@@ -73,6 +83,18 @@ registerEnumType(ActivityUIType, {
|
|
|
73
83
|
description: 'user-interface type enumeration of a activity'
|
|
74
84
|
})
|
|
75
85
|
|
|
86
|
+
@ObjectType()
|
|
87
|
+
export class AssigneeItem {
|
|
88
|
+
@Field(type => OrgMemberTargetType, { nullable: true })
|
|
89
|
+
type?: OrgMemberTargetType
|
|
90
|
+
|
|
91
|
+
@Field({ nullable: true })
|
|
92
|
+
value?: string
|
|
93
|
+
|
|
94
|
+
@Field(type => OrgMemberTarget, { nullable: true })
|
|
95
|
+
assignee?: OrgMemberTarget
|
|
96
|
+
}
|
|
97
|
+
|
|
76
98
|
@Entity()
|
|
77
99
|
@Index('ix_activity_0', (activity: Activity) => [activity.domain, activity.name], { unique: true })
|
|
78
100
|
@Index('ix_activity_1', (activity: Activity) => [activity.domain, activity.state, activity.priority], { unique: false })
|
|
@@ -125,6 +147,10 @@ export class Activity {
|
|
|
125
147
|
@Field({ nullable: true, description: 'Whether the task can be started arbitrarily by a user with privileges' })
|
|
126
148
|
startable?: boolean
|
|
127
149
|
|
|
150
|
+
@Column({ nullable: true })
|
|
151
|
+
@Field({ nullable: true, description: 'Whether the purpose of starting the activity is to issue or post' })
|
|
152
|
+
startingType?: ActivityStartingType
|
|
153
|
+
|
|
128
154
|
@Column({ nullable: true })
|
|
129
155
|
@Field({
|
|
130
156
|
nullable: true,
|
|
@@ -234,7 +234,7 @@ export class ActivityInstanceHistory implements HistoryEntityInterface<ActivityI
|
|
|
234
234
|
|
|
235
235
|
isDelegatable(): boolean {
|
|
236
236
|
switch (this.state) {
|
|
237
|
-
case ActivityInstanceStatus.
|
|
237
|
+
case ActivityInstanceStatus.Issued:
|
|
238
238
|
case ActivityInstanceStatus.Assigned:
|
|
239
239
|
return true
|
|
240
240
|
default:
|
|
@@ -2,29 +2,29 @@ import { Arg, Ctx, Directive, Mutation, Resolver } from 'type-graphql'
|
|
|
2
2
|
|
|
3
3
|
import { ObjectRef, ScalarObject } from '@things-factory/shell'
|
|
4
4
|
|
|
5
|
-
import { abort, assign, draft, end, pick,
|
|
5
|
+
import { abort, assign, draft, end, pick, issue } from '../../controllers/activity-instance'
|
|
6
6
|
import { ActivityThread } from '../activity-thread/activity-thread'
|
|
7
7
|
import { ActivityInstance } from './activity-instance'
|
|
8
|
-
import {
|
|
8
|
+
import { ActivityInstanceIssue, ActivityInstanceDraft } from './activity-instance-type'
|
|
9
9
|
|
|
10
10
|
@Resolver(ActivityInstance)
|
|
11
11
|
export class ActivityInstanceMutation {
|
|
12
12
|
@Directive('@transaction')
|
|
13
13
|
@Mutation(returns => ActivityInstance, { description: 'To draft standard ActivityInstance' })
|
|
14
14
|
async draftActivityInstance(
|
|
15
|
-
@Arg('activityInstance') activityInstance:
|
|
15
|
+
@Arg('activityInstance') activityInstance: ActivityInstanceDraft,
|
|
16
16
|
@Ctx() context: ResolverContext
|
|
17
17
|
): Promise<ActivityInstance> {
|
|
18
18
|
return await draft(activityInstance, context)
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
@Directive('@transaction')
|
|
22
|
-
@Mutation(returns => ActivityInstance, { description: 'To
|
|
23
|
-
async
|
|
24
|
-
@Arg('activityInstance') activityInstance:
|
|
22
|
+
@Mutation(returns => ActivityInstance, { description: 'To issue standard ActivityInstance' })
|
|
23
|
+
async issueActivityInstance(
|
|
24
|
+
@Arg('activityInstance') activityInstance: ActivityInstanceIssue,
|
|
25
25
|
@Ctx() context: ResolverContext
|
|
26
26
|
): Promise<ActivityInstance> {
|
|
27
|
-
return await
|
|
27
|
+
return await issue(activityInstance, context)
|
|
28
28
|
}
|
|
29
29
|
|
|
30
30
|
@Directive('@transaction')
|
|
@@ -5,8 +5,8 @@ import { Role, User } from '@things-factory/auth-base'
|
|
|
5
5
|
import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
|
|
6
6
|
|
|
7
7
|
import { ActivityThread } from '../activity-thread/activity-thread'
|
|
8
|
-
import { Activity } from '../activity/activity'
|
|
9
|
-
import { ActivityInstance, ActivityInstanceStatus
|
|
8
|
+
import { Activity, AssigneeItem } from '../activity/activity'
|
|
9
|
+
import { ActivityInstance, ActivityInstanceStatus } from './activity-instance'
|
|
10
10
|
import { ActivityInstanceList } from './activity-instance-type'
|
|
11
11
|
import { ApprovalLineItem } from '@things-factory/organization'
|
|
12
12
|
|
|
@@ -97,7 +97,7 @@ export class ActivityInstanceQuery {
|
|
|
97
97
|
})
|
|
98
98
|
.leftJoinAndSelect('ai.activityThreads', 'threads', 'threads.assignee = :user', { user: user.id })
|
|
99
99
|
.andWhere('ai.state IN (:...status)', {
|
|
100
|
-
status: [ActivityInstanceStatus.
|
|
100
|
+
status: [ActivityInstanceStatus.Issued, ActivityInstanceStatus.PendingAssignment]
|
|
101
101
|
})
|
|
102
102
|
.andWhere('ai.assigneeRole IN (:...roles)', { roles })
|
|
103
103
|
.andWhere('threads.id IS NULL') /* 이미 내가 할당된 경우는 제외한다. */
|
|
@@ -4,10 +4,13 @@ import { Role } from '@things-factory/auth-base'
|
|
|
4
4
|
import { ObjectRef, ScalarDate, ScalarObject } from '@things-factory/shell'
|
|
5
5
|
import { ApprovalLineItem } from '@things-factory/organization'
|
|
6
6
|
|
|
7
|
-
import { ActivityType, ActivityUIType } from '../activity/activity'
|
|
8
|
-
import {
|
|
7
|
+
import { ActivityType, ActivityUIType, AssigneeItem } from '../activity/activity'
|
|
8
|
+
import { ActivityInstance, ActivityInstanceStatus } from './activity-instance'
|
|
9
9
|
@InputType()
|
|
10
|
-
export class
|
|
10
|
+
export class ActivityInstanceDraft {
|
|
11
|
+
@Field(type => ID, { nullable: true })
|
|
12
|
+
id?: string
|
|
13
|
+
|
|
11
14
|
@Field()
|
|
12
15
|
name: string
|
|
13
16
|
|
|
@@ -35,6 +38,9 @@ export class NewActivityInstance {
|
|
|
35
38
|
@Field(type => ScalarObject, { nullable: true })
|
|
36
39
|
input?: { [key: string]: any }
|
|
37
40
|
|
|
41
|
+
@Field(type => ScalarObject, { nullable: true })
|
|
42
|
+
output?: { [key: string]: any }
|
|
43
|
+
|
|
38
44
|
@Field({ nullable: true })
|
|
39
45
|
adhocType?: string
|
|
40
46
|
|
|
@@ -70,7 +76,7 @@ export class NewActivityInstance {
|
|
|
70
76
|
}
|
|
71
77
|
|
|
72
78
|
@InputType()
|
|
73
|
-
export class
|
|
79
|
+
export class ActivityInstanceIssue {
|
|
74
80
|
@Field(type => ID, { nullable: true })
|
|
75
81
|
id?: string
|
|
76
82
|
|
|
@@ -101,6 +107,9 @@ export class ActivityInstancePost {
|
|
|
101
107
|
@Field(type => ScalarObject, { nullable: true })
|
|
102
108
|
input?: { [key: string]: any }
|
|
103
109
|
|
|
110
|
+
@Field(type => ScalarObject, { nullable: true })
|
|
111
|
+
output?: { [key: string]: any }
|
|
112
|
+
|
|
104
113
|
@Field({ nullable: true })
|
|
105
114
|
adhocType?: string
|
|
106
115
|
|
|
@@ -14,14 +14,14 @@ import {
|
|
|
14
14
|
|
|
15
15
|
import { Role, User } from '@things-factory/auth-base'
|
|
16
16
|
import { Domain, ScalarObject } from '@things-factory/shell'
|
|
17
|
-
import {
|
|
17
|
+
import { ApprovalLineItem } from '@things-factory/organization'
|
|
18
18
|
|
|
19
19
|
import { ActivityThread } from '../activity-thread/activity-thread'
|
|
20
|
-
import { Activity, ActivityType, ActivityUIType } from '../activity/activity'
|
|
20
|
+
import { Activity, ActivityType, ActivityUIType, AssigneeItem } from '../activity/activity'
|
|
21
21
|
|
|
22
22
|
export enum ActivityInstanceStatus {
|
|
23
23
|
Draft = 'draft',
|
|
24
|
-
|
|
24
|
+
Issued = 'issued',
|
|
25
25
|
PendingAssignment = 'pending-assignment',
|
|
26
26
|
Assigned = 'assigned',
|
|
27
27
|
Started = 'started',
|
|
@@ -35,18 +35,6 @@ registerEnumType(ActivityInstanceStatus, {
|
|
|
35
35
|
description: 'state enumeration of a activityInstance'
|
|
36
36
|
})
|
|
37
37
|
|
|
38
|
-
@ObjectType()
|
|
39
|
-
export class AssigneeItem {
|
|
40
|
-
@Field(type => OrgMemberTargetType, { nullable: true })
|
|
41
|
-
type?: OrgMemberTargetType
|
|
42
|
-
|
|
43
|
-
@Field({ nullable: true })
|
|
44
|
-
value?: string
|
|
45
|
-
|
|
46
|
-
@Field(type => OrgMemberTarget, { nullable: true })
|
|
47
|
-
assignee?: OrgMemberTarget
|
|
48
|
-
}
|
|
49
|
-
|
|
50
38
|
@Entity()
|
|
51
39
|
@Index(
|
|
52
40
|
'ix_activity_instance_0',
|
|
@@ -264,7 +252,7 @@ export class ActivityInstance {
|
|
|
264
252
|
|
|
265
253
|
isDelegatable(): boolean {
|
|
266
254
|
switch (this.state) {
|
|
267
|
-
case ActivityInstanceStatus.
|
|
255
|
+
case ActivityInstanceStatus.Issued:
|
|
268
256
|
case ActivityInstanceStatus.Assigned:
|
|
269
257
|
return true
|
|
270
258
|
default:
|
|
@@ -87,7 +87,7 @@ export class ActivitySummaryQuery {
|
|
|
87
87
|
})
|
|
88
88
|
.leftJoinAndSelect('ai.activityThreads', 'threads', 'threads.assignee = :user', { user: user.id })
|
|
89
89
|
.andWhere('ai.state IN (:...status)', {
|
|
90
|
-
status: [ActivityInstanceStatus.
|
|
90
|
+
status: [ActivityInstanceStatus.Issued, ActivityInstanceStatus.PendingAssignment]
|
|
91
91
|
})
|
|
92
92
|
.andWhere('ai.assigneeRole IN (:...roles)', { roles })
|
|
93
93
|
.andWhere('threads.id IS NULL') /* 이미 내가 할당된 경우는 제외한다. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Field, ObjectType } from 'type-graphql'
|
|
2
2
|
|
|
3
|
-
import { Activity, ActivityType, ActivityUIType } from '../activity/activity'
|
|
3
|
+
import { Activity, ActivityStartingType, ActivityType, ActivityUIType } from '../activity/activity'
|
|
4
4
|
import { ActivityModelItem } from '../activity/activity-model-type'
|
|
5
5
|
|
|
6
6
|
@ObjectType({ description: 'Entity for InstallableActivity' })
|
|
@@ -29,6 +29,9 @@ export class InstallableActivity {
|
|
|
29
29
|
@Field({ nullable: true })
|
|
30
30
|
startable?: boolean
|
|
31
31
|
|
|
32
|
+
@Field({ nullable: true })
|
|
33
|
+
startingType?: ActivityStartingType
|
|
34
|
+
|
|
32
35
|
@Field(type => [ActivityModelItem], { nullable: true })
|
|
33
36
|
model?: ActivityModelItem[]
|
|
34
37
|
|
package/things-factory.config.js
CHANGED
|
@@ -22,7 +22,7 @@ export default {
|
|
|
22
22
|
{ tagname: 'activity-page', page: 'activity' },
|
|
23
23
|
{ tagname: 'activity-instance-search-page', page: 'activity-instance-search' },
|
|
24
24
|
{ tagname: 'activity-instance-list-page', page: 'activity-instance-list' },
|
|
25
|
-
{ tagname: 'activity-instance-page', page: 'activity-instance' },
|
|
25
|
+
{ tagname: 'activity-instance-start-page', page: 'activity-instance-start' },
|
|
26
26
|
{ tagname: 'activity-thread-page', page: 'activity-thread' },
|
|
27
27
|
{ tagname: 'activity-thread-view-page', page: 'activity-thread-view' },
|
|
28
28
|
{ tagname: 'activity-approval-page', page: 'activity-approval' },
|
package/translations/en.json
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"button.delegate": "delegate",
|
|
7
7
|
"button.draft": "draft",
|
|
8
8
|
"button.finish": "finish",
|
|
9
|
+
"button.issue": "issue",
|
|
9
10
|
"button.pick": "pick",
|
|
10
11
|
"button.post": "post",
|
|
11
12
|
"button.restart": "restart",
|
|
@@ -26,10 +27,12 @@
|
|
|
26
27
|
"field.round": "round",
|
|
27
28
|
"field.judgment": "judgment",
|
|
28
29
|
"field.comment": "comment",
|
|
30
|
+
"field.issued-at": "issued at",
|
|
29
31
|
"field.posted-at": "posted at",
|
|
30
32
|
"field.issuer-role": "issuer role",
|
|
31
33
|
"field.lead-time": "LT(sec)",
|
|
32
34
|
"field.mandatory": "mandatory",
|
|
35
|
+
"field.multiple": "multiple",
|
|
33
36
|
"field.options": "options",
|
|
34
37
|
"field.priority": "priority",
|
|
35
38
|
"field.provider": "provider",
|
|
@@ -42,6 +45,7 @@
|
|
|
42
45
|
"field.spec": "spec",
|
|
43
46
|
"field.standard-time": "ST(sec)",
|
|
44
47
|
"field.startable": "startable",
|
|
48
|
+
"field.starting-type": "starting type",
|
|
45
49
|
"field.started-at": "started at",
|
|
46
50
|
"field.status": "status",
|
|
47
51
|
"field.supervisory-role": "supervisory role",
|
|
@@ -56,6 +60,8 @@
|
|
|
56
60
|
"field.view-type": "view type",
|
|
57
61
|
"field.view-source": "view source",
|
|
58
62
|
"label.activity-instance": "activity instance",
|
|
63
|
+
"label.activity-starting-type-issue": "issue",
|
|
64
|
+
"label.activity-starting-type-post": "post",
|
|
59
65
|
"label.activity-state-draft": "draft",
|
|
60
66
|
"label.activity-state-released": "released",
|
|
61
67
|
"label.activity-state-deprecated": "deprecated",
|
|
@@ -72,6 +78,9 @@
|
|
|
72
78
|
"label.activity-state-ended": "ended",
|
|
73
79
|
"label.activity-state-aborted": "aborted",
|
|
74
80
|
"label.days": "days",
|
|
81
|
+
"label.filter-released": "released",
|
|
82
|
+
"label.filter-draft": "aborted",
|
|
83
|
+
"label.filter-deprecated": "deprecated",
|
|
75
84
|
"label.filter-aborted": "aborted",
|
|
76
85
|
"label.filter-rejected": "rejected",
|
|
77
86
|
"label.filter-important": "important",
|
|
@@ -91,6 +100,10 @@
|
|
|
91
100
|
"text.task_is_finished_successfully": "task is finished successfully.",
|
|
92
101
|
"text.task_is_saved_successfully": "task is saved successfully",
|
|
93
102
|
"text.task_is_started_successfully": "task is started successfully.",
|
|
103
|
+
"text.task_is_approved_successfully": "task is approved successfully",
|
|
104
|
+
"text.task_is_rejected_successfully": "task is rejected successfully",
|
|
105
|
+
"text.task_is_restarted_successfully": "task is restarted successfully",
|
|
106
|
+
"title.activity application": "activity application",
|
|
94
107
|
"title.activity bank": "activity bank",
|
|
95
108
|
"title.activity shopping": "activity shopping",
|
|
96
109
|
"title.activity list": "activity list",
|
package/translations/ko.json
CHANGED
|
@@ -4,8 +4,9 @@
|
|
|
4
4
|
"button.assign": "할당",
|
|
5
5
|
"button.buy": "구매",
|
|
6
6
|
"button.delegate": "위임",
|
|
7
|
-
"button.draft": "
|
|
7
|
+
"button.draft": "초안저장",
|
|
8
8
|
"button.finish": "완료",
|
|
9
|
+
"button.issue": "이슈",
|
|
9
10
|
"button.pick": "선택",
|
|
10
11
|
"button.post": "게시",
|
|
11
12
|
"button.restart": "재시작",
|
|
@@ -26,10 +27,12 @@
|
|
|
26
27
|
"field.round": "차수",
|
|
27
28
|
"field.judgment": "판정",
|
|
28
29
|
"field.comment": "코멘트",
|
|
29
|
-
"field.
|
|
30
|
+
"field.issued-at": "발급일",
|
|
31
|
+
"field.posted-at": "게시일",
|
|
30
32
|
"field.issuer-role": "발급자 역할",
|
|
31
33
|
"field.lead-time": "LT(초)",
|
|
32
34
|
"field.mandatory": "필수",
|
|
35
|
+
"field.multiple": "다중인스턴스",
|
|
33
36
|
"field.options": "선택옵션",
|
|
34
37
|
"field.priority": "우선순위",
|
|
35
38
|
"field.provider": "공급자",
|
|
@@ -42,6 +45,7 @@
|
|
|
42
45
|
"field.spec": "명세",
|
|
43
46
|
"field.standard-time": "ST(초)",
|
|
44
47
|
"field.startable": "수동 시작 가능",
|
|
48
|
+
"field.starting-type": "시작 유형",
|
|
45
49
|
"field.started-at": "시작 시간",
|
|
46
50
|
"field.status": "상태",
|
|
47
51
|
"field.supervisory-role": "관리자 역할",
|
|
@@ -56,6 +60,8 @@
|
|
|
56
60
|
"field.view-type": "뷰 타입",
|
|
57
61
|
"field.view-source": "뷰 소스",
|
|
58
62
|
"label.activity-instance": "업무 인스턴스",
|
|
63
|
+
"label.activity-starting-type-issue": "업무 할당",
|
|
64
|
+
"label.activity-starting-type-post": "업무 게시",
|
|
59
65
|
"label.activity-state-draft": "초안작업중",
|
|
60
66
|
"label.activity-state-posted": "게시됨",
|
|
61
67
|
"label.activity-state-released": "배포됨",
|
|
@@ -72,6 +78,9 @@
|
|
|
72
78
|
"label.activity-state-ended": "완료됨",
|
|
73
79
|
"label.activity-state-aborted": "취소됨",
|
|
74
80
|
"label.days": "일",
|
|
81
|
+
"label.filter-released": "배포",
|
|
82
|
+
"label.filter-draft": "초안",
|
|
83
|
+
"label.filter-deprecated": "폐기",
|
|
75
84
|
"label.filter-aborted": "중단",
|
|
76
85
|
"label.filter-rejected": "반려",
|
|
77
86
|
"label.filter-important": "중요",
|
|
@@ -84,13 +93,17 @@
|
|
|
84
93
|
"label.minutes": "분",
|
|
85
94
|
"label.seconds": "초",
|
|
86
95
|
"text.assign": "할당",
|
|
87
|
-
"text.draft": "
|
|
96
|
+
"text.draft": "초안저장",
|
|
88
97
|
"text.installable-activities": "설치 가능 업무",
|
|
89
98
|
"text.pick": "선택",
|
|
90
99
|
"text.save": "저장",
|
|
91
100
|
"text.task_is_finished_successfully": "업무가 성공적으로 완료되었습니다.",
|
|
92
101
|
"text.task_is_saved_successfully": "업무가 성공적으로 저장되었습니다.",
|
|
93
102
|
"text.task_is_started_successfully": "업무가 성공적으로 시작되었습니다.",
|
|
103
|
+
"text.task_is_approved_successfully": "업무가 성공적으로 승인되었습니다.",
|
|
104
|
+
"text.task_is_rejected_successfully": "업무가 성공적으로 반려되었습니다.",
|
|
105
|
+
"text.task_is_restarted_successfully": "업무가 성공적으로 재시작되었습니다.",
|
|
106
|
+
"title.activity application": "업무 신청서 작성",
|
|
94
107
|
"title.activity bank": "업무 뱅크",
|
|
95
108
|
"title.activity shopping": "업무 쇼핑",
|
|
96
109
|
"title.activity list": "업무정의 리스트",
|
|
@@ -103,7 +116,7 @@
|
|
|
103
116
|
"title.activity reporter list": "업무 현황",
|
|
104
117
|
"title.activity schedule (un)register": "업무 스케쥴 등록/삭제",
|
|
105
118
|
"title.activity starter": "업무 발급",
|
|
106
|
-
"title.activity starter list": "새업무
|
|
119
|
+
"title.activity starter list": "새업무 시작하기",
|
|
107
120
|
"title.activity store": "업무 스토어",
|
|
108
121
|
"title.activity summary": "업무 종합 현황",
|
|
109
122
|
"title.activity template model item list": "업무 템플릿 모델 항목",
|
package/translations/ms.json
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"button.delegate": "[ms] delegate",
|
|
7
7
|
"button.draft": "[ms] draft",
|
|
8
8
|
"button.finish": "[ms] finish",
|
|
9
|
+
"button.issue": "[ms] issue",
|
|
9
10
|
"button.pick": "[ms] pick",
|
|
10
11
|
"button.post": "[ms] post",
|
|
11
12
|
"button.restart": "[ms] restart",
|
|
@@ -26,10 +27,12 @@
|
|
|
26
27
|
"field.round": "round",
|
|
27
28
|
"field.judgment": "judgment",
|
|
28
29
|
"field.comment": "comment",
|
|
30
|
+
"field.issued-at": "issued at",
|
|
29
31
|
"field.posted-at": "posted at",
|
|
30
32
|
"field.issuer-role": "issuer role",
|
|
31
33
|
"field.lead-time": "LT(sec)",
|
|
32
34
|
"field.mandatory": "mandatory",
|
|
35
|
+
"field.multiple": "multiple",
|
|
33
36
|
"field.options": "options",
|
|
34
37
|
"field.priority": "priority",
|
|
35
38
|
"field.provider": "provider",
|
|
@@ -42,6 +45,7 @@
|
|
|
42
45
|
"field.spec": "spec",
|
|
43
46
|
"field.standard-time": "ST(sec)",
|
|
44
47
|
"field.startable": "startable",
|
|
48
|
+
"field.starting-type": "starting type",
|
|
45
49
|
"field.started-at": "[ms] started at",
|
|
46
50
|
"field.status": "keadaan",
|
|
47
51
|
"field.supervisory-role": "supervisory role",
|
|
@@ -56,6 +60,8 @@
|
|
|
56
60
|
"field.view-type": "[ms] view type",
|
|
57
61
|
"field.view-source": "[ms] view source",
|
|
58
62
|
"label.activity-instance": "[ms] activity instance",
|
|
63
|
+
"label.activity-starting-type-issue": "[ms] issue",
|
|
64
|
+
"label.activity-starting-type-post": "[ms] post",
|
|
59
65
|
"label.activity-state-draft": "[ms] draft",
|
|
60
66
|
"label.activity-state-released": "[ms] released",
|
|
61
67
|
"label.activity-state-deprecated": "[ms] deprecated",
|
|
@@ -72,6 +78,9 @@
|
|
|
72
78
|
"label.activity-state-ended": "[ms] ended",
|
|
73
79
|
"label.activity-state-aborted": "[ms] aborted",
|
|
74
80
|
"label.days": "[ms] days",
|
|
81
|
+
"label.filter-released": "released",
|
|
82
|
+
"label.filter-draft": "aborted",
|
|
83
|
+
"label.filter-deprecated": "deprecated",
|
|
75
84
|
"label.filter-aborted": "aborted",
|
|
76
85
|
"label.filter-rejected": "rejected",
|
|
77
86
|
"label.filter-important": "important",
|
|
@@ -91,6 +100,10 @@
|
|
|
91
100
|
"text.task_is_finished_successfully": "[ms] task is finished successfully.",
|
|
92
101
|
"text.task_is_saved_successfully": "[ms] task is saved successfully",
|
|
93
102
|
"text.task_is_started_successfully": "[ms] task is started successfully.",
|
|
103
|
+
"text.task_is_approved_successfully": "[ms] task is approved successfully",
|
|
104
|
+
"text.task_is_rejected_successfully": "[ms] task is rejected successfully",
|
|
105
|
+
"text.task_is_restarted_successfully": "[ms] task is restarted successfully",
|
|
106
|
+
"title.activity application": "[ms] activity application",
|
|
94
107
|
"title.activity bank": "[ms] activity bank",
|
|
95
108
|
"title.activity shopping": "[ms] activity shopping",
|
|
96
109
|
"title.activity list": "[ms] activity list",
|
package/translations/zh.json
CHANGED
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
"button.delegate": "[zh] delegate",
|
|
7
7
|
"button.draft": "[zh] draft",
|
|
8
8
|
"button.finish": "[zh] finish",
|
|
9
|
+
"button.issue": "[zh] issue",
|
|
9
10
|
"button.pick": "[zh] pick",
|
|
10
11
|
"button.post": "[zh] post",
|
|
11
12
|
"button.restart": "[zh] restart",
|
|
@@ -26,11 +27,13 @@
|
|
|
26
27
|
"field.judgment": "judgment",
|
|
27
28
|
"field.comment": "comment",
|
|
28
29
|
"field.hidden": "hidden",
|
|
30
|
+
"field.issued-at": "issued at",
|
|
29
31
|
"field.posted-at": "posted at",
|
|
30
32
|
"field.provider": "provider",
|
|
31
33
|
"field.issuer-role": "issuer role",
|
|
32
34
|
"field.lead-time": "LT(sec)",
|
|
33
35
|
"field.mandatory": "mandatory",
|
|
36
|
+
"field.multiple": "multiple",
|
|
34
37
|
"field.options": "options",
|
|
35
38
|
"field.priority": "priority",
|
|
36
39
|
"field.quantifier": "quantifier",
|
|
@@ -42,6 +45,7 @@
|
|
|
42
45
|
"field.report-source": "report source",
|
|
43
46
|
"field.standard-time": "ST(sec)",
|
|
44
47
|
"field.startable": "startable",
|
|
48
|
+
"field.starting-type": "starting type",
|
|
45
49
|
"field.started-at": "[zh] started at",
|
|
46
50
|
"field.status": "状态",
|
|
47
51
|
"field.supervisory-role": "supervisory role",
|
|
@@ -56,6 +60,8 @@
|
|
|
56
60
|
"field.view-type": "[zh] view type",
|
|
57
61
|
"field.view-source": "[zh] view source",
|
|
58
62
|
"label.activity-instance": "[zh] activity instance",
|
|
63
|
+
"label.activity-starting-type-issue": "[zh] issue",
|
|
64
|
+
"label.activity-starting-type-post": "[zh] post",
|
|
59
65
|
"label.activity-state-draft": "[zh] draft",
|
|
60
66
|
"label.activity-state-released": "[zh] released",
|
|
61
67
|
"label.activity-state-deprecated": "[zh] deprecated",
|
|
@@ -72,6 +78,9 @@
|
|
|
72
78
|
"label.activity-state-ended": "[zh] ended",
|
|
73
79
|
"label.activity-state-aborted": "[zh] aborted",
|
|
74
80
|
"label.days": "天",
|
|
81
|
+
"label.filter-released": "released",
|
|
82
|
+
"label.filter-draft": "aborted",
|
|
83
|
+
"label.filter-deprecated": "deprecated",
|
|
75
84
|
"label.filter-aborted": "aborted",
|
|
76
85
|
"label.filter-rejected": "rejected",
|
|
77
86
|
"label.filter-important": "important",
|
|
@@ -91,6 +100,10 @@
|
|
|
91
100
|
"text.task_is_finished_successfully": "[zh] task is finished successfully.",
|
|
92
101
|
"text.task_is_saved_successfully": "[zh] task is saved successfully",
|
|
93
102
|
"text.task_is_started_successfully": "[zh] task is started successfully.",
|
|
103
|
+
"text.task_is_approved_successfully": "[zh] task is approved successfully",
|
|
104
|
+
"text.task_is_rejected_successfully": "[zh] task is rejected successfully",
|
|
105
|
+
"text.task_is_restarted_successfully": "[zh] task is restarted successfully",
|
|
106
|
+
"title.activity application": "[zh] activity application",
|
|
94
107
|
"title.activity bank": "[zh] activity bank",
|
|
95
108
|
"title.activity shopping": "[zh] activity shopping",
|
|
96
109
|
"title.activity list": "[zh] activity list",
|