Skip to content

Commit d6d0b95

Browse files
committed
Create package list filters [TEMP]
1 parent 8af8f6e commit d6d0b95

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

src/Controller/Dashboard/DashboardPackagesController.php

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use CodedMonkey\Dirigent\Attribute\IsGrantedAccess;
66
use CodedMonkey\Dirigent\Doctrine\Entity\Package;
77
use CodedMonkey\Dirigent\Doctrine\Entity\PackageFetchStrategy;
8+
use CodedMonkey\Dirigent\Doctrine\Entity\Registry;
89
use CodedMonkey\Dirigent\Doctrine\Repository\PackageRepository;
910
use CodedMonkey\Dirigent\EasyAdmin\PackagePaginator;
1011
use CodedMonkey\Dirigent\Form\PackageAddMirroringFormType;
@@ -46,14 +47,24 @@ public function list(Request $request): Response
4647
$queryBuilder->setParameter('query', "%{$query}%");
4748
}
4849

50+
if (null !== $registryId = $request->query->get('registry')) {
51+
$registry = $this->entityManager->getRepository(Registry::class)->find($registryId);
52+
53+
$queryBuilder->andWhere($queryBuilder->expr()->eq('package.registry', ':registry'));
54+
$queryBuilder->setParameter('registry', $registry);
55+
}
56+
4957
$paginatorDto = new PaginatorDto(20, 3, 1, true, null);
5058
$paginatorDto->setPageNumber($request->query->getInt('page', 1));
5159
$paginator = (new PackagePaginator($this->adminUrlGenerator))->paginate($paginatorDto, $queryBuilder);
5260
$packages = $paginator->getResults();
5361

62+
$registries = $this->entityManager->getRepository(Registry::class)->findAll();
63+
5464
return $this->render('dashboard/packages/list.html.twig', [
5565
'packages' => $packages,
5666
'paginator' => $paginator,
67+
'registries' => $registries,
5768
]);
5869
}
5970

templates/dashboard/packages/list.html.twig

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,24 @@
2525
{% endblock %}
2626

2727
{% block page_content %}
28+
<div class="d-flex align-items-center gap-2 mb-3">
29+
<div>{{ 'Filter by'|trans }}</div>
30+
<div>
31+
<div class="dropdown">
32+
<button class="btn btn-secondary dropdown-toggle" type="button" data-bs-toggle="dropdown" aria-expanded="false">
33+
{{ 'Registry'|trans }}
34+
</button>
35+
<ul class="dropdown-menu">
36+
<li><a class="dropdown-item" href="#">{{ 'Local'|trans }}</a></li>
37+
{% for registry in registries %}
38+
{% set filterUrl = dashboard_path('dashboard_packages', {registry: registry.id}) %}
39+
<li><a class="dropdown-item" href="{{ filterUrl }}">{{ registry.name }}</a></li>
40+
{% endfor %}
41+
</ul>
42+
</div>
43+
</div>
44+
</div>
45+
2846
<div class="d-grid gap-3">
2947
{% for package in packages %}
3048
<div class="card">

0 commit comments

Comments
 (0)