70 } catch (NumberFormatException ex) { |
70 } catch (NumberFormatException ex) { |
71 return 0; |
71 return 0; |
72 } |
72 } |
73 } |
73 } |
74 |
74 |
75 private void populate(ProjectView viewModel, PathParameters pathParameters, DaoProvider dao) throws SQLException { |
75 private void populate(ProjectView viewModel, PathParameters pathParameters, DaoProvider dao) { |
76 final var projectDao = dao.getProjectDao(); |
76 final var projectDao = dao.getProjectDao(); |
77 final var versionDao = dao.getVersionDao(); |
77 final var versionDao = dao.getVersionDao(); |
78 final var componentDao = dao.getComponentDao(); |
78 final var componentDao = dao.getComponentDao(); |
79 |
79 |
80 projectDao.list().stream().map(ProjectInfo::new).forEach(viewModel.getProjectList()::add); |
80 projectDao.list().stream().map(ProjectInfo::new).forEach(viewModel.getProjectList()::add); |
477 } |
477 } |
478 |
478 |
479 issueDao.joinVersionInformation(issue); |
479 issueDao.joinVersionInformation(issue); |
480 viewModel.setIssue(issue); |
480 viewModel.setIssue(issue); |
481 viewModel.setComments(issueDao.listComments(issue)); |
481 viewModel.setComments(issueDao.listComments(issue)); |
|
482 |
|
483 viewModel.processMarkdown(); |
482 |
484 |
483 forwardView(req, resp, viewModel, "issue-view"); |
485 forwardView(req, resp, viewModel, "issue-view"); |
484 } |
486 } |
485 |
487 |
486 // TODO: why should the issue editor be child of $project? |
488 // TODO: why should the issue editor be child of $project? |