Files
payloadcms/test/admin/slugs.ts
Patrik 7e98fbf78e fix(ui): cannot filter by virtual relationship fields in WhereBuilder (#13686)
### What?
- Fixed an issue where virtual relationship fields (`virtual: string`,
e.g. `post.title`) could not be used in the WhereBuilder filter
dropdown.
- Ensured regular virtual fields (`virtual: true`) are still excluded
since they are not backed by database fields.

### Why?
Previously, attempting to filter by a virtual relationship caused
runtime errors because the field was treated as a plain text field. At
the same time, non-queryable virtuals needed to remain excluded to avoid
invalid queries.

### How?
- Updated `reduceFieldsToOptions` to recognize `virtual: string` fields
and map them to their underlying path while keeping their declared type
and operators.
- Continued to filter out `virtual: true` fields in the same guard used
for hidden/disabled fields.
2025-09-04 08:17:10 -07:00

67 lines
2.4 KiB
TypeScript

export const usersCollectionSlug = 'users'
export const customViews1CollectionSlug = 'custom-views-one'
export const customViews2CollectionSlug = 'custom-views-two'
export const reorderTabsSlug = 'reorder-tabs'
export const geoCollectionSlug = 'geo'
export const arrayCollectionSlug = 'array'
export const postsCollectionSlug = 'posts'
export const group1Collection1Slug = 'group-one-collection-ones'
export const group1Collection2Slug = 'group-one-collection-twos'
export const group2Collection1Slug = 'group-two-collection-ones'
export const group2Collection2Slug = 'group-two-collection-twos'
export const useAsTitleGroupFieldSlug = 'use-as-title-group-field'
export const hiddenCollectionSlug = 'hidden-collection'
export const notInViewCollectionSlug = 'not-in-view-collection'
export const noApiViewCollectionSlug = 'collection-no-api-view'
export const disableDuplicateSlug = 'disable-duplicate'
export const disableCopyToLocale = 'disable-copy-to-locale'
export const uploadCollectionSlug = 'uploads'
export const placeholderCollectionSlug = 'placeholder'
export const uploadTwoCollectionSlug = 'uploads-two'
export const customFieldsSlug = 'custom-fields'
export const listDrawerSlug = 'with-list-drawer'
export const virtualsSlug = 'virtuals'
export const collectionSlugs = [
usersCollectionSlug,
customViews1CollectionSlug,
customViews2CollectionSlug,
geoCollectionSlug,
arrayCollectionSlug,
postsCollectionSlug,
group1Collection1Slug,
group1Collection2Slug,
group2Collection1Slug,
group2Collection2Slug,
hiddenCollectionSlug,
noApiViewCollectionSlug,
customFieldsSlug,
disableDuplicateSlug,
listDrawerSlug,
virtualsSlug,
]
export const customGlobalViews1GlobalSlug = 'custom-global-views-one'
export const customGlobalViews2GlobalSlug = 'custom-global-views-two'
export const globalSlug = 'global'
export const group1GlobalSlug = 'group-globals-one'
export const group2GlobalSlug = 'group-globals-two'
export const hiddenGlobalSlug = 'hidden-global'
export const notInViewGlobalSlug = 'not-in-view-global'
export const settingsGlobalSlug = 'settings'
export const noApiViewGlobalSlug = 'global-no-api-view'
export const globalSlugs = [
customGlobalViews1GlobalSlug,
customGlobalViews2GlobalSlug,
globalSlug,
group1GlobalSlug,
group2GlobalSlug,
hiddenGlobalSlug,
noApiViewGlobalSlug,
]
export const with300DocumentsSlug = 'with300documents'
export const editMenuItemsSlug = 'edit-menu-items'