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

changeset 129
a09d5c59351a
parent 128
947d0f6a6a83
child 131
67df332e3146
equal deleted inserted replaced
128:947d0f6a6a83 129:a09d5c59351a
58 58
59 private static final Logger LOG = LoggerFactory.getLogger(ProjectsModule.class); 59 private static final Logger LOG = LoggerFactory.getLogger(ProjectsModule.class);
60 60
61 private static final String SESSION_ATTR_SELECTED_PROJECT = fqn(ProjectsModule.class, "selected_project"); 61 private static final String SESSION_ATTR_SELECTED_PROJECT = fqn(ProjectsModule.class, "selected_project");
62 private static final String SESSION_ATTR_SELECTED_VERSION = fqn(ProjectsModule.class, "selected_version"); 62 private static final String SESSION_ATTR_SELECTED_VERSION = fqn(ProjectsModule.class, "selected_version");
63 private static final String SESSION_ATTR_SELECTED_COMPONENT = fqn(ProjectsModule.class, "selected_component");
63 private static final String PARAMETER_SELECTED_PROJECT = "pid"; 64 private static final String PARAMETER_SELECTED_PROJECT = "pid";
64 private static final String PARAMETER_SELECTED_VERSION = "vid"; 65 private static final String PARAMETER_SELECTED_VERSION = "vid";
66 private static final String PARAMETER_SELECTED_COMPONENT = "cid";
65 67
66 @Override 68 @Override
67 protected String getResourceBundleName() { 69 protected String getResourceBundleName() {
68 return "localization.projects"; 70 return "localization.projects";
69 } 71 }
82 } 84 }
83 85
84 private void populate(ProjectView viewModel, HttpServletRequest req, DataAccessObjects dao) throws SQLException { 86 private void populate(ProjectView viewModel, HttpServletRequest req, DataAccessObjects dao) throws SQLException {
85 final var projectDao = dao.getProjectDao(); 87 final var projectDao = dao.getProjectDao();
86 final var versionDao = dao.getVersionDao(); 88 final var versionDao = dao.getVersionDao();
89 final var componentDao = dao.getComponentDao();
87 90
88 projectDao.list().stream().map(ProjectInfo::new).forEach(viewModel.getProjectList()::add); 91 projectDao.list().stream().map(ProjectInfo::new).forEach(viewModel.getProjectList()::add);
89 92
90 // Select Project 93 // Select Project
91 final int pid = syncParamWithSession(req, PARAMETER_SELECTED_PROJECT, SESSION_ATTR_SELECTED_PROJECT); 94 final int pid = syncParamWithSession(req, PARAMETER_SELECTED_PROJECT, SESSION_ATTR_SELECTED_PROJECT);
94 if (project == null) { 97 if (project == null) {
95 req.setAttribute(SESSION_ATTR_SELECTED_PROJECT, -1); 98 req.setAttribute(SESSION_ATTR_SELECTED_PROJECT, -1);
96 } else { 99 } else {
97 final var info = new ProjectInfo(project); 100 final var info = new ProjectInfo(project);
98 info.setVersions(versionDao.list(project)); 101 info.setVersions(versionDao.list(project));
102 info.setComponents(componentDao.list(project));
99 info.setIssueSummary(projectDao.getIssueSummary(project)); 103 info.setIssueSummary(projectDao.getIssueSummary(project));
100 viewModel.setProjectInfo(info); 104 viewModel.setProjectInfo(info);
101 } 105 }
102 } 106 }
103 107
104 // Select Version 108 // Select Version
105 final int vid = syncParamWithSession(req, PARAMETER_SELECTED_VERSION, SESSION_ATTR_SELECTED_VERSION); 109 final int vid = syncParamWithSession(req, PARAMETER_SELECTED_VERSION, SESSION_ATTR_SELECTED_VERSION);
106 if (vid >= 0) { 110 if (vid > 0) {
107 viewModel.setVersionFilter(versionDao.find(vid)); 111 viewModel.setVersionFilter(versionDao.find(vid));
112 } else {
113 // NULL for version means: show all unassigned
114 viewModel.setVersionFilter(null);
115 }
116
117 // Select Component
118 final int cid = syncParamWithSession(req, PARAMETER_SELECTED_COMPONENT, SESSION_ATTR_SELECTED_COMPONENT);
119 if (cid > 0) {
120 viewModel.setComponentFilter(componentDao.find(cid));
121 } else if (cid <= 0) {
122 // -1 means: filter for unassigned, null means: show all
123 viewModel.setComponentFilter(new Component(-1));
108 } 124 }
109 } 125 }
110 126
111 private ResponseType forwardView(HttpServletRequest req, ProjectView viewModel, String name) { 127 private ResponseType forwardView(HttpServletRequest req, ProjectView viewModel, String name) {
112 setViewModel(req, viewModel); 128 setViewModel(req, viewModel);

mercurial