<?php
declare(strict_types=1);
namespace App\Admin;
use App\Admin\TabMenu\ModuloMaestrosTabMenuAdmin;
use App\Form\Type\ScriptType;
use Knp\Menu\ItemInterface;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Admin\AdminInterface;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;
final class CanalAdmin extends AbstractAdmin
{
protected $moduloMaestrosTabMenuAdmin;
public function __construct(
$code,
$class,
$baseControllerName,
ModuloMaestrosTabMenuAdmin $moduloMaestrosTabMenuAdmin
) {
parent::__construct($code, $class, $baseControllerName);
$this->moduloMaestrosTabMenuAdmin = $moduloMaestrosTabMenuAdmin;
}
protected function configureTabMenu(ItemInterface $menu, string $action, ?AdminInterface $childAdmin = null): void
{
$this->moduloMaestrosTabMenuAdmin->configureTabMenu($this, $menu, $action, $childAdmin);
parent::configureTabMenu($menu, $action, $childAdmin); // TODO: Change the autogenerated stub
}
protected function configureDatagridFilters(DatagridMapper $filter): void
{
if($this->getRequest()->get('nav_prometeo')) {
$this->getDatagrid()->setValue('_per_page', null, $_ENV['REGISTROS_PER_PAGE_MODAL']);
}
$filter
->add('nombre')
->add('comision')
;
}
protected function configureListFields(ListMapper $list): void
{
$parent = $this->getRequest()->get('pcode');
$list
->add('nombre', null, [
'label' => 'list.canal.label.nombre',
'identifier' => !$parent ? true : false,
'route' => [
'name' => 'edit'
]
])
->add('comision', null, [
'label' => 'list.canal.label.comision'
])
// ->add(ListMapper::NAME_ACTIONS, null, [
// 'actions' => [
// 'show' => [],
// 'edit' => [],
// 'delete' => [],
// ],
// ])
;
}
protected function configureFormFields(FormMapper $form): void
{
$form
->add('nombre', null, [
'label' => false,
'attr' => [
'placeholder' => 'form.canal.placeholder.nombre',
]
])
->add('comision', null, [
'label' => false,
'attr' => [
'placeholder' => 'form.canal.placeholder.comision',
'class' => 'numeric percents'
]
])
->add('descripcion', null, [
'label' => false,
'attr' => [
'placeholder' => 'form.canal.placeholder.descripcion',
]
])
->add('scriptConfiguracionValueDefault', ScriptType::class, [
'template' => 'SCRIPTS/Canal/configuracion_value_default.html.twig'
])
;
}
protected function configureShowFields(ShowMapper $show): void
{
$show
->add('nombre')
->add('comision')
;
}
}