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 } })