diff --git a/packages/strapi-helper-plugin/lib/src/utils/generateSearchFromFilters.js b/packages/strapi-helper-plugin/lib/src/utils/generateSearchFromFilters.js index e90d0ddf18..df6937b268 100644 --- a/packages/strapi-helper-plugin/lib/src/utils/generateSearchFromFilters.js +++ b/packages/strapi-helper-plugin/lib/src/utils/generateSearchFromFilters.js @@ -1,16 +1,15 @@ import { isEmpty, toString } from 'lodash'; -const generateSearchFromFilters = filters => { +const generateSearchFromFilters = (filters, paramsToFilter = []) => { return Object.keys(filters) - .filter(key => !isEmpty(toString(filters[key]))) + .filter(key => !paramsToFilter.includes(key) && !isEmpty(toString(filters[key]))) .map(key => { let ret = `${key}=${filters[key]}`; if (key === 'filters') { const formattedFilters = filters[key] .reduce((acc, curr) => { - const key = - curr.filter === '=' ? curr.name : `${curr.name}${curr.filter}`; + const key = curr.filter === '=' ? curr.name : `${curr.name}${curr.filter}`; acc.push(`${key}=${curr.value}`); return acc; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js index 8dda52589a..e4a8e7d2a1 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/index.js @@ -123,10 +123,11 @@ const HomePage = () => { }; const fetchDataCount = async () => { + const params = generateStringFromParams(query, ['_limit', '_sort', '_start']); const requestURL = getRequestUrl('files/count'); try { - const { count } = await request(requestURL, { + const { count } = await request(`${requestURL}?${params}`, { method: 'GET', }); diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/generateStringFromParams.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/generateStringFromParams.js index f6069cdf44..b67f9e999c 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/generateStringFromParams.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/generateStringFromParams.js @@ -1,12 +1,14 @@ import { isEmpty, toString } from 'lodash'; import generateParamsFromQuery from './generateParamsFromQuery'; -const generateStringFromParams = query => { +const generateStringFromParams = (query, paramsToFilter = []) => { let paramsString = ''; const paramsObject = generateParamsFromQuery(query); Object.keys(paramsObject) - .filter(key => !isEmpty(toString(paramsObject[key]))) + .filter(key => { + return !paramsToFilter.includes(key) && !isEmpty(toString(paramsObject[key])); + }) .forEach(key => { const value = paramsObject[key]; diff --git a/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/generateStringFromParams.test.js b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/generateStringFromParams.test.js index 9d2b5f827d..577475d65f 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/generateStringFromParams.test.js +++ b/packages/strapi-plugin-upload/admin/src/containers/HomePage/utils/tests/generateStringFromParams.test.js @@ -41,5 +41,25 @@ describe('MEDIA LIBRARY | containers | HomePage | utils', () => { expect(generateStringFromParams(query)).toEqual(expected); }); }); + + describe('it should filter the defined params', () => { + it('should return _ncontains instead of _contains', () => { + const search = '?mime_ncontains=file&test=true'; + const query = new URLSearchParams(search); + + const expected = '_limit=10&_start=0&mime_contains=image&mime_contains=video&test=true'; + + expect(generateStringFromParams(query, [])).toEqual(expected); + }); + + it('should not return the _limit param', () => { + const search = '?mime_ncontains=file'; + const query = new URLSearchParams(search); + + const expected = '_start=0&mime_contains=image&mime_contains=video'; + + expect(generateStringFromParams(query, ['_limit'])).toEqual(expected); + }); + }); }); }); diff --git a/packages/strapi-plugin-upload/admin/src/containers/InputModalStepperProvider/index.js b/packages/strapi-plugin-upload/admin/src/containers/InputModalStepperProvider/index.js index 3dc82c206c..e2555dd1be 100644 --- a/packages/strapi-plugin-upload/admin/src/containers/InputModalStepperProvider/index.js +++ b/packages/strapi-plugin-upload/admin/src/containers/InputModalStepperProvider/index.js @@ -293,9 +293,11 @@ const InputModalStepperProvider = ({ const fetchMediaLibFilesCount = async () => { const requestURL = getRequestUrl('files/count'); + const compactedParams = compactParams(params); + const paramsToSend = generateSearchFromFilters(compactedParams, ['_limit', '_sort', '_start']); try { - return await request(`${requestURL}`, { + return await request(`${requestURL}?${paramsToSend}`, { method: 'GET', }); } catch (err) { @@ -317,7 +319,6 @@ const InputModalStepperProvider = ({ const fetchMediaLibFiles = async () => { const requestURL = getRequestUrl('files'); - const compactedParams = compactParams(params); const paramsToSend = generateSearchFromFilters(compactedParams);