X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/5e9c2244747eff9fc02ff3c0d140bdde5e0b6845..0534b585de71147120e880fe670ebd0e61dcf68f:/src/store/search-bar/search-bar-actions.ts diff --git a/src/store/search-bar/search-bar-actions.ts b/src/store/search-bar/search-bar-actions.ts index 8b03ddd7..af40e86a 100644 --- a/src/store/search-bar/search-bar-actions.ts +++ b/src/store/search-bar/search-bar-actions.ts @@ -89,6 +89,9 @@ export const searchAdvancedData = (data: SearchBarAdvancedFormData) => export const setSearchValueFromAdvancedData = (data: SearchBarAdvancedFormData, prevData?: SearchBarAdvancedFormData) => (dispatch: Dispatch, getState: () => RootState) => { + if (data.projectObject) { + data.projectUuid = data.projectObject.uuid; + } const searchValue = getState().searchBar.searchValue; const value = getQueryFromAdvancedData({ ...data, @@ -98,8 +101,11 @@ export const setSearchValueFromAdvancedData = (data: SearchBarAdvancedFormData, }; export const setAdvancedDataFromSearchValue = (search: string, vocabulary: Vocabulary) => - async (dispatch: Dispatch) => { + async (dispatch: Dispatch, getState: () => RootState, services: ServiceRepository) => { const data = getAdvancedDataFromQuery(search, vocabulary); + if (data.projectUuid) { + data.projectObject = await services.projectService.get(data.projectUuid); + } dispatch(initialize(SEARCH_BAR_ADVANCED_FORM_NAME, data)); if (data.projectUuid) { await dispatch(activateSearchBarProject(data.projectUuid)); @@ -227,11 +233,11 @@ const searchGroups = (searchValue: string, limit: number, useCancel = false) => recursive: true }, session, cancelTokens[index].token); })); - + cancelTokens = []; - + const items = lists.reduce((items, list) => items.concat(list.items), [] as GroupContentsResource[]); - + if (lists.filter(list => !!(list as any).items).length !== lists.length) { dispatch(searchBarActions.SET_SEARCH_RESULTS([])); } else { @@ -290,7 +296,7 @@ export const getQueryFromAdvancedData = (data: SearchBarAdvancedFormData, prevDa }; (data.properties || []).forEach(p => fo[`prop-"${p.keyID || p.key}":"${p.valueID || p.value}"`] = `"${p.valueID || p.value}"` - ); + ); return fo; }; @@ -308,9 +314,9 @@ export const getQueryFromAdvancedData = (data: SearchBarAdvancedFormData, prevDa [`has:"${p.keyID || p.key}"`, `prop-"${p.keyID || p.key}":"${p.valueID || p.value}"`] )); - const modified = getModifiedKeysValues(flatData(data), prevData ? flatData(prevData):{}); + const modified = getModifiedKeysValues(flatData(data), prevData ? flatData(prevData) : {}); value = buildQueryFromKeyMap( - {searchValue: data.searchValue, ...modified} as SearchBarAdvancedFormData, keyMap); + { searchValue: data.searchValue, ...modified } as SearchBarAdvancedFormData, keyMap); value = value.trim(); return value;