88use App \Form \Factory \OrganizationSelectorFormFactory ;
99use App \Repository \CommissionableAssetRepository ;
1010use App \Security \Voter \OrganizationVoter ;
11+ use Knp \Component \Pager \PaginatorInterface ;
1112use Sensio \Bundle \FrameworkExtraBundle \Configuration \IsGranted ;
1213use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
1314use Symfony \Component \HttpFoundation \Request ;
@@ -22,23 +23,30 @@ class AssetsListController extends AbstractController
2223{
2324private CommissionableAssetRepository $ assetRepository ;
2425private OrganizationSelectorFormFactory $ organizationSelectorFormFactory ;
26+ private PaginatorInterface $ paginator ;
2527
26- public function __construct (CommissionableAssetRepository $ assetRepository ,OrganizationSelectorFormFactory $ organizationSelectorFormFactory )
28+ public function __construct (CommissionableAssetRepository $ assetRepository ,OrganizationSelectorFormFactory $ organizationSelectorFormFactory, PaginatorInterface $ paginator )
2729 {
2830$ this ->assetRepository =$ assetRepository ;
2931$ this ->organizationSelectorFormFactory =$ organizationSelectorFormFactory ;
32+ $ this ->paginator =$ paginator ;
3033 }
3134
3235public function __invoke (Request $ request ,Organization $ organization ):Response
3336 {
3437/** @var Organization $currentOrganization */
3538$ currentOrganization =$ this ->getUser ();
39+ $ assets =$ this ->paginator ->paginate (
40+ $ this ->assetRepository ->findByOrganizationAndChildrenQb ($ organization ),
41+ $ request ->query ->getInt ('page ' ,1 ),
42+ $ this ->getParameter ('app.pagination_default_limit ' )
43+ );
3644
3745return $ this ->render (
3846'organization/commissionable_asset/list.html.twig ' ,
3947 [
4048'organization ' =>$ organization ,
41- 'assets ' =>$ this -> assetRepository -> findByOrganization ( $ organization ) ,
49+ 'assets ' =>$ assets ,
4250'organization_selector_form ' =>$ this ->organizationSelectorFormFactory ->createForm (
4351$ organization ,
4452$ currentOrganization