nick-denry / yii2-filter-action-column
Yii2 Gridview ActionColumn component with custom filter content field
Installs: 2 923
Dependents: 0
Suggesters: 0
Security: 0
Stars: 3
Watchers: 2
Forks: 2
Open Issues: 0
Type:yii2-extension
Requires
- php: >=5.6
- yiisoft/yii2: >=2.0.11
This package is auto-updated.
Last update: 2024-11-05 09:02:36 UTC
README
ActionColumn with filter content support for Yii2 GridView
Provides ActionColumn with filterContent option for yii2 GridView (ActionColumn header button)
Preview
With AdminLTE
Installation
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.
Usage
-
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', ]); } ],
Extra settings
-
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 ],