From 9072b4cbba8764e3cdc300b17345e8bfea97125a Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Mon, 17 Feb 2025 10:51:48 +0700 Subject: [PATCH] UBERF-9483 Task type improvements (#8015) Signed-off-by: Andrey Sobolev --- models/recruit/src/index.ts | 7 ++ models/task/src/index.ts | 5 - models/task/src/plugin.ts | 1 + models/tracker/src/index.ts | 3 +- models/tracker/src/viewlets.ts | 14 +-- .../src/components/DropdownLabelsIntl.svelte | 4 + .../components/spaceTypes/SpaceTypes.svelte | 12 +- .../SpaceTypeGeneralSectionEditor.svelte | 5 +- ...ProjectTypeCollectionsSectionEditor.svelte | 31 ------ .../taskTypes/TaskKindSelector.svelte | 19 +++- .../taskTypes/TaskTypeEditor.svelte | 105 +++++++++++++----- .../taskTypes/TaskTypeListPresenter.svelte | 35 ++++++ plugins/task-resources/src/index.ts | 4 +- plugins/task-resources/src/plugin.ts | 1 - plugins/task/src/index.ts | 2 + plugins/tracker-resources/src/index.ts | 49 +++++++- plugins/tracker-resources/src/plugin.ts | 5 +- 17 files changed, 213 insertions(+), 89 deletions(-) delete mode 100644 plugins/task-resources/src/components/projectTypes/ProjectTypeCollectionsSectionEditor.svelte create mode 100644 plugins/task-resources/src/components/taskTypes/TaskTypeListPresenter.svelte diff --git a/models/recruit/src/index.ts b/models/recruit/src/index.ts index e3ff94ae82..a80c9bac20 100644 --- a/models/recruit/src/index.ts +++ b/models/recruit/src/index.ts @@ -594,6 +594,13 @@ export function createModel (builder: Builder): void { key: 'status', props: { kind: 'list', size: 'small', shouldShowName: false } }, + { + key: 'kind', + label: task.string.TaskType, + presenter: task.component.TaskTypeListPresenter, + props: { kind: 'list', size: 'small', justify: 'center' }, + displayProps: { key: 'applicant_kind' } + }, { key: '$lookup.attachedTo', presenter: contact.component.PersonPresenter, diff --git a/models/task/src/index.ts b/models/task/src/index.ts index ccc078d3d2..2574086d00 100644 --- a/models/task/src/index.ts +++ b/models/task/src/index.ts @@ -530,11 +530,6 @@ export function createModel (builder: Builder): void { id: 'automations', label: setting.string.Automations, component: task.component.ProjectTypeAutomationsSectionEditor - }, - { - id: 'collections', - label: setting.string.Collections, - component: task.component.ProjectTypeCollectionsSectionEditor } ], subEditors: { diff --git a/models/task/src/plugin.ts b/models/task/src/plugin.ts index 94f863de8e..9123b9801b 100644 --- a/models/task/src/plugin.ts +++ b/models/task/src/plugin.ts @@ -57,6 +57,7 @@ export default mergeIds(taskId, task, { TypesView: '' as AnyComponent, StateIconPresenter: '' as AnyComponent, TaskTypePresenter: '' as AnyComponent, + TaskTypeListPresenter: '' as AnyComponent, ProjectTypePresenter: '' as AnyComponent, TaskTypeClassPresenter: '' as AnyComponent, ProjectTypeClassPresenter: '' as AnyComponent diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index 7a52ae250f..e8f1d4f6ab 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -741,7 +741,8 @@ function defineSpaceType (builder: Builder): void { description: tracker.string.Issue, icon: tracker.icon.Issue, name: tracker.string.Issue, - statusCategoriesFunc: tracker.function.GetIssueStatusCategories + statusCategoriesFunc: tracker.function.GetIssueStatusCategories, + openTasks: tracker.function.OpenIssuesOfTaskType }, tracker.descriptors.Issue ) diff --git a/models/tracker/src/viewlets.ts b/models/tracker/src/viewlets.ts index 993b34324c..e456a211c0 100644 --- a/models/tracker/src/viewlets.ts +++ b/models/tracker/src/viewlets.ts @@ -105,13 +105,13 @@ export function issueConfig ( props: { kind: 'list', size: 'small', justify: 'center' }, displayProps: { key: key + 'status' } }, - // { - // key: 'kind', - // label: task.string.TaskType, - // presenter: task.component.TaskTypePresenter, - // props: { kind: 'list', size: 'small', justify: 'center' }, - // displayProps: { key: key + 'kind' } - // }, + { + key: 'kind', + label: task.string.TaskType, + presenter: task.component.TaskTypeListPresenter, + props: { kind: 'list', size: 'small', justify: 'center' }, + displayProps: { key: key + 'kind' } + }, { key: '', label: tracker.string.Title, diff --git a/packages/ui/src/components/DropdownLabelsIntl.svelte b/packages/ui/src/components/DropdownLabelsIntl.svelte index 878ad60936..a77a974f0b 100644 --- a/packages/ui/src/components/DropdownLabelsIntl.svelte +++ b/packages/ui/src/components/DropdownLabelsIntl.svelte @@ -39,6 +39,8 @@ export let labelDirection: TooltipAlignment | undefined = undefined export let shouldUpdateUndefined: boolean = true export let minW0 = true + export let focusIndex: number = -1 + export let dataId: string | undefined = undefined let container: HTMLElement let opened: boolean = false @@ -78,6 +80,8 @@