AdminImportTrait   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 35
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 1
Metric Value
dl 0
loc 35
rs 10
c 1
b 0
f 1
wmc 3

2 Methods

Rating   Name   Duplication   Size   Complexity  
A configureRoutes() 0 10 1
A getDashboardActions() 0 18 2
1
<?php
2
3
namespace Doctrs\SonataImportBundle\Admin;
4
5
6
use Sonata\AdminBundle\Admin\AbstractAdmin;
7
use Sonata\AdminBundle\Route\RouteCollection;
8
use Symfony\Component\Security\Core\Exception\InvalidArgumentException;
9
10
trait AdminImportTrait {
11
12
13
    protected function configureRoutes(RouteCollection $collection)
14
    {
15
        $collection->add('import', 'import', [
16
            '_controller' => 'DoctrsSonataImportBundle:Default:index'
17
        ]);
18
        $collection->add('upload', '{id}/upload', [
19
            '_controller' => 'DoctrsSonataImportBundle:Default:upload'
20
        ]);
21
        $collection->add('importStatus', '{id}/upload/status', [
22
            '_controller' => 'DoctrsSonataImportBundle:Default:importStatus'
23
        ]);
24
    }
25
26
27
    public function getDashboardActions()
28
    {
29
        if (!$this instanceof AbstractAdmin) {
30
            throw new InvalidArgumentException(sprintf('Class "%s" must by instanceof "Sonata\AdminBundle\Admin\AbstractAdmin"',
31
                get_class($this)
32
            ));
33
        }
34
        $actions = parent::getDashboardActions();
35
36
        $actions['import'] = array(
37
            'label'              => 'Import',
38
            'url'                => $this->generateUrl('import'),
39
            'icon'               => 'upload',
40
            'translation_domain' => 'SonataAdminBundle', // optional
41
            'template'           => 'SonataAdminBundle:CRUD:dashboard__action.html.twig', // optional
42
        );
43
44
        return $actions;
45
    }
46
47
}
48