From 69e683e0603eca33734ed1da18edde0dd0f0c780 Mon Sep 17 00:00:00 2001 From: Vyacheslav Tumanov Date: Mon, 20 May 2024 21:16:57 +0500 Subject: [PATCH] Archive filter fix (#5626) Signed-off-by: Vyacheslav Tumanov --- .../recruit-resources/src/components/Vacancies.svelte | 2 +- .../src/components/filter/FilterButton.svelte | 6 ++++-- .../src/components/filter/FilterTypePopup.svelte | 9 ++++++--- .../src/components/filter/ValueFilter.svelte | 11 +++++++++-- 4 files changed, 20 insertions(+), 8 deletions(-) diff --git a/plugins/recruit-resources/src/components/Vacancies.svelte b/plugins/recruit-resources/src/components/Vacancies.svelte index aba27af684..47f11d06da 100644 --- a/plugins/recruit-resources/src/components/Vacancies.svelte +++ b/plugins/recruit-resources/src/components/Vacancies.svelte @@ -169,7 +169,7 @@ (search = e.detail)} />
- +
diff --git a/plugins/view-resources/src/components/filter/FilterButton.svelte b/plugins/view-resources/src/components/filter/FilterButton.svelte index 7b3c2ff847..cccbe31850 100644 --- a/plugins/view-resources/src/components/filter/FilterButton.svelte +++ b/plugins/view-resources/src/components/filter/FilterButton.svelte @@ -16,7 +16,7 @@ import { Class, Doc, Ref, Space } from '@hcengineering/core' import { getClient } from '@hcengineering/presentation' import { Button, IconFilter, eventToHTMLElement, resolvedLocationStore, showPopup } from '@hcengineering/ui' - import { Filter } from '@hcengineering/view' + import { Filter, ViewOptions } from '@hcengineering/view' import { filterStore, getFilterKey, selectedFilterStore, setFilters } from '../../filter' import view from '../../plugin' import FilterTypePopup from './FilterTypePopup.svelte' @@ -25,6 +25,7 @@ export let _class: Ref> | undefined export let space: Ref | undefined = undefined + export let viewOptions: ViewOptions | undefined = undefined const client = getClient() const hierarchy = client.getHierarchy() @@ -69,7 +70,8 @@ space, target, index: 1, - onChange + onChange, + viewOptions }, target ) diff --git a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte index 5a898223dc..c561a9472f 100644 --- a/plugins/view-resources/src/components/filter/FilterTypePopup.svelte +++ b/plugins/view-resources/src/components/filter/FilterTypePopup.svelte @@ -16,7 +16,7 @@ import core, { AnyAttribute, ArrOf, Class, Doc, Ref, RefTo, Space, Type } from '@hcengineering/core' import { getClient } from '@hcengineering/presentation' import { Label, Scroller, Submenu, closePopup, closeTooltip, resizeObserver, showPopup } from '@hcengineering/ui' - import { ClassFilters, Filter, KeyFilter, KeyFilterPreset } from '@hcengineering/view' + import { ClassFilters, Filter, KeyFilter, KeyFilterPreset, ViewOptions } from '@hcengineering/view' import { getResource } from '@hcengineering/platform' import { createEventDispatcher } from 'svelte' import { FilterQuery, buildFilterKey } from '../../filter' @@ -29,6 +29,7 @@ export let index: number export let onChange: (e: Filter) => void export let nestedFrom: KeyFilter | undefined = undefined + export let viewOptions: ViewOptions | undefined = undefined const client = getClient() const hierarchy = client.getHierarchy() @@ -212,7 +213,8 @@ value: [], index }, - onChange: change + onChange: change, + viewOptions }, target ) @@ -227,7 +229,8 @@ value: [], index }, - onChange + onChange, + viewOptions }, target ) diff --git a/plugins/view-resources/src/components/filter/ValueFilter.svelte b/plugins/view-resources/src/components/filter/ValueFilter.svelte index cb90aba8aa..8a1630e084 100644 --- a/plugins/view-resources/src/components/filter/ValueFilter.svelte +++ b/plugins/view-resources/src/components/filter/ValueFilter.svelte @@ -25,7 +25,7 @@ Loading, resizeObserver } from '@hcengineering/ui' - import { Filter } from '@hcengineering/view' + import { Filter, ViewOptions } from '@hcengineering/view' import { createEventDispatcher } from 'svelte' import { FILTER_DEBOUNCE_MS, sortFilterValues } from '../../filter' import view from '../../plugin' @@ -35,6 +35,7 @@ export let space: Ref | undefined = undefined export let filter: Filter export let onChange: (e: Filter) => void + export let viewOptions: ViewOptions | undefined = undefined filter.modes = [view.filter.FilterValueIn, view.filter.FilterValueNin] filter.mode = filter.mode === undefined ? filter.modes[0] : filter.mode @@ -96,7 +97,13 @@ _class, { ...resultQuery, - ...(space ? { space } : isDerivedFromSpace ? { archived: false } : { space: { $in: spaces } }), + ...(space + ? { space } + : isDerivedFromSpace + ? viewOptions === undefined || viewOptions?.hideArchived === true + ? { archived: false } + : {} + : { space: { $in: spaces } }), ...(first1000 ? { [filter.key.key]: { $nin: first1000 } } : {}) }, {