diff --git a/config/datagrid.php b/config/datagrid.php index 99227936b..c9b1ddc6c 100644 --- a/config/datagrid.php +++ b/config/datagrid.php @@ -29,7 +29,7 @@ return [ * * Accepted Value = integer */ - 'pagination' => 10, + // 'pagination' => 10, 'operators' => [ 'eq' => "=", diff --git a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php index f72434417..a0886d882 100755 --- a/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeDataGrid.php @@ -17,15 +17,19 @@ class AttributeDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('attributes')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('attributes')->select('id')->addSelect('id', 'code', 'admin_name', 'type', 'is_required', 'is_unique', 'value_per_locale', 'value_per_channel'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; //the column that needs to be treated as index column + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'attributeId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'code', + 'index' => 'code', 'alias' => 'attributeCode', 'label' => 'Code', 'type' => 'string', @@ -45,7 +49,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'admin_name', + 'index' => 'admin_name', 'alias' => 'attributeAdminName', 'label' => 'Name', 'type' => 'string', @@ -55,7 +59,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'type', + 'index' => 'type', 'alias' => 'attributeType', 'label' => 'Type', 'type' => 'string', @@ -65,7 +69,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'is_required', + 'index' => 'is_required', 'alias' => 'attributeRequired', 'label' => 'Required', 'type' => 'boolean', @@ -75,7 +79,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'is_unique', + 'index' => 'is_unique', 'alias' => 'attributeIsUnique', 'label' => 'Unique', 'type' => 'boolean', @@ -85,7 +89,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'value_per_locale', + 'index' => 'value_per_locale', 'alias' => 'attributeValuePerLocale', 'label' => 'Locale Based', 'type' => 'boolean', @@ -95,7 +99,7 @@ class AttributeDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'value_per_channel', + 'index' => 'value_per_channel', 'alias' => 'attributeValuePerChannel', 'label' => 'Channel Based', 'type' => 'boolean', @@ -106,13 +110,13 @@ class AttributeDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.catalog.attributes.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.catalog.attributes.delete', 'icon' => 'icon trash-icon' @@ -120,23 +124,10 @@ class AttributeDataGrid extends AbsGrid } public function prepareMassActions() { - $this->prepareMassAction([ + $this->addMassAction([ 'type' => 'delete', 'action' => route('admin.catalog.attributes.massdelete'), 'method' => 'DELETE' ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/AttributeFamilyDataGrid.php b/packages/Webkul/Admin/src/DataGrids/AttributeFamilyDataGrid.php index 519cc8d08..2c8adeff9 100755 --- a/packages/Webkul/Admin/src/DataGrids/AttributeFamilyDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/AttributeFamilyDataGrid.php @@ -17,15 +17,19 @@ class AttributeFamilyDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('attribute_families')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('attribute_families')->select('id')->addSelect('id', 'code', 'name'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; //the column that needs to be treated as index column + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'attributeFamilyId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class AttributeFamilyDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'code', + 'index' => 'code', 'alias' => 'attributeFamilyCode', 'label' => 'Code', 'type' => 'string', @@ -45,7 +49,7 @@ class AttributeFamilyDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'name', + 'index' => 'name', 'alias' => 'attributeFamilyName', 'label' => 'Name', 'type' => 'string', @@ -56,13 +60,13 @@ class AttributeFamilyDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.catalog.families.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.catalog.families.delete', // 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'product']), @@ -87,17 +91,4 @@ class AttributeFamilyDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/CategoryDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php index 7c4bd5754..9fca0077f 100755 --- a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php @@ -17,15 +17,19 @@ class CategoryDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('categories as cat')->select('cat.id')->addSelect($this->columns)->leftJoin('category_translations as ct', 'cat.id', '=', 'ct.category_id'); + $queryBuilder = DB::table('categories as cat')->select('cat.id', 'ct.name', 'cat.position', 'cat.status', 'ct.locale')->leftJoin('category_translations as ct', 'cat.id', '=', 'ct.category_id'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; //the column that needs to be treated as index column + } + public function addColumns() { $this->addColumn([ - 'column' => 'cat.id', + 'index' => 'cat.id', 'alias' => 'catId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class CategoryDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'ct.name', + 'index' => 'ct.name', 'alias' => 'catName', 'label' => 'Name', 'type' => 'string', @@ -45,7 +49,7 @@ class CategoryDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'cat.position', + 'index' => 'cat.position', 'alias' => 'catPosition', 'label' => 'Position', 'type' => 'string', @@ -55,7 +59,7 @@ class CategoryDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'cat.status', + 'index' => 'cat.status', 'alias' => 'catStatus', 'label' => 'Type', 'type' => 'boolean', @@ -65,7 +69,7 @@ class CategoryDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'ct.locale', + 'index' => 'ct.locale', 'alias' => 'catLocale', 'label' => 'Locale', 'type' => 'boolean', @@ -76,13 +80,13 @@ class CategoryDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.catalog.products.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.catalog.products.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'product']), @@ -107,17 +111,4 @@ class CategoryDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/ChannelDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ChannelDataGrid.php index b6718f0fe..a3ba4f12c 100755 --- a/packages/Webkul/Admin/src/DataGrids/ChannelDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ChannelDataGrid.php @@ -17,15 +17,19 @@ class ChannelDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('channels')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('channels')->addSelect('id', 'code', 'name', 'hostname'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; //the column that needs to be treated as index column + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'channelId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class ChannelDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'code', + 'index' => 'code', 'alias' => 'channelCode', 'label' => 'Code', 'type' => 'string', @@ -45,7 +49,7 @@ class ChannelDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'name', + 'index' => 'name', 'alias' => 'channelName', 'label' => 'Name', 'type' => 'string', @@ -55,7 +59,7 @@ class ChannelDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'hostname', + 'index' => 'hostname', 'alias' => 'channelHostname', 'label' => 'Hostname', 'type' => 'string', @@ -66,13 +70,13 @@ class ChannelDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.channels.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.channels.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'product']), @@ -97,17 +101,4 @@ class ChannelDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/CurrencyDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php index f4c3919ad..c1a9e11d7 100755 --- a/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CurrencyDataGrid.php @@ -17,15 +17,19 @@ class CurrencyDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('currencies')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('currencies')->addSelect('id', 'name', 'code'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; //the column that needs to be treated as index column + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'currencyId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class CurrencyDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'name', + 'index' => 'name', 'alias' => 'currencyName', 'label' => 'Name', 'type' => 'string', @@ -45,7 +49,7 @@ class CurrencyDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'code', + 'index' => 'code', 'alias' => 'currencyCode', 'label' => 'Code', 'type' => 'string', @@ -56,13 +60,13 @@ class CurrencyDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.currencies.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.currencies.delete', 'icon' => 'icon trash-icon' @@ -86,17 +90,4 @@ class CurrencyDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/CustomerDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php index cfe1e4643..442c81d61 100755 --- a/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerDataGrid.php @@ -17,11 +17,15 @@ class CustomerDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('customers as cus')->select('cus.id')->addSelect($this->columns)->leftJoin('customer_groups as cg', 'cus.customer_group_id', '=', 'cg.id'); + $queryBuilder = DB::table('customers as cus')->addSelect('cus.id', 'cus.first_name', 'cus.email', 'cg.name')->leftJoin('customer_groups as cg', 'cus.customer_group_id', '=', 'cg.id'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; //the column that needs to be treated as index column + } + public function addColumns() { $this->addColumn([ @@ -67,13 +71,13 @@ class CustomerDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.customer.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.customer.delete', 'icon' => 'icon trash-icon' @@ -97,17 +101,4 @@ class CustomerDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/CustomerGroupDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerGroupDataGrid.php index 96880b247..5e45525eb 100755 --- a/packages/Webkul/Admin/src/DataGrids/CustomerGroupDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerGroupDataGrid.php @@ -17,11 +17,15 @@ class CustomerGroupDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('customer_groups')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('customer_groups')->addSelect('id', 'name'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ @@ -47,13 +51,13 @@ class CustomerGroupDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.customer.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.customer.delete', 'icon' => 'icon trash-icon' @@ -77,17 +81,4 @@ class CustomerGroupDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/CustomerReviewDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php index f8707432f..3693884d6 100755 --- a/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CustomerReviewDataGrid.php @@ -17,15 +17,19 @@ class CustomerReviewDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('product_reviews as pr')->select('pr.id')->addSelect($this->columns)->leftjoin('products_grid as pg', 'pr.product_id', '=', 'pg.id'); + $queryBuilder = DB::table('product_reviews as pr')->addSelect('pr.id', 'pr.title', 'pr.comment', 'pg.name', 'pr.status')->leftjoin('products_grid as pg', 'pr.product_id', '=', 'pg.id'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'pr.id', + 'index' => 'pr.id', 'alias' => 'reviewId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class CustomerReviewDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'pr.title', + 'index' => 'pr.title', 'alias' => 'reviewTitle', 'label' => 'Title', 'type' => 'string', @@ -45,7 +49,7 @@ class CustomerReviewDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'pr.comment', + 'index' => 'pr.comment', 'alias' => 'reviewComment', 'label' => 'Comment', 'type' => 'string', @@ -55,7 +59,7 @@ class CustomerReviewDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'pg.name', + 'index' => 'pg.name', 'alias' => 'productName', 'label' => 'Product', 'type' => 'string', @@ -65,7 +69,7 @@ class CustomerReviewDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'pr.status', + 'index' => 'pr.status', 'alias' => 'reviewStatus', 'label' => 'Status', 'type' => 'boolean', @@ -76,13 +80,13 @@ class CustomerReviewDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.customer.review.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.customer.review.delete', 'icon' => 'icon trash-icon' @@ -90,13 +94,13 @@ class CustomerReviewDataGrid extends AbsGrid } public function prepareMassActions() { - $this->prepareMassAction([ + $this->addMassAction([ 'type' => 'delete', 'action' => route('admin.catalog.products.massdelete'), 'method' => 'DELETE' ]); - $this->prepareMassAction([ + $this->addMassAction([ 'type' => 'update', 'action' => route('admin.catalog.products.massupdate'), 'method' => 'PUT', @@ -106,17 +110,4 @@ class CustomerReviewDataGrid extends AbsGrid ] ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/ExchangeRatesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php index 5ff2849a9..2b45a8497 100755 --- a/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/ExchangeRatesDataGrid.php @@ -17,15 +17,19 @@ class ExchangeRatesDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('currency_exchange_rates as cer')->select('cer.id')->addSelect($this->columns)->leftJoin('currencies as curr', 'cer.target_currency', '=', 'curr.id'); + $queryBuilder = DB::table('currency_exchange_rates as cer')->addSelect('cer.id', 'curr.name', 'cer.rate')->leftJoin('currencies as curr', 'cer.target_currency', '=', 'curr.id'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'cer.id', + 'index' => 'cer.id', 'alias' => 'exchId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class ExchangeRatesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'curr.name', + 'index' => 'curr.name', 'alias' => 'exchName', 'label' => 'Currency Name', 'type' => 'string', @@ -45,7 +49,7 @@ class ExchangeRatesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'cer.rate', + 'index' => 'cer.rate', 'alias' => 'exchRate', 'label' => 'Exchange Rate', 'type' => 'string', @@ -56,13 +60,13 @@ class ExchangeRatesDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.exchange_rates.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.exchange_rates.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'Exchange Rate']), @@ -87,17 +91,4 @@ class ExchangeRatesDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/InventorySourcesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php index 335160c3c..81ae566d6 100755 --- a/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/InventorySourcesDataGrid.php @@ -17,15 +17,19 @@ class InventorySourcesDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('inventory_sources')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('inventory_sources')->addSelect('id', 'code', 'name', 'priority', 'status'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'invId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class InventorySourcesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'code', + 'index' => 'code', 'alias' => 'invCode', 'label' => 'Code', 'type' => 'string', @@ -45,7 +49,7 @@ class InventorySourcesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'name', + 'index' => 'name', 'alias' => 'invName', 'label' => 'Name', 'type' => 'string', @@ -55,7 +59,7 @@ class InventorySourcesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'priority', + 'index' => 'priority', 'alias' => 'invPriority', 'label' => 'Priority', 'type' => 'string', @@ -65,7 +69,7 @@ class InventorySourcesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'status', + 'index' => 'status', 'alias' => 'invStatus', 'label' => 'Status', 'type' => 'boolean', @@ -76,13 +80,13 @@ class InventorySourcesDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.inventory_sources.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.inventory_sources.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'Exchange Rate']), @@ -107,17 +111,4 @@ class InventorySourcesDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/LocalesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/LocalesDataGrid.php index 1ed4233ef..044321232 100755 --- a/packages/Webkul/Admin/src/DataGrids/LocalesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/LocalesDataGrid.php @@ -17,15 +17,19 @@ class LocalesDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('locales')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('locales')->addSelect('id', 'code', 'name'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'localeId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class LocalesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'code', + 'index' => 'code', 'alias' => 'localeCode', 'label' => 'Code', 'type' => 'string', @@ -45,7 +49,7 @@ class LocalesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'name', + 'index' => 'name', 'alias' => 'localeName', 'label' => 'Name', 'type' => 'string', @@ -56,13 +60,13 @@ class LocalesDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.locales.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.locales.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'Exchange Rate']), @@ -87,17 +91,4 @@ class LocalesDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/NewsLetterDataGrid.php b/packages/Webkul/Admin/src/DataGrids/NewsLetterDataGrid.php index dfdf8c7ea..9ba0df5b7 100755 --- a/packages/Webkul/Admin/src/DataGrids/NewsLetterDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/NewsLetterDataGrid.php @@ -17,15 +17,19 @@ class NewsLetterDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('subscribers_list')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('subscribers_list')->addSelect('id', 'is_subscribed', 'email'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'subsId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class NewsLetterDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'is_subscribed', + 'index' => 'is_subscribed', 'alias' => 'subsCode', 'label' => 'Subscribed', 'type' => 'string', @@ -45,7 +49,7 @@ class NewsLetterDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'email', + 'index' => 'email', 'alias' => 'subsEmail', 'label' => 'Email', 'type' => 'string', @@ -56,13 +60,13 @@ class NewsLetterDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.customers.subscribers.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.customers.subscribers.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'Exchange Rate']), @@ -87,17 +91,4 @@ class NewsLetterDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/RolesDataGrid.php b/packages/Webkul/Admin/src/DataGrids/RolesDataGrid.php index 1abec0a0e..bc285dae5 100755 --- a/packages/Webkul/Admin/src/DataGrids/RolesDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/RolesDataGrid.php @@ -17,15 +17,19 @@ class RolesDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('roles')->select('id')->addSelect($this->columns); + $queryBuilder = DB::table('roles')->addSelect('id', 'name', 'permission_type'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'id', + 'index' => 'id', 'alias' => 'roleId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class RolesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'name', + 'index' => 'name', 'alias' => 'roleName', 'label' => 'Name', 'type' => 'string', @@ -45,7 +49,7 @@ class RolesDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'permission_type', + 'index' => 'permission_type', 'alias' => 'roleType', 'label' => 'Permission Type', 'type' => 'string', @@ -56,7 +60,7 @@ class RolesDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.roles.edit', 'icon' => 'icon pencil-lg-icon' @@ -80,17 +84,4 @@ class RolesDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/SliderDataGrid.php b/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php index 4d682245c..a79da325f 100755 --- a/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/SliderDataGrid.php @@ -17,15 +17,19 @@ class SliderDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('sliders as sl')->select('sl.id')->addSelect($this->columns)->leftJoin('channels as ch', 'sl.channel_id', '=', 'ch.id'); + $queryBuilder = DB::table('sliders as sl')->addSelect('sl.id', 'sl.title', 'ch.name')->leftJoin('channels as ch', 'sl.channel_id', '=', 'ch.id'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'sl.id', + 'index' => 'sl.id', 'alias' => 'sliderId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class SliderDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'sl.title', + 'index' => 'sl.title', 'alias' => 'sliderTitle', 'label' => 'Tile', 'type' => 'string', @@ -45,7 +49,7 @@ class SliderDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'ch.name', + 'index' => 'ch.name', 'alias' => 'channelName', 'label' => 'Channel Name', 'type' => 'string', @@ -56,13 +60,13 @@ class SliderDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.sliders.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.sliders.delete', 'icon' => 'icon trash-icon' @@ -86,17 +90,4 @@ class SliderDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/TaxCategoryDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TaxCategoryDataGrid.php index 7fad061e4..b71bd21eb 100755 --- a/packages/Webkul/Admin/src/DataGrids/TaxCategoryDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TaxCategoryDataGrid.php @@ -17,15 +17,19 @@ class TaxCategoryDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('tax_categories as tr')->select('tr.id')->addSelect($this->columns); + $queryBuilder = DB::table('tax_categories')->addSelect('id', 'name', 'code'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'tr.id', + 'index' => 'id', 'alias' => 'taxCatId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class TaxCategoryDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'tr.name', + 'index' => 'name', 'alias' => 'taxCatName', 'label' => 'Name', 'type' => 'string', @@ -45,7 +49,7 @@ class TaxCategoryDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'tr.code', + 'index' => 'code', 'alias' => 'taxCatCode', 'label' => 'Code', 'type' => 'string', @@ -56,13 +60,13 @@ class TaxCategoryDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.tax-categories.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.tax-categories.delete', 'icon' => 'icon trash-icon' @@ -86,17 +90,4 @@ class TaxCategoryDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/TaxRateDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php index 47b6bce7f..1598965b0 100755 --- a/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TaxRateDataGrid.php @@ -17,15 +17,19 @@ class TaxRateDataGrid extends AbsGrid public function prepareQueryBuilder() { - $queryBuilder = DB::table('tax_rates as tr')->select('tr.id')->addSelect($this->columns); + $queryBuilder = DB::table('tax_rates')->addSelect('id', 'identifier', 'state', 'country', 'tax_rate'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'id'; + } + public function addColumns() { $this->addColumn([ - 'column' => 'tr.id', + 'index' => 'id', 'alias' => 'taxRateId', 'label' => 'ID', 'type' => 'number', @@ -35,7 +39,7 @@ class TaxRateDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'tr.identifier', + 'index' => 'identifier', 'alias' => 'taxRateName', 'label' => 'Identifier', 'type' => 'string', @@ -45,7 +49,7 @@ class TaxRateDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'tr.state', + 'index' => 'state', 'alias' => 'taxRateState', 'label' => 'State', 'type' => 'string', @@ -55,7 +59,7 @@ class TaxRateDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'tr.country', + 'index' => 'country', 'alias' => 'taxRateCountry', 'label' => 'Country', 'type' => 'string', @@ -65,7 +69,7 @@ class TaxRateDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'tr.tax_rate', + 'index' => 'tax_rate', 'alias' => 'taxRate', 'label' => 'Rate', 'type' => 'string', @@ -76,13 +80,13 @@ class TaxRateDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.tax-categories.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.tax-categories.delete', 'icon' => 'icon trash-icon' @@ -106,17 +110,4 @@ class TaxRateDataGrid extends AbsGrid // ] // ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/TestDataGrid.php b/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php index 3ee5bd280..707ebea0b 100644 --- a/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/TestDataGrid.php @@ -17,15 +17,23 @@ class TestDataGrid extends AbsGrid public function prepareQueryBuilder() { - $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); + $queryBuilder = DB::table('products_grid')->addSelect('products_grid.product_id', 'products_grid.sku', 'products_grid.name', 'products.type', 'products_grid.status', 'products_grid.price', 'products_grid.quantity')->leftJoin('products', 'products_grid.product_id', '=', 'products.id'); $this->setQueryBuilder($queryBuilder); } + public function setIndex() { + $this->index = 'product_id'; //the column that needs to be treated as index column + } + + // public function setGridName() { + // $this->gridName = 'products_grid'; // should be the table name for getting proper index + // } + public function addColumns() { $this->addColumn([ - 'column' => 'products_grid.product_id', + 'index' => 'products_grid.product_id', 'alias' => 'productid', 'label' => 'ID', 'type' => 'number', @@ -35,7 +43,7 @@ class TestDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'products_grid.sku', + 'index' => 'products_grid.sku', 'alias' => 'productsku', 'label' => 'SKU', 'type' => 'string', @@ -45,7 +53,7 @@ class TestDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'products_grid.name', + 'index' => 'products_grid.name', 'alias' => 'productname', 'label' => 'Name', 'type' => 'string', @@ -55,7 +63,7 @@ class TestDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'products.type', + 'index' => 'products.type', 'alias' => 'producttype', 'label' => 'Type', 'type' => 'string', @@ -65,7 +73,7 @@ class TestDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'products_grid.status', + 'index' => 'products_grid.status', 'alias' => 'productstatus', 'label' => 'Status', 'type' => 'boolean', @@ -75,7 +83,7 @@ class TestDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'products_grid.price', + 'index' => 'products_grid.price', 'alias' => 'productprice', 'label' => 'Price', 'type' => 'number', @@ -85,7 +93,8 @@ class TestDataGrid extends AbsGrid ]); $this->addColumn([ - 'column' => 'products_grid.quantity', + // 'column' => 'products_grid.quantity', + 'index' => 'products_grid.quantity', 'alias' => 'productqty', 'label' => 'Quantity', 'type' => 'number', @@ -96,13 +105,13 @@ class TestDataGrid extends AbsGrid } public function prepareActions() { - $this->prepareAction([ + $this->addAction([ 'type' => 'Edit', 'route' => 'admin.catalog.products.edit', 'icon' => 'icon pencil-lg-icon' ]); - $this->prepareAction([ + $this->addAction([ 'type' => 'Delete', 'route' => 'admin.catalog.products.delete', 'confirm_text' => trans('ui::app.datagrid.massaction.delete', ['resource' => 'product']), @@ -111,13 +120,13 @@ class TestDataGrid extends AbsGrid } public function prepareMassActions() { - $this->prepareMassAction([ + $this->addMassAction([ 'type' => 'delete', 'action' => route('admin.catalog.products.massdelete'), 'method' => 'DELETE' ]); - $this->prepareMassAction([ + $this->addMassAction([ 'type' => 'update', 'action' => route('admin.catalog.products.massupdate'), 'method' => 'PUT', @@ -127,17 +136,4 @@ class TestDataGrid extends AbsGrid ] ]); } - - public function render() - { - $this->addColumns(); - - $this->prepareActions(); - - $this->prepareMassActions(); - - $this->prepareQueryBuilder(); - - 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/Admin/src/DataGrids/UserDataGrid.php b/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php index 465815192..4b6303eaf 100755 --- a/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/UserDataGrid.php @@ -2,192 +2,113 @@ namespace Webkul\Admin\DataGrids; -use Illuminate\View\View; -use Webkul\Ui\DataGrid\Facades\DataGrid; +use Webkul\Ui\DataGrid\AbsGrid; +use DB; /** - * Users DataGrid + * News Letter Grid class * - * @author Prashant Singh @prashant-webkul + * @author Prashant Singh @prashant-webkul * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ -class UserDataGrid +class UserDataGrid extends AbsGrid { + public $allColumns = []; - /** - * The Data Grid implementation for admin users - */ - public function createUserDataGrid() + public function prepareQueryBuilder() { + $queryBuilder = DB::table('admins as u')->addSelect('u.id', 'u.name', 'u.status', 'u.email', 'ro.name')->leftJoin('roles as ro', 'u.role_id', '=', 'ro.id'); - return DataGrid::make([ + $this->setQueryBuilder($queryBuilder); + } - 'name' => 'Admins', - 'table' => 'admins as u', - 'select' => 'u.id', - 'perpage' => 10, - 'aliased' => true, //use this with false as default and true in case of joins + public function setIndex() { + $this->index = 'id'; + } - 'massoperations' => [ - // [ - // 'route' => route('admin.datagrid.delete'), - // 'method' => 'DELETE', - // 'label' => 'Delete', - // 'type' => 'button', - // ], - // [ - // 'route' => route('admin.datagrid.index'), - // 'method' => 'POST', - // 'label' => 'View Grid', - // 'type' => 'select', - // 'options' =>[ - // 1 => 'Edit', - // 2 => 'Set', - // 3 => 'Change Status' - // ] - // ], - ], - - 'actions' => [ - [ - 'type' => 'Edit', - 'route' => 'admin.users.edit', - 'confirm_text' => 'Do you really want to edit this record?', - 'icon' => 'icon pencil-lg-icon', - ], - [ - 'type' => 'Delete', - 'route' => 'admin.users.delete', - 'confirm_text' => 'Do you really want to delete this record?', - 'icon' => 'icon trash-icon', - ], - ], - 'join' => [ - [ - 'join' => 'leftjoin', - 'table' => 'roles as r', - 'primaryKey' => 'u.role_id', - 'condition' => '=', - 'secondaryKey' => 'r.id', - ] - ], - - //use aliasing on secodary columns if join is performed - 'columns' => [ - [ - 'name' => 'u.id', - 'alias' => 'ID', - 'type' => 'string', - 'label' => 'Admin ID', - 'sortable' => true, - // 'wrapper' => function ($value, $object) { - // return '' . $object->ID . ''; - // }, - ], [ - 'name' => 'u.name', - 'alias' => 'Name', - 'type' => 'string', - 'label' => 'Name', - 'sortable' => true, - // 'wrapper' => function ($value, $object) { - // return '' . $object->Name . ''; - // }, - ], [ - 'name' => 'u.status', - 'alias' => 'Status', - 'type' => 'boolean', - 'label' => 'Status', - 'sortable' => true, - 'wrapper' => function ($value) { - if($value == 1) - return "Active"; - else - return "Inactive"; - }, - ], [ - 'name' => 'u.email', - 'alias' => 'Email', - 'type' => 'string', - 'label' => 'Email', - 'sortable' => true, - ], [ - 'name' => 'r.name', - 'alias' => 'rolename', - 'type' => 'string', - 'label' => 'Role Name', - 'sortable' => true, - ], - ], - - //don't use aliasing in case of filters - 'filterable' => [ - [ - 'column' => 'u.id', - 'alias' => 'ID', - 'type' => 'number', - 'label' => 'Admin ID' - ], [ - 'column' => 'u.name', - 'alias' => 'Name', - 'type' => 'string', - 'label' => 'Name' - ], [ - 'column' => 'u.email', - 'alias' => 'Email', - 'type' => 'string', - 'label' => 'Email' - ], [ - 'column' => 'r.name', - 'alias' => 'rolename', - 'type' => 'string', - 'label' => 'Role Name' - ], [ - 'name' => 'u.status', - 'alias' => 'Status', - 'type' => 'boolean', - 'label' => 'Status' - ] - ], - - //don't use aliasing in case of searchables - 'searchable' => [ - [ - 'column' => 'u.email', - 'type' => 'string', - 'label' => 'Email' - ], [ - 'column' => 'u.name', - 'type' => 'string', - 'label' => 'Name' - ], [ - 'column' => 'u.email', - 'type' => 'string', - 'label' => 'Email', - ], [ - 'column' => 'r.name', - 'type' => 'string', - 'label' => 'Role Name', - ] - ], - - 'operators' => [ - 'eq' => "=", - 'lt' => "<", - 'gt' => ">", - 'lte' => "<=", - 'gte' => ">=", - 'neqs' => "<>", - 'neqn' => "!=", - 'like' => "like", - 'nlike' => "not like", - ], - - // 'css' => [] + public function addColumns() + { + $this->addColumn([ + 'index' => 'u.id', + 'alias' => 'adminId', + 'label' => 'ID', + 'type' => 'number', + 'searchable' => false, + 'sortable' => true, + 'width' => '40px' ]); + $this->addColumn([ + 'index' => 'u.name', + 'alias' => 'adminName', + 'label' => 'Name', + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'width' => '100px' + ]); + + $this->addColumn([ + 'index' => 'u.status', + 'alias' => 'adminStatus', + 'label' => 'Status', + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'width' => '100px', + 'wrapper' => function($value) { + if($value == 0) { + return false; + } else { + return true; + } + } + ]); + + $this->addColumn([ + 'index' => 'u.email', + 'alias' => 'adminEmail', + 'label' => 'Email', + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'width' => '100px' + ]); + + $this->addColumn([ + 'index' => 'ro.name', + 'alias' => 'rolename', + 'label' => 'Role', + 'type' => 'string', + 'searchable' => true, + 'sortable' => true, + 'width' => '100px' + ]); } - public function render() { - return $this->createUserDataGrid()->render(); + public function prepareActions() { + $this->addAction([ + 'type' => 'Edit', + 'route' => 'admin.roles.edit', + 'icon' => 'icon pencil-lg-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, + // ] + // ]); } } \ No newline at end of file diff --git a/packages/Webkul/Ui/src/DataGrid/AbsGrid.php b/packages/Webkul/Ui/src/DataGrid/AbsGrid.php index 1efedab8f..03afd8b51 100644 --- a/packages/Webkul/Ui/src/DataGrid/AbsGrid.php +++ b/packages/Webkul/Ui/src/DataGrid/AbsGrid.php @@ -11,31 +11,22 @@ use Illuminate\Http\Request; */ abstract class AbsGrid { + protected $index = null; protected $columns = []; - protected $allColumns = []; - protected $queryBuilder = []; - protected $collection = []; - protected $actions = []; - protected $massActions = []; - protected $request; - protected $parse; + // protected $gridName = null; abstract public function prepareMassActions(); - abstract public function prepareActions(); - abstract public function prepareQueryBuilder(); - abstract public function addColumns(); - - abstract public function render(); + abstract public function setIndex(); /** * Parse the URL and get it ready to be used. @@ -57,11 +48,7 @@ abstract class AbsGrid public function addColumn($column) { - if (isset($column['alias'])) { - array_push($this->columns, $column['column'].' as '. $column['alias']); - } else { - array_push($this->columns, $column['column']); - } + array_push($this->columns, $column); $this->setAllColumnDetails($column); } @@ -76,11 +63,13 @@ abstract class AbsGrid $this->queryBuilder = $queryBuilder; } - public function prepareAction($action) { + public function addAction($action) + { array_push($this->actions, $action); } - public function prepareMassAction($massAction) { + public function addMassAction($massAction) + { array_push($this->massActions, $massAction); } @@ -109,7 +98,7 @@ abstract class AbsGrid if ($this->collection) { return $this->collection; } else { - return $this->collection; + dd('no records found'); } } @@ -121,28 +110,30 @@ abstract class AbsGrid public function findColumnType($columnAlias) { foreach($this->allColumns as $column) { if($column['alias'] == $columnAlias) { - return [$column['type'], $column['column']]; + return [$column['type'], $column['index']]; } } } public function sortOrFilterCollection($collection, $parseInfo) { + foreach($parseInfo as $key => $info) { $columnType = $this->findColumnType($key)[0]; $columnName = $this->findColumnType($key)[1]; if($key == "sort") { - //case that don't need any resolving $count_keys = count(array_keys($info)); - if ($count_keys == 1) { - return $collection->orderBy( - str_replace('_', '.', array_keys($info)[0]), - array_values($info)[0] - ); - } else { - throw new \Exception('Multiple Sort keys Found, Please Resolve the URL Manually'); + if ($count_keys > 1) { + throw new \Exception('Fatal Error! Multiple Sort keys Found, Please Resolve the URL Manually'); } + + $columnName = $this->findColumnType(array_keys($info)[0]); + + return $collection->orderBy( + $columnName[1], + array_values($info)[0] + ); } else if($key == "search") { $count_keys = count(array_keys($info)); @@ -150,11 +141,11 @@ abstract class AbsGrid throw new \Exception('Multiple Search keys Found, Please Resolve the URL Manually'); } - if ($count_keys == 1) { - return $collection->where(function () use($collection, $info) { + if($count_keys == 1) { + return $collection->where(function() use($collection, $info) { foreach ($this->allColumns as $column) { if($column['searchable'] == true) - $collection->orWhere($column['column'], 'like', '%'.$info['all'].'%'); + $collection->orWhere($column['index'], 'like', '%'.$info['all'].'%'); } }); } @@ -187,4 +178,19 @@ abstract class AbsGrid } } } + + public function render() + { + $this->addColumns(); + + $this->setIndex(); + + $this->prepareActions(); + + $this->prepareMassActions(); + + $this->prepareQueryBuilder(); + + return view('ui::testgrid.table')->with('results', ['records' => $this->getCollection(), 'columns' => $this->allColumns, 'actions' => $this->actions, 'massactions' => $this->massActions, 'index' => $this->index]); + } } \ No newline at end of file diff --git a/packages/Webkul/Ui/src/Resources/views/testgrid/body.blade.php b/packages/Webkul/Ui/src/Resources/views/testgrid/body.blade.php index e4c0a932b..8f8d529d0 100644 --- a/packages/Webkul/Ui/src/Resources/views/testgrid/body.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/testgrid/body.blade.php @@ -1,28 +1,29 @@ @foreach($records as $key => $record) + {{-- {{ dd($record) }} --}} + - - @foreach($record as $key => $column) - @if($i == 0) - - - - - - - @endif + + + - @if($i > 0) - {{ $column }} - @endif + + + - + @foreach($record as $column) + @if(isset($columns[$key])) + @if(isset($columns[$key]['wrapper'])) + + @endif + @endif + {{ $column }} @endforeach
@foreach($actions as $action) - + @endforeach diff --git a/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php b/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php index 7d165c152..d30cc4dcb 100644 --- a/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php +++ b/packages/Webkul/Ui/src/Resources/views/testgrid/table.blade.php @@ -160,6 +160,7 @@
@csrf() +
@@ -193,22 +194,24 @@ @foreach($results['columns'] as $key => $column) - {{ $column['label'] }} + + {{ $column['label'] }} + @endforeach + Actions - @include('ui::testgrid.body', ['records' => $results['records'], 'actions' => $results['actions']]) + @include('ui::testgrid.body', ['records' => $results['records'], 'actions' => $results['actions'], 'index' => $results['index'], 'columns' => $results['columns']])