From cc3afc40a3375efc0923bb068c3f6fd0e862a87a Mon Sep 17 00:00:00 2001 From: Ruslan Bayandinov <45530296+wazsone@users.noreply.github.com> Date: Wed, 17 May 2023 15:14:58 +0700 Subject: [PATCH] [UBER-74] Update issues header (#3202) Signed-off-by: Ruslan Bayandinov --- models/tracker/src/index.ts | 10 ---- .../src/components/ModeSelector.svelte | 16 +++--- .../src/components/issues/Active.svelte | 38 ------------- .../src/components/issues/Backlog.svelte | 35 ------------ .../src/components/issues/Issues.svelte | 56 +++++++++++++++++-- .../src/components/issues/IssuesHeader.svelte | 33 +++++++++-- .../src/components/issues/IssuesView.svelte | 13 ++++- .../src/components/myissues/MyIssues.svelte | 15 ++--- plugins/tracker-resources/src/index.ts | 4 -- plugins/tracker-resources/src/plugin.ts | 2 - plugins/tracker-resources/src/utils.ts | 9 +++ 11 files changed, 114 insertions(+), 117 deletions(-) delete mode 100644 plugins/tracker-resources/src/components/issues/Active.svelte delete mode 100644 plugins/tracker-resources/src/components/issues/Backlog.svelte diff --git a/models/tracker/src/index.ts b/models/tracker/src/index.ts index a51bc30218..4383576a43 100644 --- a/models/tracker/src/index.ts +++ b/models/tracker/src/index.ts @@ -1051,16 +1051,6 @@ export function createModel (builder: Builder): void { icon: tracker.icon.Issues, component: tracker.component.Issues }, - { - id: activeId, - label: tracker.string.Active, - component: tracker.component.Active - }, - { - id: backlogId, - label: tracker.string.Backlog, - component: tracker.component.Backlog - }, { id: componentsId, label: tracker.string.Components, diff --git a/plugins/tracker-resources/src/components/ModeSelector.svelte b/plugins/tracker-resources/src/components/ModeSelector.svelte index a08ed7eef8..5bbc3804b0 100644 --- a/plugins/tracker-resources/src/components/ModeSelector.svelte +++ b/plugins/tracker-resources/src/components/ModeSelector.svelte @@ -1,26 +1,24 @@ -
+
{ if (result.detail !== undefined && result.detail.action) result.detail.action() }} diff --git a/plugins/tracker-resources/src/components/issues/Active.svelte b/plugins/tracker-resources/src/components/issues/Active.svelte deleted file mode 100644 index 79403ebc03..0000000000 --- a/plugins/tracker-resources/src/components/issues/Active.svelte +++ /dev/null @@ -1,38 +0,0 @@ - - - - diff --git a/plugins/tracker-resources/src/components/issues/Backlog.svelte b/plugins/tracker-resources/src/components/issues/Backlog.svelte deleted file mode 100644 index 975178933c..0000000000 --- a/plugins/tracker-resources/src/components/issues/Backlog.svelte +++ /dev/null @@ -1,35 +0,0 @@ - - - - diff --git a/plugins/tracker-resources/src/components/issues/Issues.svelte b/plugins/tracker-resources/src/components/issues/Issues.svelte index 8b184576af..ad3d43d8a6 100644 --- a/plugins/tracker-resources/src/components/issues/Issues.svelte +++ b/plugins/tracker-resources/src/components/issues/Issues.svelte @@ -13,14 +13,62 @@ // limitations under the License. --> - + diff --git a/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte b/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte index dd0aad5565..21b5f46b23 100644 --- a/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte +++ b/plugins/tracker-resources/src/components/issues/IssuesHeader.svelte @@ -2,10 +2,11 @@ import { Ref, Space } from '@hcengineering/core' import { TabList, SearchEdit } from '@hcengineering/ui' import { Viewlet } from '@hcengineering/view' - import { FilterButton, setActiveViewletId } from '@hcengineering/view-resources' + import { focusStore, FilterButton, setActiveViewletId } from '@hcengineering/view-resources' import tracker from '../../plugin' import { WithLookup } from '@hcengineering/core' - // import { deviceOptionsStore as deviceInfo } from '@hcengineering/ui' + import ModeSelector from '../ModeSelector.svelte' + import { IModeSelector } from '../../utils' export let space: Ref | undefined = undefined export let viewlet: WithLookup | undefined @@ -13,6 +14,7 @@ export let label: string export let search: string export let showLabelSelector = false + export let modeSelectorProps: IModeSelector | undefined = undefined $: viewslist = viewlets.map((views) => { return { @@ -21,16 +23,25 @@ tooltip: views.$lookup?.descriptor?.label } }) - - // $: twoRows = $deviceInfo.twoRows + $: count = $focusStore.provider?.docs().length + $: headerTitle = count === undefined ? label : `${label} (${count})` -
+
{#if showLabelSelector} {:else} - {label} + {#if label} + {headerTitle} + {/if} + {#if modeSelectorProps !== undefined} + + {/if} {/if}
@@ -65,3 +76,13 @@
+ + diff --git a/plugins/tracker-resources/src/components/issues/IssuesView.svelte b/plugins/tracker-resources/src/components/issues/IssuesView.svelte index 66d81b0124..44301c1980 100644 --- a/plugins/tracker-resources/src/components/issues/IssuesView.svelte +++ b/plugins/tracker-resources/src/components/issues/IssuesView.svelte @@ -18,13 +18,14 @@ import tracker from '../../plugin' import IssuesContent from './IssuesContent.svelte' import IssuesHeader from './IssuesHeader.svelte' + import { IModeSelector } from '../../utils' export let space: Ref | undefined = undefined export let query: DocumentQuery = {} export let title: IntlString | undefined = undefined export let label: string = '' - export let panelWidth: number = 0 + export let modeSelectorProps: IModeSelector | undefined = undefined let viewlet: WithLookup | undefined = undefined let search = '' @@ -81,7 +82,15 @@ $: viewOptions = getViewOptions(viewlet, $viewOptionStore) - + diff --git a/plugins/tracker-resources/src/components/myissues/MyIssues.svelte b/plugins/tracker-resources/src/components/myissues/MyIssues.svelte index 5f62778ae8..01aeb0ce98 100644 --- a/plugins/tracker-resources/src/components/myissues/MyIssues.svelte +++ b/plugins/tracker-resources/src/components/myissues/MyIssues.svelte @@ -21,11 +21,11 @@ import tracker from '../../plugin' import IssuesView from '../issues/IssuesView.svelte' - import ModeSelector from '../ModeSelector.svelte' + import { IModeSelector } from '../../utils' const config: [string, IntlString, object][] = [ ['assigned', tracker.string.Assigned, {}], - ['created', tracker.string.Created, { value: 0 }], + ['created', tracker.string.Created, {}], ['subscribed', tracker.string.Subscribed, {}] ] const currentUser = getCurrentAccount() as EmployeeAccount @@ -57,10 +57,11 @@ return { ...queries[mode], '$lookup.space.archived': false } } $: query = getQuery(mode, { assigned, created, subscribed }) + $: modeSelectorProps = { + config, + mode, + onChange: handleChangeMode + } as IModeSelector - - - - - + diff --git a/plugins/tracker-resources/src/index.ts b/plugins/tracker-resources/src/index.ts index ca94a65526..c98f141605 100644 --- a/plugins/tracker-resources/src/index.ts +++ b/plugins/tracker-resources/src/index.ts @@ -41,9 +41,7 @@ import ProjectComponents from './components/components/ProjectComponents.svelte' import TargetDatePresenter from './components/components/TargetDatePresenter.svelte' import CreateIssue from './components/CreateIssue.svelte' import Inbox from './components/inbox/Inbox.svelte' -import Active from './components/issues/Active.svelte' import AssigneePresenter from './components/issues/AssigneePresenter.svelte' -import Backlog from './components/issues/Backlog.svelte' import DueDatePresenter from './components/issues/DueDatePresenter.svelte' import EditIssue from './components/issues/edit/EditIssue.svelte' import IssueItem from './components/issues/IssueItem.svelte' @@ -385,8 +383,6 @@ export default async (): Promise => ({ component: { NopeComponent, Issues, - Active, - Backlog, Inbox, MyIssues, Components, diff --git a/plugins/tracker-resources/src/plugin.ts b/plugins/tracker-resources/src/plugin.ts index 41208adb1b..44c9edf5fc 100644 --- a/plugins/tracker-resources/src/plugin.ts +++ b/plugins/tracker-resources/src/plugin.ts @@ -324,8 +324,6 @@ export default mergeIds(trackerId, tracker, { MyIssues: '' as AnyComponent, Views: '' as AnyComponent, Issues: '' as AnyComponent, - Active: '' as AnyComponent, - Backlog: '' as AnyComponent, Components: '' as AnyComponent, ComponentsTimeline: '' as AnyComponent, IssuePresenter: '' as AnyComponent, diff --git a/plugins/tracker-resources/src/utils.ts b/plugins/tracker-resources/src/utils.ts index 87a0767594..559339571d 100644 --- a/plugins/tracker-resources/src/utils.ts +++ b/plugins/tracker-resources/src/utils.ts @@ -671,3 +671,12 @@ export function issueToAttachedData (issue: Issue): AttachedData { const { _id, _class, space, ...data } = issue return { ...data } } + +/** + * @public + */ +export interface IModeSelector { + mode: string + config: Array<[string, IntlString, object]> + onChange: (_mode: string) => void +}