Passed
Pull Request — master (#45)
by Paweł
10:26
created

AuthorAdmin::setUploaderHelper()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 1
c 0
b 0
f 0
dl 0
loc 3
rs 10
cc 1
nc 1
nop 1
1
<?php
2
3
namespace App\Admin;
4
5
use App\Entity\Author;
6
use Sonata\AdminBundle\Admin\AbstractAdmin;
7
use Sonata\AdminBundle\Datagrid\DatagridMapper;
8
use Sonata\AdminBundle\Datagrid\ListMapper;
9
use Sonata\AdminBundle\Form\FormMapper;
10
use Symfony\Component\Form\Extension\Core\Type\ChoiceType;
11
use Symfony\Component\Form\Extension\Core\Type\FileType;
12
use Symfony\Component\Form\Extension\Core\Type\TextType;
13
use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
14
15
final class AuthorAdmin extends AbstractAdmin
16
{
17
    private UploaderHelper $uploaderHelper;
18
19
    public function setUploaderHelper(UploaderHelper $uploaderHelper)
20
    {
21
        $this->uploaderHelper = $uploaderHelper;
22
    }
23
24
    protected function configureFormFields(FormMapper $formMapper)
25
    {
26
        $container = $this->getConfigurationPool()->getContainer();
0 ignored issues
show
Unused Code introduced by
The assignment to $container is dead and can be removed.
Loading history...
27
        $formMapper->add('name', TextType::class);
28
        $formMapper->add('bio', TextType::class);
29
        $formMapper->add('gender', ChoiceType::class, [
30
                'choices' => [
31
                    'Male' => Author::AUTHOR_GENDER_MALE,
32
                    'Female' => Author::AUTHOR_GENDER_FEMALE,
33
                    'Other' => Author::AUTHOR_GENDER_OTHER,
34
                ],
35
                'required' => true,
36
            ]
37
        );
38
        $formMapper->add('courses');
39
        $fileFieldOptions = ['required' => false];
40
        if (null !== $this->getSubject()->getPicture()) {
41
            $imagePath = $this->uploaderHelper->asset($this->getSubject(), 'pictureFile');
42
43
            $fileFieldOptions['help'] = '<img src="'.$imagePath.'" class="admin-preview" />';
44
        }
45
        $formMapper->add('pictureFile', FileType::class, $fileFieldOptions);
46
    }
47
48
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
49
    {
50
        $datagridMapper->add('name');
51
    }
52
53
    protected function configureListFields(ListMapper $listMapper)
54
    {
55
        $listMapper->addIdentifier('name');
56
        $listMapper->add('bio');
57
        $listMapper->add('picture');
58
        $listMapper->add('courses');
59
        $listMapper->add('created');
60
        $listMapper->add('updated');
61
    }
62
}
63