only show relevant versions in issue editor

Sun, 21 Jun 2020 11:56:36 +0200

author
Mike Becker <universe@uap-core.de>
date
Sun, 21 Jun 2020 11:56:36 +0200
changeset 90
2c74e36752f9
parent 89
c69d5cb11d6c
child 91
c3a6c65b3729

only show relevant versions in issue editor

src/main/java/de/uapcore/lightpit/entities/VersionStatus.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/viewmodel/IssueEditView.java file | annotate | diff | comparison | revisions
src/main/java/de/uapcore/lightpit/viewmodel/ProjectInfo.java file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jsp/issue-form.jsp file | annotate | diff | comparison | revisions
src/main/webapp/WEB-INF/jspf/version-list.jsp file | annotate | diff | comparison | revisions
     1.1 --- a/src/main/java/de/uapcore/lightpit/entities/VersionStatus.java	Sun Jun 21 11:43:08 2020 +0200
     1.2 +++ b/src/main/java/de/uapcore/lightpit/entities/VersionStatus.java	Sun Jun 21 11:56:36 2020 +0200
     1.3 @@ -33,5 +33,9 @@
     1.4      Unreleased,
     1.5      Released,
     1.6      LTS,
     1.7 -    Deprecated
     1.8 +    Deprecated;
     1.9 +
    1.10 +    public boolean isReleased() {
    1.11 +        return ordinal() >= VersionStatus.Released.ordinal();
    1.12 +    }
    1.13  }
     2.1 --- a/src/main/java/de/uapcore/lightpit/viewmodel/IssueEditView.java	Sun Jun 21 11:43:08 2020 +0200
     2.2 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/IssueEditView.java	Sun Jun 21 11:56:36 2020 +0200
     2.3 @@ -2,6 +2,7 @@
     2.4  
     2.5  import de.uapcore.lightpit.entities.*;
     2.6  
     2.7 +import java.util.ArrayList;
     2.8  import java.util.Collections;
     2.9  import java.util.List;
    2.10  
    2.11 @@ -9,7 +10,8 @@
    2.12      private final Issue issue;
    2.13  
    2.14      private List<Project> projects = Collections.emptyList();
    2.15 -    private List<Version> versions = Collections.emptyList();
    2.16 +    private List<Version> versionsUpcoming = new ArrayList<>();
    2.17 +    private List<Version> versionsRecent = new ArrayList<>();
    2.18      private List<User> users;
    2.19  
    2.20      public IssueEditView(Issue issue) {
    2.21 @@ -28,12 +30,24 @@
    2.22          this.projects = projects;
    2.23      }
    2.24  
    2.25 -    public List<Version> getVersions() {
    2.26 -        return versions;
    2.27 +    public List<Version> getVersionsUpcoming() {
    2.28 +        return versionsUpcoming;
    2.29 +    }
    2.30 +
    2.31 +    public List<Version> getVersionsRecent() {
    2.32 +        return versionsRecent;
    2.33      }
    2.34  
    2.35      public void setVersions(List<Version> versions) {
    2.36 -        this.versions = versions;
    2.37 +        versionsRecent.clear();
    2.38 +        versionsUpcoming.clear();
    2.39 +        for (var v : versions) {
    2.40 +            if (v.getStatus().isReleased()) {
    2.41 +                versionsRecent.add(v);
    2.42 +            } else {
    2.43 +                versionsUpcoming.add(v);
    2.44 +            }
    2.45 +        }
    2.46      }
    2.47  
    2.48      public List<User> getUsers() {
     3.1 --- a/src/main/java/de/uapcore/lightpit/viewmodel/ProjectInfo.java	Sun Jun 21 11:43:08 2020 +0200
     3.2 +++ b/src/main/java/de/uapcore/lightpit/viewmodel/ProjectInfo.java	Sun Jun 21 11:56:36 2020 +0200
     3.3 @@ -3,7 +3,6 @@
     3.4  import de.uapcore.lightpit.entities.IssueSummary;
     3.5  import de.uapcore.lightpit.entities.Project;
     3.6  import de.uapcore.lightpit.entities.Version;
     3.7 -import de.uapcore.lightpit.entities.VersionStatus;
     3.8  
     3.9  import java.util.Collections;
    3.10  import java.util.List;
    3.11 @@ -31,17 +30,19 @@
    3.12      }
    3.13  
    3.14      public Version getLatestVersion() {
    3.15 +        // expects versions to be sorted by status descending
    3.16          for (var v : versions) {
    3.17 -            if (v.getStatus().ordinal() >= VersionStatus.Released.ordinal())
    3.18 +            if (v.getStatus().isReleased())
    3.19                  return v;
    3.20          }
    3.21          return null;
    3.22      }
    3.23  
    3.24      public Version getNextVersion() {
    3.25 +        // expects versions to be sorted by status descending
    3.26          Version next = null;
    3.27          for (var v : versions) {
    3.28 -            if (v.getStatus().ordinal() >= VersionStatus.Released.ordinal())
    3.29 +            if (v.getStatus().isReleased())
    3.30                  break;
    3.31              next = v;
    3.32          }
     4.1 --- a/src/main/webapp/WEB-INF/jsp/issue-form.jsp	Sun Jun 21 11:43:08 2020 +0200
     4.2 +++ b/src/main/webapp/WEB-INF/jsp/issue-form.jsp	Sun Jun 21 11:56:36 2020 +0200
     4.3 @@ -30,7 +30,6 @@
     4.4  
     4.5  <jsp:useBean id="viewmodel" type="de.uapcore.lightpit.viewmodel.IssueEditView" scope="request"/>
     4.6  <c:set var="issue" scope="page" value="${viewmodel.issue}" />
     4.7 -<c:set var="versions" value="${viewmodel.versions}" />
     4.8  
     4.9  <form action="./projects/issues/commit" method="post">
    4.10      <table class="formtable">
    4.11 @@ -115,6 +114,7 @@
    4.12              <th class="vtop"><fmt:message key="issue.affected-versions"/></th>
    4.13              <td>
    4.14                  <c:set var="fieldname" value="affected"/>
    4.15 +                <c:set var="selectionList" value="${viewmodel.versionsRecent}"/>
    4.16                  <c:set var="data" value="${issue.affectedVersions}" />
    4.17                  <%@include file="../jspf/version-list.jsp"%>
    4.18              </td>
    4.19 @@ -123,6 +123,7 @@
    4.20              <th class="vtop"><fmt:message key="issue.resolved-versions"/></th>
    4.21              <td>
    4.22                  <c:set var="fieldname" value="resolved"/>
    4.23 +                <c:set var="selectionList" value="${viewmodel.versionsUpcoming}"/>
    4.24                  <c:set var="data" value="${issue.resolvedVersions}" />
    4.25                  <%@include file="../jspf/version-list.jsp"%>
    4.26              </td>
     5.1 --- a/src/main/webapp/WEB-INF/jspf/version-list.jsp	Sun Jun 21 11:43:08 2020 +0200
     5.2 +++ b/src/main/webapp/WEB-INF/jspf/version-list.jsp	Sun Jun 21 11:56:36 2020 +0200
     5.3 @@ -1,13 +1,13 @@
     5.4  <%@taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
     5.5  
     5.6  <select name="${fieldname}" multiple>
     5.7 -    <c:forEach var="version" items="${versions}">
     5.8 -        <option value="${version.id}"
     5.9 +    <c:forEach var="vselitem" items="${selectionList}">
    5.10 +        <option value="${vselitem.id}"
    5.11                  <c:forEach var="v" items="${data}">
    5.12 -                    <c:if test="${v eq version}">selected</c:if>
    5.13 +                    <c:if test="${v eq vselitem}">selected</c:if>
    5.14                  </c:forEach>
    5.15          >
    5.16 -            <c:out value="${version.name}" />
    5.17 +            <c:out value="${vselitem.name}" />
    5.18          </option>
    5.19      </c:forEach>
    5.20  </select>

mercurial