Sat, 26 Dec 2020 20:19:09 +0100
adds "Create another" checkbox to issue form - fixes #110
1.1 --- a/src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java Mon Dec 21 18:29:34 2020 +0100 1.2 +++ b/src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java Sat Dec 26 20:19:09 2020 +0100 1.3 @@ -275,7 +275,7 @@ 1.4 private <T> Optional<T> parseParameter(String paramValue, Class<T> clazz) { 1.5 if (paramValue == null) return Optional.empty(); 1.6 if (clazz.equals(Boolean.class)) { 1.7 - if (paramValue.toLowerCase().equals("false") || paramValue.equals("0")) { 1.8 + if (paramValue.equalsIgnoreCase("false") || paramValue.equals("0")) { 1.9 return Optional.of((T) Boolean.FALSE); 1.10 } else { 1.11 return Optional.of((T) Boolean.TRUE); 1.12 @@ -349,6 +349,13 @@ 1.13 } 1.14 } 1.15 1.16 + protected void setAttributeFromParameter(HttpServletRequest req, String name) { 1.17 + final var parm = req.getParameter(name); 1.18 + if (parm != null) { 1.19 + req.setAttribute(name, parm); 1.20 + } 1.21 + } 1.22 + 1.23 private String sanitizeRequestPath(HttpServletRequest req) { 1.24 return Optional.ofNullable(req.getPathInfo()).orElse("/"); 1.25 }
2.1 --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Mon Dec 21 18:29:34 2020 +0100 2.2 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java Sat Dec 26 20:19:09 2020 +0100 2.3 @@ -537,7 +537,7 @@ 2.4 } 2.5 2.6 @RequestMapping(requestPath = "$project/create-issue", method = HttpMethod.GET) 2.7 - public void createIssue(HttpServletRequest req, HttpServletResponse resp, PathParameters pathParameters, DataAccessObject dao) throws IOException, SQLException, ServletException { 2.8 + public void createIssue(HttpServletRequest req, HttpServletResponse resp, PathParameters pathParameters, DataAccessObject dao) throws IOException, ServletException { 2.9 final var viewModel = new IssueEditView(); 2.10 populate(viewModel, pathParameters, dao); 2.11 2.12 @@ -547,7 +547,10 @@ 2.13 return; 2.14 } 2.15 2.16 - // TODO: fix #38 - automatically select component (and version) 2.17 + setAttributeFromParameter(req, "more"); 2.18 + setAttributeFromParameter(req, "component"); 2.19 + setAttributeFromParameter(req, "version"); 2.20 + 2.21 final var issue = new Issue(-1, projectInfo.getProject(), null); 2.22 issue.setProject(projectInfo.getProject()); 2.23 configureIssueEditor(viewModel, issue, dao); 2.24 @@ -607,8 +610,12 @@ 2.25 dao.insertIssue(issue); 2.26 } 2.27 2.28 - // TODO: implement #110 2.29 - setRedirectLocation(req, "./projects/" + issue.getProject().getNode()+"/issues/"+issue.getId()+"/view"); 2.30 + if (getParameter(req, Boolean.class, "create-another").orElse(false)) { 2.31 + // TODO: fix #38 - automatically select component (and version) 2.32 + setRedirectLocation(req, "./projects/" + issue.getProject().getNode() + "/create-issue?more=true"); 2.33 + } else{ 2.34 + setRedirectLocation(req, "./projects/" + issue.getProject().getNode() + "/issues/" + issue.getId() + "/view"); 2.35 + } 2.36 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); 2.37 2.38 renderSite(req, resp);
3.1 --- a/src/main/resources/localization/projects.properties Mon Dec 21 18:29:34 2020 +0100 3.2 +++ b/src/main/resources/localization/projects.properties Sat Dec 26 20:19:09 2020 +0100 3.3 @@ -29,6 +29,7 @@ 3.4 button.version.create=New Version 3.5 button.version.edit=Edit Version 3.6 button.issue.create=New Issue 3.7 +button.issue.create.another=Create another Issue 3.8 button.issue.edit=Edit Issue 3.9 button.issue.all=All Issues 3.10 button.comment=Comment
4.1 --- a/src/main/resources/localization/projects_de.properties Mon Dec 21 18:29:34 2020 +0100 4.2 +++ b/src/main/resources/localization/projects_de.properties Sat Dec 26 20:19:09 2020 +0100 4.3 @@ -29,6 +29,7 @@ 4.4 button.version.create=Neue Version 4.5 button.version.edit=Version Bearbeiten 4.6 button.issue.create=Neuer Vorgang 4.7 +button.issue.create.another=Weiteren Vorgang erstellen 4.8 button.issue.edit=Vorgang Bearbeiten 4.9 button.issue.all=Alle Vorg\u00e4nge 4.10 button.comment=Kommentieren
5.1 --- a/src/main/webapp/WEB-INF/jsp/issue-form.jsp Mon Dec 21 18:29:34 2020 +0100 5.2 +++ b/src/main/webapp/WEB-INF/jsp/issue-form.jsp Sat Dec 26 20:19:09 2020 +0100 5.3 @@ -1,7 +1,7 @@ 5.4 <%-- 5.5 DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. 5.6 5.7 -Copyright 2018 Mike Becker. All rights reserved. 5.8 +Copyright 2020 Mike Becker. All rights reserved. 5.9 5.10 Redistribution and use in source and binary forms, with or without 5.11 modification, are permitted provided that the following conditions are met: 5.12 @@ -174,6 +174,8 @@ 5.13 <tfoot> 5.14 <tr> 5.15 <td colspan="2"> 5.16 + <input type="checkbox" id="create-another" name="create-another" <c:if test="${more}">checked</c:if> /> 5.17 + <label for="create-another"><fmt:message key="button.issue.create.another"/> </label> 5.18 <input type="hidden" name="id" value="${issue.id}"/> 5.19 <c:if test="${issue.id ge 0}"> 5.20 <a href="./projects/${issue.project.node}/issues/${issue.id}/view" class="button">