Provides ActionColumn with filterContent option for yii2 GridView (ActionColumn header button)
With AdminLTE
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist nick-denry/yii2-filter-action-column
or add
"nick-denry/yii2-filter-action-column": "^0.1.0"
to the require section of your composer.json
file.
Setup
1.1. In your GridView view
use nickdenry\grid\FilterContentActionColumn;
1.2. Replace your default ActionColumn
with
[
'class' => FilterContentActionColumn::className(),
// Add your own filterContent
'filterContent' => function()
{
return '<div class="btn-group"> '.
Html::a('<i class="fa fa-search"></i> Search', ['#'], [
'class' => 'btn btn-default search-filter', 'title' => 'Find page',
]).
Html::a('<i class="fa fa-times"></i>', [''], [
'class' => 'btn btn-default reset-search-filter', 'title' => 'Reset filter',
]).
'</div>';
},
/* Another actionColumn options */
],
Additional options per action button
Extension provides GridView action buttons additional options by name, i.e.
Set individual class per each button:
[
'class' => FilterContentActionColumn::className(),
// Set custom classes
'buttonAdditionalOptions' => [
'view' => ['class' => 'btn btn-lg btn-success'],
'update' => ['class' => 'btn btn-default btn-sm'],
'delete' => ['class' => 'btn btn-danger btn-sm'],
],
...
// Add your own filterContent
],
or set buttons
as usual:
'buttons' => [
'view' => function($url, $model, $key) {
return Html::a(
Html::tag('span', '', ['class' => "glyphicon glyphicon-eye-open"]),
['some/url'],
[
'class' => 'btn btn-default btn-sm', // Here is simple string class
'target' => '_blank',
]);
}
],
Setup buttons classes per application.
3.1. Via DI in your app config
'container' => [
'definitions' => [
nickdenry\grid\FilterContentActionColumn::class => [
'buttonAdditionalOptions' => [
'view' => ['class' => 'btn btn-default btn-sm'],
'update' => ['class' => 'btn btn-default btn-sm'],
'delete' => ['class' => 'btn btn-danger btn-sm'],
// You could also set your "extra" button class
// like you point it in "template" option
// i.e. 'template' => '{view} {update} {delete} {extra}',
'extra' => ['class' => 'btn btn-success btn-sm'],
],
],
],
],
Additional information:
3.2. If you want to override some default button, but keep it's "global" per-application class attribute
'buttons' => [
'view' => function($url, $model, $key, $additionalOptions) {
return Html::a(
Html::tag('span', '', ['class' => "glyphicon glyphicon-eye-open"]),
['some/url'],
[
'class' => $additionalOptions['class'],
'target' => '_blank',
]
);
},
]
Customize delete confirmation text
via deleteConfirmText
property
[
'class' => FilterContentActionColumn::className(),
// Confirmation text
'deleteConfirmText' => function($model) {
return 'Are you sure you want to delete "'.$model->title.'" page?';
},
...
// Add your own filterContent
],
or simply
[
'class' => FilterContentActionColumn::className(),
// Confirmation text
'deleteConfirmText' => 'Custom confirmation',
...
// Add your own filterContent
],
Comments