@things-factory/organization 6.0.25 → 6.0.28

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 (91) hide show
  1. package/client/bootstrap.ts +7 -3
  2. package/client/component/approval-line-items-editor-popup.ts +1 -1
  3. package/client/component/approval-line-items-editor.ts +1 -1
  4. package/client/component/approval-line-templates-/bmanager.ts +1 -1
  5. package/client/component/approval-line-view.ts +1 -1
  6. package/client/component/assignees-editor-popup.ts +1 -1
  7. package/client/component/assignees-editor.ts +2 -2
  8. package/client/component/assignees-view.ts +1 -1
  9. package/client/component/department-selector.ts +1 -1
  10. package/client/grist-editor/grist-editor-approval-line.ts +76 -0
  11. package/client/grist-editor/grist-editor-assignees.ts +73 -0
  12. package/client/index.ts +1 -0
  13. package/client/pages/department/department-list-page.ts +1 -1
  14. package/client/{model → types}/approval-line.ts +1 -3
  15. package/client/{model → types}/contact.ts +1 -2
  16. package/client/{model → types}/department.ts +1 -2
  17. package/client/{model → types}/employee.ts +1 -2
  18. package/client/types/index.ts +5 -0
  19. package/dist-client/bootstrap.d.ts +0 -1
  20. package/dist-client/bootstrap.js +7 -2
  21. package/dist-client/bootstrap.js.map +1 -1
  22. package/dist-client/component/approval-line-items-editor-popup.d.ts +1 -1
  23. package/dist-client/component/approval-line-items-editor-popup.js.map +1 -1
  24. package/dist-client/component/approval-line-items-editor.d.ts +1 -1
  25. package/dist-client/component/approval-line-items-editor.js.map +1 -1
  26. package/dist-client/component/approval-line-templates-/bmanager.d.ts +1 -1
  27. package/dist-client/component/approval-line-templates-/bmanager.js +1 -1
  28. package/dist-client/component/approval-line-templates-/bmanager.js.map +1 -1
  29. package/dist-client/component/approval-line-view.d.ts +1 -1
  30. package/dist-client/component/approval-line-view.js.map +1 -1
  31. package/dist-client/component/assignees-editor-popup.d.ts +1 -1
  32. package/dist-client/component/assignees-editor-popup.js.map +1 -1
  33. package/dist-client/component/assignees-editor.d.ts +1 -1
  34. package/dist-client/component/assignees-editor.js +2 -1
  35. package/dist-client/component/assignees-editor.js.map +1 -1
  36. package/dist-client/component/assignees-view.d.ts +1 -1
  37. package/dist-client/component/assignees-view.js.map +1 -1
  38. package/dist-client/component/department-selector.d.ts +1 -1
  39. package/dist-client/component/department-selector.js +1 -1
  40. package/dist-client/component/department-selector.js.map +1 -1
  41. package/dist-client/grist-editor/grist-editor-approval-line.d.ts +11 -0
  42. package/dist-client/grist-editor/grist-editor-approval-line.js +64 -0
  43. package/dist-client/grist-editor/grist-editor-approval-line.js.map +1 -0
  44. package/dist-client/grist-editor/grist-editor-assignees.d.ts +11 -0
  45. package/dist-client/grist-editor/grist-editor-assignees.js +61 -0
  46. package/dist-client/grist-editor/grist-editor-assignees.js.map +1 -0
  47. package/dist-client/index.d.ts +1 -0
  48. package/dist-client/index.js +1 -0
  49. package/dist-client/index.js.map +1 -1
  50. package/dist-client/pages/department/department-list-page.d.ts +1 -1
  51. package/dist-client/pages/department/department-list-page.js +1 -1
  52. package/dist-client/pages/department/department-list-page.js.map +1 -1
  53. package/dist-client/pages/main.d.ts +1 -0
  54. package/dist-client/pages/main.js +27 -0
  55. package/dist-client/pages/main.js.map +1 -0
  56. package/dist-client/tsconfig.tsbuildinfo +1 -1
  57. package/dist-client/types/approval-line.d.ts +32 -0
  58. package/dist-client/types/approval-line.js +10 -0
  59. package/dist-client/types/approval-line.js.map +1 -0
  60. package/dist-client/types/contact.d.ts +43 -0
  61. package/dist-client/types/contact.js +21 -0
  62. package/dist-client/types/contact.js.map +1 -0
  63. package/dist-client/types/department.d.ts +25 -0
  64. package/dist-client/types/department.js +8 -0
  65. package/dist-client/types/department.js.map +1 -0
  66. package/dist-client/types/employee.d.ts +38 -0
  67. package/dist-client/types/employee.js +17 -0
  68. package/dist-client/types/employee.js.map +1 -0
  69. package/dist-client/types/index.d.ts +5 -0
  70. package/dist-client/types/index.js +6 -0
  71. package/dist-client/types/index.js.map +1 -0
  72. package/dist-client/types/org-member.d.ts +19 -0
  73. package/dist-client/types/org-member.js +14 -0
  74. package/dist-client/types/org-member.js.map +1 -0
  75. package/dist-server/service/approval-line/approval-line-mutation.js +5 -10
  76. package/dist-server/service/approval-line/approval-line-mutation.js.map +1 -1
  77. package/dist-server/service/approval-line/approval-line-query.js +14 -14
  78. package/dist-server/service/approval-line/approval-line-query.js.map +1 -1
  79. package/dist-server/tsconfig.tsbuildinfo +1 -1
  80. package/package.json +5 -5
  81. package/server/service/approval-line/approval-line-mutation.ts +10 -12
  82. package/server/service/approval-line/approval-line-query.ts +17 -17
  83. package/translations/en.json +2 -0
  84. package/translations/ko.json +2 -0
  85. package/translations/ms.json +2 -0
  86. package/translations/zh.json +2 -0
  87. package/client/model/domain.ts +0 -22
  88. package/client/model/privilege.ts +0 -28
  89. package/client/model/role.ts +0 -33
  90. package/client/model/user.ts +0 -23
  91. /package/client/{model → types}/org-member.ts +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/organization",
3
- "version": "6.0.25",
3
+ "version": "6.0.28",
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.25",
34
- "@things-factory/contact": "^6.0.25",
35
- "@things-factory/shell": "^6.0.25"
33
+ "@things-factory/auth-base": "^6.0.28",
34
+ "@things-factory/contact": "^6.0.28",
35
+ "@things-factory/shell": "^6.0.28"
36
36
  },
37
- "gitHead": "8a987a42de944dc915b8cfddb047eb7bc0d4ba41"
37
+ "gitHead": "8b4e03229444e38fc3f3487227a96837eef85099"
38
38
  }
@@ -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
@@ -44,25 +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 })
49
50
  break
50
- case 'Department':
51
- approver = await getRepository('Department').findOneBy({ domain: { id: domain.id }, id })
51
+ case OrgMemberTargetType.Department:
52
+ approver = await getRepository(Department).findOneBy({ domain: { id: domain.id }, id })
52
53
  break
53
- case 'Role':
54
- approver = await getRepository('Role').findOneBy({ domain: { id: domain.id }, id })
54
+ case OrgMemberTargetType.Role:
55
+ approver = await getRepository(Role).findOneBy({ domain: { id: domain.id }, id })
55
56
  break
56
- case 'Myself':
57
- approver = user
58
- break
59
- case 'MyDepartment':
60
- case 'MySupervisor':
57
+ case OrgMemberTargetType.Myself:
58
+ case OrgMemberTargetType.MyDepartment:
59
+ case OrgMemberTargetType.MySupervisor:
61
60
  break
62
61
  default:
62
+ continue
63
63
  }
64
64
 
65
- approver && approvalLineItemList.push({ type, approver })
65
+ approvalLineItemList.push({ type, approver })
66
66
  }
67
67
 
68
68
  return approvalLineItemList
@@ -12,9 +12,11 @@
12
12
  "label.manager": "manager",
13
13
  "label.note": "note",
14
14
  "label.picture": "picture",
15
+ "title.approval-line editor": "approval line editor",
15
16
  "title.approval-line item list": "approval line item list",
16
17
  "title.approval-line template list": "approval line template list",
17
18
  "title.assignee list": "assignee list",
19
+ "title.assignees editor": "assignee editor",
18
20
  "title.common-approval-line template list": "common approval line template list",
19
21
  "title.my-approval-line template list": "my approval line template list",
20
22
  "title.employee list": "employee list",
@@ -12,9 +12,11 @@
12
12
  "label.manager": "관리자",
13
13
  "label.note": "노트",
14
14
  "label.picture": "사진",
15
+ "title.approval-line editor": "결재라인 편집",
15
16
  "title.approval-line item list": "결재라인 상세",
16
17
  "title.approval-line template list": "결재라인 템플릿 목록",
17
18
  "title.assignee list": "할당자 목록",
19
+ "title.assignees editor": "할당자 목록 편집",
18
20
  "title.common-approval-line template list": "공통 결재라인 템플릿 목록",
19
21
  "title.my-approval-line template list": "나의 결재라인 템플릿 목록",
20
22
  "title.employee list": "직원 목록",
@@ -12,9 +12,11 @@
12
12
  "label.manager": "manager",
13
13
  "label.note": "note",
14
14
  "label.picture": "picture",
15
+ "title.approval-line editor": "approval line editor",
15
16
  "title.approval-line item list": "approval line item list",
16
17
  "title.approval-line template list": "approval line template list",
17
18
  "title.assignee list": "assignee list",
19
+ "title.assignees editor": "assignee editor",
18
20
  "title.common-approval-line template list": "common approval line template list",
19
21
  "title.my-approval-line template list": "my approval line template list",
20
22
  "title.employee list": "employee list",
@@ -12,9 +12,11 @@
12
12
  "label.manager": "manager",
13
13
  "label.note": "note",
14
14
  "label.picture": "picture",
15
+ "title.approval-line editor": "approval line editor",
15
16
  "title.approval-line item list": "approval line item list",
16
17
  "title.approval-line template list": "approval line template list",
17
18
  "title.assignee list": "assignee list",
19
+ "title.assignees editor": "assignee editor",
18
20
  "title.common-approval-line template list": "common approval line template list",
19
21
  "title.my-approval-line template list": "my approval line template list",
20
22
  "title.employee list": "employee list",
@@ -1,22 +0,0 @@
1
- export class Domain {
2
- readonly id?: string
3
-
4
- name?: string
5
- description?: string
6
-
7
- subdomain?: string
8
-
9
- extType?: string
10
- timezone?: string
11
- systemFlag?: boolean
12
-
13
- brandName?: string
14
- brandImage?: string
15
- contentImage?: string
16
-
17
- owner?: string
18
- theme?: string
19
-
20
- createdAt?: Date
21
- updatedAt?: Date
22
- }
@@ -1,28 +0,0 @@
1
- import { Role } from './role'
2
- import { User } from './user'
3
-
4
- export class Privilege {
5
- id?: string
6
-
7
- name?: string
8
-
9
- category?: string
10
-
11
- nullable?: true
12
-
13
- description?: string
14
-
15
- roles?: Role[]
16
-
17
- creator?: User
18
-
19
- creatorId?: string
20
-
21
- updater?: User
22
-
23
- updaterId?: string
24
-
25
- createdAt?: Date
26
-
27
- updatedAt?: Date
28
- }
@@ -1,33 +0,0 @@
1
- import { Domain } from './domain'
2
- import { User } from './user'
3
- import { Privilege } from './privilege'
4
-
5
- export class Role {
6
- readonly id?: string
7
-
8
- domain?: Domain
9
-
10
- domainId?: string
11
-
12
- name?: string
13
-
14
- users?: User[]
15
-
16
- privileges?: Privilege[]
17
-
18
- nullable?: true
19
-
20
- description?: string
21
-
22
- creator?: User
23
-
24
- creatorId?: string
25
-
26
- updater?: User
27
-
28
- updaterId?: string
29
-
30
- createdAt?: Date
31
-
32
- updatedAt?: Date
33
- }
@@ -1,23 +0,0 @@
1
- export enum UserStatus {
2
- INACTIVE = 'inactive',
3
- ACTIVATED = 'activated',
4
- DELETED = 'deleted',
5
- LOCKED = 'locked',
6
- BANNED = 'banned',
7
- PWD_RESET_REQUIRED = 'password_reset_required'
8
- }
9
-
10
- export class User {
11
- readonly id?: string
12
-
13
- name?: string
14
- description?: string
15
-
16
- email?: string
17
-
18
- creator?: User
19
- updater?: User
20
-
21
- createdAt?: Date
22
- updatedAt?: Date
23
- }
File without changes