Passed
Branch 1.0 (badbbc)
by Morven
01:40
created

SiteConfigExtension   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 25
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 25
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A updateCMSFields() 0 19 1
1
<?php
2
3
namespace SilverCommerce\Postage\Extensions;
4
5
use SilverStripe\Forms\FieldList;
6
use SilverStripe\ORM\DataExtension;
7
use SilverStripe\Forms\LiteralField;
8
use SilverStripe\Forms\GridField\GridField;
9
use SilverStripe\Forms\ToggleCompositeField;
10
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
11
use SilverStripe\Forms\GridField\GridFieldConfig_RelationEditor;
12
use SilverStripe\Forms\GridField\GridFieldAddNewButton;
13
use Symbiote\GridFieldExtensions\GridFieldAddNewMultiClass;
14
use SilverCommerce\Postage\Model\PostageType;
15
16
/**
17
 * Add postage areas to config
18
 */
19
class SiteConfigExtension extends DataExtension
20
{
21
    private static $has_many = [
0 ignored issues
show
introduced by
The private property $has_many is not used, and could be removed.
Loading history...
22
        'PostageTypes' => PostageType::class
23
    ];
24
    
25
    public function updateCMSFields(FieldList $fields)
26
    {
27
        $postage_config = GridFieldConfig_RelationEditor::create();
28
        $postage_config
29
            ->removeComponentsByType(GridFieldAddNewButton::class)
30
            ->addComponent(new GridFieldAddNewMultiClass());
31
32
        $fields->addFieldsToTab(
33
            "Root.Shop",
34
            [
35
                ToggleCompositeField::create(
36
                    'PostageSettings',
37
                    _t("SilverCommerce\Postage.PostageSettings", "Postage Settings"),
38
                    [
39
                        GridField::create(
40
                            'PostageTypes',
0 ignored issues
show
Bug introduced by
'PostageTypes' of type string is incompatible with the type array expected by parameter $args of SilverStripe\View\ViewableData::create(). ( Ignorable by Annotation )

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

40
                            /** @scrutinizer ignore-type */ 'PostageTypes',
Loading history...
41
                            '',
42
                            $this->owner->PostageTypes()
43
                        )->setConfig($postage_config)
44
                    ]
45
                )
46
            ]
47
        );
48
    }
49
}