src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java

changeset 129
a09d5c59351a
parent 128
947d0f6a6a83
child 131
67df332e3146
     1.1 --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java	Thu Oct 15 13:31:52 2020 +0200
     1.2 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java	Thu Oct 15 14:01:49 2020 +0200
     1.3 @@ -60,8 +60,10 @@
     1.4  
     1.5      private static final String SESSION_ATTR_SELECTED_PROJECT = fqn(ProjectsModule.class, "selected_project");
     1.6      private static final String SESSION_ATTR_SELECTED_VERSION = fqn(ProjectsModule.class, "selected_version");
     1.7 +    private static final String SESSION_ATTR_SELECTED_COMPONENT = fqn(ProjectsModule.class, "selected_component");
     1.8      private static final String PARAMETER_SELECTED_PROJECT = "pid";
     1.9      private static final String PARAMETER_SELECTED_VERSION = "vid";
    1.10 +    private static final String PARAMETER_SELECTED_COMPONENT = "cid";
    1.11  
    1.12      @Override
    1.13      protected String getResourceBundleName() {
    1.14 @@ -84,6 +86,7 @@
    1.15      private void populate(ProjectView viewModel, HttpServletRequest req, DataAccessObjects dao) throws SQLException {
    1.16          final var projectDao = dao.getProjectDao();
    1.17          final var versionDao = dao.getVersionDao();
    1.18 +        final var componentDao = dao.getComponentDao();
    1.19  
    1.20          projectDao.list().stream().map(ProjectInfo::new).forEach(viewModel.getProjectList()::add);
    1.21  
    1.22 @@ -96,6 +99,7 @@
    1.23              } else {
    1.24                  final var info = new ProjectInfo(project);
    1.25                  info.setVersions(versionDao.list(project));
    1.26 +                info.setComponents(componentDao.list(project));
    1.27                  info.setIssueSummary(projectDao.getIssueSummary(project));
    1.28                  viewModel.setProjectInfo(info);
    1.29              }
    1.30 @@ -103,8 +107,20 @@
    1.31  
    1.32          // Select Version
    1.33          final int vid = syncParamWithSession(req, PARAMETER_SELECTED_VERSION, SESSION_ATTR_SELECTED_VERSION);
    1.34 -        if (vid >= 0) {
    1.35 +        if (vid > 0) {
    1.36              viewModel.setVersionFilter(versionDao.find(vid));
    1.37 +        } else {
    1.38 +            // NULL for version means: show all unassigned
    1.39 +            viewModel.setVersionFilter(null);
    1.40 +        }
    1.41 +
    1.42 +        // Select Component
    1.43 +        final int cid = syncParamWithSession(req, PARAMETER_SELECTED_COMPONENT, SESSION_ATTR_SELECTED_COMPONENT);
    1.44 +        if (cid > 0) {
    1.45 +            viewModel.setComponentFilter(componentDao.find(cid));
    1.46 +        } else if (cid <= 0) {
    1.47 +            // -1 means: filter for unassigned, null means: show all
    1.48 +            viewModel.setComponentFilter(new Component(-1));
    1.49          }
    1.50      }
    1.51  

mercurial