@things-factory/organization 6.0.24 → 6.0.27

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 (43) hide show
  1. package/client/component/approval-line-items-editor.ts +4 -2
  2. package/client/component/assignees-editor-popup.ts +75 -0
  3. package/client/component/assignees-editor.ts +211 -0
  4. package/client/component/assignees-view.ts +55 -0
  5. package/client/component/index.ts +5 -1
  6. package/client/model/approval-line.ts +3 -15
  7. package/client/model/org-member.ts +21 -0
  8. package/dist-client/component/approval-line-items-editor.js +4 -2
  9. package/dist-client/component/approval-line-items-editor.js.map +1 -1
  10. package/dist-client/component/assignees-editor-popup.d.ts +20 -0
  11. package/dist-client/component/assignees-editor-popup.js +81 -0
  12. package/dist-client/component/assignees-editor-popup.js.map +1 -0
  13. package/dist-client/component/assignees-editor.d.ts +27 -0
  14. package/dist-client/component/assignees-editor.js +209 -0
  15. package/dist-client/component/assignees-editor.js.map +1 -0
  16. package/dist-client/component/assignees-view.d.ts +10 -0
  17. package/dist-client/component/assignees-view.js +55 -0
  18. package/dist-client/component/assignees-view.js.map +1 -0
  19. package/dist-client/component/index.d.ts +3 -0
  20. package/dist-client/component/index.js +3 -0
  21. package/dist-client/component/index.js.map +1 -1
  22. package/dist-client/model/approval-line.d.ts +3 -13
  23. package/dist-client/model/approval-line.js +0 -8
  24. package/dist-client/model/approval-line.js.map +1 -1
  25. package/dist-client/model/org-member.d.ts +19 -0
  26. package/dist-client/model/org-member.js +14 -0
  27. package/dist-client/model/org-member.js.map +1 -0
  28. package/dist-client/tsconfig.tsbuildinfo +1 -1
  29. package/dist-server/service/approval-line/approval-line-item.js +22 -31
  30. package/dist-server/service/approval-line/approval-line-item.js.map +1 -1
  31. package/dist-server/service/approval-line/approval-line-mutation.js +5 -10
  32. package/dist-server/service/approval-line/approval-line-mutation.js.map +1 -1
  33. package/dist-server/service/approval-line/approval-line-query.js +16 -10
  34. package/dist-server/service/approval-line/approval-line-query.js.map +1 -1
  35. package/dist-server/tsconfig.tsbuildinfo +1 -1
  36. package/package.json +5 -5
  37. package/server/service/approval-line/approval-line-item.ts +12 -26
  38. package/server/service/approval-line/approval-line-mutation.ts +10 -12
  39. package/server/service/approval-line/approval-line-query.ts +19 -13
  40. package/translations/en.json +1 -0
  41. package/translations/ko.json +1 -0
  42. package/translations/ms.json +1 -0
  43. package/translations/zh.json +1 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/organization",
3
- "version": "6.0.24",
3
+ "version": "6.0.27",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -30,9 +30,9 @@
30
30
  "@operato/data-tree": "^1.0.0",
31
31
  "@operato/graphql": "^1.0.0",
32
32
  "@operato/shell": "^1.0.0",
33
- "@things-factory/auth-base": "^6.0.24",
34
- "@things-factory/contact": "^6.0.24",
35
- "@things-factory/shell": "^6.0.24"
33
+ "@things-factory/auth-base": "^6.0.27",
34
+ "@things-factory/contact": "^6.0.27",
35
+ "@things-factory/shell": "^6.0.27"
36
36
  },
37
- "gitHead": "27c1a4c3bcf4f293e7e676caa1f2daa3bb6ded11"
37
+ "gitHead": "684784a4f3e450e9ce07dcd51db70b8a2d2c2a0f"
38
38
  }
@@ -1,26 +1,21 @@
1
- import { ObjectType, Field, ID, InputType, registerEnumType } from 'type-graphql'
1
+ import { ObjectType, Field, ID, registerEnumType } from 'type-graphql'
2
2
 
3
- import { ObjectRef } from '@things-factory/shell'
4
-
5
- export enum ApprovalLineItemType {
3
+ export enum OrgMemberTargetType {
6
4
  Employee = 'Employee',
7
5
  Department = 'Department',
8
- Role = 'Role'
6
+ Role = 'Role',
7
+ Myself = 'Myself',
8
+ MyDepartment = 'MyDepartment',
9
+ MySupervisor = 'MySupervisor'
9
10
  }
10
11
 
11
- registerEnumType(ApprovalLineItemType, {
12
- name: 'ApprovalLineItemType',
12
+ registerEnumType(OrgMemberTargetType, {
13
+ name: 'OrgMemberTargetType',
13
14
  description: 'type enumeration of a approval line item'
14
15
  })
15
16
 
16
- // @InputType()
17
- // export class ObjectRefApprover extends ObjectRef {
18
- // @Field({ nullable: true })
19
- // controlNo?: string
20
- // }
21
-
22
17
  @ObjectType()
23
- export class ApproverTarget {
18
+ export class OrgMemberTarget {
24
19
  @Field(() => ID, { description: 'Field id' })
25
20
  id?: string
26
21
 
@@ -37,20 +32,11 @@ export class ApproverTarget {
37
32
  @ObjectType({ description: 'Entity for approval line item' })
38
33
  export class ApprovalLineItem {
39
34
  @Field({ nullable: true })
40
- type?: ApprovalLineItemType
35
+ type?: OrgMemberTargetType
41
36
 
42
37
  @Field(type => String, { nullable: true })
43
38
  value?: string
44
39
 
45
- @Field(type => ApproverTarget, { nullable: true })
46
- approver?: ApproverTarget
40
+ @Field(type => OrgMemberTarget, { nullable: true })
41
+ approver?: OrgMemberTarget
47
42
  }
48
-
49
- // @InputType()
50
- // export class ApprovalLineItemPatch {
51
- // @Field({ nullable: true })
52
- // type?: ApprovalLineItemType
53
-
54
- // @Field(type => ObjectRefApprover, { nullable: true })
55
- // approver?: ObjectRefApprover
56
- // }
@@ -6,7 +6,11 @@ import { ApprovalLine, ApprovalLineOwnerType } from './approval-line'
6
6
  import { ApprovalLineItem } from './approval-line-item'
7
7
  import { NewApprovalLine, ApprovalLinePatch } from './approval-line-type'
8
8
 
9
- async function getOwnerValue(approvalLine: any, patch: any, context: ResolverContext) {
9
+ async function getOwnerValue(
10
+ approvalLine: ApprovalLine | NewApprovalLine | ApprovalLinePatch,
11
+ patch: NewApprovalLine | ApprovalLinePatch,
12
+ context: ResolverContext
13
+ ) {
10
14
  if (!('owner' in patch || 'ownerType' in patch)) {
11
15
  /* owner 또는 ownerType 하나도 언급되지 않았다면, 업데이트하지 않는다. */
12
16
  return
@@ -15,7 +19,7 @@ async function getOwnerValue(approvalLine: any, patch: any, context: ResolverCon
15
19
  const { domain, tx } = context.state
16
20
  const { ownerType, owner } = patch
17
21
 
18
- if (ownerType === '' || !owner) {
22
+ if (!ownerType || !owner) {
19
23
  /* ownerType이 클리어되거나, owner가 지정되지 않았다면, 클리어시킨다. */
20
24
  return null
21
25
  }
@@ -23,14 +27,8 @@ async function getOwnerValue(approvalLine: any, patch: any, context: ResolverCon
23
27
  var ownerObject
24
28
 
25
29
  switch (ownerType || approvalLine.ownerType) {
26
- case 'Employee':
27
- ownerObject = await tx.getRepository('Employee').findOneBy({ domain: { id: domain.id }, id: owner.id })
28
- break
29
- case 'Department':
30
- ownerObject = await tx.getRepository('Department').findOneBy({ domain: { id: domain.id }, id: owner.id })
31
- break
32
- case 'Role':
33
- ownerObject = await tx.getRepository('Role').findOneBy({ domain: { id: domain.id }, id: owner.id })
30
+ case ApprovalLineOwnerType.Employee:
31
+ ownerObject = await tx.getRepository(Employee).findOneBy({ domain: { id: domain.id }, id: owner.id })
34
32
  break
35
33
  default:
36
34
  }
@@ -38,7 +36,7 @@ async function getOwnerValue(approvalLine: any, patch: any, context: ResolverCon
38
36
  return ownerObject?.id || null
39
37
  }
40
38
 
41
- function getModelValue(patch: any): ApprovalLineItem[] {
39
+ function getModelValue(patch: NewApprovalLine | ApprovalLinePatch): ApprovalLineItem[] {
42
40
  if (!('model' in patch)) {
43
41
  /* model이 언급되지 않았다면, 업데이트하지 않는다. */
44
42
  return
@@ -54,7 +52,7 @@ function getModelValue(patch: any): ApprovalLineItem[] {
54
52
  return model.map(m => {
55
53
  return {
56
54
  type: m.type,
57
- value: m.approver.id
55
+ value: m.approver?.id
58
56
  } as ApprovalLineItem
59
57
  })
60
58
  }
@@ -1,11 +1,12 @@
1
1
  import { Directive, Resolver, Query, FieldResolver, Root, Args, Arg, Ctx } from 'type-graphql'
2
2
  import { Brackets, In } from 'typeorm'
3
3
  import { Domain, getQueryBuilderFromListParams, getRepository, ListParam } from '@things-factory/shell'
4
- import { User } from '@things-factory/auth-base'
5
- import { ApprovalLineItem } from './approval-line-item'
6
- import { ApprovalLine, ApprovalLineOwner } from './approval-line'
4
+ import { Role, User } from '@things-factory/auth-base'
5
+ import { ApprovalLineItem, OrgMemberTargetType } from './approval-line-item'
6
+ import { ApprovalLine, ApprovalLineOwner, ApprovalLineOwnerType } from './approval-line'
7
7
  import { ApprovalLineList } from './approval-line-type'
8
8
  import { Employee } from '../employee/employee'
9
+ import { Department } from '../department/department'
9
10
 
10
11
  async function getOwnerValue(approvalLine: ApprovalLine, context: ResolverContext) {
11
12
  const { domain } = context.state
@@ -19,8 +20,8 @@ async function getOwnerValue(approvalLine: ApprovalLine, context: ResolverContex
19
20
  var ownerObject
20
21
 
21
22
  switch (ownerType) {
22
- case 'Employee':
23
- ownerObject = await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id: ownerValue })
23
+ case ApprovalLineOwnerType.Employee:
24
+ ownerObject = await getRepository(Employee).findOneBy({ domain: { id: domain.id }, id: ownerValue })
24
25
  break
25
26
  default:
26
27
  return null
@@ -30,7 +31,7 @@ async function getOwnerValue(approvalLine: ApprovalLine, context: ResolverContex
30
31
  }
31
32
 
32
33
  async function getModel(approvalLine: ApprovalLine, context: ResolverContext): Promise<ApprovalLineItem[]> {
33
- const { domain } = context.state
34
+ const { domain, user } = context.state
34
35
  const { model } = approvalLine
35
36
 
36
37
  if (!model || !(model instanceof Array)) {
@@ -44,19 +45,24 @@ async function getModel(approvalLine: ApprovalLine, context: ResolverContext): P
44
45
  var approver
45
46
 
46
47
  switch (type) {
47
- case 'Employee':
48
- approver = await getRepository('Employee').findOneBy({ domain: { id: domain.id }, id })
48
+ case OrgMemberTargetType.Employee:
49
+ approver = await getRepository(Employee).findOneBy({ domain: { id: domain.id }, id })
50
+ break
51
+ case OrgMemberTargetType.Department:
52
+ approver = await getRepository(Department).findOneBy({ domain: { id: domain.id }, id })
49
53
  break
50
- case 'Department':
51
- approver = await getRepository('Department').findOneBy({ domain: { id: domain.id }, id })
54
+ case OrgMemberTargetType.Role:
55
+ approver = await getRepository(Role).findOneBy({ domain: { id: domain.id }, id })
52
56
  break
53
- case 'Role':
54
- approver = await getRepository('Role').findOneBy({ domain: { id: domain.id }, id })
57
+ case OrgMemberTargetType.Myself:
58
+ case OrgMemberTargetType.MyDepartment:
59
+ case OrgMemberTargetType.MySupervisor:
55
60
  break
56
61
  default:
62
+ continue
57
63
  }
58
64
 
59
- approver && approvalLineItemList.push({ type, approver })
65
+ approvalLineItemList.push({ type, approver })
60
66
  }
61
67
 
62
68
  return approvalLineItemList
@@ -14,6 +14,7 @@
14
14
  "label.picture": "picture",
15
15
  "title.approval-line item list": "approval line item list",
16
16
  "title.approval-line template list": "approval line template list",
17
+ "title.assignee list": "assignee list",
17
18
  "title.common-approval-line template list": "common approval line template list",
18
19
  "title.my-approval-line template list": "my approval line template list",
19
20
  "title.employee list": "employee list",
@@ -14,6 +14,7 @@
14
14
  "label.picture": "사진",
15
15
  "title.approval-line item list": "결재라인 상세",
16
16
  "title.approval-line template list": "결재라인 템플릿 목록",
17
+ "title.assignee list": "할당자 목록",
17
18
  "title.common-approval-line template list": "공통 결재라인 템플릿 목록",
18
19
  "title.my-approval-line template list": "나의 결재라인 템플릿 목록",
19
20
  "title.employee list": "직원 목록",
@@ -14,6 +14,7 @@
14
14
  "label.picture": "picture",
15
15
  "title.approval-line item list": "approval line item list",
16
16
  "title.approval-line template list": "approval line template list",
17
+ "title.assignee list": "assignee list",
17
18
  "title.common-approval-line template list": "common approval line template list",
18
19
  "title.my-approval-line template list": "my approval line template list",
19
20
  "title.employee list": "employee list",
@@ -14,6 +14,7 @@
14
14
  "label.picture": "picture",
15
15
  "title.approval-line item list": "approval line item list",
16
16
  "title.approval-line template list": "approval line template list",
17
+ "title.assignee list": "assignee list",
17
18
  "title.common-approval-line template list": "common approval line template list",
18
19
  "title.my-approval-line template list": "my approval line template list",
19
20
  "title.employee list": "employee list",