More changes in datagrid, regarding implementation of wrapper columns
This commit is contained in:
parent
98858ee12a
commit
eb373d7ecb
12
README.md
12
README.md
|
|
@ -132,20 +132,20 @@ Bagisto is a truly opensource E-Commerce framework which will always be free und
|
|||
|
||||
### 6. Miscellaneous <a name="#miscellaneous"></a>:
|
||||
|
||||
## Contributors
|
||||
#### Contributors
|
||||
|
||||
This project exists thanks to all the people who contribute.
|
||||
<a href="https://github.com/bagisto/bagisto/graphs/contributors"><img src="https://opencollective.com/bagisto/contributors.svg?width=890&button=false" /></a>
|
||||
|
||||
|
||||
## Backers
|
||||
#### Backers
|
||||
|
||||
Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/bagisto#backer)]
|
||||
|
||||
<a href="https://opencollective.com/bagisto#backers" target="_blank"><img src="https://opencollective.com/bagisto/backers.svg?width=890"></a>
|
||||
|
||||
|
||||
## Sponsors
|
||||
#### Sponsors
|
||||
|
||||
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/bagisto#sponsor)]
|
||||
|
||||
|
|
@ -158,8 +158,4 @@ Support this project by becoming a sponsor. Your logo will show up here with a l
|
|||
<a href="https://opencollective.com/bagisto/sponsor/6/website" target="_blank"><img src="https://opencollective.com/bagisto/sponsor/6/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/bagisto/sponsor/7/website" target="_blank"><img src="https://opencollective.com/bagisto/sponsor/7/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/bagisto/sponsor/8/website" target="_blank"><img src="https://opencollective.com/bagisto/sponsor/8/avatar.svg"></a>
|
||||
<a href="https://opencollective.com/bagisto/sponsor/9/website" target="_blank"><img src="https://opencollective.com/bagisto/sponsor/9/avatar.svg"></a>
|
||||
|
||||
|
||||
### Coming Soon:
|
||||
-> API support for core packages and numerous fixes.
|
||||
<a href="https://opencollective.com/bagisto/sponsor/9/website" target="_blank"><img src="https://opencollective.com/bagisto/sponsor/9/avatar.svg"></a>
|
||||
|
|
@ -20,7 +20,9 @@ class AttributeDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('attributes')->select('id')->addSelect('id', 'code', 'admin_name', 'type', 'is_required', 'is_unique', 'value_per_locale', 'value_per_channel');
|
||||
$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);
|
||||
}
|
||||
|
|
@ -71,7 +73,7 @@ class AttributeDataGrid extends DataGrid
|
|||
'searchable' => false,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->is_required == 1)
|
||||
return 'True';
|
||||
else
|
||||
return 'False';
|
||||
|
|
@ -86,7 +88,7 @@ class AttributeDataGrid extends DataGrid
|
|||
'searchable' => false,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->is_unique == 1)
|
||||
return 'True';
|
||||
else
|
||||
return 'False';
|
||||
|
|
@ -101,7 +103,7 @@ class AttributeDataGrid extends DataGrid
|
|||
'searchable' => false,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->value_per_locale == 1)
|
||||
return 'True';
|
||||
else
|
||||
return 'False';
|
||||
|
|
@ -116,7 +118,7 @@ class AttributeDataGrid extends DataGrid
|
|||
'searchable' => false,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->value_per_channel == 1)
|
||||
return 'True';
|
||||
else
|
||||
return 'False';
|
||||
|
|
|
|||
|
|
@ -68,22 +68,4 @@ class AttributeFamilyDataGrid extends DataGrid
|
|||
'icon' => 'icon trash-icon'
|
||||
]);
|
||||
}
|
||||
|
||||
// public function prepareMassActions() {
|
||||
// // $this->prepareMassAction([
|
||||
// // 'type' => 'delete',
|
||||
// // 'action' => route('admin.catalog.familites.massdelete'),
|
||||
// // 'method' => 'DELETE'
|
||||
// // ]);
|
||||
|
||||
// // $this->prepareMassAction([
|
||||
// // 'type' => 'update',
|
||||
// // 'action' => route('admin.catalog.familites.massupdate'),
|
||||
// // 'method' => 'PUT',
|
||||
// // 'options' => [
|
||||
// // 0 => true,
|
||||
// // 1 => false,
|
||||
// // ]
|
||||
// // ]);
|
||||
// }
|
||||
}
|
||||
|
|
@ -17,13 +17,11 @@ class CategoryDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('categories as cat')->select('cat.id as category_id', 'ct.name as category_name', 'cat.position as category_position', 'cat.status as category_status', 'ct.locale as category_locale')->leftJoin('category_translations as ct', 'cat.id', '=', 'ct.category_id');
|
||||
$queryBuilder = DB::table('categories as cat')
|
||||
->select('cat.id as category_id', 'ct.name', 'cat.position', 'cat.status', 'ct.locale')
|
||||
->leftJoin('category_translations as ct', 'cat.id', '=', 'ct.category_id');
|
||||
|
||||
$this->addFilters('category_id', 'custs.id');
|
||||
$this->addFilters('category_name', 'ct.name');
|
||||
$this->addFilters('category_position', 'cat.position');
|
||||
$this->addFilters('category_status', 'cat.status');
|
||||
$this->addFilters('category_locale', 'ct.locale');
|
||||
$this->addFilter('category_id', 'cat.id');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -40,7 +38,7 @@ class CategoryDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'category_name',
|
||||
'index' => 'name',
|
||||
'label' => trans('admin::app.datagrid.name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -49,23 +47,23 @@ class CategoryDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'category_position',
|
||||
'index' => 'position',
|
||||
'label' => trans('admin::app.datagrid.position'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '100px'
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'category_status',
|
||||
'index' => 'status',
|
||||
'label' => trans('admin::app.datagrid.status'),
|
||||
'type' => 'boolean',
|
||||
'sortable' => true,
|
||||
'searchable' => true,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->status == 1)
|
||||
return 'Active';
|
||||
else
|
||||
return 'Inactive';
|
||||
|
|
@ -73,11 +71,11 @@ class CategoryDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'category_locale',
|
||||
'index' => 'locale',
|
||||
'label' => trans('admin::app.datagrid.locale'),
|
||||
'type' => 'boolean',
|
||||
'sortable' => true,
|
||||
'searchable' => false,
|
||||
'searchable' => true,
|
||||
'width' => '100px'
|
||||
]);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,12 +19,12 @@ class CustomerDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('customers as custs')->addSelect('custs.id as customer_id', 'custs.email as customer_email', 'cg.name as cust_grp_name')->addSelect(DB::raw('CONCAT(custs.first_name, " ", custs.last_name) as full_name'))->leftJoin('customer_groups as cg', 'custs.customer_group_id', '=', 'cg.id');
|
||||
$queryBuilder = DB::table('customers as custs')
|
||||
->addSelect('custs.id as customer_id', 'custs.email', 'cg.name')
|
||||
->addSelect(DB::raw('CONCAT(custs.first_name, " ", custs.last_name) as full_name'))->leftJoin('customer_groups as cg', 'custs.customer_group_id', '=', 'cg.id');
|
||||
|
||||
$this->addFilters('customer_id', 'custs.id');
|
||||
$this->addFilters('customer_email', 'custs.email');
|
||||
$this->addFilters('cust_grp_name', 'cg.name');
|
||||
$this->addFilters('full_name', DB::raw('CONCAT(custs.first_name, " ", custs.last_name)'));
|
||||
$this->addFilter('customer_id', 'custs.id');
|
||||
$this->addFilter('full_name', DB::raw('CONCAT(custs.first_name, " ", custs.last_name)'));
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -35,7 +35,7 @@ class CustomerDataGrid extends DataGrid
|
|||
'index' => 'customer_id',
|
||||
'label' => trans('admin::app.datagrid.id'),
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '40px'
|
||||
]);
|
||||
|
|
@ -50,7 +50,7 @@ class CustomerDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'customer_email',
|
||||
'index' => 'email',
|
||||
'label' => trans('admin::app.datagrid.email'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -59,7 +59,7 @@ class CustomerDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'cust_grp_name',
|
||||
'index' => 'name',
|
||||
'label' => trans('admin::app.datagrid.group'),
|
||||
'type' => 'string',
|
||||
'searchable' => false,
|
||||
|
|
@ -81,22 +81,4 @@ class CustomerDataGrid extends DataGrid
|
|||
'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,
|
||||
// ]
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,13 +17,12 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('product_reviews as pr')->addSelect('pr.id as product_review_id', 'pr.title as product_review_title', 'pr.comment as product_review_comment', 'pg.name as product_name', 'pr.status as product_review_status')->leftjoin('products_grid as pg', 'pr.product_id', '=', 'pg.id');
|
||||
$queryBuilder = DB::table('product_reviews as pr')
|
||||
->leftjoin('products_grid as pg', 'pr.product_id', '=', 'pg.id')
|
||||
->addSelect('pr.id as product_review_id', 'pr.title', 'pr.comment', 'pg.name', 'pr.status as product_review_status');
|
||||
|
||||
$this->addFilters('product_review_id', 'pr.id');
|
||||
$this->addFilters('product_review_title', 'pr.title');
|
||||
$this->addFilters('product_review_comment', 'pr.comment');
|
||||
$this->addFilters('product_name', 'pg.name');
|
||||
$this->addFilters('product_review_status', 'pr.status');
|
||||
$this->addFilter('product_review_id', 'pr.id');
|
||||
$this->addFilter('product_review_status', 'pr.status');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -40,7 +39,7 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_review_title',
|
||||
'index' => 'title',
|
||||
'label' => trans('admin::app.datagrid.title'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -49,7 +48,7 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_review_comment',
|
||||
'index' => 'comment',
|
||||
'label' => trans('admin::app.datagrid.comment'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -58,7 +57,7 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_name',
|
||||
'index' => 'name',
|
||||
'label' => trans('admin::app.datagrid.product-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -69,13 +68,13 @@ class CustomerReviewDataGrid extends DataGrid
|
|||
$this->addColumn([
|
||||
'index' => 'product_review_status',
|
||||
'label' => trans('admin::app.datagrid.status'),
|
||||
'type' => 'boolean',
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
'closure' => true,
|
||||
'wrapper' => function ($value) {
|
||||
if ($value == 'approved')
|
||||
if ($value->product_review_status == 'approved')
|
||||
return '<span class="badge badge-md badge-success">Approved</span>';
|
||||
else if ($value == "pending")
|
||||
return '<span class="badge badge-md badge-warning">Pending</span>';
|
||||
|
|
|
|||
|
|
@ -17,11 +17,9 @@ class ExchangeRatesDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('currency_exchange_rates as cer')->addSelect('cer.id as currency_exch_id', 'curr.name as currency_exch_name', 'cer.rate as currency_exch_rate')->leftJoin('currencies as curr', 'cer.target_currency', '=', 'curr.id');
|
||||
$queryBuilder = DB::table('currency_exchange_rates as cer')->addSelect('cer.id as currency_exch_id', 'curr.name', 'cer.rate')->leftJoin('currencies as curr', 'cer.target_currency', '=', 'curr.id');
|
||||
|
||||
$this->addFilters('currency_exch_id', 'cer.id');
|
||||
$this->addFilters('currency_exch_name', 'curr.name');
|
||||
$this->addFilters('currency_exch_rate', 'cer.rate');
|
||||
$this->addFilter('currency_exch_id', 'cer.id');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -38,7 +36,7 @@ class ExchangeRatesDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'currency_exch_name',
|
||||
'index' => 'name',
|
||||
'label' => trans('admin::app.datagrid.currency-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -47,9 +45,9 @@ class ExchangeRatesDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'currency_exch_rate',
|
||||
'index' => 'rate',
|
||||
'label' => trans('admin::app.datagrid.exch-rate'),
|
||||
'type' => 'string',
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'width' => '100px'
|
||||
|
|
@ -70,22 +68,4 @@ class ExchangeRatesDataGrid extends DataGrid
|
|||
'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,
|
||||
// ]
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -68,7 +68,7 @@ class InventorySourcesDataGrid extends DataGrid
|
|||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->status == 1)
|
||||
return 'Active';
|
||||
else
|
||||
return 'Inactive';
|
||||
|
|
|
|||
|
|
@ -37,11 +37,11 @@ class NewsLetterDataGrid extends DataGrid
|
|||
'index' => 'is_subscribed',
|
||||
'label' => trans('admin::app.datagrid.subscribed'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->is_subscribed == 1)
|
||||
return 'True';
|
||||
else
|
||||
return 'False';
|
||||
|
|
|
|||
|
|
@ -19,7 +19,7 @@ class OrderDataGrid extends DataGrid
|
|||
{
|
||||
$queryBuilder = DB::table('orders')->select('id', 'base_grand_total', 'grand_total', 'created_at', 'channel_name', 'status')->addSelect(DB::raw('CONCAT(customer_first_name, " ", customer_last_name) as full_name'));
|
||||
|
||||
$this->addFilters('full_name', DB::raw('CONCAT(customer_first_name, " ", customer_last_name)'));
|
||||
$this->addFilter('full_name', DB::raw('CONCAT(customer_first_name, " ", customer_last_name)'));
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -42,22 +42,15 @@ class OrderDataGrid extends DataGrid
|
|||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
// 'wrapper' => function ($value) {
|
||||
// return core()->formatBasePrice($value);
|
||||
// }
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'grand_total',
|
||||
'label' => trans('admin::app.datagrid.grand-total'),
|
||||
'type' => 'price',
|
||||
'currencyCode' => 'JOD',
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
// 'wrapper' => function ($value) {
|
||||
// return core()->formatBasePrice($value);
|
||||
// }
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
|
|
@ -87,19 +80,19 @@ class OrderDataGrid extends DataGrid
|
|||
'width' => '100px',
|
||||
'closure' => true,
|
||||
'wrapper' => function ($value) {
|
||||
if ($value == 'processing')
|
||||
if ($value->status == 'processing')
|
||||
return '<span class="badge badge-md badge-success">Processing</span>';
|
||||
else if ($value == 'completed')
|
||||
else if ($value->status == 'completed')
|
||||
return '<span class="badge badge-md badge-success">Completed</span>';
|
||||
else if ($value == "canceled")
|
||||
else if ($value->status == "canceled")
|
||||
return '<span class="badge badge-md badge-danger">Canceled</span>';
|
||||
else if ($value == "closed")
|
||||
else if ($value->status == "closed")
|
||||
return '<span class="badge badge-md badge-info">Closed</span>';
|
||||
else if ($value == "pending")
|
||||
else if ($value->status == "pending")
|
||||
return '<span class="badge badge-md badge-warning">Pending</span>';
|
||||
else if ($value == "pending_payment")
|
||||
else if ($value->status == "pending_payment")
|
||||
return '<span class="badge badge-md badge-warning">Pending Payment</span>';
|
||||
else if ($value == "fraud")
|
||||
else if ($value->status == "fraud")
|
||||
return '<span class="badge badge-md badge-danger">Fraud</span>';
|
||||
}
|
||||
]);
|
||||
|
|
@ -121,12 +114,4 @@ class OrderDataGrid extends DataGrid
|
|||
'icon' => 'icon eye-icon'
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareMassActions() {
|
||||
// $this->addMassAction([
|
||||
// 'type' => 'delete',
|
||||
// 'action' => route('admin.catalog.attributes.massdelete'),
|
||||
// 'method' => 'DELETE'
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -37,7 +37,7 @@ class OrderInvoicesDataGrid extends DataGrid
|
|||
'index' => 'order_id',
|
||||
'label' => trans('admin::app.datagrid.order-id'),
|
||||
'type' => 'number',
|
||||
'searchable' => false,
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'width' => '100px'
|
||||
]);
|
||||
|
|
@ -46,7 +46,6 @@ class OrderInvoicesDataGrid extends DataGrid
|
|||
'index' => 'grand_total',
|
||||
'label' => trans('admin::app.datagrid.grand-total'),
|
||||
'type' => 'price',
|
||||
// 'currencyCode' => 'JOD',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
|
|
@ -69,12 +68,4 @@ class OrderInvoicesDataGrid extends DataGrid
|
|||
'icon' => 'icon eye-icon'
|
||||
]);
|
||||
}
|
||||
|
||||
public function prepareMassActions() {
|
||||
// $this->addMassAction([
|
||||
// 'type' => 'delete',
|
||||
// 'action' => route('admin.catalog.attributes.massdelete'),
|
||||
// 'method' => 'DELETE'
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,15 +17,19 @@ class OrderShipmentsDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('shipments as ship')->select('ship.id as shipment_id', 'ship.order_id as shipment_order_id', 'ship.total_qty as shipment_total_qty', 'is.name as inventory_source_name', 'ors.created_at as orderdate', 'ship.created_at as shipment_created_at')->addSelect(DB::raw('CONCAT(ors.customer_first_name, " ", ors.customer_last_name) as custname'))->leftJoin('orders as ors', 'ship.order_id', '=', 'ors.id')->leftJoin('inventory_sources as is', 'ship.inventory_source_id', '=', 'is.id');
|
||||
$queryBuilder = DB::table('shipments as ship')
|
||||
->leftJoin('orders as ors', 'ship.order_id', '=', 'ors.id')
|
||||
->leftJoin('inventory_sources as is', 'ship.inventory_source_id', '=', 'is.id')
|
||||
->select('ship.id as shipment_id', 'ship.order_id as shipment_order_id', 'ship.total_qty as shipment_total_qty', 'is.name as inventory_source_name', 'ors.created_at as orderdate', 'ship.created_at as shipment_created_at')
|
||||
->addSelect(DB::raw('CONCAT(ors.customer_first_name, " ", ors.customer_last_name) as custname'));
|
||||
|
||||
$this->addFilters('shipment_id', 'ship.id');
|
||||
$this->addFilters('shipment_order_id', 'ship.order_id');
|
||||
$this->addFilters('shipment_total_qty', 'ship.total_qty');
|
||||
$this->addFilters('inventory_source_name', 'is.name');
|
||||
$this->addFilters('orderdate', 'ors.created_at');
|
||||
$this->addFilters('shipment_created_at', 'ship.created_at');
|
||||
$this->addFilters('custname', DB::raw('CONCAT(ors.customer_first_name, " ", ors.customer_last_name)'));
|
||||
$this->addFilter('shipment_id', 'ship.id');
|
||||
$this->addFilter('shipment_order_id', 'ship.order_id');
|
||||
$this->addFilter('shipment_total_qty', 'ship.total_qty');
|
||||
$this->addFilter('inventory_source_name', 'is.name');
|
||||
$this->addFilter('orderdate', 'ors.created_at');
|
||||
$this->addFilter('shipment_created_at', 'ship.created_at');
|
||||
$this->addFilter('custname', DB::raw('CONCAT(ors.customer_first_name, " ", ors.customer_last_name)'));
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -36,7 +40,7 @@ class OrderShipmentsDataGrid extends DataGrid
|
|||
'index' => 'shipment_id',
|
||||
'label' => trans('admin::app.datagrid.id'),
|
||||
'type' => 'number',
|
||||
'searchable' => true,
|
||||
'searchable' => false,
|
||||
'sortable' => true,
|
||||
'width' => '40px'
|
||||
]);
|
||||
|
|
|
|||
|
|
@ -17,15 +17,13 @@ class ProductDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('products_grid as pg')->addSelect('pg.product_id as product_id', 'pg.sku as product_sku', 'pg.name as product_name', 'pr.type as product_type', 'pg.status as product_status', 'pg.price as product_price', 'pg.quantity as product_qty')->leftJoin('products as pr', 'pg.product_id', '=', 'pr.id');
|
||||
$queryBuilder = DB::table('products_grid as pg')
|
||||
->leftJoin('products as pr', 'pg.product_id', '=', 'pr.id')
|
||||
->addSelect('pg.product_id as product_id', 'pg.sku as product_sku', 'pg.name', 'pr.type as product_type', 'pg.status', 'pg.price', 'pg.quantity');
|
||||
|
||||
$this->addFilters('product_id', 'pg.product_id');
|
||||
$this->addFilters('product_sku', 'pg.sku');
|
||||
$this->addFilters('product_name', 'pg.name');
|
||||
$this->addFilters('product_type', 'pr.type');
|
||||
$this->addFilters('product_status', 'pg.status');
|
||||
$this->addFilters('product_price', 'pg.price');
|
||||
$this->addFilters('product_qty', 'pg.quantity');
|
||||
$this->addFilter('product_id', 'pg.product_id');
|
||||
$this->addFilter('product_sku', 'pg.sku');
|
||||
$this->addFilter('product_type', 'pr.type');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -51,7 +49,7 @@ class ProductDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_name',
|
||||
'index' => 'name',
|
||||
'label' => trans('admin::app.datagrid.name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -69,14 +67,14 @@ class ProductDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_status',
|
||||
'index' => 'status',
|
||||
'label' => trans('admin::app.datagrid.status'),
|
||||
'type' => 'boolean',
|
||||
'sortable' => true,
|
||||
'searchable' => false,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1)
|
||||
if ($value->status == 1)
|
||||
return 'Active';
|
||||
else
|
||||
return 'Inactive';
|
||||
|
|
@ -84,16 +82,16 @@ class ProductDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_price',
|
||||
'index' => 'price',
|
||||
'label' => trans('admin::app.datagrid.price'),
|
||||
'type' => 'price',
|
||||
'sortable' => true,
|
||||
'searchable' => false,
|
||||
'width' => '100px',
|
||||
'width' => '100px'
|
||||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'product_qty',
|
||||
'index' => 'quantity',
|
||||
'label' => trans('admin::app.datagrid.qty'),
|
||||
'type' => 'number',
|
||||
'sortable' => true,
|
||||
|
|
|
|||
|
|
@ -17,12 +17,11 @@ class SliderDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('sliders as sl')->addSelect('sl.id as slider_id', 'sl.title as slider_title', 'ch.name as channel_name')->leftJoin('channels as ch', 'sl.channel_id', '=',
|
||||
$queryBuilder = DB::table('sliders as sl')->addSelect('sl.id as slider_id', 'sl.title', 'ch.name')->leftJoin('channels as ch', 'sl.channel_id', '=',
|
||||
'ch.id');
|
||||
|
||||
$this->addFilters('slider_id', 'sl.id');
|
||||
$this->addFilters('slider_title', 'sl.title');
|
||||
$this->addFilters('channel_name', 'ch.name');
|
||||
$this->addFilter('slider_id', 'sl.id');
|
||||
$this->addFilter('channel_name', 'ch.name');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -39,7 +38,7 @@ class SliderDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'slider_title',
|
||||
'index' => 'title',
|
||||
'label' => trans('admin::app.datagrid.title'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -48,7 +47,7 @@ class SliderDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'channel_name',
|
||||
'index' => 'name',
|
||||
'label' => trans('admin::app.datagrid.channel-name'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -70,22 +69,4 @@ class SliderDataGrid extends DataGrid
|
|||
'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,
|
||||
// ]
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,13 +17,11 @@ class UserDataGrid extends DataGrid
|
|||
|
||||
public function prepareQueryBuilder()
|
||||
{
|
||||
$queryBuilder = DB::table('admins as u')->addSelect('u.id as user_id', 'u.name as user_name', 'u.status as user_status', 'u.email as user_email', 'ro.name as role_name')->leftJoin('roles as ro', 'u.role_id', '=', 'ro.id');
|
||||
$queryBuilder = DB::table('admins as u')->addSelect('u.id as user_id', 'u.name as user_name', 'u.status', 'u.email', 'ro.name as role_name')->leftJoin('roles as ro', 'u.role_id', '=', 'ro.id');
|
||||
|
||||
$this->addFilters('user_id', 'u.id');
|
||||
$this->addFilters('user_name', 'u.name');
|
||||
$this->addFilters('user_status', 'u.status');
|
||||
$this->addFilters('user_email', 'u.email');
|
||||
$this->addFilters('role_name', 'ro.name');
|
||||
$this->addFilter('user_id', 'u.id');
|
||||
$this->addFilter('user_name', 'u.name');
|
||||
$this->addFilter('role_name', 'ro.name');
|
||||
|
||||
$this->setQueryBuilder($queryBuilder);
|
||||
}
|
||||
|
|
@ -49,14 +47,14 @@ class UserDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'user_status',
|
||||
'index' => 'status',
|
||||
'label' => trans('admin::app.datagrid.status'),
|
||||
'type' => 'boolean',
|
||||
'searchable' => true,
|
||||
'sortable' => true,
|
||||
'width' => '100px',
|
||||
'wrapper' => function($value) {
|
||||
if ($value == 1) {
|
||||
if ($value->status == 1) {
|
||||
return 'Active';
|
||||
} else {
|
||||
return 'Inactive';
|
||||
|
|
@ -65,7 +63,7 @@ class UserDataGrid extends DataGrid
|
|||
]);
|
||||
|
||||
$this->addColumn([
|
||||
'index' => 'user_email',
|
||||
'index' => 'email',
|
||||
'label' => trans('admin::app.datagrid.email'),
|
||||
'type' => 'string',
|
||||
'searchable' => true,
|
||||
|
|
@ -90,22 +88,4 @@ class UserDataGrid extends DataGrid
|
|||
'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,
|
||||
// ]
|
||||
// ]);
|
||||
}
|
||||
}
|
||||
|
|
@ -28,6 +28,6 @@ class EventServiceProvider extends ServiceProvider
|
|||
|
||||
Event::listen('catalog.product.update.after', 'Webkul\Admin\Listeners\Product@afterProductUpdate');
|
||||
|
||||
Event::listen('after.attribute.update', 'Webkul\Admin\Listeners\Product@updateColumnBasedOnAttribute');
|
||||
// Event::listen('after.attribute.update', 'Webkul\Admin\Listeners\Product@updateColumnBasedOnAttribute');
|
||||
}
|
||||
}
|
||||
|
|
@ -112,7 +112,7 @@ class AttributeController extends Controller
|
|||
|
||||
$attribute = $this->attribute->update(request()->all(), $id);
|
||||
|
||||
Event::fire('after.attribute.update', $attribute);
|
||||
// Event::fire('after.attribute.update', $attribute);
|
||||
|
||||
session()->flash('success', 'Attribute updated successfully.');
|
||||
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ abstract class DataGrid
|
|||
*
|
||||
* @return void
|
||||
*/
|
||||
public function addFilters($alias, $column) {
|
||||
public function addFilter($alias, $column) {
|
||||
$this->filterMap[$alias] = $column;
|
||||
|
||||
$this->enableFilterMap = true;
|
||||
|
|
|
|||
|
|
@ -1,18 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Ui\DataGrid\Facades;
|
||||
use Illuminate\Support\Facades\Cache;
|
||||
use Illuminate\Support\Facades\Facade;
|
||||
|
||||
class ProductGrid extends Facade
|
||||
{
|
||||
/**
|
||||
* Get the registered name of the component.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected static function getFacadeAccessor()
|
||||
{
|
||||
return 'productgrid';
|
||||
}
|
||||
}
|
||||
|
|
@ -1,108 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Ui\DataGrid\Helpers;
|
||||
|
||||
/**
|
||||
* AbstractFillable
|
||||
* @author Nikhil Malik <nikhil@webkul.com> @ysmnikhil
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
abstract class AbstractFillable
|
||||
{
|
||||
const NO_RESULT = null;
|
||||
|
||||
protected $fillable = [];
|
||||
|
||||
abstract protected function setFillable();
|
||||
|
||||
public function __construct($args)
|
||||
{
|
||||
$error = false;
|
||||
$this->setFillable();
|
||||
|
||||
foreach ($args as $key => $value) {
|
||||
$this->{$key} = $value;
|
||||
// switch($value) {
|
||||
// case (in_array(gettype($value), ["array", "object", "function"])):
|
||||
// $error = $this->fieldValidate(
|
||||
// $key,
|
||||
// $value,
|
||||
// [$this->fillable[$key]['allowed']]
|
||||
// );
|
||||
// break;
|
||||
// default:
|
||||
// $error = $this->fieldValidate(
|
||||
// $key,
|
||||
// $value
|
||||
// );
|
||||
// }
|
||||
// if ($error) throw new \Exception($error);
|
||||
}
|
||||
// foreach ($this->fillable as $fill) {
|
||||
// if (isset($args[$fill])) {
|
||||
// $this->{$fill} = [$args[$fill]];
|
||||
// }
|
||||
// }
|
||||
}
|
||||
|
||||
private function fieldValidate($key, $value, $allowed = ['string', 'integer', 'float', "boolean"], $merge = false)
|
||||
{
|
||||
$error = false;
|
||||
if ( in_array($key, $this->fillable) ||
|
||||
array_filter(
|
||||
array_keys($this->fillable) , function($value) {
|
||||
return gettype($value) === "string";
|
||||
}
|
||||
)
|
||||
) {
|
||||
if (in_array(gettype($value), $allowed)) {
|
||||
// if ($merge) {
|
||||
// if (! $this->{$key}) $this->{$key} = [];
|
||||
// $this->{$key}[] = $value;
|
||||
// } else
|
||||
// $this->{$key} = $value;
|
||||
} else {
|
||||
dump(gettype($value));
|
||||
dump($value);
|
||||
$error = 'Allowed params are not valid as per allowed condition! Key - ' . $key;
|
||||
}
|
||||
} else {
|
||||
dump(in_array($key, $this->fillable));
|
||||
dump($value);
|
||||
$error = 'Not Allowed field! Key - ' . $key;
|
||||
}
|
||||
|
||||
return $error ?: false;
|
||||
}
|
||||
|
||||
public function __set($key, $value)
|
||||
{
|
||||
$error = false;
|
||||
switch('$value') { //no need to match this
|
||||
case (in_array(gettype($value), ["array", "object", "function"])):
|
||||
$error = $this->fieldValidate(
|
||||
$key,
|
||||
$value,
|
||||
[$this->fillable[$key]['allowed']]
|
||||
);
|
||||
break;
|
||||
default:
|
||||
$error = $this->fieldValidate(
|
||||
$key,
|
||||
$value
|
||||
);
|
||||
break;
|
||||
}
|
||||
|
||||
if ($error) throw new \Exception($error);
|
||||
$this->{$key} = $value;
|
||||
}
|
||||
|
||||
public function __get($key) {
|
||||
if (in_array($key, $this->fillable)) {
|
||||
return property_exists($this, $key) ? $this->{$key} : false;
|
||||
} else
|
||||
return self::NO_RESULT;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,169 +0,0 @@
|
|||
<?php
|
||||
namespace Webkul\Ui\DataGrid\Helpers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* Column controller
|
||||
*
|
||||
* @author Nikhil Malik <nikhil@webkul.com> @ysmnikhil
|
||||
* &
|
||||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
*
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class Column extends AbstractFillable
|
||||
{
|
||||
const SORT = 'sort';
|
||||
const ORDER_DESC = 'DESC';
|
||||
const ORDER_ASC = 'ASC';
|
||||
|
||||
private $request = null;
|
||||
private $readableName = false;
|
||||
private $aliasing = false;
|
||||
private $value = false;
|
||||
private $sortHtml = '<a href="%s">%s</a>';
|
||||
|
||||
/**
|
||||
* Without Array it will treat it like string
|
||||
*
|
||||
* [
|
||||
* 'name',
|
||||
* 'Name',
|
||||
* true,
|
||||
* filter => [
|
||||
* 'function' => 'where', // andwhere
|
||||
* 'condition' => ['u.user_id', '=', '1'] // multiarray
|
||||
* ],
|
||||
* attributes => [
|
||||
* 'class' => 'class-a, class-b',
|
||||
* 'data-attr' => 'whatever you want',
|
||||
* 'onlclick' => "window.alert('alert from datagrid column')"
|
||||
* ],
|
||||
* wrapper => function($value) {
|
||||
* return '<a href="'.$value.'">Nikhil</a>';
|
||||
* },
|
||||
* ]
|
||||
*/
|
||||
protected function setFillable()
|
||||
{
|
||||
$this->fillable = [
|
||||
'name',
|
||||
'type',
|
||||
'label',
|
||||
'sortable',
|
||||
'searchable',
|
||||
'filterable',
|
||||
'massoperations' => [
|
||||
'allowed' => 'array'
|
||||
],
|
||||
'actions' => [
|
||||
'allowed' => 'array'
|
||||
],
|
||||
'filter' => [
|
||||
'allowed' => 'array',
|
||||
],
|
||||
'attributes' => [
|
||||
'allowed' => 'array',
|
||||
'validation' => 'FUTURE'
|
||||
],
|
||||
'wrapper' => [
|
||||
// 'allowed' => 'function'
|
||||
'allowed' => 'object'
|
||||
],
|
||||
'callback' => [
|
||||
'allowed' => 'function'
|
||||
]
|
||||
];
|
||||
}
|
||||
|
||||
public function __construct($args, $request = null)
|
||||
{
|
||||
parent::__construct($args);
|
||||
$this->request = $request ?: Request::capture();
|
||||
}
|
||||
|
||||
public function correctFilterSorting()
|
||||
{
|
||||
$return = $this->name;
|
||||
$as = explode('as', $this->name);
|
||||
if (count($as) > 1) {
|
||||
$return = trim(current($as));
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
public function correctDotOnly()
|
||||
{
|
||||
$col_name = explode('.', $this->name);
|
||||
if (isset($col_name)) {
|
||||
$col_name = trim($col_name[1]);
|
||||
return $col_name;
|
||||
}
|
||||
}
|
||||
|
||||
public function correct($tillDot = true)
|
||||
{
|
||||
$as = explode('as', $this->name);
|
||||
if (count($as) > 1) {
|
||||
return trim(end($as));
|
||||
}
|
||||
|
||||
if (! $tillDot) {
|
||||
return $this->name;
|
||||
}
|
||||
|
||||
$dot = explode('.', $this->name);
|
||||
if ($dot) {
|
||||
return trim(end($dot));
|
||||
}
|
||||
}
|
||||
|
||||
private function wrap($obj)
|
||||
{
|
||||
if ($this->wrapper && is_callable($this->wrapper)) {
|
||||
$this->value = call_user_func($this->wrapper, $this->value, $obj);
|
||||
}
|
||||
}
|
||||
private function sortingUrl()
|
||||
{
|
||||
$query = ['sort' => $this->correct(false)];
|
||||
|
||||
if (($sort = $this->request->offsetGet('sort')) && $sort == $this->correct(false)) {
|
||||
if (! $order = $this->request->offsetGet('order')) {
|
||||
$query['order'] = self::ORDER_DESC;
|
||||
} else {
|
||||
$query['order'] = ($order == self::ORDER_DESC ? self::ORDER_ASC : self::ORDER_DESC);
|
||||
}
|
||||
} else {
|
||||
$query['order'] = self::ORDER_DESC;
|
||||
}
|
||||
|
||||
return '?'.http_build_query(array_merge($this->request->query->all(), $query));
|
||||
}
|
||||
|
||||
/**
|
||||
* need to process css check on properties like label shouln't include <script>alert('Kaboom!')</script>
|
||||
*/
|
||||
public function sorting()
|
||||
{
|
||||
return $this->label;
|
||||
if ($this->sortable) {
|
||||
return vsprintf($this->sortHtml, [$this->sortingUrl(), $this->label]);
|
||||
} else {
|
||||
return $this->label;
|
||||
}
|
||||
}
|
||||
|
||||
public function render($obj)
|
||||
{
|
||||
if (property_exists($obj, ($this->aliasing = $this->alias))) {
|
||||
$this->value = $obj->{$this->aliasing};
|
||||
$this->wrap($obj);
|
||||
}
|
||||
return $this->value;
|
||||
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Ui\DataGrid\Helpers;
|
||||
|
||||
/**
|
||||
* Css
|
||||
* @author Nikhil Malik <nikhil@webkul.com> @ysmnikhil
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class Css extends AbstractFillable
|
||||
{
|
||||
const NO_RESULT = 'no-class';
|
||||
|
||||
protected $datagrid = 'datagrid';
|
||||
protected $table = 'table';
|
||||
protected $thead = 'thead';
|
||||
protected $thead_td = 'thead_td';
|
||||
protected $tbody = 'tbody';
|
||||
protected $tbody_td = 'tbody_td';
|
||||
|
||||
public function __construct($args) {
|
||||
parent::__construct($args);
|
||||
}
|
||||
|
||||
protected function setFillable() {
|
||||
$this->fillable = [
|
||||
'datagrid',
|
||||
'table',
|
||||
'thead',
|
||||
'thead_td',
|
||||
'tbody',
|
||||
'tbody_td',
|
||||
];
|
||||
}
|
||||
}
|
||||
|
|
@ -1,36 +0,0 @@
|
|||
<?php
|
||||
namespace Webkul\Ui\DataGrid\Helpers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
/**
|
||||
* MassAction
|
||||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class MassAction
|
||||
{
|
||||
public function validateSchemaMassAction($attributes)
|
||||
{
|
||||
$operations_validated = false;
|
||||
$columns_validated = true;
|
||||
foreach ($attributes['operations'] as $operation) {
|
||||
if (array_key_exists('route', $operation) && array_key_exists('method', $operation) && array_key_exists('label', $operation) && array_key_exists('columns', $operation)) {
|
||||
$operations_validated = true;
|
||||
}
|
||||
if ($operations_validated) {
|
||||
foreach ($operation['columns'] as $column) {
|
||||
if (array_key_exists('name', $operation) && array_key_exists('label', $operation) && array_key_exists('type', $operation)) {
|
||||
$columns_validated = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if ($columns_validated && $operations_validated) {
|
||||
return true;
|
||||
} else {
|
||||
throw new \Exception('Schema is invalid for mass actions');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1,37 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace Webkul\Ui\DataGrid\Helpers;
|
||||
|
||||
use Illuminate\Pagination\LengthAwarePaginator;
|
||||
use Illuminate\Pagination\Paginator;
|
||||
|
||||
/**
|
||||
* DataGrid controller
|
||||
*
|
||||
* @author Nikhil Malik <nikhil@webkul.com> @ysmnikhil
|
||||
* &
|
||||
* @author Prashant Singh <prashant.singh852@webkul.com> @prashant-webkul
|
||||
*
|
||||
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
|
||||
*/
|
||||
|
||||
class Pagination extends Paginator
|
||||
{
|
||||
const LIMIT = 10;
|
||||
const OFFSET = 0;
|
||||
const VIEW = '';
|
||||
|
||||
public function __construct(
|
||||
int $limit = null,
|
||||
int $offset = null,
|
||||
int $view = null
|
||||
) {
|
||||
$this->limit = $limit ?: self::LIMIT;
|
||||
$this->offset = $offset ?: self::OFFSET;
|
||||
$this->view = $view ?: self::VIEW;
|
||||
|
||||
parent::__construct([
|
||||
|
||||
], 20);
|
||||
}
|
||||
}
|
||||
|
|
@ -17,15 +17,13 @@
|
|||
$columnIndex = explode('.', $column['index']);
|
||||
|
||||
$columnIndex = end($columnIndex);
|
||||
|
||||
// dd($columnIndex);
|
||||
@endphp
|
||||
|
||||
@if (isset($column['wrapper']))
|
||||
@if (isset($column['closure']) && $column['closure'] == true)
|
||||
<td>{!! $column['wrapper']($record->{$columnIndex}) !!}</td>
|
||||
<td>{!! $column['wrapper']($record) !!}</td>
|
||||
@else
|
||||
<td>{{ $column['wrapper']($record->{$columnIndex}) }}</td>
|
||||
<td>{{ $column['wrapper']($record) }}</td>
|
||||
@endif
|
||||
@else
|
||||
@if($column['type'] == 'price')
|
||||
|
|
|
|||
|
|
@ -1,14 +0,0 @@
|
|||
<thead>
|
||||
<tr>
|
||||
<th class="grid_head" id="mastercheckbox" style="width: 50px;">
|
||||
<span class="checkbox">
|
||||
<input type="checkbox" id="mastercheckbox">
|
||||
<label class="checkbox-view" for="checkbox"></label>
|
||||
</span>
|
||||
</th>
|
||||
|
||||
@foreach ($columns as $key => $column)
|
||||
<th class="grid_head" data-column-alias="{{ $column['alias'] }}" data-column-name="{{ $column['column'] }}" data-column-sortable="{{ $column['sortable'] }}" data-column-type="{{ $column['type'] }}" style="width: {{ $column['width'] }}" v-on:click="sortCollection({{ $column['alias'] }})">{{ $column['label'] }}</th>
|
||||
@endforeach
|
||||
</tr>
|
||||
</thead>
|
||||
|
|
@ -1,15 +1,15 @@
|
|||
<div class="table">
|
||||
<testgrid-filters></testgrid-filters>
|
||||
<datagrid-filters></datagrid-filters>
|
||||
|
||||
@if (config('datagrid.paginate'))
|
||||
@include('ui::datagrid.pagination', ['results' => $results['records']])
|
||||
@endif
|
||||
|
||||
@push('scripts')
|
||||
<script type="text/x-template" id="testgrid-filters">
|
||||
<script type="text/x-template" id="datagrid-filters">
|
||||
{{-- start filter here --}}
|
||||
<div class="grid-container">
|
||||
<div class="filter-row-one" id="testgrid-filters">
|
||||
<div class="filter-row-one" id="datagrid-filters">
|
||||
<div class="search-filter">
|
||||
<input type="search" id="search-field" class="control" placeholder="Search Here..." v-model="searchValue" />
|
||||
|
||||
|
|
@ -216,8 +216,8 @@
|
|||
</script>
|
||||
|
||||
<script>
|
||||
Vue.component('testgrid-filters', {
|
||||
template: '#testgrid-filters',
|
||||
Vue.component('datagrid-filters', {
|
||||
template: '#datagrid-filters',
|
||||
|
||||
data: () => ({
|
||||
gridCurrentData: @json($results['records']),
|
||||
|
|
@ -691,8 +691,6 @@
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
// console.log(this.dataIds);
|
||||
},
|
||||
|
||||
removeMassActions() {
|
||||
|
|
|
|||
Loading…
Reference in New Issue