Passed
Push — main ( 400cf4...75e45b )
by Felix
03:05
created

FeatureFlagFormSelectElement::render()   A

Complexity

Conditions 4
Paths 3

Size

Total Lines 39
Code Lines 22

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 19
CRAP Score 4

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 4
eloc 22
nc 3
nop 0
dl 0
loc 39
ccs 19
cts 19
cp 1
crap 4
rs 9.568
c 1
b 0
f 0
1
<?php
2
3
namespace Aoe\FeatureFlag\Form\Element;
4
5
/***************************************************************
6
 *  Copyright notice
7
 *
8
 *  (c) 2021 AOE GmbH <[email protected]>
9
 *
10
 *  All rights reserved
11
 *
12
 *  This script is part of the TYPO3 project. The TYPO3 project is
13
 *  free software; you can redistribute it and/or modify
14
 *  it under the terms of the GNU General Public License as published by
15
 *  the Free Software Foundation; either version 3 of the License, or
16
 *  (at your option) any later version.
17
 *
18
 *  The GNU General Public License can be found at
19
 *  http://www.gnu.org/copyleft/gpl.html.
20
 *
21
 *  This script is distributed in the hope that it will be useful,
22
 *  but WITHOUT ANY WARRANTY; without even the implied warranty of
23
 *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
24
 *  GNU General Public License for more details.
25
 *
26
 *  This copyright notice MUST APPEAR in all copies of the script!
27
 ***************************************************************/
28
29
use Aoe\FeatureFlag\Domain\Model\FeatureFlag;
30
use Aoe\FeatureFlag\Domain\Model\Mapping;
31
32
/**
33
 * This is rendered for type=user, renderType=selectFeatureFlag
34
 */
35
class FeatureFlagFormSelectElement extends AbstractFormSelectElement
36
{
37
    /**
38
     * @return array As defined in initializeResultArray() of AbstractNode
39
     */
40 1
    public function render()
41
    {
42
        $propertyArray = [
43 1
            'table' => $this->data['tableName'],
44 1
            'field' => $this->data['fieldName'],
45 1
            'row' => $this->data['databaseRow'],
46
        ];
47
48 1
        $activeMapping = $this->mappingRepository->findOneByForeignTableNameAndUid(
49 1
            $propertyArray['row']['uid'],
50 1
            $propertyArray['table']
51
        );
52
53
        $optionElements = [
54
            [
55 1
                'name' => '',
56
                'value' => 0,
57
                'isSelected' => false,
58
            ],
59
        ];
60
61 1
        foreach ($this->featureFlagRepository->findAll() as $featureFlag) {
62
            /** @var FeatureFlag $featureFlag */
63 1
            $selected = false;
64 1
            if ($activeMapping instanceof Mapping &&
65 1
                $activeMapping->getFeatureFlag()
66 1
                    ->getUid() === $featureFlag->getUid()
67
            ) {
68 1
                $selected = true;
69
            }
70
71 1
            $optionElements[] = [
72 1
                'name' => $featureFlag->getDescription(),
73 1
                'value' => $featureFlag->getUid(),
74 1
                'isSelected' => $selected,
75
            ];
76
        }
77
78 1
        return $this->renderElement($optionElements);
79
    }
80
}
81