feat: optionally exclude collection documents from appearing in browse-by-folder (#12654)
Adds configurations for browse-by-folder document results. This PR **does NOT** allow for filtering out folders on a per collection basis. That will be addressed in a future PR 👍 ### Disable browse-by-folder all together ```ts type RootFoldersConfiguration = { /** * If true, the browse by folder view will be enabled * * @default true */ browseByFolder?: boolean // ...rest of type } ``` ### Remove document types from appearing in the browse by folder view ```ts type CollectionFoldersConfiguration = | boolean | { /** * If true, the collection documents will be included in the browse by folder view * * @default true */ browseByFolder?: boolean } ``` ### Misc Fixes https://github.com/payloadcms/payload/issues/12631 where adding folders.collectionOverrides was being set on the client config - it should be omitted. Fixes an issue where `baseListFilters` were not being respected.
This commit is contained in:
@@ -71,6 +71,7 @@ export interface Config {
|
||||
media: Media;
|
||||
drafts: Draft;
|
||||
autosave: Autosave;
|
||||
'omitted-from-browse-by': OmittedFromBrowseBy;
|
||||
users: User;
|
||||
'payload-folders': FolderInterface;
|
||||
'payload-locked-documents': PayloadLockedDocument;
|
||||
@@ -79,7 +80,7 @@ export interface Config {
|
||||
};
|
||||
collectionsJoins: {
|
||||
'payload-folders': {
|
||||
documentsAndFolders: 'payload-folders' | 'posts' | 'media' | 'drafts' | 'autosave';
|
||||
documentsAndFolders: 'payload-folders' | 'posts' | 'media' | 'drafts' | 'autosave' | 'omitted-from-browse-by';
|
||||
};
|
||||
};
|
||||
collectionsSelect: {
|
||||
@@ -87,6 +88,7 @@ export interface Config {
|
||||
media: MediaSelect<false> | MediaSelect<true>;
|
||||
drafts: DraftsSelect<false> | DraftsSelect<true>;
|
||||
autosave: AutosaveSelect<false> | AutosaveSelect<true>;
|
||||
'omitted-from-browse-by': OmittedFromBrowseBySelect<false> | OmittedFromBrowseBySelect<true>;
|
||||
users: UsersSelect<false> | UsersSelect<true>;
|
||||
'payload-folders': PayloadFoldersSelect<false> | PayloadFoldersSelect<true>;
|
||||
'payload-locked-documents': PayloadLockedDocumentsSelect<false> | PayloadLockedDocumentsSelect<true>;
|
||||
@@ -191,6 +193,10 @@ export interface FolderInterface {
|
||||
relationTo?: 'autosave';
|
||||
value: string | Autosave;
|
||||
}
|
||||
| {
|
||||
relationTo?: 'omitted-from-browse-by';
|
||||
value: string | OmittedFromBrowseBy;
|
||||
}
|
||||
)[];
|
||||
hasNextPage?: boolean;
|
||||
totalDocs?: number;
|
||||
@@ -222,6 +228,17 @@ export interface Autosave {
|
||||
createdAt: string;
|
||||
_status?: ('draft' | 'published') | null;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "omitted-from-browse-by".
|
||||
*/
|
||||
export interface OmittedFromBrowseBy {
|
||||
id: string;
|
||||
title?: string | null;
|
||||
folder?: (string | null) | FolderInterface;
|
||||
updatedAt: string;
|
||||
createdAt: string;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "users".
|
||||
@@ -262,6 +279,10 @@ export interface PayloadLockedDocument {
|
||||
relationTo: 'autosave';
|
||||
value: string | Autosave;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'omitted-from-browse-by';
|
||||
value: string | OmittedFromBrowseBy;
|
||||
} | null)
|
||||
| ({
|
||||
relationTo: 'users';
|
||||
value: string | User;
|
||||
@@ -364,6 +385,16 @@ export interface AutosaveSelect<T extends boolean = true> {
|
||||
createdAt?: T;
|
||||
_status?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "omitted-from-browse-by_select".
|
||||
*/
|
||||
export interface OmittedFromBrowseBySelect<T extends boolean = true> {
|
||||
title?: T;
|
||||
folder?: T;
|
||||
updatedAt?: T;
|
||||
createdAt?: T;
|
||||
}
|
||||
/**
|
||||
* This interface was referenced by `Config`'s JSON-Schema
|
||||
* via the `definition` "users_select".
|
||||
|
||||
Reference in New Issue
Block a user