From 8505d9f9ba9952c4ec2b8db86243b7e0365bed7d Mon Sep 17 00:00:00 2001 From: Denis Bykhov <80476319+BykhovDenis@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:19:21 +0600 Subject: [PATCH] Vacancy presenter (#992) Signed-off-by: Denis Bykhov <80476319+BykhovDenis@users.noreply.github.com> --- models/recruit/src/index.ts | 4 ++ models/recruit/src/plugin.ts | 1 + .../src/components/VacancyPresenter.svelte | 38 +++++++++++++++++++ plugins/recruit-resources/src/index.ts | 4 +- .../components/navigator/SpacePanel.svelte | 6 +-- 5 files changed, 49 insertions(+), 4 deletions(-) create mode 100644 plugins/recruit-resources/src/components/VacancyPresenter.svelte diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index a686a89605..d71a740055 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -256,6 +256,10 @@ export function createModel (builder: Builder): void { presenter: recruit.component.ApplicationPresenter }) + builder.mixin(recruit.class.Vacancy, core.class.Class, view.mixin.AttributePresenter, { + presenter: recruit.component.VacancyPresenter + }) + builder.mixin(recruit.class.Applicant, core.class.Class, view.mixin.ObjectValidator, { validator: recruit.validator.ApplicantValidator }) diff --git a/models/recruit/src/plugin.ts b/models/recruit/src/plugin.ts index 9920b36d47..1dc56e91c9 100644 --- a/models/recruit/src/plugin.ts +++ b/models/recruit/src/plugin.ts @@ -51,6 +51,7 @@ export default mergeIds(recruitId, recruit, { KanbanCard: '' as AnyComponent, ApplicationPresenter: '' as AnyComponent, ApplicationsPresenter: '' as AnyComponent, + VacancyPresenter: '' as AnyComponent, EditApplication: '' as AnyComponent, TemplatesIcon: '' as AnyComponent, Applications: '' as AnyComponent, diff --git a/plugins/recruit-resources/src/components/VacancyPresenter.svelte b/plugins/recruit-resources/src/components/VacancyPresenter.svelte new file mode 100644 index 0000000000..5503dadcca --- /dev/null +++ b/plugins/recruit-resources/src/components/VacancyPresenter.svelte @@ -0,0 +1,38 @@ + + + +{#if value} +
+  {value.name} +
+{/if} diff --git a/plugins/recruit-resources/src/index.ts b/plugins/recruit-resources/src/index.ts index 3759991e57..8e05a16622 100644 --- a/plugins/recruit-resources/src/index.ts +++ b/plugins/recruit-resources/src/index.ts @@ -32,6 +32,7 @@ import recruit from './plugin' import { ObjectSearchResult } from '@anticrm/presentation' import task from '@anticrm/task' import ApplicationItem from './components/ApplicationItem.svelte' +import VacancyPresenter from './components/VacancyPresenter.svelte' async function createApplication (object: Doc): Promise { showPopup(CreateApplication, { candidate: object._id, preserveCandidate: true }) @@ -106,7 +107,8 @@ export default async (): Promise => ({ TemplatesIcon, Applications, Candidates, - CreateCandidate + CreateCandidate, + VacancyPresenter }, completion: { ApplicationQuery: async (client: Client, query: string) => await queryApplication(client, query) diff --git a/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte b/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte index dc88efa207..0c458adad7 100644 --- a/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte +++ b/plugins/workbench-resources/src/components/navigator/SpacePanel.svelte @@ -23,7 +23,7 @@ import { createEventDispatcher } from 'svelte' export let _id: Ref - export let spaceClass: Ref> + export let _class: Ref> let space: Space @@ -33,7 +33,7 @@ const dispatch = createEventDispatcher() const client = getClient() - const clazz = client.getHierarchy().getClass(spaceClass) + const clazz = client.getHierarchy().getClass(_class) const query = createQuery() $: query.query(core.class.Space, { _id }, result => { space = result[0] }) @@ -44,7 +44,7 @@ function onNameChange (ev: Event) { const value = (ev.target as HTMLInputElement).value if (value.trim().length > 0) { - client.updateDoc(spaceClass, space.space, space._id, { name: value }) + client.updateDoc(_class, space.space, space._id, { name: value }) } else { // Just refresh value query.query(core.class.Space, { _id }, result => { space = result[0] })