diff --git a/src/main/java/ru/org/linux/site/tags/BoxListTag.java b/src/main/java/ru/org/linux/site/tags/BoxListTag.java index cb7978655..753f47e0b 100644 --- a/src/main/java/ru/org/linux/site/tags/BoxListTag.java +++ b/src/main/java/ru/org/linux/site/tags/BoxListTag.java @@ -15,8 +15,6 @@ package ru.org.linux.site.tags; -import com.google.common.collect.ImmutableList; -import com.google.common.collect.Iterables; import jakarta.servlet.jsp.tagext.BodyTagSupport; import ru.org.linux.site.DefaultProfile; import ru.org.linux.site.Template; @@ -38,9 +36,7 @@ public void setVar(String var) { public int doStartTag() { Template t = Template.getTemplate(); - List boxnames = ImmutableList.copyOf( - Iterables.filter(t.getProf().getBoxlets(), DefaultProfile.boxPredicate()::test) - ); + List boxnames = t.getProf().getBoxlets().stream().filter(DefaultProfile::isBox).toList(); pageContext.setAttribute(var, boxnames); return EVAL_BODY_INCLUDE; diff --git a/src/main/java/ru/org/linux/user/AddRemoveBoxesController.java b/src/main/java/ru/org/linux/user/AddRemoveBoxesController.java index 38c7ad898..9114d35fa 100644 --- a/src/main/java/ru/org/linux/user/AddRemoveBoxesController.java +++ b/src/main/java/ru/org/linux/user/AddRemoveBoxesController.java @@ -1,5 +1,5 @@ /* - * Copyright 1998-2022 Linux.org.ru + * Copyright 1998-2024 Linux.org.ru * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -15,17 +15,14 @@ package ru.org.linux.user; -import com.google.common.collect.Iterables; -import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.validation.BindingResult; import org.springframework.validation.FieldError; import org.springframework.validation.ValidationUtils; import org.springframework.web.bind.annotation.*; -import org.springframework.web.bind.support.SessionStatus; +import org.springframework.web.servlet.ModelAndView; import ru.org.linux.auth.AccessViolationException; import ru.org.linux.auth.AuthUtil; import ru.org.linux.site.DefaultProfile; @@ -34,12 +31,15 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; @Controller -@SessionAttributes("allboxes") public class AddRemoveBoxesController { - @Autowired - private ProfileDao profileDao; + private final ProfileDao profileDao; + + public AddRemoveBoxesController(ProfileDao profileDao) { + this.profileDao = profileDao; + } @RequestMapping(value = {"/remove-box.jsp", "/add-box.jsp"}, method = RequestMethod.GET) public ModelMap showRemove(@RequestParam(required = false) Integer pos) @@ -58,8 +58,7 @@ public ModelMap showRemove(@RequestParam(required = false) Integer pos) } @RequestMapping(value = "/remove-box.jsp", method = RequestMethod.POST) - public String doRemove(@ModelAttribute("form") EditBoxesRequest form, BindingResult result, - SessionStatus status) { + public String doRemove(@ModelAttribute("form") EditBoxesRequest form, BindingResult result) { Template tmpl = Template.getTemplate(); if (!tmpl.isSessionAuthorized()) { @@ -86,7 +85,6 @@ public String doRemove(@ModelAttribute("form") EditBoxesRequest form, BindingRes } } - status.setComplete(); return "redirect:/edit-boxes.jsp"; } @@ -96,9 +94,7 @@ public Map getAllBoxes() { } @RequestMapping(value = "/add-box.jsp", method = RequestMethod.POST) - public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult result, - SessionStatus status) { - + public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult result) { ValidationUtils.rejectIfEmptyOrWhitespace(result, "boxName", "boxName.empty", "Не выбран бокслет"); if (StringUtils.isNotEmpty(form.getBoxName()) && !DefaultProfile.isBox(form.getBoxName())) { result.addError(new FieldError("boxName", "boxName.invalid", "Неверный бокслет")); @@ -116,9 +112,8 @@ public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult form.setPosition(0); } - List boxlets = Lists.newArrayList( - Iterables.filter(t.getProf().getBoxlets(), DefaultProfile.boxPredicate()::test) - ); + List boxlets = t.getProf().getBoxlets().stream().filter(DefaultProfile::isBox) + .collect(Collectors.toCollection(ArrayList::new)); if (boxlets.size() > form.position) { boxlets.add(form.position, form.boxName); @@ -128,12 +123,16 @@ public String doAdd(@ModelAttribute("form") EditBoxesRequest form, BindingResult t.getProf().setBoxlets(boxlets); - profileDao.writeProfile(AuthUtil.getCurrentUser(), t.getProf()); + profileDao.writeProfile(AuthUtil.getCurrentUser(), t.getProf()); - status.setComplete(); return "redirect:/edit-boxes.jsp"; } + @RequestMapping("/edit-boxes.jsp") + public ModelAndView view() { + return new ModelAndView("edit-boxes"); + } + public static class EditBoxesRequest { private Integer position; private String boxName; diff --git a/src/main/java/ru/org/linux/user/EditBoxesController.java b/src/main/java/ru/org/linux/user/EditBoxesController.java deleted file mode 100644 index fbc1c2d27..000000000 --- a/src/main/java/ru/org/linux/user/EditBoxesController.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright 1998-2016 Linux.org.ru - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package ru.org.linux.user; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.servlet.ModelAndView; - -@Controller -public class EditBoxesController { - @RequestMapping("/edit-boxes.jsp") - public ModelAndView view() { - return new ModelAndView("edit-boxes"); - } -}