Skip to content

Commit 535be1c

Browse files
Merge pull request #2317 from suraj-webkul/issue#2307
Issue #2307 has been fixed.
2 parents 2de1243 + 9382cef commit 535be1c

File tree

10 files changed

+197
-100
lines changed

10 files changed

+197
-100
lines changed

packages/Webkul/Admin/src/Http/Controllers/Settings/Marketing/EventController.php

Lines changed: 69 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Webkul\Admin\Http\Controllers\Settings\Marketing;
44

5+
use Exception;
56
use Illuminate\Http\JsonResponse;
67
use Illuminate\Support\Facades\Event;
78
use Illuminate\View\View;
@@ -80,11 +81,19 @@ public function update(int $id): JsonResponse
8081
*/
8182
public function destroy(int $id): JsonResponse
8283
{
83-
Event::dispatch('settings.marketing.events.delete.before', $id);
84+
$event = $this->eventRepository->findOrFail($id);
8485

85-
$this->eventRepository->delete($id);
86+
if ($event->campaigns->isNotEmpty()) {
87+
return response()->json([
88+
'message' => trans('admin::app.settings.marketing.events.index.delete-failed-associated-campaigns'),
89+
], 422);
90+
}
91+
92+
Event::dispatch('settings.marketing.events.delete.before', $event);
93+
94+
$this->eventRepository->delete($event->id);
8695

87-
Event::dispatch('settings.marketing.events.delete.after', $id);
96+
Event::dispatch('settings.marketing.events.delete.after', $event);
8897

8998
return response()->json([
9099
'message' => trans('admin::app.settings.marketing.events.index.delete-success'),
@@ -94,20 +103,67 @@ public function destroy(int $id): JsonResponse
94103
/**
95104
* Remove the specified marketing events from storage.
96105
*/
97-
public function massDestroy(MassDestroyRequest $massDestroyRequest): JsonResponse
106+
public function massDestroy(MassDestroyRequest $request): JsonResponse
98107
{
99-
$marketingEvents = $this->eventRepository->findWhereIn('id', $massDestroyRequest->input('indices'));
108+
try {
109+
$events = $this->eventRepository->findWhereIn('id', $request->input('indices', []));
100110

101-
foreach ($marketingEvents as $marketingEvent) {
102-
Event::dispatch('settings.marketing.events.delete.before', $marketingEvent);
111+
$deletedCount = 0;
103112

104-
$this->eventRepository->delete($marketingEvent->id);
113+
$blockedCount = 0;
105114

106-
Event::dispatch('settings.marketing.events.delete.after', $marketingEvent);
107-
}
115+
foreach ($events as $event) {
116+
if (
117+
$event->campaigns
118+
&& $event->campaigns->isNotEmpty()
119+
) {
120+
$blockedCount++;
108121

109-
return response()->json([
110-
'message' => trans('admin::app.settings.marketing.events.index.mass-delete-success'),
111-
]);
122+
continue;
123+
}
124+
125+
Event::dispatch('settings.marketing.events.delete.before', $event);
126+
127+
$this->eventRepository->delete($event->id);
128+
129+
Event::dispatch('settings.marketing.events.delete.after', $event);
130+
131+
$deletedCount++;
132+
}
133+
134+
$statusCode = 200;
135+
136+
switch (true) {
137+
case $deletedCount > 0 && $blockedCount === 0:
138+
$message = trans('admin::app.settings.marketing.events.index.mass-delete-success');
139+
140+
break;
141+
142+
case $deletedCount > 0 && $blockedCount > 0:
143+
$message = trans('admin::app.settings.marketing.events.index.partial-delete-warning');
144+
145+
break;
146+
147+
case $deletedCount === 0 && $blockedCount > 0:
148+
$message = trans('admin::app.settings.marketing.events.index.none-delete-warning');
149+
150+
$statusCode = 400;
151+
152+
break;
153+
154+
default:
155+
$message = trans('admin::app.settings.marketing.events.index.no-selection');
156+
157+
$statusCode = 400;
158+
159+
break;
160+
}
161+
162+
return response()->json(['message' => $message], $statusCode);
163+
} catch (Exception $e) {
164+
return response()->json([
165+
'message' => trans('admin::app.settings.marketing.events.index.mass-delete-failed'),
166+
], 400);
167+
}
112168
}
113169
}

packages/Webkul/Admin/src/Resources/lang/ar/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,13 +1114,17 @@
11141114
'marketing' => [
11151115
'events' => [
11161116
'index' => [
1117-
'create-btn' => 'إنشاء حدث',
1118-
'title' => 'الأحداث',
1119-
'create-success' => 'تم إنشاء الحدث بنجاح.',
1120-
'update-success' => 'تم تحديث الحدث بنجاح.',
1121-
'delete-success' => 'تم حذف الحدث بنجاح.',
1122-
'delete-failed' => 'لا يمكن حذف الحدث.',
1123-
'mass-delete-success' => 'تم حذف الأحداث بنجاح',
1117+
'create-btn' => 'إنشاء حدث',
1118+
'title' => 'الأحداث',
1119+
'create-success' => 'تم إنشاء الحدث بنجاح.',
1120+
'update-success' => 'تم تحديث الحدث بنجاح.',
1121+
'delete-success' => 'تم حذف الحدث بنجاح.',
1122+
'delete-failed' => 'لا يمكن حذف الحدث.',
1123+
'delete-failed-associated-campaigns' => 'لا يمكن حذف الحدث لأنه مرتبط بحملات.',
1124+
'mass-delete-success' => 'تم حذف الأحداث بنجاح.',
1125+
'partial-delete-warning' => 'تعذر حذف بعض الأحداث لأنها مرتبطة بحملات.',
1126+
'none-delete-warning' => 'تعذر حذف أي من الأحداث المحددة لأنها مرتبطة بحملات.',
1127+
'no-selection' => 'لم يتم تحديد أي أحداث للحذف.',
11241128

11251129
'datagrid' => [
11261130
'delete' => 'حذف',

packages/Webkul/Admin/src/Resources/lang/en/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1116,13 +1116,17 @@
11161116
'marketing' => [
11171117
'events' => [
11181118
'index' => [
1119-
'create-btn' => 'Create Event',
1120-
'title' => 'Events',
1121-
'create-success' => 'Event created successfully.',
1122-
'update-success' => 'Event updated successfully.',
1123-
'delete-success' => 'Event deleted successfully.',
1124-
'delete-failed' => 'Event can not be deleted.',
1125-
'mass-delete-success' => 'Events deleted successfully',
1119+
'create-btn' => 'Create Event',
1120+
'title' => 'Events',
1121+
'create-success' => 'Event created successfully.',
1122+
'update-success' => 'Event updated successfully.',
1123+
'delete-success' => 'Event deleted successfully.',
1124+
'delete-failed' => 'Event can not be deleted.',
1125+
'delete-failed-associated-campaigns' => 'Event can not be deleted, as it is associated with campaigns.',
1126+
'mass-delete-success' => 'Events deleted successfully.',
1127+
'partial-delete-warning' => 'Some events could not be deleted, as they are associated with campaigns.',
1128+
'none-delete-warning' => 'None of the selected events could be deleted, as they are associated with campaigns.',
1129+
'no-selection' => 'No events were selected for deletion.',
11261130

11271131
'datagrid' => [
11281132
'delete' => 'Delete',

packages/Webkul/Admin/src/Resources/lang/es/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1117,13 +1117,17 @@
11171117
'marketing' => [
11181118
'events' => [
11191119
'index' => [
1120-
'create-btn' => 'Crear Evento',
1121-
'title' => 'Eventos',
1122-
'create-success' => 'Evento creado con éxito.',
1123-
'update-success' => 'Evento actualizado con éxito.',
1124-
'delete-success' => 'Evento eliminado con éxito.',
1125-
'delete-failed' => 'No se puede eliminar el evento.',
1126-
'mass-delete-success' => 'Eventos eliminados con éxito',
1120+
'create-btn' => 'Crear Evento',
1121+
'title' => 'Eventos',
1122+
'create-success' => 'Evento creado exitosamente.',
1123+
'update-success' => 'Evento actualizado exitosamente.',
1124+
'delete-success' => 'Evento eliminado exitosamente.',
1125+
'delete-failed' => 'No se puede eliminar el evento.',
1126+
'delete-failed-associated-campaigns' => 'No se puede eliminar el evento porque está asociado a campañas.',
1127+
'mass-delete-success' => 'Eventos eliminados exitosamente.',
1128+
'partial-delete-warning' => 'Algunos eventos no se pudieron eliminar porque están asociados a campañas.',
1129+
'none-delete-warning' => 'Ninguno de los eventos seleccionados se pudo eliminar porque están asociados a campañas.',
1130+
'no-selection' => 'No se seleccionaron eventos para eliminar.',
11271131

11281132
'datagrid' => [
11291133
'delete' => 'Eliminar',

packages/Webkul/Admin/src/Resources/lang/fa/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1119,13 +1119,17 @@
11191119
'marketing' => [
11201120
'events' => [
11211121
'index' => [
1122-
'create-btn' => 'ایجاد رویداد',
1123-
'title' => 'رویدادها',
1124-
'create-success' => 'رویداد با موفقیت ایجاد شد.',
1125-
'update-success' => 'رویداد با موفقیت به‌روزرسانی شد.',
1126-
'delete-success' => 'رویداد با موفقیت حذف شد.',
1127-
'delete-failed' => 'رویداد قابل حذف نیست.',
1128-
'mass-delete-success' => 'رویدادها با موفقیت حذف شدند',
1122+
'create-btn' => 'ایجاد رویداد',
1123+
'title' => 'رویدادها',
1124+
'create-success' => 'رویداد با موفقیت ایجاد شد.',
1125+
'update-success' => 'رویداد با موفقیت به‌روزرسانی شد.',
1126+
'delete-success' => 'رویداد با موفقیت حذف شد.',
1127+
'delete-failed' => 'امکان حذف رویداد وجود ندارد.',
1128+
'delete-failed-associated-campaigns' => 'رویداد قابل حذف نیست، زیرا با کمپین‌هایی در ارتباط است.',
1129+
'mass-delete-success' => 'رویدادها با موفقیت حذف شدند.',
1130+
'partial-delete-warning' => 'برخی از رویدادها به دلیل وابستگی به کمپین‌ها قابل حذف نیستند.',
1131+
'none-delete-warning' => 'هیچ‌یک از رویدادهای انتخاب شده به دلیل وابستگی به کمپین‌ها قابل حذف نیستند.',
1132+
'no-selection' => 'هیچ رویدادی برای حذف انتخاب نشده است.',
11291133

11301134
'datagrid' => [
11311135
'delete' => 'حذف',

packages/Webkul/Admin/src/Resources/lang/pt_BR/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1111,13 +1111,17 @@
11111111
'marketing' => [
11121112
'events' => [
11131113
'index' => [
1114-
'create-btn' => 'Adicionar Evento',
1115-
'title' => 'Eventos',
1116-
'create-success' => 'Evento adicionado com sucesso.',
1117-
'update-success' => 'Evento atualizado com sucesso.',
1118-
'delete-success' => 'Evento excluído com sucesso.',
1119-
'delete-failed' => 'Não é possível excluir o evento.',
1120-
'mass-delete-success' => 'Eventos excluídos com sucesso',
1114+
'create-btn' => 'Criar Evento',
1115+
'title' => 'Eventos',
1116+
'create-success' => 'Evento criado com sucesso.',
1117+
'update-success' => 'Evento atualizado com sucesso.',
1118+
'delete-success' => 'Evento excluído com sucesso.',
1119+
'delete-failed' => 'Não foi possível excluir o evento.',
1120+
'delete-failed-associated-campaigns' => 'Não foi possível excluir o evento, pois está associado a campanhas.',
1121+
'mass-delete-success' => 'Eventos excluídos com sucesso.',
1122+
'partial-delete-warning' => 'Alguns eventos não puderam ser excluídos por estarem associados a campanhas.',
1123+
'none-delete-warning' => 'Nenhum dos eventos selecionados pôde ser excluído por estarem associados a campanhas.',
1124+
'no-selection' => 'Nenhum evento foi selecionado para exclusão.',
11211125

11221126
'datagrid' => [
11231127
'delete' => 'Excluir',

packages/Webkul/Admin/src/Resources/lang/tr/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1118,13 +1118,17 @@
11181118
'marketing' => [
11191119
'events' => [
11201120
'index' => [
1121-
'create-btn' => 'Etkinlik Oluştur',
1122-
'title' => 'Etkinlikler',
1123-
'create-success' => 'Etkinlik başarıyla oluşturuldu.',
1124-
'update-success' => 'Etkinlik başarıyla güncellendi.',
1125-
'delete-success' => 'Etkinlik başarıyla silindi.',
1126-
'delete-failed' => 'Etkinlik silinemedi.',
1127-
'mass-delete-success' => 'Etkinlikler başarıyla silindi',
1121+
'create-btn' => 'Etkinlik Oluştur',
1122+
'title' => 'Etkinlikler',
1123+
'create-success' => 'Etkinlik başarıyla oluşturuldu.',
1124+
'update-success' => 'Etkinlik başarıyla güncellendi.',
1125+
'delete-success' => 'Etkinlik başarıyla silindi.',
1126+
'delete-failed' => 'Etkinlik silinemedi.',
1127+
'delete-failed-associated-campaigns' => 'Etkinlik, kampanyalarla ilişkili olduğu için silinemiyor.',
1128+
'mass-delete-success' => 'Etkinlikler başarıyla silindi.',
1129+
'partial-delete-warning' => 'Bazı etkinlikler kampanyalarla ilişkili olduğu için silinemedi.',
1130+
'none-delete-warning' => 'Seçilen etkinliklerin hiçbiri kampanyalarla ilişkili olduğu için silinemedi.',
1131+
'no-selection' => 'Silmek için herhangi bir etkinlik seçilmedi.',
11281132

11291133
'datagrid' => [
11301134
'delete' => 'Sil',

packages/Webkul/Admin/src/Resources/lang/vi/app.php

Lines changed: 11 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,13 +1114,17 @@
11141114
'marketing' => [
11151115
'events' => [
11161116
'index' => [
1117-
'create-btn' => 'Tạo Sự kiện',
1118-
'title' => 'Sự kiện',
1119-
'create-success' => 'Sự kiện đã được tạo thành công.',
1120-
'update-success' => 'Sự kiện đã được cập nhật thành công.',
1121-
'delete-success' => 'Sự kiện đã được xóa thành công.',
1122-
'delete-failed' => 'Không thể xóa sự kiện.',
1123-
'mass-delete-success' => 'Các sự kiện đã được xóa thành công',
1117+
'create-btn' => 'Tạo Sự kiện',
1118+
'title' => 'Sự kiện',
1119+
'create-success' => 'Tạo sự kiện thành công.',
1120+
'update-success' => 'Cập nhật sự kiện thành công.',
1121+
'delete-success' => 'Xóa sự kiện thành công.',
1122+
'delete-failed' => 'Không thể xóa sự kiện.',
1123+
'delete-failed-associated-campaigns' => 'Không thể xóa sự kiện vì có liên kết với chiến dịch.',
1124+
'mass-delete-success' => 'Đã xóa sự kiện thành công.',
1125+
'partial-delete-warning' => 'Một số sự kiện không thể xóa vì có liên kết với chiến dịch.',
1126+
'none-delete-warning' => 'Không sự kiện nào trong số đã chọn được xóa vì có liên kết với chiến dịch.',
1127+
'no-selection' => 'Không có sự kiện nào được chọn để xóa.',
11241128

11251129
'datagrid' => [
11261130
'delete' => 'Xóa',

0 commit comments

Comments
 (0)