diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index e1715270cd0..c9aa78a0173 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -217,6 +217,10 @@ export function createModel (builder: Builder): void { fields: ['createdBy'] }) + builder.mixin(recruit.class.Vacancy, core.class.Class, view.mixin.AttributeEditor, { + inlineEditor: recruit.component.VacancyEditor + }) + builder.mixin(recruit.class.Applicant, core.class.Class, notification.mixin.ClassCollaborators, { fields: ['createdBy'] }) diff --git a/models/recruit/src/plugin.ts b/models/recruit/src/plugin.ts index 96f9f529ea4..d36b77ea47a 100644 --- a/models/recruit/src/plugin.ts +++ b/models/recruit/src/plugin.ts @@ -115,7 +115,8 @@ export default mergeIds(recruitId, recruit, { ApplicationMatchPresenter: '' as AnyComponent, MatchVacancy: '' as AnyComponent, - NotificationApplicantPresenter: '' as AnyComponent + NotificationApplicantPresenter: '' as AnyComponent, + VacancyEditor: '' as AnyComponent }, template: { DefaultVacancy: '' as Ref diff --git a/packages/presentation/src/components/SpaceSelect.svelte b/packages/presentation/src/components/SpaceSelect.svelte index 6493580bde3..eee4b982f5c 100644 --- a/packages/presentation/src/components/SpaceSelect.svelte +++ b/packages/presentation/src/components/SpaceSelect.svelte @@ -58,6 +58,7 @@ export let componentProps: any | undefined = undefined export let autoSelect = true export let readonly = false + export let ignoreFill = false export let iconWithEmoji: AnySvelteComponent | Asset | ComponentType | undefined = view.ids.IconWithEmoji export let defaultIcon: AnySvelteComponent | Asset | ComponentType = IconFolder export let findDefaultSpace: (() => Promise) | undefined = undefined @@ -131,12 +132,14 @@ icon={selected?.icon === iconWithEmoji && iconWithEmoji ? IconWithEmoji : selected?.icon ?? defaultIcon} iconProps={selected?.icon === iconWithEmoji && iconWithEmoji ? { icon: selected?.color } - : { - fill: - selected?.color !== undefined - ? getPlatformColorDef(selected?.color, $themeStore.dark).icon - : getPlatformColorForTextDef(selected?.name ?? '', $themeStore.dark).icon - }} + : ignoreFill + ? undefined + : { + fill: + selected?.color !== undefined + ? getPlatformColorDef(selected?.color, $themeStore.dark).icon + : getPlatformColorForTextDef(selected?.name ?? '', $themeStore.dark).icon + }} {size} {kind} {justify} diff --git a/plugins/recruit-resources/src/components/VacancyEditor.svelte b/plugins/recruit-resources/src/components/VacancyEditor.svelte new file mode 100644 index 00000000000..9e6cf4ab09e --- /dev/null +++ b/plugins/recruit-resources/src/components/VacancyEditor.svelte @@ -0,0 +1,51 @@ + + + + { + onChange(e.detail) + }} +/> diff --git a/plugins/recruit-resources/src/index.ts b/plugins/recruit-resources/src/index.ts index 9f1724d423d..658c9367e4a 100644 --- a/plugins/recruit-resources/src/index.ts +++ b/plugins/recruit-resources/src/index.ts @@ -55,6 +55,7 @@ import VacancyList from './components/VacancyList.svelte' import VacancyModifiedPresenter from './components/VacancyModifiedPresenter.svelte' import VacancyPresenter from './components/VacancyPresenter.svelte' import VacancyTemplateEditor from './components/VacancyTemplateEditor.svelte' +import VacancyEditor from './components/VacancyEditor.svelte' import CreateOpinion from './components/review/CreateOpinion.svelte' import CreateReview from './components/review/CreateReview.svelte' import EditReview from './components/review/EditReview.svelte' @@ -357,7 +358,8 @@ export default async (): Promise => ({ VacancyTemplateEditor, MatchVacancy, - NotificationApplicantPresenter + NotificationApplicantPresenter, + VacancyEditor }, completion: { ApplicationQuery: async (