Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/src/UserBundle/Admin/
Upload File :
Current File : /var/www/v3.cesa.co.za/src/UserBundle/Admin/ClientAdmin.php

<?php

namespace App\UserBundle\Admin;

use Sonata\AdminBundle\Admin\AbstractAdmin;
use Sonata\AdminBundle\Datagrid\ListMapper;
use Sonata\AdminBundle\Datagrid\DatagridMapper;
use Sonata\AdminBundle\Validator\ErrorElement;
use Sonata\AdminBundle\Form\FormMapper;
use Sonata\AdminBundle\Show\ShowMapper;

/**
 * Client Admin
 *
 * @author Otto Saayman <otto@igotafrica.com>
 * @package UserBundle
 * @subpackage Admin
 * @version 0.0.1
 */
class ClientAdmin extends AbstractAdmin {

    protected function generateBaseRouteName(bool $isChildAdmin = false): string
    {
        return 'client';
    }

    protected function generateBaseRoutePattern(bool $isChildAdmin = false): string
    {
        return 'client';
    }

    protected function configureFormFields(FormMapper $formMapper): void {
        $formMapper
                ->add('name')
                ->add('public_id')
                ->add('user_list')
        ;
    }

    protected function configureDatagridFilters(DatagridMapper $datagridMapper): void {
        $datagridMapper
                ->add('name')
                ->add('public_id')
        ;
    }

    protected function configureListFields(ListMapper $listMapper): void {
        $listMapper
                ->addIdentifier('name')
                ->add('public_id')
                ->add('user_list')
                ->add('_action', 'actions', array(
                    'actions' => array(
                        'show' => array(),
                        'edit' => array(),
                        'delete' => array(),
                    )
                ))
        ;
    }

    protected function configureShowFields(ShowMapper $show): void {

        $show
                ->add('name')
                ->add('public_id')
                ->add('secret')
        ;
    }

    public function prePersist($client): void {
        $this->preUpdatePersist($client);
    }

    public function preUpdate($client): void {
        $this->preUpdatePersist($client);
    }

    public function preUpdatePersist($client) {
        if (is_null($client->getSecret())) {
            $client->setSecret(rand(1, 100000));
        }
    }

}