mirror of
https://github.com/colymba/GridFieldBulkEditingTools.git
synced 2024-10-22 11:05:57 +02:00
41 lines
2.3 KiB
Markdown
41 lines
2.3 KiB
Markdown
|
# Bulk Manager
|
||
|
Perform actions on multiple records straight from the GridField. Comes with unlink, delete and bulk editing but you can easily create/add your own.
|
||
|
|
||
|
## Usage
|
||
|
Simply add GridFieldBulkManager to your GridFieldConfig
|
||
|
|
||
|
$config->addComponent(new GridFieldBulkManager());
|
||
|
|
||
|
## Configuration
|
||
|
The component's option can be configurated individually or in bulk through the 'config' functions like this:
|
||
|
|
||
|
$config->getComponentByType('GridFieldBulkManager')->setConfig( $reference, $value );
|
||
|
|
||
|
### $config overview
|
||
|
The available configuration options are:
|
||
|
* 'editableFields' : array of string referencing specific CMS fields available for editing
|
||
|
* 'fieldsClassBlacklist' : array of string referencing types (ClassName) of fields that wont be available for editing
|
||
|
* 'fieldsNameBlacklist' : array of string referencing the names of fields that wont be available for editing
|
||
|
|
||
|
## Custom actions
|
||
|
You can remove or add individual action or replace them all via `addBulkAction()` and `removeBulkAction()`
|
||
|
|
||
|
### Adding a custom action
|
||
|
To add a custom bulk action to the list use:
|
||
|
|
||
|
$config->getComponentByType('GridFieldBulkManager')->addBulkAction('actionName', 'Dropdown label', 'ActionHandlerClassName', $frontEndConfig)
|
||
|
|
||
|
You can omit the handler's class name and the front-end config array, those will default to:
|
||
|
* `'GridFieldBulkAction'.ucfirst($name).'Handler'`
|
||
|
* `$config = array( 'isAjax' => true, 'icon' => 'accept', 'isDestructive' => false )`
|
||
|
|
||
|
#### Custom action handler
|
||
|
When creating your awn bulk action RequestHandler, you should extend `GridFieldBulkActionHandler` which will expose 2 usefull functions `getRecordIDList()` and `getRecords()` returning either and array with the selected records IDs or a DataList of the selected records.
|
||
|
|
||
|
Make sue to the define your `$allowed_actions` and `$url_handlers`. See `GridFieldBulkActionEditHandler`, `GridFieldBulkActionDeleteHandler` and `GridFieldBulkActionUnlinkHandler` for examples.
|
||
|
|
||
|
#### Front-end config
|
||
|
The last component's parameter lets you pass an array with configuration options for the UI/UX:
|
||
|
* `isAjax`: if true the action will be called via XHR request otherwise the broser will be redirected to the action's URL
|
||
|
* `icon`: lets you define which icon to use when the action is selected (SilverStripe button icon name only)
|
||
|
* `isDestructive`: if true a confirmation dialog will be shown before the action is processed
|