PayableUIExtension   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 8

Importance

Changes 0
Metric Value
wmc 1
lcom 1
cbo 8
dl 0
loc 28
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A updateCMSFields() 0 24 1
1
<?php
2
3
namespace Bummzack\SsOmnipayUI\Extensions;
4
5
use Bummzack\SsOmnipayUI\GridField\GridFieldCaptureAction;
6
use Bummzack\SsOmnipayUI\GridField\GridFieldPaymentStatusIndicator;
7
use Bummzack\SsOmnipayUI\GridField\GridFieldRefundAction;
8
use Bummzack\SsOmnipayUI\GridField\GridFieldVoidAction;
9
use SilverStripe\Forms\FieldList;
10
use SilverStripe\Forms\GridField\GridField;
11
use SilverStripe\Forms\GridField\GridFieldAddNewButton;
12
use SilverStripe\Forms\GridField\GridFieldConfig_RecordEditor;
13
use SilverStripe\Forms\GridField\GridFieldDeleteAction;
14
use SilverStripe\Forms\GridField\GridFieldFilterHeader;
15
use SilverStripe\Forms\GridField\GridFieldPageCount;
16
use SilverStripe\ORM\DataExtension;
17
18
/**
19
 * Data extension to be used in conjunction with the Payable extension from the omnipay module.
20
 * Make sure to apply this extension to the same model as the Payable extension.
21
 */
22
class PayableUIExtension extends DataExtension
23
{
24
25
    public function updateCMSFields(FieldList $fields)
26
    {
27
        $gridConfig = GridFieldConfig_RecordEditor::create()
28
            ->removeComponentsByType(GridFieldAddNewButton::class)
29
            ->removeComponentsByType(GridFieldDeleteAction::class)
30
            ->removeComponentsByType(GridFieldFilterHeader::class)
31
            ->removeComponentsByType(GridFieldPageCount::class)
32
            ->addComponent(new GridFieldCaptureAction(), 'GridFieldEditButton')
33
            ->addComponent(new GridFieldRefundAction(), 'GridFieldEditButton')
34
            ->addComponent(new GridFieldVoidAction(), 'GridFieldEditButton')
35
            ->addComponent(new GridFieldPaymentStatusIndicator(), 'GridFieldEditButton');
36
37
        $fields->findOrMakeTab('Root.Payments', _t('PayableUIExtension.PaymentsTab', 'Payments'));
38
39
        $fields->addFieldToTab(
40
            'Root.Payments',
41
            GridField::create(
42
                'Payments',
43
                _t('SilverStripe\Omnipay\Model\Payment.PLURALNAME', 'Payments'),
44
                $this->owner->Payments(),
45
                $gridConfig
46
            )
47
        );
48
    }
49
}
50