diff --git a/config/datagrid.php b/config/datagrid.php index 6a64430b6..99227936b 100644 --- a/config/datagrid.php +++ b/config/datagrid.php @@ -27,9 +27,9 @@ return [ /** * Default pagination * - * Accepted Values = integer + * Accepted Value = integer */ - // 'pagination' => 10, + 'pagination' => 10, 'operators' => [ 'eq' => "=", diff --git a/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php index 9a9f9b3bb..ee9985354 100644 --- a/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php @@ -17,7 +17,7 @@ class TestDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('products_grid')->addSelect($this->columns)->leftJoin('products', 'products_grid.product_id', '=', 'products.id')->where('products.parent_id', '=', null); + $queryBuilder = DB::table('products_grid')->select('product_id as id')->addSelect($this->columns)->leftJoin('products', 'products_grid.product_id', '=', 'products.id')->where('products.parent_id', '=', null); $this->setQueryBuilder($queryBuilder); } @@ -95,12 +95,49 @@ class TestDataGrid extends AbsGrid ]); } + public function prepareActions() { + $this->prepareAction([ + 'type' => 'Edit', + 'route' => 'admin.catalog.products.edit', + 'icon' => 'icon pencil-lg-icon' + ]); + + $this->prepareAction([ + 'type' => 'Delete', + 'route' => 'admin.catalog.products.delete', + 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'product']), + 'icon' => 'icon trash-icon' + ]); + } + + public function prepareMassActions() { + $this->prepareMassAction([ + 'type' => 'delete', + 'action' => route('admin.catalog.products.massdelete'), + 'method' => 'DELETE' + ]); + + $this->prepareMassAction([ + 'type' => 'update', + 'action' => route('admin.catalog.products.massupdate'), + 'method' => 'PUT', + 'options' => [ + 0 => true, + 1 => false, + ] + ]); + } + public function render() { $this->addColumns(); + $this->prepareActions(); + + $this->prepareMassActions(); + $this->prepareQueryBuilder(); - return view('ui::testgrid.table')->with('results', ['records' => $this->getCollection(), 'columns' => $this->allColumns]); + return view('ui::testgrid.table')->with('results', ['records' => $this->getCollection(), 'columns' => $this->allColumns, 'actions' => $this->actions, 'massactions' => $this->massActions]); } } \ No newline at end of file diff --git a/packages/Webkul/Product/src/Http/Controllers/ProductController.php b/packages/Webkul/Product/src/Http/Controllers/ProductController.php index 2981fe093..619da0939 100644 --- a/packages/Webkul/Product/src/Http/Controllers/ProductController.php +++ b/packages/Webkul/Product/src/Http/Controllers/ProductController.php @@ -203,6 +203,7 @@ class ProductController extends Controller */ public function massDestroy() { + dd(request()->input()); $productIds = explode(',', request()->input('indexes')); foreach ($productIds as $productId) { @@ -221,12 +222,17 @@ class ProductController extends Controller */ public function massUpdate() { + dd(request()->input()); $data = request()->all(); if (!isset($data['massaction-type'])) { return redirect()->back(); } + if(!$data['massaction-type'] == 'update') { + return redirect()->back(); + } + $productIds = explode(',', $data['indexes']); foreach ($productIds as $productId) { diff --git a/packages/Webkul/Ui/src/DataGrid/AbsGrid.php b/packages/Webkul/Ui/src/DataGrid/AbsGrid.php index 939f9a57e..a54542629 100644 --- a/packages/Webkul/Ui/src/DataGrid/AbsGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/AbsGrid.php @@ -19,10 +19,18 @@ abstract class AbsGrid protected $collection = []; + protected $actions = []; + + protected $massActions = []; + protected $request; protected $parse; + abstract public function prepareMassActions(); + + abstract public function prepareActions(); + abstract public function prepareQueryBuilder(); abstract public function addColumns(); @@ -68,6 +76,14 @@ abstract class AbsGrid $this->queryBuilder = $queryBuilder; } + public function prepareAction($action) { + array_push($this->actions, $action); + } + + public function prepareMassAction($massAction) { + array_push($this->massActions, $massAction); + } + public function getCollection() { $p = $this->parse(); diff --git a/packages/Webkul/Ui/src/Resources/assets/sass/components.scss b/packages/Webkul/Ui/src/Resources/assets/sass/components.scss index 5928b1607..980448fc8 100644 --- a/packages/Webkul/Ui/src/Resources/assets/sass/components.scss +++ b/packages/Webkul/Ui/src/Resources/assets/sass/components.scss @@ -85,11 +85,10 @@ align-items: center; font-size: 14px; height: 28px; - width: 98px; border-radius: 2px; .wrapper { - margin-left: 10px; + margin-left: 5px; padding: 0px 5px 0px 5px; display: flex; flex-direction: row; @@ -100,4 +99,8 @@ color: #000311; letter-spacing: -0.22px; } +} + +.filter-tag:not(first-child) { + margin-left: 10px; } \ No newline at end of file diff --git a/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php b/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php index 5dffa79eb..1e349aa7d 100644 --- a/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/datagrid/filters.blade.php @@ -2,6 +2,7 @@