From 843ddfeb997dfac626c466bf40fc62713d100350 Mon Sep 17 00:00:00 2001 From: Denis Bykhov Date: Tue, 26 Dec 2023 11:27:51 +0600 Subject: [PATCH] UBERF-4727 (#4270) --- models/tracker/src/presenters.ts | 4 + packages/core/src/server.ts | 2 +- .../src/components/SpaceSelect.svelte | 3 +- .../src/components/SpaceSelector.svelte | 4 +- .../src/components/SpacesPopup.svelte | 22 ++- .../src/components/CreateApplication.svelte | 2 +- .../src/components/TypeSelector.svelte | 2 +- .../components/state/TypeStatesPopup.svelte | 27 ++-- .../taskTypes/TaskKindSelector.svelte | 27 ++-- plugins/task-resources/src/plugin.ts | 1 + .../src/components/CreateIssue.svelte | 4 +- .../components/issues/PriorityEditor.svelte | 101 ++------------ .../issues/PriorityInlineEditor.svelte | 128 ++++++++++++++++++ plugins/tracker-resources/src/index.ts | 2 + plugins/tracker-resources/src/plugin.ts | 3 +- plugins/tracker/src/index.ts | 2 + server/core/src/storage.ts | 6 +- server/core/src/types.ts | 2 +- 18 files changed, 219 insertions(+), 123 deletions(-) create mode 100644 plugins/tracker-resources/src/components/issues/PriorityInlineEditor.svelte diff --git a/models/tracker/src/presenters.ts b/models/tracker/src/presenters.ts index 8de4f9e697..072e7f4e85 100644 --- a/models/tracker/src/presenters.ts +++ b/models/tracker/src/presenters.ts @@ -85,6 +85,10 @@ export function definePresenters (builder: Builder): void { presenter: tracker.component.PriorityRefPresenter }) + builder.mixin(tracker.class.TypeIssuePriority, core.class.Class, view.mixin.AttributeEditor, { + inlineEditor: tracker.component.PriorityInlineEditor + }) + // // Project // diff --git a/packages/core/src/server.ts b/packages/core/src/server.ts index 1e04f31abd..c215b3a829 100644 --- a/packages/core/src/server.ts +++ b/packages/core/src/server.ts @@ -76,7 +76,7 @@ export interface ServerStorage extends LowLevelStorage { ) => Promise> searchFulltext: (ctx: MeasureContext, query: SearchQuery, options: SearchOptions) => Promise tx: (ctx: MeasureContext, tx: Tx) => Promise<[TxResult, Tx[]]> - apply: (ctx: MeasureContext, tx: Tx[], broadcast: boolean) => Promise + apply: (ctx: MeasureContext, tx: Tx[], broadcast: boolean) => Promise close: () => Promise loadModel: (last: Timestamp, hash?: string) => Promise } diff --git a/packages/presentation/src/components/SpaceSelect.svelte b/packages/presentation/src/components/SpaceSelect.svelte index e39ce7b09f..b5c0d7592d 100644 --- a/packages/presentation/src/components/SpaceSelect.svelte +++ b/packages/presentation/src/components/SpaceSelect.svelte @@ -18,6 +18,7 @@ import { Class, DocumentQuery, FindOptions, Ref, Space } from '@hcengineering/core' import { Asset, IntlString } from '@hcengineering/platform' import { + AnyComponent, AnySvelteComponent, Button, ButtonKind, @@ -57,7 +58,7 @@ export let shape: ButtonShape = undefined export let width: string | undefined = undefined export let allowDeselect = false - export let component: AnySvelteComponent | undefined = undefined + export let component: AnyComponent | AnySvelteComponent | undefined = undefined export let componentProps: any | undefined = undefined export let autoSelect = true export let readonly = false diff --git a/packages/presentation/src/components/SpaceSelector.svelte b/packages/presentation/src/components/SpaceSelector.svelte index 66c693d83f..41f7d757ed 100644 --- a/packages/presentation/src/components/SpaceSelector.svelte +++ b/packages/presentation/src/components/SpaceSelector.svelte @@ -15,7 +15,7 @@ @@ -80,8 +92,8 @@ on:search={(e) => (search = e.detail)} > - {#if component} - + {#if is} + {:else} {/if} diff --git a/plugins/recruit-resources/src/components/CreateApplication.svelte b/plugins/recruit-resources/src/components/CreateApplication.svelte index ad5d352f83..24f0271300 100644 --- a/plugins/recruit-resources/src/components/CreateApplication.svelte +++ b/plugins/recruit-resources/src/components/CreateApplication.svelte @@ -276,7 +276,7 @@
diff --git a/plugins/task-resources/src/components/TypeSelector.svelte b/plugins/task-resources/src/components/TypeSelector.svelte index 9398b59468..739ccfccd8 100644 --- a/plugins/task-resources/src/components/TypeSelector.svelte +++ b/plugins/task-resources/src/components/TypeSelector.svelte @@ -59,5 +59,5 @@ /> {/if} {#if !allTypes} - + {/if} diff --git a/plugins/task-resources/src/components/state/TypeStatesPopup.svelte b/plugins/task-resources/src/components/state/TypeStatesPopup.svelte index cee388bdfa..d51767dc39 100644 --- a/plugins/task-resources/src/components/state/TypeStatesPopup.svelte +++ b/plugins/task-resources/src/components/state/TypeStatesPopup.svelte @@ -15,7 +15,7 @@
dispatch('changeContent')}> diff --git a/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte b/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte index d3d94bb1b7..e4a3da4825 100644 --- a/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte +++ b/plugins/task-resources/src/components/taskTypes/TaskKindSelector.svelte @@ -3,11 +3,11 @@ import { getClient } from '@hcengineering/presentation' import task, { ProjectType, TaskType } from '@hcengineering/task' import { DropdownLabels } from '@hcengineering/ui' - import { onDestroy } from 'svelte' + import { createEventDispatcher, onDestroy } from 'svelte' import { selectedTaskTypeStore, taskTypeStore } from '../..' + export let value: Ref | undefined export let projectType: Ref | undefined - export let taskType: Ref | undefined export let focusIndex: number = -1 export let baseClass: Ref> | undefined = undefined export let allTypes = false @@ -25,19 +25,30 @@ .map((it) => ({ id: it._id, label: it.name })) $: if ( - (taskType === undefined && items.length > 0) || - (items.length > 0 && items.find((it) => it.id === taskType) === undefined) + (value === undefined && items.length > 0) || + (items.length > 0 && items.find((it) => it.id === value) === undefined) ) { - taskType = items[0].id + value = items[0].id } onDestroy(() => { $selectedTaskTypeStore = undefined }) + + const dispatch = createEventDispatcher() + + function change () { + dispatch('change', value) + } {#if projectType !== undefined && items.length > 1} -
- -
+ {/if} diff --git a/plugins/task-resources/src/plugin.ts b/plugins/task-resources/src/plugin.ts index e2f4726967..fb6a80564c 100644 --- a/plugins/task-resources/src/plugin.ts +++ b/plugins/task-resources/src/plugin.ts @@ -81,6 +81,7 @@ export default mergeIds(taskId, task, { AssigneeRequired: '' as IntlString }, component: { + TaskKindSelector: '' as AnyComponent, StatusFilter: '' as AnyComponent, TodoStatePresenter: '' as AnyComponent, AssignedTasks: '' as AnyComponent, diff --git a/plugins/tracker-resources/src/components/CreateIssue.svelte b/plugins/tracker-resources/src/components/CreateIssue.svelte index 276c520eeb..ecb93cb535 100644 --- a/plugins/tracker-resources/src/components/CreateIssue.svelte +++ b/plugins/tracker-resources/src/components/CreateIssue.svelte @@ -635,11 +635,11 @@ -
+
- + {#if relatedTo}