From c888094ca24b4ea88a193e36d932b87cda4fab5d Mon Sep 17 00:00:00 2001 From: Mukesh Katariya Date: Wed, 24 Jul 2019 15:05:35 +0530 Subject: [PATCH] task(/series/search/by_catalog): implement the simplest search by catalog number in user's collection. Part of #673 Fix #1098 --- .../web/feature/series/SeriesController.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/ru/mystamps/web/feature/series/SeriesController.java b/src/main/java/ru/mystamps/web/feature/series/SeriesController.java index 93f6a237ab..cbefc1230c 100644 --- a/src/main/java/ru/mystamps/web/feature/series/SeriesController.java +++ b/src/main/java/ru/mystamps/web/feature/series/SeriesController.java @@ -72,6 +72,7 @@ import java.util.Locale; import java.util.Map; import java.util.Objects; +import java.util.stream.Collectors; import static ru.mystamps.web.common.ControllerUtils.redirectTo; @@ -470,6 +471,8 @@ public String processAskForm( public String searchSeriesByCatalog( @RequestParam(name = "catalogNumber", defaultValue = "") String catalogNumber, @RequestParam(name = "catalogName", defaultValue = "") String catalogName, + @RequestParam(name = "inCollection", defaultValue = "false") Boolean inCollection, + @CurrentUser Integer currentUserId, Model model, Locale userLocale, RedirectAttributes redirectAttributes) { @@ -504,6 +507,18 @@ public String searchSeriesByCatalog( series = Collections.emptyList(); break; } + + if (Features.SEARCH_IN_COLLECTION.isActive() + && inCollection + && currentUserId != null) { + series = series + .stream() + .filter( + e -> collectionService.isSeriesInCollection(currentUserId, e.getId()) + ) + .collect(Collectors.toList()); + } + model.addAttribute("searchResults", series); return "series/search_result";