src/Admin/MarcaAdmin.php line 22

Open in your IDE?
  1. <?php
  2. declare(strict_types=1);
  3. namespace App\Admin;
  4. use App\Admin\TabMenu\ModuloMaestrosTabMenuAdmin;
  5. use App\Entity\Marca;
  6. use Doctrine\ORM\EntityManagerInterface;
  7. use Knp\Menu\ItemInterface;
  8. use Sonata\AdminBundle\Admin\AbstractAdmin;
  9. use Sonata\AdminBundle\Admin\AdminInterface;
  10. use Sonata\AdminBundle\Datagrid\DatagridMapper;
  11. use Sonata\AdminBundle\Datagrid\ListMapper;
  12. use Sonata\AdminBundle\Form\FormMapper;
  13. use Sonata\AdminBundle\Show\ShowMapper;
  14. use Sonata\DoctrineORMAdminBundle\Filter\CallbackFilter;
  15. use Vich\UploaderBundle\Form\Type\VichImageType;
  16. final class MarcaAdmin extends AbstractAdmin
  17. {
  18.     public function __construct(
  19.         $code,
  20.         $class,
  21.         $baseControllerName,
  22.         private ModuloMaestrosTabMenuAdmin $moduloMaestrosTabMenuAdmin,
  23.         private EntityManagerInterface $em
  24.     ) {
  25.         parent::__construct($code$class$baseControllerName);
  26.     }
  27.     protected function configureTabMenu(ItemInterface $menustring $action, ?AdminInterface $childAdmin null): void
  28.     {
  29.         $this->moduloMaestrosTabMenuAdmin->configureTabMenu($this$menu$action$childAdmin);
  30.         parent::configureTabMenu($menu$action$childAdmin); // TODO: Change the autogenerated stub
  31.     }
  32.     protected function configureDefaultSortValues(array &$sortValues): void
  33.     {
  34.         parent::configureDefaultSortValues($sortValues);
  35.         $sortValues['_sort_by'] = 'nombre';
  36.         $sortValues['_sort_order']='ASC';
  37.     }
  38.     protected function configureDatagridFilters(DatagridMapper $filter): void
  39.     {
  40.         if($this->getRequest()->get('nav_prometeo')) {
  41.             $this->getDatagrid()->setValue('_per_page'null$_ENV['REGISTROS_PER_PAGE_MODAL']);
  42.         }
  43.         $filter
  44.             ->add('busqueda'CallbackFilter::class, [
  45.                 'label' => false,
  46.                 'attr' => [
  47.                     'class' => 'filter-to-navbar-left filter-to-navbar',
  48.                     'data-order' => '1',
  49.                     'placeholder' => 'filter.placeholder.busqueda',
  50.                 ],
  51.                 'callback' => function($queryBuilder$alias$field$value)
  52.                 {
  53.                     if (!$value->hasValue())  return;
  54.                     $this->em->getRepository(Marca::class)->cbFilter($queryBuilder$alias$field$value);
  55.                     return true;
  56.                 },
  57.             ])
  58.         ;
  59.     }
  60.     protected function configureListFields(ListMapper $list): void
  61.     {
  62.         $parent $this->getRequest()->get('pcode');
  63.         $list
  64.             ->add('nombre'null, [
  65.                 'label' => 'list.marca.label.nombre',
  66.                 'identifier' => !$parent true false,
  67.                 'route' => [
  68.                     'name' => 'edit'
  69.                 ]
  70.             ])
  71. //            ->add(ListMapper::NAME_ACTIONS, null, [
  72. //                'actions' => [
  73. //                    'show' => [],
  74. //                    'edit' => [],
  75. //                    'delete' => [],
  76. //                ],
  77. //            ])
  78.         ;
  79.     }
  80.     protected function configureFormFields(FormMapper $form): void
  81.     {
  82.         $form
  83.             ->add('logoFile'VichImageType::class, [
  84.                 'label' => false,
  85.                 'required' => false,
  86.                 'allow_delete' => true,
  87.                 'download_uri' => true,
  88.                 'download_label' => false,
  89. //                'download_label' => 'form.marca.label.logo',
  90.                 'attr' => [
  91.                     'data-title_image_delete' => null,
  92.                     'data-message_image_delete' => null,
  93.                     'class' => 'vich-image-load'
  94.                 ]
  95.             ])
  96.             ->add('nombre'null, [
  97.                 'label' => false,
  98.                 'attr' => [
  99.                     'placeholder' => 'form.marca.placeholder.nombre'
  100.                 ]
  101.             ])
  102.         ;
  103.     }
  104.     protected function configureShowFields(ShowMapper $show): void
  105.     {
  106.         $show
  107.             ->add('id')
  108.             ->add('nombre')
  109.             ->add('logo')
  110.             ->add('deletedAt')
  111.             ->add('updatedAt')
  112.             ->add('createdAt')
  113.             ;
  114.     }
  115. }