diff --git a/reposilite-backend/src/main/kotlin/com/reposilite/ui/views/IndexView.kt b/reposilite-backend/src/main/kotlin/com/reposilite/ui/views/IndexView.kt index 3ff9d3b7f..b3b6fcea8 100644 --- a/reposilite-backend/src/main/kotlin/com/reposilite/ui/views/IndexView.kt +++ b/reposilite-backend/src/main/kotlin/com/reposilite/ui/views/IndexView.kt @@ -39,4 +39,14 @@ data class IndexView( val name: String, ) : Entry } + data class GroupedRepository( + val type: String, + val repositories: List + ) + fun getGroupedRepositories(): List = + repositories + .groupBy { it.type } + .entries + .map { GroupedRepository(type = it.key, repositories = it.value) } + .sortedByDescending { it.repositories.size } } \ No newline at end of file diff --git a/reposilite-test/workspace/ui/component/Head.jte b/reposilite-test/workspace/ui/component/Head.jte index fee44eb0d..4e9392503 100755 --- a/reposilite-test/workspace/ui/component/Head.jte +++ b/reposilite-test/workspace/ui/component/Head.jte @@ -3,6 +3,8 @@ + + ${title} @template.lib.Theme() diff --git a/reposilite-test/workspace/ui/component/Header.jte b/reposilite-test/workspace/ui/component/Header.jte index 365722145..0807079cf 100755 --- a/reposilite-test/workspace/ui/component/Header.jte +++ b/reposilite-test/workspace/ui/component/Header.jte @@ -8,16 +8,22 @@
@template.lib.icons.SearchIcon()
- + - diff --git a/reposilite-test/workspace/ui/index.jte b/reposilite-test/workspace/ui/index.jte index faca6fe86..67b3a683f 100755 --- a/reposilite-test/workspace/ui/index.jte +++ b/reposilite-test/workspace/ui/index.jte @@ -25,24 +25,29 @@

-
+
@for(Project project : view.getHighlightedProjects()) -
+

${project.getName()}

${project.getDescription()}

@for(String packageName : project.getSupportedPackages()) -

+

@if(packageName.equals("Generic")) - Generic + Generic @elseif(packageName.equals("Maven")) - Maven + Maven @elseif(packageName.equals("Docker")) - Docker + Docker @elseif(packageName.equals("NPM")) - NPM + NPM @endif

@endfor @@ -54,56 +59,34 @@
-
- @for(IndexView.Repository repository : view.getRepositories()) -
-
-
- -
-

${repository.getName().toUpperCase()}

-
+ @for(var group : view.getGroupedRepositories()) + -
- @if (view.getBrowsedRepository() == null) -<%-- --%> - @else -
- @for(IndexView.BrowsedRepository.Entry entry : view.getBrowsedRepository().getFiles()) - @if (entry instanceof IndexView.BrowsedRepository.Directory directory) -
-
-

${directory.getName()}

+ "> +
+

${repository.getName()}

- @elseif (entry instanceof IndexView.BrowsedRepository.File file) -
-
-

${file.getName()}

-
- @endif - @endfor + @endfor +
- @endif + @endfor