Skip to content

Commit

Permalink
Added support for searchFields() method in the migrator command
Browse files Browse the repository at this point in the history
  • Loading branch information
javiereguiluz committed May 8, 2020
1 parent 5de84ed commit 9d5c0c2
Show file tree
Hide file tree
Showing 6 changed files with 23 additions and 6 deletions.
14 changes: 13 additions & 1 deletion src/Maker/Migrator.php
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,9 @@ private function addConfigureCrudMethod(CodeBuilder $code, string $entityClassNa
$definesCustomEntityPermission = null !== $entityConfig['list']['item_permission'];
$definesCustomActionDropdown = true === $entityConfig['list']['collapse_actions'];

if (!$definesCustomLabel && !$definesCustomTemplates && !$definesCustomHelp && !$definesCustomPagination && !$definesCustomEntityPermission && !$definesCustomActionDropdown) {
$definesCustomSearchFields = isset($entityConfig['search']['fields']);

if (!$definesCustomLabel && !$definesCustomTemplates && !$definesCustomHelp && !$definesCustomPagination && !$definesCustomEntityPermission && !$definesCustomActionDropdown && !$definesCustomSearchFields) {
return $code;
}

Expand All @@ -167,6 +169,16 @@ private function addConfigureCrudMethod(CodeBuilder $code, string $entityClassNa
}
}

if ($definesCustomSearchFields) {
$searchFieldNames = array_keys($entityConfig['search']['fields']);
$searchFieldVariables = array_map(static function ($searchFieldName) {
return sprintf('\'%s\'', $searchFieldName);
}, $searchFieldNames);
$searchFieldNamesAsString = sprintf('[%s]', implode(', ', $searchFieldVariables));

$code = $code->_methodCallWithRawArguments('searchFields', [$searchFieldNamesAsString]);
}

if ($definesCustomPagination) {
$code = $code
->_methodCall('setPaginatorPageSize', [$entityConfig['list']['max_results']]);
Expand Down
3 changes: 2 additions & 1 deletion tests/Maker/fixtures/output/CategoryCrudController.php
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ public static function getEntityFqcn(): string

public function configureCrud(Crud $crud): Crud
{
return $crud;
return $crud
->searchFields(['id', 'name']);
}

public function configureFields(string $pageName): iterable
Expand Down
3 changes: 2 additions & 1 deletion tests/Maker/fixtures/output/ProductCrudController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ public static function getEntityFqcn(): string

public function configureCrud(Crud $crud): Crud
{
return $crud;
return $crud
->searchFields(['id', 'tags', 'ean', 'image', 'features', 'price', 'name', 'description']);
}

public function configureFields(string $pageName): iterable
Expand Down
3 changes: 2 additions & 1 deletion tests/Maker/fixtures/output/PurchaseCrudController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ public function configureCrud(Crud $crud): Crud
{
return $crud
->setEntityLabelInSingular('Purchase')
->setEntityLabelInPlural('Purchase');
->setEntityLabelInPlural('Purchase')
->searchFields(['id', 'guid', 'billingAddress']);
}

public function configureActions(Actions $actions): Actions
Expand Down
3 changes: 2 additions & 1 deletion tests/Maker/fixtures/output/PurchaseItemCrudController.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ public static function getEntityFqcn(): string

public function configureCrud(Crud $crud): Crud
{
return $crud;
return $crud
->searchFields(['id', 'quantity', 'taxRate']);
}

public function configureFields(string $pageName): iterable
Expand Down
3 changes: 2 additions & 1 deletion tests/Maker/fixtures/output/UserCrudController.php
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,8 @@ public function configureCrud(Crud $crud): Crud
{
return $crud
->setEntityLabelInSingular('User')
->setEntityLabelInPlural('User');
->setEntityLabelInPlural('User')
->searchFields(['id', 'username', 'email', 'contract']);
}

public function configureFields(string $pageName): iterable
Expand Down

0 comments on commit 9d5c0c2

Please sign in to comment.