Skip to content

Commit 3f2bff6

Browse files
Merge branch '2026.1' into 2026.x
2 parents 13d41cc + 474cbee commit 3f2bff6

760 files changed

Lines changed: 3376 additions & 189 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

assets/js/src/core/modules/search/saved-search/restore/use-apply-saved-search.ts

Lines changed: 15 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,8 @@
1111
import { isArray, isEmpty, isNil, isNumber, isString } from 'lodash'
1212
import { useData } from '@Pimcore/modules/element/listing/abstract/data-layer/provider/data/use-data'
1313
import { usePaging } from '@Pimcore/modules/element/listing/decorators/paging/context-layer/paging/provider/use-paging'
14-
import { useSearchTermFilter } from '@Pimcore/modules/element/listing/decorators/general-filters/context-layer/provider/search-term-filter/use-search-term-filter'
15-
import { useFieldFilters } from '@Pimcore/modules/element/listing/decorators/general-filters/context-layer/provider/field-filters/use-field-filters'
14+
import { useAppliedFilters } from '@Pimcore/modules/element/listing/decorators/general-filters/element-filters'
1615
import { type FieldFilter } from '@Pimcore/modules/element/listing/decorators/general-filters/context-layer/provider/field-filters/field-filters-provider'
17-
import { usePqlFilter } from '@Pimcore/modules/element/listing/decorators/general-filters/context-layer/provider/pql-filter/use-pql-filter'
18-
import { useUnreferencedFilter } from '@Pimcore/modules/element/listing/decorators/general-filters/context-layer/provider/unreferenced-filter/use-unreferenced-filter'
19-
import { useDirectChildrenFilter } from '@Pimcore/modules/element/listing/decorators/general-filters/context-layer/provider/direct-children-filter/use-direct-children-filter'
2016
import { useSelectedColumns } from '@Pimcore/modules/element/listing/abstract/configuration-layer/provider/selected-columns/use-selected-columns'
2117
import { type SelectedColumn } from '@Pimcore/modules/element/listing/abstract/configuration-layer/provider/selected-columns/selected-columns-provider'
2218
import { useAvailableColumns } from '@Pimcore/modules/element/listing/decorators/utils/column-configuration/context-layer/provider/available-columns/use-available-columns'
@@ -81,11 +77,7 @@ const buildSelectedColumns = (savedColumns: SavedColumn[], availableColumns: Ava
8177
* notes.)
8278
*/
8379
export const useApplySavedSearch = (): ((configuration: SavedSearchDetailedConfiguration) => void) => {
84-
const { setSearchTerm } = useSearchTermFilter()
85-
const { setFieldFilters } = useFieldFilters()
86-
const { setPqlQuery } = usePqlFilter()
87-
const { setOnlyUnreferenced } = useUnreferencedFilter()
88-
const { setOnlyDirectChildren } = useDirectChildrenFilter()
80+
const { setValues: setAppliedFilters } = useAppliedFilters()
8981
const { setPage, setPageSize } = usePaging()
9082
const { setSelectedColumns } = useSelectedColumns()
9183
const { availableColumns } = useAvailableColumns()
@@ -94,18 +86,16 @@ export const useApplySavedSearch = (): ((configuration: SavedSearchDetailedConfi
9486

9587
return (configuration: SavedSearchDetailedConfiguration): void => {
9688
const filter = getFilter(configuration)
89+
const entries = (isArray(filter?.columnFilters) ? filter.columnFilters : []) as ColumnFilterEntry[]
9790

9891
// Search term — the `system.fulltext` column filter.
99-
const columnFilters = (filter?.columnFilters ?? []) as ColumnFilterEntry[]
100-
const searchTermEntry = isArray(columnFilters)
101-
? columnFilters.find((entry) => entry.type === SEARCH_TERM_FILTER_TYPE)
102-
: undefined
103-
setSearchTerm(isString(searchTermEntry?.filterValue) ? searchTermEntry.filterValue : '')
92+
const searchTermEntry = entries.find((entry) => entry.type === SEARCH_TERM_FILTER_TYPE)
93+
const searchTerm = isString(searchTermEntry?.filterValue) ? searchTermEntry.filterValue : ''
10494

10595
// Field filters — every non-system column filter. The saved entries keep `meta`, so they can be
106-
// re-hydrated into the field-filters provider (which re-keys them to columns by `key`). Always
107-
// set (empty when none) so opening a search replaces any filters from a previous one.
108-
const fieldFilters: FieldFilter[] = (isArray(columnFilters) ? columnFilters : [])
96+
// re-hydrated into the field-filters state (which re-keys them to columns by `key`). Always set
97+
// (empty when none) so opening a search replaces any filters from a previous one.
98+
const fieldFilters: FieldFilter[] = entries
10999
.filter((entry) => isString(entry.type) && !SYSTEM_FILTER_TYPES.has(entry.type))
110100
.map((entry) => ({
111101
key: entry.key ?? '',
@@ -114,15 +104,17 @@ export const useApplySavedSearch = (): ((configuration: SavedSearchDetailedConfi
114104
locale: entry.locale,
115105
meta: { translationKey: entry.meta?.translationKey ?? '', ...entry.meta }
116106
}))
117-
setFieldFilters(fieldFilters)
118107

119108
// System filters with their own sidebar controls.
120-
const entries = isArray(columnFilters) ? columnFilters : []
121109
const pqlEntry = entries.find((entry) => entry.type === 'system.pql')
122-
setPqlQuery(isString(pqlEntry?.filterValue) ? pqlEntry.filterValue : '')
123-
setOnlyUnreferenced(entries.find((entry) => entry.type === 'system.unreferenced')?.filterValue === true)
110+
const pql = isString(pqlEntry?.filterValue) ? pqlEntry.filterValue : ''
111+
const unreferenced = entries.find((entry) => entry.type === 'system.unreferenced')?.filterValue === true
124112
// The query sends `includeDescendants` (the inverse of the "only direct children" toggle).
125-
setOnlyDirectChildren(filter?.includeDescendants === false)
113+
const directChildren = filter?.includeDescendants === false
114+
115+
// Apply every general filter in one write to the applied-filters store. Always set each key (even
116+
// when empty/false) so opening a search replaces the state left over from a previous one.
117+
setAppliedFilters({ searchTerm, fieldFilters, pql, unreferenced, directChildren })
126118

127119
// Tags — the `system.tag` column filter, applied via its own provider rather than as a field
128120
// filter. Always set (empty when none) so opening a search clears tags left over from a previous one.

composer.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,8 @@
1818
"minimum-stability": "dev",
1919
"require": {
2020
"php": "~8.4.0 || ~8.5.0",
21-
"pimcore/pimcore": "^2026.1",
22-
"pimcore/studio-backend-bundle": "^2026.1.5"
21+
"pimcore/pimcore": "^2026.1.6",
22+
"pimcore/studio-backend-bundle": "^2026.1.6"
2323
},
2424
"require-dev": {
2525
"codeception/codeception": "^5.3.5",

public/build/02a8c1c5-8a5f-4e56-a217-ca6a13b29962/entrypoints.json

Lines changed: 25 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/build/02a8c1c5-8a5f-4e56-a217-ca6a13b29962/exposeRemote.js

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)