From e01f28e8c80837b1c2ab7daf8896aee7afae424c Mon Sep 17 00:00:00 2001 From: Vitor Avila Date: Tue, 2 Jul 2024 15:32:49 -0300 Subject: [PATCH] chore: Support select_columns with getUserOwnedObjects and split getRecentActivityObjs --- superset-frontend/src/views/CRUD/utils.tsx | 55 ++++++++++++++-------- 1 file changed, 35 insertions(+), 20 deletions(-) diff --git a/superset-frontend/src/views/CRUD/utils.tsx b/superset-frontend/src/views/CRUD/utils.tsx index 22e312d9107ad..fdfa5b82f6b59 100644 --- a/superset-frontend/src/views/CRUD/utils.tsx +++ b/superset-frontend/src/views/CRUD/utils.tsx @@ -126,15 +126,17 @@ const createFetchResourceMethod = }; export const PAGE_SIZE = 5; -const getParams = (filters?: Filter[]) => { +const getParams = (filters?: Filter[], select_columns?: string[]) => { const params = { order_column: 'changed_on_delta_humanized', order_direction: 'desc', page: 0, page_size: PAGE_SIZE, filters, + select_columns, }; if (!filters) delete params.filters; + if (!select_columns) delete params.select_columns; return rison.encode(params); }; @@ -177,9 +179,10 @@ export const getUserOwnedObjects = ( value: `${userId}`, }, ], + select_columns?: string[], ) => SupersetClient.get({ - endpoint: `/api/v1/${resource}/?q=${getParams(filters)}`, + endpoint: `/api/v1/${resource}/?q=${getParams(filters, select_columns)}`, }).then(res => res.json?.result); export const getRecentActivityObjs = ( @@ -190,28 +193,40 @@ export const getRecentActivityObjs = ( ) => SupersetClient.get({ endpoint: recent }).then(recentsRes => { const res: any = {}; - const newBatch = [ - SupersetClient.get({ - endpoint: `/api/v1/chart/?q=${getParams(filters)}`, - }), - SupersetClient.get({ - endpoint: `/api/v1/dashboard/?q=${getParams(filters)}`, - }), - ]; - return Promise.all(newBatch) - .then(([chartRes, dashboardRes]) => { - res.other = [...chartRes.json.result, ...dashboardRes.json.result]; + return getFilteredChartsandDashboards(addDangerToast, filters).then( + ({ other }) => { + res.other = other; res.viewed = recentsRes.json.result; return res; - }) - .catch(errMsg => - addDangerToast( - t('There was an error fetching your recent activity:'), - errMsg, - ), - ); + }, + ); }); +export const getFilteredChartsandDashboards = ( + addDangerToast: (arg1: string, arg2: any) => any, + filters: Filter[], +) => { + const newBatch = [ + SupersetClient.get({ + endpoint: `/api/v1/chart/?q=${getParams(filters)}`, + }), + SupersetClient.get({ + endpoint: `/api/v1/dashboard/?q=${getParams(filters)}`, + }), + ]; + return Promise.all(newBatch) + .then(([chartRes, dashboardRes]) => ({ + other: [...chartRes.json.result, ...dashboardRes.json.result], + })) + .catch(errMsg => { + addDangerToast( + t('There was an error fetching the filtered charts and dashboards:'), + errMsg, + ); + return { other: [] }; + }); +}; + export const createFetchRelated = createFetchResourceMethod('related'); export const createFetchDistinct = createFetchResourceMethod('distinct');