diff --git a/src/main/java/ru/ulstu/extractor/controller/GitFilteringController.java b/src/main/java/ru/ulstu/extractor/controller/GitFilteringController.java index 87df222..62a123b 100644 --- a/src/main/java/ru/ulstu/extractor/controller/GitFilteringController.java +++ b/src/main/java/ru/ulstu/extractor/controller/GitFilteringController.java @@ -29,6 +29,7 @@ public class GitFilteringController { private final static int DEFAULT_PAGE_SIZE = 20; private final FilteringService filteringService; + public GitFilteringController(FilteringService filteringService) { this.filteringService = filteringService; } @@ -43,9 +44,11 @@ public class GitFilteringController { @RequestParam String branchName) { int currentPage = page.orElse(1); int pageSize = size.orElse(DEFAULT_PAGE_SIZE); + String author = "Anton Romanov"; Page commitsPage = filteringService.getCommits(repositoryUrl, branchName, + author, new OffsetablePageRequest(currentPage - 1, pageSize)); int totalPages = commitsPage.getTotalPages(); if (totalPages > 0) { @@ -61,4 +64,24 @@ public class GitFilteringController { model.addAttribute("authors", filteringService.getRepositoryAuthors(repositoryUrl, branchName)); return FILTER_COMMITS; } + +// @RequestMapping(value = FILTER_COMMITS, method = RequestMethod.POST) +// public ModelAndView listFilterCommits( +// Model model, +// @ModelAttribute FilterForm filterForm) { +// Page commitsPage = filteringService.getCommits(filterForm.getUrl(), +// filterForm.getBranch(), +// new OffsetablePageRequest(0, DEFAULT_PAGE_SIZE)); +// int totalPages = commitsPage.getTotalPages(); +// if (totalPages > 0) { +// List pageNumbers = IntStream.rangeClosed(1, totalPages) +// .boxed() +// .collect(Collectors.toList()); +// model.addAttribute("pageNumbers", pageNumbers); +// } +// filterForm.setCommitsPage(commitsPage); +// model.addAttribute("filterForm", filterForm); +// model.addAttribute("authors", filteringService.getRepositoryAuthors(filterForm.getUrl(), filterForm.getBranch())); +// return new ModelAndView()FILTER_COMMITS + "?repositoryUrl="+filterForm.getUrl() + "&branchName=" +filterForm.getBranch() ; +// } } diff --git a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java index 6569450..bd542eb 100644 --- a/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java +++ b/src/main/java/ru/ulstu/extractor/repository/CommitRepository.java @@ -19,8 +19,8 @@ import ru.ulstu.extractor.model.Repository; import java.util.List; public interface CommitRepository extends JpaRepository { - @Query("SELECT c FROM Commit c, Repository r, Branch b WHERE c.branch = b AND r = b.repository AND r = :repository AND b.name = :branchName") - Page findByRepositoryAndBranch(Pageable pageable, @Param("repository") Repository repository, @Param("branchName") String branchName); + @Query("SELECT c FROM Commit c, Repository r, Branch b, Author a WHERE c.branch = b AND r = b.repository AND a = c.author AND r = :repository AND b.name = :branchName AND a.name = :author") + Page findByRepositoryAndBranch(Pageable pageable, @Param("repository") Repository repository, @Param("branchName") String branchName, @Param("author") String author); @Query("SELECT new ru.ulstu.extractor.model.CommitAuthorStatistic(c.author.name, COUNT(DISTINCT c.hash)) FROM Commit c GROUP by c.author.name") List getCommitAuthorStatistic(); diff --git a/src/main/java/ru/ulstu/extractor/service/FilteringService.java b/src/main/java/ru/ulstu/extractor/service/FilteringService.java index 52cca2d..d5cdd73 100644 --- a/src/main/java/ru/ulstu/extractor/service/FilteringService.java +++ b/src/main/java/ru/ulstu/extractor/service/FilteringService.java @@ -40,11 +40,13 @@ public class FilteringService { public Page getCommits(@NotNull String repositoryUrl, @NotNull String branchName, + @NotNull String author, Pageable pageable) { return commitRepository.findByRepositoryAndBranch( pageable, repositoryRepository.findByUrl(repositoryUrl), - branchName + branchName, + author ); } diff --git a/src/main/resources/templates/filterCommits.html b/src/main/resources/templates/filterCommits.html index 17c6039..2bb0c1b 100644 --- a/src/main/resources/templates/filterCommits.html +++ b/src/main/resources/templates/filterCommits.html @@ -74,6 +74,7 @@ +