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

changeset 168
1c3694ae224c
parent 167
3f30adba1c63
child 175
1e6f2aace666
equal deleted inserted replaced
167:3f30adba1c63 168:1c3694ae224c
535 535
536 forwardView(req, resp, viewModel, "issue-form"); 536 forwardView(req, resp, viewModel, "issue-form");
537 } 537 }
538 538
539 @RequestMapping(requestPath = "$project/create-issue", method = HttpMethod.GET) 539 @RequestMapping(requestPath = "$project/create-issue", method = HttpMethod.GET)
540 public void createIssue(HttpServletRequest req, HttpServletResponse resp, PathParameters pathParameters, DataAccessObject dao) throws IOException, SQLException, ServletException { 540 public void createIssue(HttpServletRequest req, HttpServletResponse resp, PathParameters pathParameters, DataAccessObject dao) throws IOException, ServletException {
541 final var viewModel = new IssueEditView(); 541 final var viewModel = new IssueEditView();
542 populate(viewModel, pathParameters, dao); 542 populate(viewModel, pathParameters, dao);
543 543
544 final var projectInfo = viewModel.getProjectInfo(); 544 final var projectInfo = viewModel.getProjectInfo();
545 if (projectInfo == null) { 545 if (projectInfo == null) {
546 resp.sendError(HttpServletResponse.SC_NOT_FOUND); 546 resp.sendError(HttpServletResponse.SC_NOT_FOUND);
547 return; 547 return;
548 } 548 }
549 549
550 // TODO: fix #38 - automatically select component (and version) 550 setAttributeFromParameter(req, "more");
551 setAttributeFromParameter(req, "component");
552 setAttributeFromParameter(req, "version");
553
551 final var issue = new Issue(-1, projectInfo.getProject(), null); 554 final var issue = new Issue(-1, projectInfo.getProject(), null);
552 issue.setProject(projectInfo.getProject()); 555 issue.setProject(projectInfo.getProject());
553 configureIssueEditor(viewModel, issue, dao); 556 configureIssueEditor(viewModel, issue, dao);
554 557
555 forwardView(req, resp, viewModel, "issue-form"); 558 forwardView(req, resp, viewModel, "issue-form");
605 dao.updateIssue(issue); 608 dao.updateIssue(issue);
606 } else { 609 } else {
607 dao.insertIssue(issue); 610 dao.insertIssue(issue);
608 } 611 }
609 612
610 // TODO: implement #110 613 if (getParameter(req, Boolean.class, "create-another").orElse(false)) {
611 setRedirectLocation(req, "./projects/" + issue.getProject().getNode()+"/issues/"+issue.getId()+"/view"); 614 // TODO: fix #38 - automatically select component (and version)
615 setRedirectLocation(req, "./projects/" + issue.getProject().getNode() + "/create-issue?more=true");
616 } else{
617 setRedirectLocation(req, "./projects/" + issue.getProject().getNode() + "/issues/" + issue.getId() + "/view");
618 }
612 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL); 619 setContentPage(req, Constants.JSP_COMMIT_SUCCESSFUL);
613 620
614 renderSite(req, resp); 621 renderSite(req, resp);
615 } catch (NoSuchElementException | IllegalArgumentException ex) { 622 } catch (NoSuchElementException | IllegalArgumentException ex) {
616 resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED); 623 resp.sendError(HttpServletResponse.SC_NOT_IMPLEMENTED);

mercurial