adds "Create another" checkbox to issue form - fixes #110

Sat, 26 Dec 2020 20:19:09 +0100

author
Mike Becker <universe@uap-core.de>
date
Sat, 26 Dec 2020 20:19:09 +0100
changeset 168
1c3694ae224c
parent 167
3f30adba1c63
child 173
1dc56ab7845e

adds "Create another" checkbox to issue form - fixes #110

src/main/java/de/uapcore/lightpit/AbstractLightPITServlet.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java file | annotate | diff | comparison | revisions
src/main/resources/localization/projects.properties file | annotate | diff | comparison | revisions
src/main/resources/localization/projects_de.properties file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jsp/issue-form.jsp file | annotate | diff | comparison | revisions
     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">

mercurial