GridFieldExpandableForm::handleItem()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 16

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 16
rs 9.7333
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
namespace SilverStripe\GridFieldAddOns;
4
5
use SilverStripe\View\Requirements;
6
use SilverStripe\Core\Injector\Injector;
7
use SilverStripe\Forms\GridField\GridField_URLHandler;
8
use SilverStripe\Forms\GridField\GridField_HTMLProvider;
9
10
class GridFieldExpandableForm implements GridField_URLHandler, GridField_HTMLProvider
11
{
12
    public $template = self::class;
13
14
    public $formorfields;
15
16
    public function __construct($formorfields = null)
17
    {
18
        $this->formorfields = $formorfields;
19
    }
20
21
    public function getURLHandlers($gridField)
22
    {
23
        return array(
24
            'expand/$ID' => 'handleItem',
25
        );
26
    }
27
28
    public function handleItem($gridField, $request)
0 ignored issues
show
Documentation introduced by
The return type could not be reliably inferred; please add a @return annotation.

Our type inference engine in quite powerful, but sometimes the code does not provide enough clues to go by. In these cases we request you to add a @return annotation as described here.

Loading history...
29
    {
30
        $controller = $gridField->getForm()->getController();
31
        $record = $gridField->getList()->byId($request->param("ID"));
32
        $handler = Injector::inst()->create(
33
            GridFieldExpandableForm_ItemRequest::class,
34
            $gridField,
35
            $this,
36
            $record,
37
            $controller,
38
            'DetailForm',
39
            $this->formorfields
40
        );
41
42
        return $handler->handleRequest($request);
43
    }
44
45
    public function getHTMLFragments($gridField)
46
    {
47
        Requirements::javascript('i-lateral/silverstripe-gridfield-addons:/javascript/GridFieldExpandableForm.js');
48
        Requirements::css('i-lateral/silverstripe-gridfield-addons:/css/GridFieldExpandableForm.css');
49
50
        $gridField->addExtraClass('expandable-forms');
51
        $gridField->setAttribute('data-pseudo-form-url', $gridField->Link('expand'));
52
53
        return array();
54
    }
55
}
56