From d1e97bf3b2f7f9f12f7ee20b2d1f6f5e73d75949 Mon Sep 17 00:00:00 2001 From: ScarletRedMan Date: Wed, 13 Mar 2024 13:49:52 +0700 Subject: [PATCH] Fixed user search --- .../picker/cp/error/ApplicationErrorHandler.java | 9 +++++++++ .../dragonestia/picker/cp/page/UserSearchPage.java | 12 +++++++++++- 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/error/ApplicationErrorHandler.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/error/ApplicationErrorHandler.java index aa0fc81..90e159c 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/error/ApplicationErrorHandler.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/error/ApplicationErrorHandler.java @@ -8,6 +8,8 @@ import lombok.extern.log4j.Log4j2; import ru.dragonestia.picker.api.exception.ApiException; import ru.dragonestia.picker.cp.component.Notifications; +import java.security.InvalidParameterException; + @Log4j2 public class ApplicationErrorHandler implements ErrorHandler { @@ -25,6 +27,13 @@ public class ApplicationErrorHandler implements ErrorHandler { return; } + if (errorEvent.getThrowable() instanceof InvalidParameterException ex) { + execute(() -> { + Notifications.error(ex.getMessage()); + }); + return; + } + execute(() -> { Notifications.error("Internal server error"); }); diff --git a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java index 16e897f..6680e02 100644 --- a/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java +++ b/control-panel/src/main/java/ru/dragonestia/picker/cp/page/UserSearchPage.java @@ -43,7 +43,7 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable { foundUsers = new Span(); add(fieldUsername = createUsernameInputField()); add(userGrid = createUserGrid()); - refresh(); + justRefresh(); } private TextField createUsernameInputField() { @@ -91,6 +91,11 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable { } private void search(String input) { + System.out.println("Input: " + input); + if (input.isEmpty()) { + userGrid.setItems(); + } + userGrid.setItems(cachedUsers = userRepository.searchUsers(SearchUsers.withAllDetails(UserIdentifier.of(input))) .stream().map(user -> (IUser) user).toList()); } @@ -100,4 +105,9 @@ public class UserSearchPage extends VerticalLayout implements RefreshableTable { search(fieldUsername.getValue().trim()); foundUsers.setText("Found %s users".formatted(cachedUsers.size())); } + + public void justRefresh() { + userGrid.setItems(); + foundUsers.setText("Found %s users".formatted(cachedUsers.size())); + } }