2012-05-17 03:22:24 +02:00
|
|
|
<?php
|
2016-08-19 00:51:35 +02:00
|
|
|
|
|
|
|
namespace SilverStripe\Forms\GridField;
|
|
|
|
|
|
|
|
use SilverStripe\View\ArrayData;
|
|
|
|
use SilverStripe\View\SSViewer;
|
|
|
|
|
2012-05-17 03:22:24 +02:00
|
|
|
/**
|
2014-08-15 08:53:05 +02:00
|
|
|
* Adding this class to a {@link GridFieldConfig} of a {@link GridField} adds
|
2013-05-20 12:18:07 +02:00
|
|
|
* a button row to that field.
|
2014-08-15 08:53:05 +02:00
|
|
|
*
|
2012-05-17 03:22:24 +02:00
|
|
|
* The button row provides a space for actions on this grid.
|
2014-08-15 08:53:05 +02:00
|
|
|
*
|
|
|
|
* This row provides two new HTML fragment spaces: 'toolbar-header-left' and
|
2013-05-20 12:18:07 +02:00
|
|
|
* 'toolbar-header-right'.
|
2012-05-17 03:22:24 +02:00
|
|
|
*/
|
2016-11-29 00:31:16 +01:00
|
|
|
class GridFieldButtonRow implements GridField_HTMLProvider
|
|
|
|
{
|
2013-05-20 12:18:07 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
protected $targetFragment;
|
2014-08-15 08:53:05 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
public function __construct($targetFragment = 'before')
|
|
|
|
{
|
|
|
|
$this->targetFragment = $targetFragment;
|
|
|
|
}
|
2012-05-21 04:41:46 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
public function getHTMLFragments($gridField)
|
|
|
|
{
|
2020-04-20 19:58:09 +02:00
|
|
|
$data = new ArrayData([
|
2016-11-29 00:31:16 +01:00
|
|
|
"TargetFragmentName" => $this->targetFragment,
|
|
|
|
"LeftFragment" => "\$DefineFragment(buttons-{$this->targetFragment}-left)",
|
|
|
|
"RightFragment" => "\$DefineFragment(buttons-{$this->targetFragment}-right)",
|
2020-04-20 19:58:09 +02:00
|
|
|
]);
|
2014-08-15 08:53:05 +02:00
|
|
|
|
2016-11-29 00:31:16 +01:00
|
|
|
$templates = SSViewer::get_templates_by_class($this, '', __CLASS__);
|
2020-04-20 19:58:09 +02:00
|
|
|
return [
|
2016-11-29 00:31:16 +01:00
|
|
|
$this->targetFragment => $data->renderWith($templates)
|
2020-04-20 19:58:09 +02:00
|
|
|
];
|
2016-11-29 00:31:16 +01:00
|
|
|
}
|
2012-05-17 03:22:24 +02:00
|
|
|
}
|