Merge pull request #1020 from prashant-webkul/development

added mass actions in admin customers grid
This commit is contained in:
Jitendra Singh 2019-06-13 18:10:05 +05:30 committed by GitHub
commit 72e56f4709
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 91 additions and 4 deletions

View File

@ -23,7 +23,7 @@ class CustomerDataGrid extends DataGrid
{
$queryBuilder = DB::table('customers')
->leftJoin('customer_groups', 'customers.customer_group_id', '=', 'customer_groups.id')
->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name')
->addSelect('customers.id as customer_id', 'customers.email', 'customer_groups.name', 'status')
->addSelect(DB::raw('CONCAT(customers.first_name, " ", customers.last_name) as full_name'));
$this->addFilter('customer_id', 'customers.id');
@ -69,6 +69,22 @@ class CustomerDataGrid extends DataGrid
'sortable' => true,
'filterable' => true
]);
$this->addColumn([
'index' => 'status',
'label' => trans('admin::app.datagrid.status'),
'type' => 'boolean',
'searchable' => false,
'sortable' => true,
'filterable' => true,
'wrapper' => function ($row) {
if ($row->status == 1) {
return 'Activated';
} else {
return 'Blocked';
}
}
]);
}
public function prepareActions() {
@ -96,4 +112,30 @@ class CustomerDataGrid extends DataGrid
'title' => trans('admin::app.customers.note.help-title')
]);
}
/**
* Customer Mass Action To Delete And Change Their
*/
public function prepareMassActions()
{
$this->addMassAction([
'type' => 'delete',
'label' => 'Delete',
'action' => route('admin.customer.mass-delete'),
'method' => 'PUT',
]);
$this->addMassAction([
'type' => 'update',
'label' => 'Update Status',
'action' => route('admin.customer.mass-update'),
'method' => 'PUT',
'options' => [
'Active' => 1,
'Inactive' => 0
]
]);
$this->enableMassAction = true;
}
}

View File

@ -224,4 +224,43 @@ class CustomerController extends Controller
return redirect()->route($this->_config['redirect']);
}
/**
* To mass update the customer
*/
public function massUpdate()
{
$customerIds = explode(',', request()->input('indexes'));
$updateOption = request()->input('update-options');
foreach ($customerIds as $customerId) {
$customer = $this->customer->find($customerId);
$customer->update([
'status' => $updateOption
]);
}
session()->flash('info', trans('admin::app.customers.customers.mass-update-success'));
return redirect()->back();
}
/**
* To mass delete the customer
*/
public function massDestroy()
{
$customerIds = explode(',', request()->input('indexes'));
foreach ($customerIds as $customerId) {
$this->customer->deleteWhere([
'id' => $customerId
]);
}
session()->flash('info', trans('admin::app.customers.customers.mass-destroy-success'));
return redirect()->back();
}
}

View File

@ -43,7 +43,7 @@ Route::group(['middleware' => ['web']], function () {
'view' => 'admin::dashboard.index'
])->name('admin.dashboard.index');
//Customers Management Routes
//Customer Management Routes
Route::get('customers', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@index')->defaults('_config', [
'view' => 'admin::customers.index'
])->name('admin.customer.index');
@ -74,6 +74,10 @@ Route::group(['middleware' => ['web']], function () {
Route::post('customers/delete/{id}', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@destroy')->name('admin.customer.delete');
Route::post('customers/masssdelete', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@massDestroy')->name('admin.customer.mass-delete');
Route::post('customers/masssupdate', 'Webkul\Admin\Http\Controllers\Customer\CustomerController@massUpdate')->name('admin.customer.mass-update');
Route::get('reviews', 'Webkul\Product\Http\Controllers\ReviewController@index')->defaults('_config',[
'view' => 'admin::customers.reviews.index'
])->name('admin.customer.review.index');

View File

@ -768,7 +768,9 @@ return [
'phone' => 'Phone',
'group-default' => 'Cannot delete the default group.',
'edit-help-title' => 'Edit Customer',
'delete-help-title' => 'Delete Customer'
'delete-help-title' => 'Delete Customer',
'mass-destroy-success' => 'Customers deleted successfully',
'mass-update-success' => 'Customers updated successfully'
],
'reviews' => [

View File

@ -257,7 +257,7 @@
<div class="control-group" :class="[errors.has('disc_amount') ? 'has-error' : '']">
<label for="disc_amount" class="required">{{ __('admin::app.promotion.general-info.disc_amt') }}</label>
<input type="number" step="0.5000" class="control" name="disc_amount" v-model="disc_amount" v-validate="'required|decimal|min_value:0.0001'" value="{{ old('disc_amount') }}" data-vv-as="&quot;{{ __('admin::app.promotion.general-info.disc_amt') }}&quot;">
<input type="number" step="0.5000" class="control" name="disc_amount" v-model="disc_amount" v-validate="'required|min_value:0.0001'" value="{{ old('disc_amount') }}" data-vv-as="&quot;{{ __('admin::app.promotion.general-info.disc_amt') }}&quot;">
<span class="control-error" v-if="errors.has('disc_amount')">@{{ errors.first('disc_amount') }}</span>
</div>