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
introduced
by
![]() |
|||||
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
![]() |
|||||
43 | } |
||||
44 | } |
||||
45 |