66use CodedMonkey \Dirigent \Doctrine \Entity \Dependent ;
77use CodedMonkey \Dirigent \Doctrine \Entity \Package ;
88use CodedMonkey \Dirigent \Doctrine \Entity \PackageFetchStrategy ;
9+ use CodedMonkey \Dirigent \Doctrine \Entity \Provider ;
10+ use CodedMonkey \Dirigent \Doctrine \Entity \Registry ;
911use CodedMonkey \Dirigent \Doctrine \Entity \Suggester ;
1012use CodedMonkey \Dirigent \Doctrine \Repository \PackageRepository ;
1113use CodedMonkey \Dirigent \EasyAdmin \PackagePaginator ;
@@ -48,14 +50,24 @@ public function list(Request $request): Response
4850 $ queryBuilder ->setParameter ('query ' , "% {$ query }% " );
4951 }
5052
53+ if (null !== $ registryId = $ request ->query ->get ('registry ' )) {
54+ $ registry = $ this ->entityManager ->getRepository (Registry::class)->find ($ registryId );
55+
56+ $ queryBuilder ->andWhere ($ queryBuilder ->expr ()->eq ('package.registry ' , ':registry ' ));
57+ $ queryBuilder ->setParameter ('registry ' , $ registry );
58+ }
59+
5160 $ paginatorDto = new PaginatorDto (20 , 3 , 1 , true , null );
5261 $ paginatorDto ->setPageNumber ($ request ->query ->getInt ('page ' , 1 ));
5362 $ paginator = (new PackagePaginator ($ this ->adminUrlGenerator ))->paginate ($ paginatorDto , $ queryBuilder );
5463 $ packages = $ paginator ->getResults ();
5564
65+ $ registries = $ this ->entityManager ->getRepository (Registry::class)->findAll ();
66+
5667 return $ this ->render ('dashboard/packages/list.html.twig ' , [
5768 'packages ' => $ packages ,
5869 'paginator ' => $ paginator ,
70+ 'registries ' => $ registries ,
5971 ]);
6072 }
6173
@@ -77,6 +89,8 @@ public function info(string $packageName, ?string $packageVersion = null): Respo
7789 }
7890
7991 $ dependentCount = $ this ->entityManager ->getRepository (Dependent::class)->count (['dependentPackageName ' => $ package ->getName ()]);
92+ $ implementationCount = $ this ->entityManager ->getRepository (Provider::class)->count (['providedPackageName ' => $ package ->getName () . '-implementation ' ]);
93+ $ providerCount = $ this ->entityManager ->getRepository (Provider::class)->count (['providedPackageName ' => $ package ->getName ()]);
8094 $ suggesterCount = $ this ->entityManager ->getRepository (Suggester::class)->count (['suggestedPackageName ' => $ package ->getName ()]);
8195
8296 return $ this ->render ('dashboard/packages/package_info.html.twig ' , [
@@ -85,6 +99,8 @@ public function info(string $packageName, ?string $packageVersion = null): Respo
8599 'version ' => $ version ,
86100
87101 'dependentCount ' => $ dependentCount ,
102+ 'implementationCount ' => $ implementationCount ,
103+ 'providerCount ' => $ providerCount ,
88104 'suggesterCount ' => $ suggesterCount ,
89105 ]);
90106 }
0 commit comments