From 9e0a69d8be15be327ef006c1321e01f600a56cb1 Mon Sep 17 00:00:00 2001 From: Vyacheslav Tumanov <me@slavatumanov.me> Date: Tue, 30 May 2023 15:13:07 +0500 Subject: [PATCH] allow adding columns to table in MyApplications (#3286) Signed-off-by: Vyacheslav Tumanov <me@slavatumanov.me> --- .../src/components/AssignedTasks.svelte | 51 ++++++++++++++----- 1 file changed, 39 insertions(+), 12 deletions(-) diff --git a/plugins/task-resources/src/components/AssignedTasks.svelte b/plugins/task-resources/src/components/AssignedTasks.svelte index 223561f7ca..9ce8337b46 100644 --- a/plugins/task-resources/src/components/AssignedTasks.svelte +++ b/plugins/task-resources/src/components/AssignedTasks.svelte @@ -18,7 +18,15 @@ import { createQuery, getClient } from '@hcengineering/presentation' import tags, { selectedTagElements, TagCategory, TagElement } from '@hcengineering/tags' import { DoneState, Task } from '@hcengineering/task' - import { Component, IModeSelector, Label, resolvedLocationStore, SearchEdit, ModeSelector } from '@hcengineering/ui' + import { + Component, + IModeSelector, + Label, + resolvedLocationStore, + SearchEdit, + ModeSelector, + Loading + } from '@hcengineering/ui' import { activeViewlet, FilterButton, @@ -31,7 +39,7 @@ import task from '../plugin' import { IntlString } from '@hcengineering/platform' import ViewletSettingButton from '@hcengineering/view-resources/src/components/ViewletSettingButton.svelte' - import view, { Viewlet } from '@hcengineering/view' + import view, { Viewlet, ViewletPreference } from '@hcengineering/view' import { onDestroy } from 'svelte' import FilterBar from '@hcengineering/view-resources/src/components/filter/FilterBar.svelte' @@ -58,6 +66,8 @@ const client = getClient() let category: Ref<TagCategory> | undefined = undefined + let loading = true + let preference: ViewletPreference | undefined let documentIds: Ref<Task>[] = [] function updateResultQuery (search: string, documentIds: Ref<Task>[], doneStates: DoneState[]): void { @@ -129,10 +139,20 @@ $: viewlet = viewlets && updateActiveViewlet(viewlets, active) $: active = $activeViewlet[key] const viewletQuery = createQuery() - viewletQuery.query(view.class.Viewlet, { attachTo: _class }, (res) => (viewlets = res), { - lookup: { - descriptor: view.class.ViewletDescriptor - } + const preferenceQuery = createQuery() + viewletQuery.query(view.class.Viewlet, { attachTo: _class, descriptor: task.viewlet.StatusTable }, (res) => { + viewlets = res + preferenceQuery.query( + view.class.ViewletPreference, + { + attachedTo: res[0]._id + }, + (pref) => { + preference = pref[0] + loading = false + }, + { limit: 1 } + ) }) $: viewOptions = getViewOptions(viewlet, $viewOptionStore) @@ -174,9 +194,16 @@ <Component is={tags.component.TagsCategoryBar} props={{ targetClass: _class, category }} on:change={handleChange} /> -<TableBrowser - {_class} - config={['', 'attachedTo', 'assignee', 'state', 'doneState', 'attachments', 'comments', 'modifiedOn']} - query={resultQuery} - showNotification -/> +{#if viewlet} + {#if loading} + <Loading /> + {:else} + <TableBrowser + {_class} + config={preference?.config ?? viewlet.config} + options={viewlet.options} + query={resultQuery} + showNotification + /> + {/if} +{/if}