1111use App \Admin \Field \VersionField ;
1212use App \Entity \Installation ;
1313use App \Form \Type \Admin \FrameworkFilter ;
14+ use App \Form \Type \Admin \SemverFilter ;
15+ use App \Form \Type \Admin \ServerTypeFilter ;
1416use App \Trait \ExportCrudControllerTrait ;
17+ use App \Trait \SemverSortableCrudControllerTrait ;
1518use EasyCorp \Bundle \EasyAdminBundle \Config \Action ;
1619use EasyCorp \Bundle \EasyAdminBundle \Config \Actions ;
1720use EasyCorp \Bundle \EasyAdminBundle \Config \Crud ;
2528class InstallationCrudController extends AbstractCrudController
2629{
2730 use ExportCrudControllerTrait;
31+ use SemverSortableCrudControllerTrait;
2832
2933 public static function getEntityFqcn (): string
3034 {
@@ -61,7 +65,7 @@ public function configureFields(string $pageName): iterable
6165 yield CodeEditorField::new ('gitChanges ' )->hideOnIndex ();
6266 yield AssociationField::new ('sites ' )->hideOnIndex ();
6367 yield RootDirField::new ('rootDir ' )->setColumns (12 );
64- yield ServerTypeField::new ('server.type ' )->setLabel ('Type ' );
68+ yield ServerTypeField::new ('server.type ' )->setLabel ('Type ' )-> setSortable ( true ) ;
6569 yield AssociationField::new ('server ' );
6670 yield AssociationField::new ('detectionResult ' )->hideOnIndex ();
6771 yield DateTimeField::new ('createdAt ' )->hideOnIndex ();
@@ -73,13 +77,20 @@ public function configureFilters(Filters $filters): Filters
7377 {
7478 return $ filters
7579 ->add (FrameworkFilter::new ('type ' ))
76- ->add ('frameworkVersion ' )
80+ ->add (SemverFilter:: new ( 'frameworkVersion ' , ' ver. ' ) )
7781 ->add ('lts ' )
7882 ->add ('eol ' )
79- ->add ('composerVersion ' )
83+ ->add (SemverFilter:: new ( 'composerVersion ' , ' Comp. ' ) )
8084 ->add ('rootDir ' )
8185 ->add ('server ' )
86+ ->add (ServerTypeFilter::new ('server.type ' , 'Server type ' ))
8287// ->add(SystemFilter::new('system')->mapped(false))
8388 ;
8489 }
90+
91+ #[\Override]
92+ protected function semverSortedProperties (): array
93+ {
94+ return ['frameworkVersion ' , 'composerVersion ' ];
95+ }
8596}
0 commit comments