From c814a519543f388820063a956c829684214a18c4 Mon Sep 17 00:00:00 2001 From: sanjeev Date: Tue, 6 Sep 2022 17:53:37 +0530 Subject: [PATCH 1/4] Category mass update action added #6690 --- .../Admin/src/DataGrids/CategoryDataGrid.php | 11 ++++++ .../Admin/src/Resources/lang/ar/app.php | 1 + .../Admin/src/Resources/lang/ben/app.php | 2 ++ .../Admin/src/Resources/lang/de/app.php | 1 + .../Admin/src/Resources/lang/en/app.php | 1 + .../Admin/src/Resources/lang/es/app.php | 1 + .../Admin/src/Resources/lang/fa/app.php | 1 + .../Admin/src/Resources/lang/fr/app.php | 1 + .../Admin/src/Resources/lang/he/app.php | 1 + .../Admin/src/Resources/lang/hi_IN/app.php | 1 + .../Admin/src/Resources/lang/it/app.php | 1 + .../Admin/src/Resources/lang/ja/app.php | 1 + .../Admin/src/Resources/lang/nl/app.php | 1 + .../Admin/src/Resources/lang/pl/app.php | 1 + .../Admin/src/Resources/lang/pt_BR/app.php | 1 + .../Admin/src/Resources/lang/ru/app.php | 1 + .../Admin/src/Resources/lang/sin/app.php | 1 + .../Admin/src/Resources/lang/tr/app.php | 1 + .../Admin/src/Resources/lang/zh_CN/app.php | 1 + .../Admin/src/Routes/catalog-routes.php | 4 +++ .../Http/Controllers/CategoryController.php | 35 +++++++++++++++++++ 21 files changed, 69 insertions(+) diff --git a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php index 51c65f3d1..99d23b40e 100755 --- a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php @@ -174,5 +174,16 @@ class CategoryDataGrid extends DataGrid 'action' => route('admin.catalog.categories.massdelete'), 'method' => 'POST', ]); + + $this->addMassAction([ + 'type' => 'update', + 'label' => trans('admin::app.datagrid.update-status'), + 'action' => route('admin.catalog.categories.massupdate'), + 'method' => 'POST', + 'options' => [ + trans('admin::app.datagrid.active') => 1, + trans('admin::app.datagrid.inactive') => 0, + ], + ]); } } diff --git a/packages/Webkul/Admin/src/Resources/lang/ar/app.php b/packages/Webkul/Admin/src/Resources/lang/ar/app.php index cf1bbfbdd..a030dbbcf 100644 --- a/packages/Webkul/Admin/src/Resources/lang/ar/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ar/app.php @@ -731,6 +731,7 @@ return [ 'image' => 'صورة', 'filterable-attributes' => 'سمات قابلة للفلترة', 'attributes' => 'السمات', + 'mass-update-success' => 'تم تحديث جميع الفئات المحددة بنجاح', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/ben/app.php b/packages/Webkul/Admin/src/Resources/lang/ben/app.php index ffe5105fe..bf31cb0c9 100755 --- a/packages/Webkul/Admin/src/Resources/lang/ben/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ben/app.php @@ -737,6 +737,8 @@ return [ 'attributes' => 'Attributes', 'image-size' => 'Image resolution should be like 300px X 168px', 'image-size-logo' => 'Image resolution should be like 20px X 20px', + 'mass-update-success' => 'All the selected categories have been updated successfully', + ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/de/app.php b/packages/Webkul/Admin/src/Resources/lang/de/app.php index bf329e38a..f87267317 100755 --- a/packages/Webkul/Admin/src/Resources/lang/de/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/de/app.php @@ -723,6 +723,7 @@ return [ 'image' => 'Bild', 'filterable-attributes' => 'Filterbare Attribute', 'attributes' => 'Attribute', + 'mass-update-success' => 'Alle ausgewählten Kategorien wurden erfolgreich aktualisiert', ], ], 'configuration' => diff --git a/packages/Webkul/Admin/src/Resources/lang/en/app.php b/packages/Webkul/Admin/src/Resources/lang/en/app.php index cd869f4cf..872e4386c 100755 --- a/packages/Webkul/Admin/src/Resources/lang/en/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/en/app.php @@ -737,6 +737,7 @@ return [ 'attributes' => 'Attributes', 'image-size' => 'Image resolution should be like 300px X 168px', 'image-size-logo' => 'Image resolution should be like 20px X 20px', + 'mass-update-success' => 'All the selected categories have been updated successfully', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/es/app.php b/packages/Webkul/Admin/src/Resources/lang/es/app.php index d1d12e141..14810da33 100644 --- a/packages/Webkul/Admin/src/Resources/lang/es/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/es/app.php @@ -733,6 +733,7 @@ return [ 'image' => 'Imagen', 'filterable-attributes' => 'Atributos filtrables', 'attributes' => 'Atributos', + 'mass-update-success' => 'Todas las categorías seleccionadas se han actualizado correctamente', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/fa/app.php b/packages/Webkul/Admin/src/Resources/lang/fa/app.php index cee0656bc..eeaa25edc 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fa/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fa/app.php @@ -716,6 +716,7 @@ return [ 'image' => 'تصویر', 'filterable-attributes' => 'ویژگی های فیلتر', 'attributes' => 'ویژگی های', + 'mass-update-success' => 'همه دسته های انتخابی با موفقیت به روز شدند', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/fr/app.php b/packages/Webkul/Admin/src/Resources/lang/fr/app.php index feaf9816f..22d5b3423 100644 --- a/packages/Webkul/Admin/src/Resources/lang/fr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/fr/app.php @@ -736,6 +736,7 @@ return [ 'image' => 'Image', 'filterable-attributes' => 'Attributs filtrables', 'attributes' => 'Les attributs', + 'mass-update-success' => 'Toutes les catégories sélectionnées ont été mises à jour avec succès', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/he/app.php b/packages/Webkul/Admin/src/Resources/lang/he/app.php index 0c17e99b6..a0ad9c798 100755 --- a/packages/Webkul/Admin/src/Resources/lang/he/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/he/app.php @@ -737,6 +737,7 @@ return [ 'attributes' => 'Attributes', 'image-size' => 'Image resolution should be like 300px X 168px', 'image-size-logo' => 'Image resolution should be like 20px X 20px', + 'mass-update-success' => 'All the selected categories have been updated successfully', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php b/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php index 6253bc8c9..e25b4d5ef 100644 --- a/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/hi_IN/app.php @@ -734,6 +734,7 @@ return [ 'attributes' => 'गुण', 'image-size' => 'इमेज रेजोल्यूशन 300px X 168px जैसा होना चाहिए', 'image-size-logo' => 'इमेज रेजोल्यूशन 20px X 20px जैसा होना चाहिए', + 'mass-update-success' => 'सभी चयनित श्रेणियों को सफलतापूर्वक अपडेट कर दिया गया है', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/it/app.php b/packages/Webkul/Admin/src/Resources/lang/it/app.php index e974c2d48..c7bc851dc 100644 --- a/packages/Webkul/Admin/src/Resources/lang/it/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/it/app.php @@ -721,6 +721,7 @@ return [ 'image' => 'Immagine', 'filterable-attributes' => 'Attributi filtrabili', 'attributes' => 'Attributi', + 'mass-update-success' => 'Tutte le categorie selezionate sono state aggiornate con successo', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/ja/app.php b/packages/Webkul/Admin/src/Resources/lang/ja/app.php index ffe5105fe..7ef293965 100755 --- a/packages/Webkul/Admin/src/Resources/lang/ja/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ja/app.php @@ -737,6 +737,7 @@ return [ 'attributes' => 'Attributes', 'image-size' => 'Image resolution should be like 300px X 168px', 'image-size-logo' => 'Image resolution should be like 20px X 20px', + 'mass-update-success' => 'All the selected categories have been updated successfully', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/nl/app.php b/packages/Webkul/Admin/src/Resources/lang/nl/app.php index af0a21c7e..050d7336d 100644 --- a/packages/Webkul/Admin/src/Resources/lang/nl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/nl/app.php @@ -715,6 +715,7 @@ return [ 'image' => 'Afbeelding', 'filterable-attributes' => 'Filtreerbare kenmerken', 'attributes' => 'Attributen', + 'mass-update-success' => 'Alle geselecteerde categorieën zijn met succes bijgewerkt', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/pl/app.php b/packages/Webkul/Admin/src/Resources/lang/pl/app.php index 08289e24d..73b0e9771 100644 --- a/packages/Webkul/Admin/src/Resources/lang/pl/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pl/app.php @@ -716,6 +716,7 @@ return [ 'filterable-attributes' => ' „filterable-atrybuty” => „Filtrowalne atrybuty', 'attributes' => 'Atrybuty', + 'mass-update-success' => 'Wszystkie wybrane kategorie zostały pomyślnie zaktualizowane', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php index 4f375d1c9..21c315db1 100755 --- a/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php @@ -714,6 +714,7 @@ return [ 'image' => 'Imagem', 'filterable-attributes' => 'Atributos filtráveis', 'attributes' => 'Atributos', + 'mass-update-success' => 'Todas as categorias selecionadas foram atualizadas com sucesso', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/ru/app.php b/packages/Webkul/Admin/src/Resources/lang/ru/app.php index e85c41e48..4678f8da6 100755 --- a/packages/Webkul/Admin/src/Resources/lang/ru/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/ru/app.php @@ -737,6 +737,7 @@ return [ 'attributes' => 'Attributes', 'image-size' => 'Image resolution should be like 300px X 168px', 'image-size-logo' => 'Image resolution should be like 20px X 20px', + 'mass-update-success' => 'All the selected categories have been updated successfully', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/sin/app.php b/packages/Webkul/Admin/src/Resources/lang/sin/app.php index 0c17e99b6..a0ad9c798 100755 --- a/packages/Webkul/Admin/src/Resources/lang/sin/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/sin/app.php @@ -737,6 +737,7 @@ return [ 'attributes' => 'Attributes', 'image-size' => 'Image resolution should be like 300px X 168px', 'image-size-logo' => 'Image resolution should be like 20px X 20px', + 'mass-update-success' => 'All the selected categories have been updated successfully', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/tr/app.php b/packages/Webkul/Admin/src/Resources/lang/tr/app.php index 383ff83fd..6b8e90751 100644 --- a/packages/Webkul/Admin/src/Resources/lang/tr/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/tr/app.php @@ -721,6 +721,7 @@ return [ 'image' => 'Görsel', 'filterable-attributes' => 'Filtrelenebilir Nitelikler', 'attributes' => 'Nitelikler', + 'mass-update-success' => 'All the selected categories have been updated successfully', ], ], diff --git a/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php b/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php index f5b452d90..2e99365a1 100644 --- a/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php +++ b/packages/Webkul/Admin/src/Resources/lang/zh_CN/app.php @@ -716,6 +716,7 @@ return [ 'image' => '图片', 'filterable-attributes' => '可过滤属性', 'attributes' => '属性列表', + 'mass-update-success' => '所有選擇的類別都已成功更新', ], ], diff --git a/packages/Webkul/Admin/src/Routes/catalog-routes.php b/packages/Webkul/Admin/src/Routes/catalog-routes.php index 351b24765..8f944ef53 100644 --- a/packages/Webkul/Admin/src/Routes/catalog-routes.php +++ b/packages/Webkul/Admin/src/Routes/catalog-routes.php @@ -104,6 +104,10 @@ Route::group(['middleware' => ['web', 'admin'], 'prefix' => config('app.admin_ur 'redirect' => 'admin.catalog.categories.index', ])->name('admin.catalog.categories.massdelete'); + Route::post('categories/massupdate', [CategoryController::class, 'massUpdate'])->defaults('_config', [ + 'redirect' => 'admin.catalog.categories.index', + ])->name('admin.catalog.categories.massupdate'); + Route::post('/categories/product/count', [CategoryController::class, 'categoryProductCount'])->name('admin.catalog.categories.product.count'); /** diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index da21ea2f9..481175543 100755 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -205,6 +205,41 @@ class CategoryController extends Controller return redirect()->route($this->_config['redirect']); } + /** + * Mass update Category. + * + * @return \Illuminate\Http\Response + */ + public function massUpdate() + { + $data = request()->all(); + + if (! isset($data['massaction-type'])) { + return redirect()->back(); + } + + if (! $data['massaction-type'] == 'update') { + return redirect()->back(); + } + + $categoryIds = explode(',', $data['indexes']); + + foreach ($categoryIds as $categoryId) { + Event::dispatch('catalog.categories.mass-update.before', $categoryId); + + $category = $this->categoryRepository->find($categoryId); + + $category->status = $data['update-options']; + $category->save(); + + Event::dispatch('catalog.categories.mass-update.after', $category); + } + + session()->flash('success', trans('admin::app.catalog.categories.mass-update-success')); + + return redirect()->route($this->_config['redirect']); + } + /** * Get category product count. * From ae43d57fc76378969987447e1d7ccfd8d30db377 Mon Sep 17 00:00:00 2001 From: sanjeev Date: Tue, 6 Sep 2022 19:07:33 +0530 Subject: [PATCH 2/4] updates --- packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php | 2 +- packages/Webkul/Admin/src/Routes/catalog-routes.php | 4 ++-- .../Category/src/Http/Controllers/CategoryController.php | 6 +----- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php index 99d23b40e..09d6f176f 100755 --- a/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php +++ b/packages/Webkul/Admin/src/DataGrids/CategoryDataGrid.php @@ -178,7 +178,7 @@ class CategoryDataGrid extends DataGrid $this->addMassAction([ 'type' => 'update', 'label' => trans('admin::app.datagrid.update-status'), - 'action' => route('admin.catalog.categories.massupdate'), + 'action' => route('admin.catalog.categories.mass-update'), 'method' => 'POST', 'options' => [ trans('admin::app.datagrid.active') => 1, diff --git a/packages/Webkul/Admin/src/Routes/catalog-routes.php b/packages/Webkul/Admin/src/Routes/catalog-routes.php index 8f944ef53..c1128f8cd 100644 --- a/packages/Webkul/Admin/src/Routes/catalog-routes.php +++ b/packages/Webkul/Admin/src/Routes/catalog-routes.php @@ -104,9 +104,9 @@ Route::group(['middleware' => ['web', 'admin'], 'prefix' => config('app.admin_ur 'redirect' => 'admin.catalog.categories.index', ])->name('admin.catalog.categories.massdelete'); - Route::post('categories/massupdate', [CategoryController::class, 'massUpdate'])->defaults('_config', [ + Route::post('categories/mass-update', [CategoryController::class, 'massUpdate'])->defaults('_config', [ 'redirect' => 'admin.catalog.categories.index', - ])->name('admin.catalog.categories.massupdate'); + ])->name('admin.catalog.categories.mass-update'); Route::post('/categories/product/count', [CategoryController::class, 'categoryProductCount'])->name('admin.catalog.categories.product.count'); diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index 481175543..b406e7214 100755 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -214,11 +214,7 @@ class CategoryController extends Controller { $data = request()->all(); - if (! isset($data['massaction-type'])) { - return redirect()->back(); - } - - if (! $data['massaction-type'] == 'update') { + if (! isset($data['massaction-type']) || ! ($data['massaction-type'] == 'update')) { return redirect()->back(); } From 85d516d0ab135d4f2929ef7d82d5c2a8d5c46c3b Mon Sep 17 00:00:00 2001 From: sanjeev Date: Wed, 7 Sep 2022 13:25:28 +0530 Subject: [PATCH 3/4] acl updated --- packages/Webkul/Admin/src/Config/acl.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/packages/Webkul/Admin/src/Config/acl.php b/packages/Webkul/Admin/src/Config/acl.php index b9f12f518..1c51398e6 100755 --- a/packages/Webkul/Admin/src/Config/acl.php +++ b/packages/Webkul/Admin/src/Config/acl.php @@ -165,6 +165,11 @@ return [ 'name' => 'admin::app.acl.mass-delete', 'route' => 'admin.catalog.categories.massdelete', 'sort' => 4, + ], [ + 'key' => 'catalog.categories.mass-update', + 'name' => 'admin::app.acl.mass-update', + 'route' => 'admin.catalog.categories.mass-update', + 'sort' => 4, ], [ 'key' => 'catalog.attributes', 'name' => 'admin::app.acl.attributes', From a5940d458b31e672a589adff7f95fd0ecfd360be Mon Sep 17 00:00:00 2001 From: sanjeev Date: Wed, 7 Sep 2022 15:04:18 +0530 Subject: [PATCH 4/4] update condition --- .../Webkul/Category/src/Http/Controllers/CategoryController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php index b406e7214..ece39ef7f 100755 --- a/packages/Webkul/Category/src/Http/Controllers/CategoryController.php +++ b/packages/Webkul/Category/src/Http/Controllers/CategoryController.php @@ -214,7 +214,7 @@ class CategoryController extends Controller { $data = request()->all(); - if (! isset($data['massaction-type']) || ! ($data['massaction-type'] == 'update')) { + if (! isset($data['massaction-type']) || ! $data['massaction-type'] == 'update') { return redirect()->back(); }