X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/ba9a587ab628caea44d923b34d285a29e83e3456..4b961d16b8f8ef8afbd13697a79fe4684acd0416:/src/store/users/user-panel-middleware-service.ts diff --git a/src/store/users/user-panel-middleware-service.ts b/src/store/users/user-panel-middleware-service.ts index 590e160c..cffcce4d 100644 --- a/src/store/users/user-panel-middleware-service.ts +++ b/src/store/users/user-panel-middleware-service.ts @@ -12,7 +12,7 @@ import { updateResources } from '~/store/resources/resources-actions'; import { FilterBuilder } from '~/services/api/filter-builder'; import { SortDirection } from '~/components/data-table/data-column'; import { OrderDirection, OrderBuilder } from '~/services/api/order-builder'; -import { ListResults } from '~/services/common-service/common-resource-service'; +import { ListResults } from '~/services/common-service/common-service'; import { userBindedActions } from '~/store/users/users-actions'; import { getSortColumn } from "~/store/data-explorer/data-explorer-reducer"; import { UserResource } from '~/models/user'; @@ -27,28 +27,47 @@ export class UserMiddlewareService extends DataExplorerMiddlewareService { const state = api.getState(); const dataExplorer = getDataExplorer(state.dataExplorer, this.getId()); try { - const response = await this.services.userService.list(getParams(dataExplorer)); - api.dispatch(updateResources(response.items)); - api.dispatch(setItems(response)); + const responseFirstName = await this.services.userService.list(getParamsFirstName(dataExplorer)); + if (responseFirstName.itemsAvailable) { + api.dispatch(updateResources(responseFirstName.items)); + api.dispatch(setItems(responseFirstName)); + } else { + const responseLastName = await this.services.userService.list(getParamsLastName(dataExplorer)); + api.dispatch(updateResources(responseLastName.items)); + api.dispatch(setItems(responseLastName)); + } } catch { api.dispatch(couldNotFetchUsers()); } } } -export const getParams = (dataExplorer: DataExplorer) => ({ +const getParamsFirstName = (dataExplorer: DataExplorer) => ({ ...dataExplorerToListParams(dataExplorer), order: getOrder(dataExplorer), - filters: getFilters(dataExplorer) + filters: getFiltersFirstName(dataExplorer) }); -export const getFilters = (dataExplorer: DataExplorer) => { +const getParamsLastName = (dataExplorer: DataExplorer) => ({ + ...dataExplorerToListParams(dataExplorer), + order: getOrder(dataExplorer), + filters: getFiltersLastName(dataExplorer) +}); + +const getFiltersFirstName = (dataExplorer: DataExplorer) => { const filters = new FilterBuilder() .addILike("firstName", dataExplorer.searchValue) .getFilters(); return filters; }; +const getFiltersLastName = (dataExplorer: DataExplorer) => { + const filters = new FilterBuilder() + .addILike("lastName", dataExplorer.searchValue) + .getFilters(); + return filters; +}; + export const getOrder = (dataExplorer: DataExplorer) => { const sortColumn = getSortColumn(dataExplorer); const order = new OrderBuilder();