Issues (78)

src/TabulatorAddNewButton.php (2 issues)

Labels
1
<?php
2
3
namespace LeKoala\Tabulator;
4
5
use SilverStripe\ORM\DataObject;
6
use SilverStripe\ORM\RelationList;
7
use SilverStripe\View\ArrayData;
8
9
/**
10
 * This component provides a button for opening the add new form
11
 */
12
class TabulatorAddNewButton extends AbstractTabulatorTool
13
{
14
    public function forTemplate()
15
    {
16
        $grid = $this->tabulatorGrid;
17
        $singleton = singleton($grid->getModelClass());
18
        $context = [];
19
        if ($grid->getList() instanceof RelationList) {
20
            $record = $grid->getForm()->getRecord();
21
            if ($record && $record instanceof DataObject) {
0 ignored issues
show
$record is always a sub-type of SilverStripe\ORM\DataObject.
Loading history...
22
                $context['Parent'] = $record;
23
            }
24
        }
25
26
        if (!$singleton->canCreate(null, $context)) {
27
            return false;
28
        }
29
30
        if (!$this->buttonName) {
31
            // provide a default button name, can be changed by calling {@link setButtonName()} on this component
32
            $objectName = $singleton->i18n_singular_name();
33
            $this->buttonName = _t('SilverStripe\\Forms\\GridField\\GridField.Add', 'Add {name}', ['name' => $objectName]);
34
        }
35
36
        $data = new ArrayData([
37
            'NewLink' => $grid->getCreateLink(),
38
            'ButtonName' => $this->buttonName,
39
            'ButtonClasses' => 'btn-primary font-icon-plus-circled new new-link',
40
            'Icon' => $this->isAdmini() ? 'add' : '',
41
        ]);
42
        return $this->renderWith($this->getViewerTemplates(), $data);
0 ignored issues
show
$data of type SilverStripe\View\ArrayData is incompatible with the type array expected by parameter $customFields of SilverStripe\View\ViewableData::renderWith(). ( Ignorable by Annotation )

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

42
        return $this->renderWith($this->getViewerTemplates(), /** @scrutinizer ignore-type */ $data);
Loading history...
43
    }
44
}
45