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

CourseAdmin::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 Sonata\AdminBundle\Admin\AbstractAdmin;
6
use Sonata\AdminBundle\Datagrid\ListMapper;
7
use Sonata\AdminBundle\Datagrid\DatagridMapper;
8
use Sonata\AdminBundle\Form\FormMapper;
9
use Symfony\Component\Form\Extension\Core\Type\DateTimeType;
10
use Symfony\Component\Form\Extension\Core\Type\FileType;
11
use Symfony\Component\Form\Extension\Core\Type\TextType;
12
use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
13
14
final class CourseAdmin extends AbstractAdmin
15
{
16
    private UploaderHelper $uploaderHelper;
17
18
    public function setUploaderHelper(UploaderHelper $uploaderHelper)
19
    {
20
        $this->uploaderHelper = $uploaderHelper;
21
    }
22
23
    protected function configureFormFields(FormMapper $formMapper)
24
    {
25
        $container = $this->getConfigurationPool()->getContainer();
0 ignored issues
show
Unused Code introduced by
The assignment to $container is dead and can be removed.
Loading history...
26
        $formMapper->add('title', TextType::class);
27
        $formMapper->add('description', TextType::class, ['required' => false]);
28
        $formMapper->add('sku', TextType::class, ['required' => false]);
29
        $formMapper->add('visible', null, ['required' => false]);
30
        $formMapper->add('startDate', DateTimeType::class, [
31
            'widget' => 'single_text',
32
            'format' => DateTimeType::HTML5_FORMAT,
33
            'required' => false,
34
            'html5' => true,
35
            'input' => 'datetime',
36
            'attr' => [
37
                'style' => 'width: 200px',
38
            ],
39
        ]);
40
        $formMapper->add('endDate', DateTimeType::class, [
41
            'widget' => 'single_text',
42
            'format' => DateTimeType::HTML5_FORMAT,
43
            'required' => false,
44
            'html5' => true,
45
            'input' => 'datetime',
46
            'attr' => [
47
                'style' => 'width: 200px',
48
            ],
49
        ]);
50
51
        $fileFieldOptions = ['required' => false];
52
        if (null !== $this->getSubject()->getCoverImageName()) {
53
            $imagePath = $this->uploaderHelper->asset($this->getSubject(), 'coverImageFile');
54
55
            $fileFieldOptions['help'] = '<img src="'.$imagePath.'" class="admin-preview" />';
56
        }
57
        $formMapper->add('coverImageFile', FileType::class, $fileFieldOptions);
58
    }
59
60
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
61
    {
62
        $datagridMapper->add('title');
63
        $datagridMapper->add('sku');
64
        $datagridMapper->add('authors');
65
    }
66
67
    protected function configureListFields(ListMapper $listMapper)
68
    {
69
        $listMapper->addIdentifier('title');
70
        $listMapper->add('description');
71
        $listMapper->add('sku');
72
        $listMapper->add('authors');
73
        $listMapper->add('coverImageName');
74
        $listMapper->add('visible');
75
        $listMapper->add('startDate');
76
        $listMapper->add('endDate');
77
    }
78
}
79