From c401fa41f85e75f25814338f309df98f579a0627 Mon Sep 17 00:00:00 2001 From: Pawel Kowalczyk Date: Thu, 25 Apr 2019 10:31:17 +0200 Subject: [PATCH 1/1] refs #14859-admin-filtering-by-name-inside-user-panel Arvados-DCO-1.1-Signed-off-by: Pawel Kowalczyk --- .../users/user-panel-middleware-service.ts | 33 +++++++++++++++---- src/store/users/users-actions.ts | 2 +- 2 files changed, 27 insertions(+), 8 deletions(-) diff --git a/src/store/users/user-panel-middleware-service.ts b/src/store/users/user-panel-middleware-service.ts index bc4bb130..cffcce4d 100644 --- a/src/store/users/user-panel-middleware-service.ts +++ b/src/store/users/user-panel-middleware-service.ts @@ -27,24 +27,43 @@ 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("username", dataExplorer.searchValue) + .addILike("lastName", dataExplorer.searchValue) .getFilters(); return filters; }; diff --git a/src/store/users/users-actions.ts b/src/store/users/users-actions.ts index 066aa80b..caf466f7 100644 --- a/src/store/users/users-actions.ts +++ b/src/store/users/users-actions.ts @@ -12,7 +12,7 @@ import { snackbarActions, SnackbarKind } from '~/store/snackbar/snackbar-actions import { UserResource } from "~/models/user"; import { getResource } from '~/store/resources/resources'; import { navigateToProject, navigateToUsers, navigateToRootProject } from "~/store/navigation/navigation-action"; -import { saveApiToken, getUserDetails } from '~/store/auth/auth-action'; +import { saveApiToken } from '~/store/auth/auth-action'; export const USERS_PANEL_ID = 'usersPanel'; export const USER_ATTRIBUTES_DIALOG = 'userAttributesDialog'; -- 2.30.2