<?php
namespace App\Admin;

use App\Entity\UserRole;
use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Form\FormMapper;
use Symfony\Component\Form\Extension\Core\Type\TextType;

final class UserAdmin extends AbstractAdmin
{
    protected function configureFormFields(FormMapper $formMapper)
    {
        $formMapper->with('New user', ['class' => 'col-md-8']);
            $formMapper->add('name', TextType::class);
            $formMapper->add('username', TextType::class);
            $formMapper->add('password', TextType::class);
            $formMapper->add('isActive', TextType::class);
        $formMapper->end();

        $formMapper->with('User roles', ['class' => 'col-md-4']);
        $formMapper->add('uroles', 'sonata_type_model', [
            'multiple'              => true,
            'expanded'              => true,     // or false
            'class'                 => UserRole::class,
            'property'              => 'name',   // or any field in your media entity
            'label'                 => 'Roles',
            'btn_add'               => true,
            'btn_list'              => false,
            'btn_delete'            => true,
            //            'btn_catalogue'         => 'admin',   // or your own translate catalogue in my case file admin.en.yml
        ]);
        $formMapper->end();

    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
    {
        $datagridMapper->add('name');
        $datagridMapper->add('username');
        $datagridMapper->add('isActive');
        $datagridMapper->add('uroles');
    }

    protected function configureListFields(ListMapper $listMapper)
    {
        $listMapper->addIdentifier('name');
        $listMapper->addIdentifier('username');
        $listMapper->addIdentifier('isActive');
        $listMapper->addIdentifier('uroles');
    }
}
