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({
}
}
-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 getOrder = (dataExplorer: DataExplorer) => {
+ const sortColumn = getSortColumn<UserResource>(dataExplorer);
const order = new OrderBuilder<UserResource>();
- if (sortColumn) {
- const sortDirection = sortColumn && sortColumn.sortDirection === SortDirection.ASC
+ if (sortColumn && sortColumn.sort) {
+ const sortDirection = sortColumn.sort.direction === SortDirection.ASC
? OrderDirection.ASC
: OrderDirection.DESC;
- switch (sortColumn.name) {
- case UserPanelColumnNames.NAME:
- order.addOrder(sortDirection, "firstName")
- .addOrder(sortDirection, "lastName");
- break;
- case UserPanelColumnNames.UUID:
- order.addOrder(sortDirection, "uuid");
- break;
- case UserPanelColumnNames.EMAIL:
- order.addOrder(sortDirection, "email");
- break;
- case UserPanelColumnNames.USERNAME:
- order.addOrder(sortDirection, "username");
- break;
+
+ if (sortColumn.name === UserPanelColumnNames.NAME) {
+ order.addOrder(sortDirection, "firstName")
+ .addOrder(sortDirection, "lastName");
+ } else {
+ order.addOrder(sortDirection, sortColumn.sort.field);
}
}
return order.getOrder();