18559: Use full text user search instead of fname or lname only
authorStephen Smith <stephen@curii.com>
Thu, 31 Mar 2022 01:10:04 +0000 (21:10 -0400)
committerStephen Smith <stephen@curii.com>
Thu, 31 Mar 2022 01:10:04 +0000 (21:10 -0400)
Arvados-DCO-1.1-Signed-off-by: Stephen Smith <stephen@curii.com>

src/store/users/user-panel-middleware-service.ts

index 83af302c9af449cc7582f1d2a57808313ce43bb5..c0589a6056e0393745800e0559d2af5193a0065e 100644 (file)
@@ -29,15 +29,10 @@ export class UserMiddlewareService extends DataExplorerMiddlewareService {
         const state = api.getState();
         const dataExplorer = getDataExplorer(state.dataExplorer, this.getId());
         try {
-            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));
-            }
+            const users = await this.services.userService.list(getParams(dataExplorer));
+            api.dispatch(updateResources(users.items));
+            api.dispatch(setItems(users));
+
             // Get "all users" group memberships
             const allUsersGroupUuid = getBuiltinGroupUuid(state.auth.localCluster, BuiltinGroups.ALL);
             const allUserMemberships = await this.services.permissionService.list({
@@ -53,32 +48,14 @@ export class UserMiddlewareService extends DataExplorerMiddlewareService {
     }
 }
 
-const getParamsFirstName = (dataExplorer: DataExplorer) => ({
-    ...dataExplorerToListParams(dataExplorer),
-    order: getOrder(dataExplorer),
-    filters: getFiltersFirstName(dataExplorer)
-});
-
-const getParamsLastName = (dataExplorer: DataExplorer) => ({
+const getParams = (dataExplorer: DataExplorer) => ({
     ...dataExplorerToListParams(dataExplorer),
     order: getOrder(dataExplorer),
-    filters: getFiltersLastName(dataExplorer)
+    filters: new FilterBuilder()
+        .addFullTextSearch(dataExplorer.searchValue)
+        .getFilters()
 });
 
-const getFiltersFirstName = (dataExplorer: DataExplorer) => {
-    const filters = new FilterBuilder()
-        .addILike("first_name", dataExplorer.searchValue)
-        .getFilters();
-    return filters;
-};
-
-const getFiltersLastName = (dataExplorer: DataExplorer) => {
-    const filters = new FilterBuilder()
-        .addILike("last_name", dataExplorer.searchValue)
-        .getFilters();
-    return filters;
-};
-
 export const getOrder = (dataExplorer: DataExplorer) => {
     const sortColumn = getSortColumn(dataExplorer);
     const order = new OrderBuilder<UserResource>();