From 9e2e73d0b3cec8c429d5d10a553d75ed5ab263bc Mon Sep 17 00:00:00 2001 From: Webkul Date: Thu, 10 Oct 2019 13:53:36 +0530 Subject: [PATCH] Datagrid actions enhancement, now action can have a key called condition which must return boolean in order to trigger that action's visibility --- .../Admin/src/DataGrids/ProductDataGrid.php | 5 ++- .../Resources/views/datagrid/body.blade.php | 40 +++++++++++-------- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php index efba323be..bac760717 100644 --- a/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ProductDataGrid.php @@ -130,6 +130,9 @@ class ProductDataGrid extends DataGrid public function prepareActions() { $this->addAction([ 'title' => 'Edit Product', + 'condition' => function() { + return true; + }, 'method' => 'GET', // use GET request only for redirect purposes 'route' => 'admin.catalog.products.edit', 'icon' => 'icon pencil-lg-icon' @@ -149,7 +152,7 @@ class ProductDataGrid extends DataGrid public function prepareMassActions() { $this->addMassAction([ 'type' => 'delete', - 'label' => 'Delete', + 'label' => 'Delete', 'action' => route('admin.catalog.products.massdelete'), 'method' => 'DELETE' ]); diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php index 2accd0e53..f21ac7108 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/body.blade.php @@ -42,24 +42,30 @@
@foreach ($actions as $action) - + + @endif - - @if ($action['method'] != 'GET') - v-on:click="doAction($event)" - @endif - - data-method="{{ $action['method'] }}" - data-action="{{ route($action['route'], $record->{$index}) }}" - data-token="{{ csrf_token() }}" - - @if (isset($action['title'])) - title="{{ $action['title'] }}" - @endif> - - @endforeach