From 2e9a0f44b40cc4a53c15479c9352b5af8e530ea9 Mon Sep 17 00:00:00 2001 From: Andrey Sobolev Date: Thu, 1 Jun 2023 16:20:33 +0700 Subject: [PATCH] UBER-327: Sub issues/Related issues allow to create from category header (#3317) Signed-off-by: Andrey Sobolev --- .../src/components/issues/edit/SubIssueList.svelte | 12 ++++++++++-- .../src/components/issues/edit/SubIssues.svelte | 4 ++++ .../components/issues/related/RelatedIssues.svelte | 12 +++++++++++- .../view-resources/src/components/list/List.svelte | 6 ++++-- .../src/components/list/ListCategories.svelte | 10 ++++++---- .../src/components/list/ListCategory.svelte | 5 ++++- .../src/components/list/ListHeader.svelte | 10 ++++++++-- 7 files changed, 47 insertions(+), 12 deletions(-) diff --git a/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte b/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte index 2ca7f62c25..cb4147a1d6 100644 --- a/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/SubIssueList.svelte @@ -14,12 +14,13 @@ --> { listProvider.updateFocus(event.detail ?? undefined) diff --git a/plugins/tracker-resources/src/components/issues/edit/SubIssues.svelte b/plugins/tracker-resources/src/components/issues/edit/SubIssues.svelte index c0bb37961f..47736309ec 100644 --- a/plugins/tracker-resources/src/components/issues/edit/SubIssues.svelte +++ b/plugins/tracker-resources/src/components/issues/edit/SubIssues.svelte @@ -39,6 +39,7 @@ import tracker from '../../../plugin' import SubIssueList from './SubIssueList.svelte' import { afterUpdate } from 'svelte' + import CreateIssue from '../../CreateIssue.svelte' export let issue: Issue export let projects: Map, Project> @@ -149,6 +150,9 @@
0} - + {:else}
diff --git a/plugins/view-resources/src/components/list/List.svelte b/plugins/view-resources/src/components/list/List.svelte index 2017ad15b9..09267efb2b 100644 --- a/plugins/view-resources/src/components/list/List.svelte +++ b/plugins/view-resources/src/components/list/List.svelte @@ -16,7 +16,7 @@ import { Class, Doc, DocumentQuery, FindOptions, Ref, Space } from '@hcengineering/core' import { IntlString, getResource } from '@hcengineering/platform' import { createQuery, getClient } from '@hcengineering/presentation' - import { AnyComponent } from '@hcengineering/ui' + import { AnyComponent, AnySvelteComponent } from '@hcengineering/ui' import { BuildModelKey, ViewOptionModel, ViewOptions, ViewQueryOption } from '@hcengineering/view' import { createEventDispatcher } from 'svelte' import { buildConfigLookup } from '../../utils' @@ -29,7 +29,8 @@ export let baseMenuClass: Ref> | undefined = undefined export let config: (string | BuildModelKey)[] export let selectedObjectIds: Doc[] = [] - export let createItemDialog: AnyComponent | undefined = undefined + export let createItemDialog: AnyComponent | AnySvelteComponent | undefined = undefined + export let createItemDialogProps: Record | undefined = undefined export let createItemLabel: IntlString | undefined = undefined export let viewOptionsConfig: ViewOptionModel[] | undefined = undefined export let viewOptions: ViewOptions @@ -128,6 +129,7 @@ level={0} groupPersistKey={''} {createItemDialog} + {createItemDialogProps} {createItemLabel} on:check on:uncheckAll={uncheckAll} diff --git a/plugins/view-resources/src/components/list/ListCategories.svelte b/plugins/view-resources/src/components/list/ListCategories.svelte index a20482177f..73c4e13694 100644 --- a/plugins/view-resources/src/components/list/ListCategories.svelte +++ b/plugins/view-resources/src/components/list/ListCategories.svelte @@ -16,18 +16,18 @@ import { CategoryType, Class, Doc, DocumentQuery, generateId, Lookup, Ref, Space } from '@hcengineering/core' import { getResource, IntlString } from '@hcengineering/platform' import { getClient, statusStore } from '@hcengineering/presentation' - import { AnyComponent } from '@hcengineering/ui' + import { AnyComponent, AnySvelteComponent } from '@hcengineering/ui' import { AttributeModel, BuildModelKey, CategoryOption, ViewOptionModel, ViewOptions } from '@hcengineering/view' import { createEventDispatcher, onDestroy, SvelteComponentTyped } from 'svelte' import { buildModel, concatCategories, + fixedWidthStore, getAdditionalHeader, getCategories, getGroupByValues, getPresenter, - groupBy, - fixedWidthStore + groupBy } from '../../utils' import { CategoryQuery, noCategory } from '../../viewOptions' import ListCategory from './ListCategory.svelte' @@ -40,7 +40,8 @@ export let baseMenuClass: Ref> | undefined export let config: (string | BuildModelKey)[] export let selectedObjectIds: Doc[] = [] - export let createItemDialog: AnyComponent | undefined + export let createItemDialog: AnyComponent | AnySvelteComponent | undefined + export let createItemDialogProps: Record | undefined export let createItemLabel: IntlString | undefined export let viewOptions: ViewOptions export let flatHeaders = false @@ -306,6 +307,7 @@ {items} {newObjectProps} {createItemDialog} + {createItemDialogProps} {createItemLabel} {viewOptionsConfig} on:check diff --git a/plugins/view-resources/src/components/list/ListCategory.svelte b/plugins/view-resources/src/components/list/ListCategory.svelte index 6f402d0d1f..c12b09102d 100644 --- a/plugins/view-resources/src/components/list/ListCategory.svelte +++ b/plugins/view-resources/src/components/list/ListCategory.svelte @@ -19,6 +19,7 @@ import { DocWithRank, calcRank } from '@hcengineering/task' import { AnyComponent, + AnySvelteComponent, ExpandCollapse, Spinner, getEventPositionElement, @@ -42,7 +43,8 @@ export let space: Ref | undefined export let baseMenuClass: Ref> | undefined export let items: Doc[] - export let createItemDialog: AnyComponent | undefined + export let createItemDialog: AnyComponent | AnySvelteComponent | undefined + export let createItemDialogProps: Record | undefined export let createItemLabel: IntlString | undefined export let selectedObjectIds: Doc[] export let itemModels: AttributeModel[] @@ -367,6 +369,7 @@ {items} {headerComponent} {createItemDialog} + {createItemDialogProps} {createItemLabel} {extraHeaders} newObjectProps={_newObjectProps} diff --git a/plugins/view-resources/src/components/list/ListHeader.svelte b/plugins/view-resources/src/components/list/ListHeader.svelte index 81b31dc2da..955b8fd1d0 100644 --- a/plugins/view-resources/src/components/list/ListHeader.svelte +++ b/plugins/view-resources/src/components/list/ListHeader.svelte @@ -18,6 +18,7 @@ import ui, { ActionIcon, AnyComponent, + AnySvelteComponent, Button, ColorDefinition, Component, @@ -49,7 +50,8 @@ export let lastCat = false export let level: number - export let createItemDialog: AnyComponent | undefined + export let createItemDialog: AnyComponent | AnySvelteComponent | undefined + export let createItemDialogProps: Record | undefined export let createItemLabel: IntlString | undefined export let extraHeaders: AnyComponent[] | undefined export let props: Record = {} @@ -71,7 +73,11 @@ const handleCreateItem = (event: MouseEvent) => { if (createItemDialog === undefined) return - showPopup(createItemDialog, newObjectProps(items[0]), eventToHTMLElement(event)) + showPopup( + createItemDialog, + { ...(createItemDialogProps ?? {}), ...newObjectProps(items[0]) }, + eventToHTMLElement(event) + ) } let mouseOver = false