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
|
|
|
*/
|
|
|
|
class GridFieldButtonRow implements GridField_HTMLProvider {
|
2013-05-20 12:18:07 +02:00
|
|
|
|
2012-05-21 04:41:46 +02:00
|
|
|
protected $targetFragment;
|
2014-08-15 08:53:05 +02:00
|
|
|
|
2012-05-21 04:41:46 +02:00
|
|
|
public function __construct($targetFragment = 'before') {
|
|
|
|
$this->targetFragment = $targetFragment;
|
|
|
|
}
|
|
|
|
|
2012-05-17 03:22:24 +02:00
|
|
|
public function getHTMLFragments( $gridField) {
|
2012-05-21 04:41:46 +02:00
|
|
|
$data = new ArrayData(array(
|
2013-06-21 15:22:00 +02:00
|
|
|
"TargetFragmentName" => $this->targetFragment,
|
2012-05-21 04:41:46 +02:00
|
|
|
"LeftFragment" => "\$DefineFragment(buttons-{$this->targetFragment}-left)",
|
|
|
|
"RightFragment" => "\$DefineFragment(buttons-{$this->targetFragment}-right)",
|
|
|
|
));
|
2014-08-15 08:53:05 +02:00
|
|
|
|
2016-08-23 04:32:26 +02:00
|
|
|
$templates = SSViewer::get_templates_by_class($this, '', __CLASS__);
|
2012-05-17 03:22:24 +02:00
|
|
|
return array(
|
2016-08-23 04:32:26 +02:00
|
|
|
$this->targetFragment => $data->renderWith($templates)
|
2012-05-17 03:22:24 +02:00
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|