From 0280677f0329f8c1fe65ac8b15ac24d36ccfd194 Mon Sep 17 00:00:00 2001 From: Vyacheslav Tumanov Date: Tue, 21 Feb 2023 11:47:39 +0500 Subject: [PATCH] Add action for changing request type (#2668) Signed-off-by: Vyacheslav Tumanov --- models/hr/src/index.ts | 15 ++++ models/hr/src/plugin.ts | 6 +- plugins/hr-assets/lang/en.json | 5 +- plugins/hr-assets/lang/ru.json | 5 +- .../src/components/EditRequestType.svelte | 79 +++++++++++++++++++ plugins/hr-resources/src/index.ts | 13 ++- plugins/hr-resources/src/plugin.ts | 3 + 7 files changed, 122 insertions(+), 4 deletions(-) create mode 100644 plugins/hr-resources/src/components/EditRequestType.svelte diff --git a/models/hr/src/index.ts b/models/hr/src/index.ts index bec089fc76..457a749984 100644 --- a/models/hr/src/index.ts +++ b/models/hr/src/index.ts @@ -332,6 +332,21 @@ export function createModel (builder: Builder): void { hr.action.EditRequest ) + createAction( + builder, + { + action: hr.actionImpl.EditRequestType, + actionProps: {}, + label: hr.string.EditRequestType, + icon: view.icon.Open, + input: 'any', + category: hr.category.HR, + target: hr.class.Request, + context: { mode: 'context', application: hr.app.HR, group: 'edit' } + }, + hr.action.EditRequestType + ) + builder.createDoc( view.class.Viewlet, core.space.Model, diff --git a/models/hr/src/plugin.ts b/models/hr/src/plugin.ts index 3ff3308e54..a73d86b7c7 100644 --- a/models/hr/src/plugin.ts +++ b/models/hr/src/plugin.ts @@ -18,7 +18,7 @@ import { hrId } from '@hcengineering/hr' import hr from '@hcengineering/hr-resources/src/plugin' import { IntlString, mergeIds } from '@hcengineering/platform' import { AnyComponent } from '@hcengineering/ui' -import { Action, ActionCategory } from '@hcengineering/view' +import { Action, ActionCategory, ViewAction } from '@hcengineering/view' export default mergeIds(hrId, hr, { string: { @@ -51,6 +51,10 @@ export default mergeIds(hrId, hr, { EditDepartment: '' as Ref, DeleteDepartment: '' as Ref, EditRequest: '' as Ref, + EditRequestType: '' as Ref, DeleteRequest: '' as Ref + }, + actionImpl: { + EditRequestType: '' as ViewAction } }) diff --git a/plugins/hr-assets/lang/en.json b/plugins/hr-assets/lang/en.json index fd43c5d5ac..67ddbb4a3f 100644 --- a/plugins/hr-assets/lang/en.json +++ b/plugins/hr-assets/lang/en.json @@ -32,6 +32,9 @@ "PTO2": "PTO/2", "Overtime2": "Overtime/2", "EditRequest": "Edit {type}", + "EditRequestType": "Edit type", + "ChooseNewType": "Choose new type:", + "UnchangeableType": "This type cannot be changed", "Request": "Request", "Staff": "Worker", "Member": "Member", @@ -39,4 +42,4 @@ "NoMembers": "No members added", "AddMember": "Add member" } -} \ No newline at end of file +} diff --git a/plugins/hr-assets/lang/ru.json b/plugins/hr-assets/lang/ru.json index 9f4eb81fed..357c8e22f7 100644 --- a/plugins/hr-assets/lang/ru.json +++ b/plugins/hr-assets/lang/ru.json @@ -32,6 +32,9 @@ "PTO2": "PTO/2", "Overtime2": "Переработка/2", "EditRequest": "Редактировать {type}", + "EditRequestType": "Редактировать тип", + "ChooseNewType": "Выберите новый тип:", + "UnchangeableType": "Этот тип нельзя поменять", "Request": "Запрос", "Staff": "Работник", "Member": "Сотрудник", @@ -39,4 +42,4 @@ "NoMembers": "Нет добавленных сотрудников", "AddMember": "Добавить сотрудника" } -} \ No newline at end of file +} diff --git a/plugins/hr-resources/src/components/EditRequestType.svelte b/plugins/hr-resources/src/components/EditRequestType.svelte new file mode 100644 index 0000000000..c6ce891a50 --- /dev/null +++ b/plugins/hr-resources/src/components/EditRequestType.svelte @@ -0,0 +1,79 @@ + + +{#if object && type && type.label} + { + dispatch('close') + }} + > +
+ {#if typesToChange !== undefined} +
+
+{/if} diff --git a/plugins/hr-resources/src/index.ts b/plugins/hr-resources/src/index.ts index 80b304ece3..93e3ff2aa1 100644 --- a/plugins/hr-resources/src/index.ts +++ b/plugins/hr-resources/src/index.ts @@ -23,6 +23,13 @@ import Structure from './components/Structure.svelte' import TzDatePresenter from './components/TzDatePresenter.svelte' import TzDateEditor from './components/TzDateEditor.svelte' import RequestPresenter from './components/RequestPresenter.svelte' +import { showPopup } from '@hcengineering/ui' +import { Request } from '@hcengineering/hr' +import EditRequestType from './components/EditRequestType.svelte' + +async function editRequestType (object: Request): Promise { + showPopup(EditRequestType, { object }) +} export default async (): Promise => ({ component: { @@ -34,6 +41,10 @@ export default async (): Promise => ({ EditRequest, TzDatePresenter, TzDateEditor, - RequestPresenter + RequestPresenter, + EditRequestType + }, + actionImpl: { + EditRequestType: editRequestType } }) diff --git a/plugins/hr-resources/src/plugin.ts b/plugins/hr-resources/src/plugin.ts index 1f8e10a217..89c65b8529 100644 --- a/plugins/hr-resources/src/plugin.ts +++ b/plugins/hr-resources/src/plugin.ts @@ -36,6 +36,9 @@ export default mergeIds(hrId, hr, { RequestType: '' as IntlString, Schedule: '' as IntlString, EditRequest: '' as IntlString, + EditRequestType: '' as IntlString, + ChooseNewType: '' as IntlString, + UnchangeableType: '' as IntlString, CreateRequest: '' as IntlString, Today: '' as IntlString, NoEmployeesInDepartment: '' as IntlString,