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

changeset 146
b0e83cab0bde
parent 141
8160dfc4dbc3
child 150
822b7e3d064d
     1.1 --- a/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java	Fri Oct 23 12:38:20 2020 +0200
     1.2 +++ b/src/main/java/de/uapcore/lightpit/modules/ProjectsModule.java	Fri Oct 23 13:29:33 2020 +0200
     1.3 @@ -422,16 +422,39 @@
     1.4  
     1.5      private void configureIssueEditor(IssueEditView viewModel, Issue issue, DataAccessObjects dao) throws SQLException {
     1.6          final var project = viewModel.getProjectInfo().getProject();
     1.7 -        issue.setProject(project);
     1.8 +        issue.setProject(project); // automatically set current project for new issues
     1.9          viewModel.setIssue(issue);
    1.10          viewModel.configureVersionSelectors(viewModel.getProjectInfo().getVersions());
    1.11          viewModel.setUsers(dao.getUserDao().list());
    1.12          viewModel.setComponents(dao.getComponentDao().list(project));
    1.13 -        if (issue.getId() >= 0) {
    1.14 -            viewModel.setComments(dao.getIssueDao().listComments(issue));
    1.15 -        }
    1.16      }
    1.17  
    1.18 +    @RequestMapping(requestPath = "$project/issues/$issue/view", method = HttpMethod.GET)
    1.19 +    public ResponseType viewIssue(HttpServletRequest req, HttpServletResponse resp, PathParameters pathParameters, DataAccessObjects dao) throws IOException, SQLException {
    1.20 +        final var viewModel = new IssueDetailView();
    1.21 +        populate(viewModel, pathParameters, dao);
    1.22 +
    1.23 +        final var projectInfo = viewModel.getProjectInfo();
    1.24 +        if (projectInfo == null) {
    1.25 +            resp.sendError(HttpServletResponse.SC_NOT_FOUND);
    1.26 +            return ResponseType.NONE;
    1.27 +        }
    1.28 +
    1.29 +        final var issueDao = dao.getIssueDao();
    1.30 +        final var issue = issueDao.find(Functions.parseIntOrZero(pathParameters.get("issue")));
    1.31 +        if (issue == null) {
    1.32 +            resp.sendError(HttpServletResponse.SC_NOT_FOUND);
    1.33 +            return ResponseType.NONE;
    1.34 +        }
    1.35 +
    1.36 +        issueDao.joinVersionInformation(issue);
    1.37 +        viewModel.setIssue(issue);
    1.38 +        viewModel.setComments(issueDao.listComments(issue));
    1.39 +
    1.40 +        return forwardView(req, viewModel, "issue-view");
    1.41 +    }
    1.42 +
    1.43 +    // TODO: why should the issue editor be child of $project?
    1.44      @RequestMapping(requestPath = "$project/issues/$issue/edit", method = HttpMethod.GET)
    1.45      public ResponseType editIssue(HttpServletRequest req, HttpServletResponse resp, PathParameters pathParameters, DataAccessObjects dao) throws IOException, SQLException {
    1.46          final var viewModel = new IssueEditView();
    1.47 @@ -522,8 +545,8 @@
    1.48  
    1.49              dao.getIssueDao().saveOrUpdate(issue, issue.getProject());
    1.50  
    1.51 -            // TODO: fix issue #14
    1.52 -            setRedirectLocation(req, "./projects/" + issue.getProject().getNode() + "/all-components/all-versions/issues/");
    1.53 +            // TODO: fix redirect location
    1.54 +            setRedirectLocation(req, "./projects/" + issue.getProject().getNode()+"/issues/"+issue.getId()+"/view");
    1.55              setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL);
    1.56  
    1.57              return ResponseType.HTML;
    1.58 @@ -561,8 +584,8 @@
    1.59  
    1.60              dao.getIssueDao().saveComment(issueComment);
    1.61  
    1.62 -            // TODO: fix redirect location (e.g. after fixing #24)
    1.63 -            setRedirectLocation(req, "./projects/" + issue.getProject().getNode()+"/issues/"+issue.getId()+"/edit");
    1.64 +            // TODO: fix redirect location
    1.65 +            setRedirectLocation(req, "./projects/" + issue.getProject().getNode()+"/issues/"+issue.getId()+"/view");
    1.66              setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL);
    1.67  
    1.68              return ResponseType.HTML;

mercurial