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

AttachmentAdmin::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\FileType;
10
use Vich\UploaderBundle\Templating\Helper\UploaderHelper;
11
12
final class AttachmentAdmin extends AbstractAdmin
13
{
14
    private UploaderHelper $uploaderHelper;
15
16
    public function setUploaderHelper(UploaderHelper $uploaderHelper)
17
    {
18
        $this->uploaderHelper = $uploaderHelper;
19
    }
20
21
    protected function configureFormFields(FormMapper $formMapper)
22
    {
23
        $container = $this->getConfigurationPool()->getContainer();
0 ignored issues
show
Unused Code introduced by
The assignment to $container is dead and can be removed.
Loading history...
24
        $formMapper->add('name');
25
        $fileFieldOptions = ['required' => false];
26
        if (null !== $this->getSubject()->getFileName()) {
27
            $filePath = $this->uploaderHelper->asset($this->getSubject(), 'file');
28
29
            $fileFieldOptions['help'] = 'Current file: '.$filePath;
30
        }
31
        $formMapper->add('file', FileType::class, $fileFieldOptions);
32
        $formMapper->add('lesson');
33
    }
34
35
    protected function configureDatagridFilters(DatagridMapper $datagridMapper)
36
    {
37
        $datagridMapper->add('name');
38
        $datagridMapper->add('lesson.title');
39
        $datagridMapper->add('lesson.module.course');
40
        $datagridMapper->add('fileName');
41
    }
42
43
    protected function configureListFields(ListMapper $listMapper)
44
    {
45
        $listMapper->addIdentifier('name');
46
        $listMapper->add('lesson.title');
47
        $listMapper->add('fileName', 'string', ['template' => 'admin/attachment/download.html.twig']);
48
    }
49
}
50