PayableUIExtension::updateCMSFields()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 24

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 24
rs 9.536
c 0
b 0
f 0
cc 1
nc 1
nop 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