mirror of
https://github.com/scm-manager/scm-manager.git
synced 2026-02-06 06:39:15 +01:00
Adds a new extension point repository.overview.listOptions that can be used to set the page size, whether to list archived repositories or not and potentially other options for the repository overview. If no extension is bound, the default values will be used.
Committed-by: Eduard Heimbuch <eduard.heimbuch@cloudogu.com>
This commit is contained in:
committed by
SCM-Manager
parent
34bfe49d3e
commit
6ba792e5bc
@@ -112,9 +112,10 @@ public class RepositoryCollectionResource {
|
||||
@DefaultValue("" + DEFAULT_PAGE_SIZE) @QueryParam("pageSize") int pageSize,
|
||||
@QueryParam("sortBy") String sortBy,
|
||||
@DefaultValue("false") @QueryParam("desc") boolean desc,
|
||||
@DefaultValue("true") @QueryParam("showArchived") boolean showArchived,
|
||||
@DefaultValue("") @QueryParam("q") String search
|
||||
) {
|
||||
return adapter.getAll(page, pageSize, createSearchPredicate(search), sortBy, desc,
|
||||
return adapter.getAll(page, pageSize, createSearchPredicate(search, showArchived), sortBy, desc,
|
||||
pageResult -> repositoryCollectionToDtoMapper.map(page, pageSize, pageResult));
|
||||
}
|
||||
|
||||
@@ -144,9 +145,10 @@ public class RepositoryCollectionResource {
|
||||
@DefaultValue("" + DEFAULT_PAGE_SIZE) @QueryParam("pageSize") int pageSize,
|
||||
@QueryParam("sortBy") String sortBy,
|
||||
@DefaultValue("false") @QueryParam("desc") boolean desc,
|
||||
@DefaultValue("true") @QueryParam("showArchived") boolean showArchived,
|
||||
@DefaultValue("") @QueryParam("q") String search
|
||||
) {
|
||||
return adapter.getAll(page, pageSize, createSearchPredicate(namespace, search), sortBy, desc,
|
||||
return adapter.getAll(page, pageSize, createSearchPredicate(namespace, search, showArchived), sortBy, desc,
|
||||
pageResult -> repositoryCollectionToDtoMapper.map(namespace, page, pageSize, pageResult));
|
||||
}
|
||||
|
||||
@@ -221,21 +223,24 @@ public class RepositoryCollectionResource {
|
||||
return SecurityUtils.getSubject().getPrincipals().oneByType(User.class).getName();
|
||||
}
|
||||
|
||||
private Predicate<Repository> createSearchPredicate(String namespace, String search) {
|
||||
if (isNullOrEmpty(search)) {
|
||||
private Predicate<Repository> createSearchPredicate(String namespace, String search, boolean showArchived) {
|
||||
if (isNullOrEmpty(search) && showArchived) {
|
||||
return repository -> repository.getNamespace().equals(namespace);
|
||||
}
|
||||
SearchRequest searchRequest = new SearchRequest(search, true);
|
||||
return repository -> repository.getNamespace().equals(namespace)
|
||||
&& (showArchived || !repository.isArchived())
|
||||
&& SearchUtil.matchesOne(searchRequest, repository.getName(), repository.getNamespace(), repository.getDescription());
|
||||
}
|
||||
|
||||
private Predicate<Repository> createSearchPredicate(String search) {
|
||||
if (isNullOrEmpty(search)) {
|
||||
private Predicate<Repository> createSearchPredicate(String search, boolean showArchived) {
|
||||
if (isNullOrEmpty(search) && showArchived) {
|
||||
return user -> true;
|
||||
}
|
||||
SearchRequest searchRequest = new SearchRequest(search, true);
|
||||
return repository -> SearchUtil.matchesOne(searchRequest, repository.getName(), repository.getNamespace(), repository.getDescription());
|
||||
return repository ->
|
||||
(showArchived || !repository.isArchived())
|
||||
&& SearchUtil.matchesOne(searchRequest, repository.getName(), repository.getNamespace(), repository.getDescription());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user