Passed
Pull Request — master (#259)
by Arnaud
08:22
created

ExtraConfigurationSubscriber::addDefaultFilters()   A

Complexity

Conditions 5
Paths 5

Size

Total Lines 29
Code Lines 16

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 30

Importance

Changes 0
Metric Value
cc 5
eloc 16
c 0
b 0
f 0
nc 5
nop 1
dl 0
loc 29
ccs 0
cts 16
cp 0
crap 30
rs 9.4222
1
<?php
2
3
namespace LAG\AdminBundle\Event\Subscriber;
4
5
use LAG\AdminBundle\Bridge\Doctrine\ORM\Metadata\MetadataHelperInterface;
6
use LAG\AdminBundle\Configuration\ApplicationConfiguration;
7
use LAG\AdminBundle\Event\AdminEvents;
8
use LAG\AdminBundle\Event\Events\Configuration\AdminConfigurationEvent;
9
use LAG\AdminBundle\Field\Helper\FieldConfigurationHelper;
10
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
11
use Symfony\Contracts\Translation\TranslatorInterface;
12
13
/**
14
 * Add extra default configuration for actions and fields.
15
 */
16
// TODO remove this class
17
class ExtraConfigurationSubscriber implements EventSubscriberInterface
18
{
19
    private ApplicationConfiguration $applicationConfiguration;
20
    private MetadataHelperInterface $metadataHelper;
21
    private TranslatorInterface $translator;
22
23 1
    public static function getSubscribedEvents(): array
24
    {
25
        return [
26 1
            AdminEvents::ADMIN_CONFIGURATION => 'enrichAdminConfiguration',
27
        ];
28
    }
29
30
    public function __construct(
31
        ApplicationConfiguration $applicationConfiguration,
32
        MetadataHelperInterface $metadataHelper,
33
        TranslatorInterface $translator
34
    ) {
35
        $this->applicationConfiguration = $applicationConfiguration;
36
        $this->metadataHelper = $metadataHelper;
37
        $this->translator = $translator;
38
    }
39
40
    public function enrichAdminConfiguration(AdminConfigurationEvent $event): void
41
    {
42
        if (!$this->isExtraConfigurationEnabled()) {
43
            return;
44
        }
45
        $configuration = $event->getConfiguration();
46
47
        // Actions
48
        $this->addDefaultActions($configuration);
49
50
        // Add default field configuration: it provides a type, a form type, and a view according to the found metadata
51
        $helper = new FieldConfigurationHelper(
0 ignored issues
show
Deprecated Code introduced by
The class LAG\AdminBundle\Field\He...ieldConfigurationHelper has been deprecated. ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-deprecated  annotation

51
        $helper = /** @scrutinizer ignore-deprecated */ new FieldConfigurationHelper(
Loading history...
52
            $this->translator,
53
            $this->applicationConfiguration,
54
            $this->metadataHelper
55
        );
56
        //$helper->addDefaultFields($configuration, $configuration['entity'], $event->getAdminName());
57
        $helper->addDefaultStrategy($configuration);
58
        $helper->addDefaultRouteParameters($configuration);
59
        //$helper->addDefaultFormUse($configuration);
60
        $helper->provideActionsFieldConfiguration($configuration, $event->getAdminName());
61
62
        // Filters
63
        //$this->addDefaultFilters($configuration);
64
65
        $event->setConfiguration($configuration);
66
    }
67
68
    /**
69
     * Defines the default CRUD actions if no action was configured.
70
     */
71
    private function addDefaultActions(array &$configuration)
72
    {
73
        if (!\array_key_exists('actions', $configuration) || !\is_array($configuration['actions'])) {
74
            $configuration['actions'] = [];
75
        }
76
77
        if (0 !== \count($configuration['actions'])) {
78
            return;
79
        }
80
        $configuration['actions'] = [
81
            'create' => [],
82
            'list' => [],
83
            'edit' => [],
84
            'delete' => [],
85
        ];
86
    }
87
88
    private function isExtraConfigurationEnabled(): bool
89
    {
90
        // TODO
91
        return true;
92
    }
93
}
94