Skip to content

Commit f8b1081

Browse files
committed
task(/series/SeriesController) : Search by catalog number in user's collection
Part of #673 Fix #1098
1 parent 4e398bc commit f8b1081

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/main/java/ru/mystamps/web/feature/series/SeriesController.java

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
2323
import org.springframework.http.HttpStatus;
2424
import org.springframework.security.core.annotation.AuthenticationPrincipal;
25+
import org.springframework.security.core.context.SecurityContextHolder;
2526
import org.springframework.stereotype.Controller;
2627
import org.springframework.ui.Model;
2728
import org.springframework.validation.BindingResult;
@@ -72,6 +73,7 @@
7273
import java.util.Locale;
7374
import java.util.Map;
7475
import java.util.Objects;
76+
import java.util.stream.Collectors;
7577

7678
import static ru.mystamps.web.common.ControllerUtils.redirectTo;
7779

@@ -470,10 +472,11 @@ public String processAskForm(
470472
public String searchSeriesByCatalog(
471473
@RequestParam(name = "catalogNumber", defaultValue = "") String catalogNumber,
472474
@RequestParam(name = "catalogName", defaultValue = "") String catalogName,
475+
@RequestParam(name = "inCollection", defaultValue = "false") Boolean inCollection,
476+
@CurrentUser Integer currentUserId,
473477
Model model,
474478
Locale userLocale,
475479
RedirectAttributes redirectAttributes) {
476-
477480
if (StringUtils.isBlank(catalogNumber)) {
478481
redirectAttributes.addFlashAttribute("numberIsEmpty", true);
479482
return "redirect:" + SiteUrl.INDEX_PAGE;
@@ -504,6 +507,19 @@ public String searchSeriesByCatalog(
504507
series = Collections.emptyList();
505508
break;
506509
}
510+
511+
//boolean searchInCollection =(inCollection != null)?Boolean.TRUE:Boolean.FALSE;
512+
if (Features.SEARCH_IN_COLLECTION.isActive()
513+
&& inCollection
514+
&& SecurityContextHolder.getContext().getAuthentication().isAuthenticated()) {
515+
series = series
516+
.stream()
517+
.filter(
518+
e->collectionService.isSeriesInCollection(currentUserId, e.getId())
519+
)
520+
.collect(Collectors.toList());
521+
}
522+
507523
model.addAttribute("searchResults", series);
508524

509525
return "series/search_result";

src/main/webapp/WEB-INF/views/site/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ <h4 class="panel-title" th:text="#{t_search_by_catalog}">Search by catalog</h4>
184184
</div>
185185
<!-- @todo #673 Add integration tests for search by a catalog in user's collection -->
186186
<div class="form-group" sec:authorize="isAuthenticated()" togglz:active="SEARCH_IN_COLLECTION">
187-
<input id="in-collection" name="inCollection" type="checkbox" />
187+
<input id="in-collection" name="inCollection" type="checkbox" value="true"/>
188188
<label for="in-collection" th:text="#{t_in_my_collection}">In my collection</label>
189189
</div>
190190
<div class="form-group">

0 commit comments

Comments
 (0)