diff --git a/changelog.md b/changelog.md
index cb1a8050ae..068f338168 100644
--- a/changelog.md
+++ b/changelog.md
@@ -6,6 +6,7 @@ Core:
- Allow to leave workspace
- Allow to kick employee
+- Allow to create employee
HR:
diff --git a/common/config/rush/pnpm-lock.yaml b/common/config/rush/pnpm-lock.yaml
index c882dc7c39..e6546331dd 100644
--- a/common/config/rush/pnpm-lock.yaml
+++ b/common/config/rush/pnpm-lock.yaml
@@ -10622,13 +10622,15 @@ packages:
dev: false
file:projects/contact-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
- resolution: {integrity: sha512-emAawKeZ3rkJfH0KM59uoKyBBjXhxQkDlOuZhAHgpyCwK/6aJysXuVNTtg5IpqKo6ug3GQWhp1QUWWyIpr7SPQ==, tarball: file:projects/contact-resources.tgz}
+ resolution: {integrity: sha512-b2YgdY2vY4E+zM1fRAgN8qc+ofFdYr8dY1RE6n4Iz5aXvzhoc/2EQyHgYyquA330Pl8/iZTb7kRB9XbcIPwaIA==, tarball: file:projects/contact-resources.tgz}
id: file:projects/contact-resources.tgz
name: '@rush-temp/contact-resources'
version: 0.0.0
dependencies:
+ '@types/email-addresses': 3.0.0
'@typescript-eslint/eslint-plugin': 5.27.0_738fa17fa57f8a69ace69c90e5cfa1d5
'@typescript-eslint/parser': 5.27.0_eslint@7.32.0+typescript@4.7.2
+ email-addresses: 5.0.0
eslint: 7.32.0
eslint-config-standard-with-typescript: 21.0.1_99a5fe2f2ae1dc64d6b59974c931eb2a
eslint-plugin-import: 2.26.0_c21022bc9feaeb7b200d3d631eeae46c
@@ -11448,13 +11450,15 @@ packages:
dev: false
file:projects/login-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
- resolution: {integrity: sha512-z/UZS/JzqzigMk6IlK5Bqj/85K9Rto2HujvHzvID+jYKQ23YnuWjNbHm+8s8R4DXh42vpjeSTwi6RxtS+VWzZQ==, tarball: file:projects/login-resources.tgz}
+ resolution: {integrity: sha512-THKHVmV1AWGGi/FemAYNCxemKXLSu8Bg0/0x5nmNVeh0YG0V0YRSteBPHL3EZTAOYBGS0VKZPZ5hOChnkHXb0Q==, tarball: file:projects/login-resources.tgz}
id: file:projects/login-resources.tgz
name: '@rush-temp/login-resources'
version: 0.0.0
dependencies:
+ '@types/email-addresses': 3.0.0
'@typescript-eslint/eslint-plugin': 5.27.0_738fa17fa57f8a69ace69c90e5cfa1d5
'@typescript-eslint/parser': 5.27.0_eslint@7.32.0+typescript@4.7.2
+ email-addresses: 5.0.0
eslint: 7.32.0
eslint-config-standard-with-typescript: 21.0.1_99a5fe2f2ae1dc64d6b59974c931eb2a
eslint-plugin-import: 2.26.0_c21022bc9feaeb7b200d3d631eeae46c
@@ -11694,7 +11698,7 @@ packages:
dev: false
file:projects/model-contact.tgz_typescript@4.7.2:
- resolution: {integrity: sha512-YcuQBjpqHjvTwBbcYHoBgM+b1VwMPsd3Wei4GLhHL2uOF6TKUG1bbz3z/p3kv/SwMrDVszOxUD1LkNHb+x5oNA==, tarball: file:projects/model-contact.tgz}
+ resolution: {integrity: sha512-we/DHl9Mt7a5yNpFYCF7RI5OKFtpAejWzOqp7quGzgNLDsloZSJFrzlR6T7Txez2dKA8L5p3IIWRv2oYtgxwaA==, tarball: file:projects/model-contact.tgz}
id: file:projects/model-contact.tgz
name: '@rush-temp/model-contact'
version: 0.0.0
@@ -14606,7 +14610,7 @@ packages:
dev: false
file:projects/tracker-resources.tgz_1e3963ebf0ceeb25b2fa6a1cc87e253c:
- resolution: {integrity: sha512-bNqQvwzdPa61s2z+M0xrwW5bSvv46yBY8BXt6cqKEHwp1Zv78P5NHU/ScAgVRuJSvwknhrykBK1mK7zghMr3Hg==, tarball: file:projects/tracker-resources.tgz}
+ resolution: {integrity: sha512-ShvJGnS3CzpTi2IxUX5oAe18j2CwHXnDl5PDYeQg4uSLw9CpOTx02zcBr/xmstZNwRaj5QBl6+ua7rE0eYRFbQ==, tarball: file:projects/tracker-resources.tgz}
id: file:projects/tracker-resources.tgz
name: '@rush-temp/tracker-resources'
version: 0.0.0
diff --git a/models/contact/src/index.ts b/models/contact/src/index.ts
index f495d5b7dd..5040a055bb 100644
--- a/models/contact/src/index.ts
+++ b/models/contact/src/index.ts
@@ -157,6 +157,10 @@ export function createModel (builder: Builder): void {
TMember
)
+ builder.mixin(contact.class.Employee, core.class.Class, view.mixin.ObjectFactory, {
+ component: contact.component.CreateEmployee
+ })
+
builder.mixin(contact.class.Person, core.class.Class, view.mixin.ObjectFactory, {
component: contact.component.CreatePerson
})
diff --git a/models/contact/src/plugin.ts b/models/contact/src/plugin.ts
index be91e35882..04092255e4 100644
--- a/models/contact/src/plugin.ts
+++ b/models/contact/src/plugin.ts
@@ -40,7 +40,8 @@ export default mergeIds(contactId, contact, {
MemberPresenter: '' as AnyComponent,
EditMember: '' as AnyComponent,
EmployeeArrayEditor: '' as AnyComponent,
- EmployeeEditor: '' as AnyComponent
+ EmployeeEditor: '' as AnyComponent,
+ CreateEmployee: '' as AnyComponent
},
string: {
Persons: '' as IntlString,
diff --git a/plugins/contact-assets/lang/en.json b/plugins/contact-assets/lang/en.json
index 861599c49e..e9470046a0 100644
--- a/plugins/contact-assets/lang/en.json
+++ b/plugins/contact-assets/lang/en.json
@@ -65,6 +65,8 @@
"NoMembers": "No members added",
"AddMember": "Add member",
"KickEmployee": "Kick an employee",
- "KickEmployeeDescr": "Are you sure you want to kick the employee out of the workspace? This action cannot be undone"
+ "KickEmployeeDescr": "Are you sure you want to kick the employee out of the workspace? This action cannot be undone",
+ "Email": "Email",
+ "CreateEmployee": "Create an employee"
}
}
\ No newline at end of file
diff --git a/plugins/contact-assets/lang/ru.json b/plugins/contact-assets/lang/ru.json
index afe886b460..247d620884 100644
--- a/plugins/contact-assets/lang/ru.json
+++ b/plugins/contact-assets/lang/ru.json
@@ -65,6 +65,8 @@
"NoMembers": "Нет добавленных сотрудников",
"AddMember": "Добавить сотрудника",
"KickEmployee": "Исключить сотрудника",
- "KickEmployeeDescr": "Вы действительно хотите выгнать сотрудника из рабочего пространства? Это действие нельзя отменить"
+ "KickEmployeeDescr": "Вы действительно хотите выгнать сотрудника из рабочего пространства? Это действие нельзя отменить",
+ "Email": "Email",
+ "CreateEmployee": "Создать сотрудника"
}
}
\ No newline at end of file
diff --git a/plugins/contact-resources/src/components/CreateEmployee.svelte b/plugins/contact-resources/src/components/CreateEmployee.svelte
new file mode 100644
index 0000000000..12c1a0d96c
--- /dev/null
+++ b/plugins/contact-resources/src/components/CreateEmployee.svelte
@@ -0,0 +1,149 @@
+
+
+
+
+
+ 0 && lastName.trim().length > 0 && matches.length === 0 && email.trim().length > 0}
+ on:close={() => {
+ dispatch('close')
+ }}
+>
+
+ {#if matches.length > 0}
+
+ {/if}
+
+
+
+
+
+
diff --git a/plugins/contact-resources/src/index.ts b/plugins/contact-resources/src/index.ts
index fb1ff7f73f..c7be66b22b 100644
--- a/plugins/contact-resources/src/index.ts
+++ b/plugins/contact-resources/src/index.ts
@@ -47,6 +47,7 @@ import MemberPresenter from './components/MemberPresenter.svelte'
import EditMember from './components/EditMember.svelte'
import EmployeeArrayEditor from './components/EmployeeArrayEditor.svelte'
import EmployeeEditor from './components/EmployeeEditor.svelte'
+import CreateEmployee from './components/CreateEmployee.svelte'
import { leaveWorkspace } from '@anticrm/login-resources'
export {
@@ -122,7 +123,8 @@ export default async (): Promise => ({
MemberPresenter,
EditMember,
EmployeeArrayEditor,
- EmployeeEditor
+ EmployeeEditor,
+ CreateEmployee
},
completion: {
EmployeeQuery: async (client: Client, query: string) => await queryContact(contact.class.Employee, client, query),
diff --git a/plugins/contact-resources/src/plugin.ts b/plugins/contact-resources/src/plugin.ts
index bac95ff278..7da7c5151b 100644
--- a/plugins/contact-resources/src/plugin.ts
+++ b/plugins/contact-resources/src/plugin.ts
@@ -58,6 +58,8 @@ export default mergeIds(contactId, contact, {
NoMembers: '' as IntlString,
AddMember: '' as IntlString,
KickEmployee: '' as IntlString,
- KickEmployeeDescr: '' as IntlString
+ KickEmployeeDescr: '' as IntlString,
+ Email: '' as IntlString,
+ CreateEmployee: '' as IntlString
}
})