@@ -110,6 +110,9 @@ export const renderListView = async (
110110 } ,
111111 visibleEntities,
112112 } = initPageResult
113+ const {
114+ routes : { admin : adminRoute } ,
115+ } = config
113116
114117 if (
115118 ! collectionConfig ||
@@ -140,7 +143,44 @@ export const renderListView = async (
140143 } ,
141144 } )
142145
143- query . preset = collectionPreferences ?. preset
146+ let queryPreset : QueryPreset | undefined
147+ let queryPresetPermissions : SanitizedCollectionPermission | undefined
148+
149+ if ( collectionPreferences ?. preset ) {
150+ try {
151+ queryPreset = ( await payload . findByID ( {
152+ id : collectionPreferences ?. preset ,
153+ collection : 'payload-query-presets' ,
154+ depth : 0 ,
155+ overrideAccess : false ,
156+ user,
157+ } ) ) as QueryPreset
158+
159+ if ( queryPreset ) {
160+ queryPresetPermissions = (
161+ await getDocumentPermissions ( {
162+ id : queryPreset . id ,
163+ collectionConfig : req . payload . collections [ 'payload-query-presets' ] . config ,
164+ data : queryPreset ,
165+ req,
166+ } )
167+ ) ?. docPermissions
168+ }
169+ } catch ( err ) {
170+ req . payload . logger . error ( `Error fetching query preset or preset permissions: ${ err } ` )
171+ }
172+ }
173+
174+ query . preset = queryPreset ?. id
175+ if ( queryPreset ?. where && ! query . where ) {
176+ query . where = queryPreset . where
177+ }
178+ query . groupBy = query . groupBy ?? queryPreset ?. groupBy ?? collectionPreferences ?. groupBy
179+
180+ const columnPreference = query . columns
181+ ? transformColumnsToPreferences ( query . columns )
182+ : ( queryPreset ?. columns ?? collectionPreferences ?. columns )
183+ query . columns = transformColumnsToSearchParams ( columnPreference )
144184
145185 query . page = isNumber ( query ?. page ) ? Number ( query . page ) : 0
146186
@@ -150,14 +190,6 @@ export const renderListView = async (
150190 collectionPreferences ?. sort ||
151191 ( typeof collectionConfig . defaultSort === 'string' ? collectionConfig . defaultSort : undefined )
152192
153- query . groupBy = collectionPreferences ?. groupBy
154-
155- query . columns = transformColumnsToSearchParams ( collectionPreferences ?. columns || [ ] )
156-
157- const {
158- routes : { admin : adminRoute } ,
159- } = config
160-
161193 const baseFilterConstraint = await (
162194 collectionConfig . admin ?. baseFilter ?? collectionConfig . admin ?. baseListFilter
163195 ) ?.( {
@@ -167,9 +199,6 @@ export const renderListView = async (
167199 sort : query . sort ,
168200 } )
169201
170- let queryPreset : QueryPreset | undefined
171- let queryPresetPermissions : SanitizedCollectionPermission | undefined
172-
173202 let whereWithMergedSearch = mergeListSearchAndWhere ( {
174203 collectionConfig,
175204 search : typeof query ?. search === 'string' ? query . search : undefined ,
@@ -189,29 +218,6 @@ export const renderListView = async (
189218 }
190219 }
191220
192- if ( collectionPreferences ?. preset ) {
193- try {
194- queryPreset = ( await payload . findByID ( {
195- id : collectionPreferences ?. preset ,
196- collection : 'payload-query-presets' ,
197- depth : 0 ,
198- overrideAccess : false ,
199- user,
200- } ) ) as QueryPreset
201-
202- if ( queryPreset ) {
203- queryPresetPermissions = await getDocumentPermissions ( {
204- id : queryPreset . id ,
205- collectionConfig : config . collections . find ( ( c ) => c . slug === 'payload-query-presets' ) ,
206- data : queryPreset ,
207- req,
208- } ) ?. then ( ( { docPermissions } ) => docPermissions )
209- }
210- } catch ( err ) {
211- req . payload . logger . error ( `Error fetching query preset or preset permissions: ${ err } ` )
212- }
213- }
214-
215221 let Table : React . ReactNode | React . ReactNode [ ] = null
216222 let columnState : Column [ ] = [ ]
217223 let data : PaginatedDocs = {
@@ -234,7 +240,7 @@ export const renderListView = async (
234240 clientConfig,
235241 collectionConfig : clientCollectionConfig ,
236242 collectionSlug,
237- columns : collectionPreferences ?. columns ,
243+ columns : columnPreference ,
238244 i18n,
239245 permissions,
240246 } )
0 commit comments