Skip to content

Commit e6b0584

Browse files
Merge pull request #2259 from suraj-webkul/issue#2256
Issue #2256 has been fixed.
2 parents 1d2e602 + 3214e2c commit e6b0584

File tree

13 files changed

+192
-99
lines changed

13 files changed

+192
-99
lines changed

packages/Webkul/Admin/src/Http/Controllers/Contact/Persons/PersonController.php

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

33
namespace Webkul\Admin\Http\Controllers\Contact\Persons;
44

5+
use Exception;
56
use Illuminate\Http\JsonResponse;
67
use Illuminate\Http\RedirectResponse;
78
use Illuminate\Http\Resources\Json\JsonResource;
@@ -138,40 +139,97 @@ public function destroy(int $id): JsonResponse
138139
{
139140
$person = $this->personRepository->findOrFail($id);
140141

142+
if (
143+
$person->leads
144+
&& $person->leads->count() > 0
145+
) {
146+
return response()->json([
147+
'message' => trans('admin::app.contacts.persons.index.delete-failed'),
148+
], 400);
149+
}
150+
141151
try {
142-
Event::dispatch('contacts.person.delete.before', $id);
152+
Event::dispatch('contacts.person.delete.before', $person);
143153

144-
$person->delete($id);
154+
$person->delete();
145155

146-
Event::dispatch('contacts.person.delete.after', $id);
156+
Event::dispatch('contacts.person.delete.after', $person);
147157

148158
return response()->json([
149159
'message' => trans('admin::app.contacts.persons.index.delete-success'),
150160
], 200);
151-
} catch (\Exception $exception) {
161+
162+
} catch (Exception $exception) {
152163
return response()->json([
153164
'message' => trans('admin::app.contacts.persons.index.delete-failed'),
154165
], 400);
155166
}
156167
}
157168

158169
/**
159-
* Mass Delete the specified resources.
170+
* Mass destroy the specified resources from storage.
160171
*/
161-
public function massDestroy(MassDestroyRequest $massDestroyRequest): JsonResponse
172+
public function massDestroy(MassDestroyRequest $request): JsonResponse
162173
{
163-
$persons = $this->personRepository->findWhereIn('id', $massDestroyRequest->input('indices'));
174+
try {
175+
$persons = $this->personRepository->findWhereIn('id', $request->input('indices', []));
164176

165-
foreach ($persons as $person) {
166-
Event::dispatch('contact.person.delete.before', $person);
177+
$deletedCount = 0;
167178

168-
$this->personRepository->delete($person->id);
179+
$blockedCount = 0;
169180

170-
Event::dispatch('contact.person.delete.after', $person);
171-
}
181+
foreach ($persons as $person) {
182+
if (
183+
$person->leads
184+
&& $person->leads->count() > 0
185+
) {
186+
$blockedCount++;
187+
188+
continue;
189+
}
190+
191+
Event::dispatch('contact.person.delete.before', $person);
192+
193+
$this->personRepository->delete($person->id);
194+
195+
Event::dispatch('contact.person.delete.after', $person);
196+
197+
$deletedCount++;
198+
}
199+
200+
$statusCode = 200;
172201

173-
return response()->json([
174-
'message' => trans('admin::app.contacts.persons.index.delete-success'),
175-
]);
202+
switch (true) {
203+
case $deletedCount > 0 && $blockedCount === 0:
204+
$message = trans('admin::app.contacts.persons.index.all-delete-success');
205+
206+
break;
207+
208+
case $deletedCount > 0 && $blockedCount > 0:
209+
$message = trans('admin::app.contacts.persons.index.partial-delete-warning');
210+
211+
break;
212+
213+
case $deletedCount === 0 && $blockedCount > 0:
214+
$message = trans('admin::app.contacts.persons.index.none-delete-warning');
215+
216+
$statusCode = 400;
217+
218+
break;
219+
220+
default:
221+
$message = trans('admin::app.contacts.persons.index.no-selection');
222+
223+
$statusCode = 400;
224+
225+
break;
226+
}
227+
228+
return response()->json(['message' => $message], $statusCode);
229+
} catch (Exception $exception) {
230+
return response()->json([
231+
'message' => trans('admin::app.contacts.persons.index.delete-failed'),
232+
], 400);
233+
}
176234
}
177235
}

packages/Webkul/Admin/src/Http/Controllers/Settings/WebFormController.php

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,6 @@ public function store(): RedirectResponse
8484

8585
$data = request()->all();
8686

87-
$data['create_lead'] = isset($data['create_lead']) ? 1 : 0;
88-
8987
$webForm = $this->webFormRepository->create($data);
9088

9189
Event::dispatch('settings.web_forms.create.after', $webForm);
@@ -126,8 +124,6 @@ public function update(int $id): RedirectResponse
126124

127125
$data = request()->all();
128126

129-
$data['create_lead'] = isset($data['create_lead']) ? 1 : 0;
130-
131127
$webForm = $this->webFormRepository->update($data, $id);
132128

133129
Event::dispatch('settings.web_forms.update.after', $webForm);

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -539,12 +539,15 @@
539539
'contacts' => [
540540
'persons' => [
541541
'index' => [
542-
'title' => 'الأشخاص',
543-
'create-btn' => 'إنشاء شخص',
544-
'create-success' => 'تم إنشاء الشخص بنجاح.',
545-
'update-success' => 'تم تحديث الشخص بنجاح.',
546-
'delete-success' => 'تم حذف الشخص بنجاح.',
547-
'delete-failed' => 'لا يمكن حذف الشخص.',
542+
'title' => 'الأشخاص',
543+
'create-btn' => 'إنشاء شخص',
544+
'create-success' => 'تم إنشاء الشخص بنجاح.',
545+
'update-success' => 'تم تحديث الشخص بنجاح.',
546+
'all-delete-success' => 'تم حذف جميع الأشخاص المحددين بنجاح.',
547+
'partial-delete-warning' => 'تم حذف بعض الأشخاص بنجاح. لم يتم حذف الآخرين لأنهم مرتبطون بعملاء محتملين.',
548+
'none-delete-warning' => 'لم يتم حذف أي من الأشخاص المحددين لأنهم مرتبطون بعملاء محتملين.',
549+
'no-selection' => 'لم يتم تحديد أي أشخاص للحذف.',
550+
'delete-failed' => 'فشل في حذف الأشخاص المحددين.',
548551

549552
'datagrid' => [
550553
'contact-numbers' => 'أرقام الاتصال',

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -541,12 +541,15 @@
541541
'contacts' => [
542542
'persons' => [
543543
'index' => [
544-
'title' => 'Persons',
545-
'create-btn' => 'Create Person',
546-
'create-success' => 'Person created successfully.',
547-
'update-success' => 'Person updated successfully.',
548-
'delete-success' => 'Person deleted successfully.',
549-
'delete-failed' => 'Person can not be deleted.',
544+
'title' => 'Persons',
545+
'create-btn' => 'Create Person',
546+
'create-success' => 'Person created successfully.',
547+
'update-success' => 'Person updated successfully.',
548+
'all-delete-success' => 'All selected persons were deleted successfully.',
549+
'partial-delete-warning' => 'Some persons were deleted successfully. Others could not be deleted because they are linked to leads.',
550+
'none-delete-warning' => 'None of the selected persons could be deleted because they are linked to leads.',
551+
'no-selection' => 'No persons were selected for deletion.',
552+
'delete-failed' => 'Failed to delete selected persons.',
550553

551554
'datagrid' => [
552555
'contact-numbers' => 'Contact Numbers',

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -543,12 +543,15 @@
543543
'contacts' => [
544544
'persons' => [
545545
'index' => [
546-
'title' => 'Personas',
547-
'create-btn' => 'Crear Persona',
548-
'create-success' => 'Persona creada con éxito.',
549-
'update-success' => 'Persona actualizada con éxito.',
550-
'delete-success' => 'Persona eliminada con éxito.',
551-
'delete-failed' => 'No se puede eliminar la persona.',
546+
'title' => 'Personas',
547+
'create-btn' => 'Crear Persona',
548+
'create-success' => 'Persona creada con éxito.',
549+
'update-success' => 'Persona actualizada con éxito.',
550+
'all-delete-success' => 'Todas las personas seleccionadas fueron eliminadas exitosamente.',
551+
'partial-delete-warning' => 'Algunas personas fueron eliminadas con éxito. Otras no se pudieron eliminar porque están vinculadas a clientes potenciales.',
552+
'none-delete-warning' => 'Ninguna de las personas seleccionadas pudo ser eliminada porque están vinculadas a clientes potenciales.',
553+
'no-selection' => 'No se seleccionaron personas para eliminar.',
554+
'delete-failed' => 'No se pudieron eliminar las personas seleccionadas.',
552555

553556
'datagrid' => [
554557
'contact-numbers' => 'Números de Contacto',

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -544,12 +544,15 @@
544544
'contacts' => [
545545
'persons' => [
546546
'index' => [
547-
'title' => 'اشخاص',
548-
'create-btn' => 'ایجاد شخص',
549-
'create-success' => 'شخص با موفقیت ایجاد شد.',
550-
'update-success' => 'شخص با موفقیت به‌روزرسانی شد.',
551-
'delete-success' => 'شخص با موفقیت حذف شد.',
552-
'delete-failed' => 'حذف شخص ممکن نیست.',
547+
'title' => 'اشخاص',
548+
'create-btn' => 'ایجاد شخص',
549+
'create-success' => 'شخص با موفقیت ایجاد شد.',
550+
'update-success' => 'شخص با موفقیت به‌روزرسانی شد.',
551+
'all-delete-success' => 'همه افراد انتخاب‌شده با موفقیت حذف شدند.',
552+
'partial-delete-warning' => 'برخی از افراد با موفقیت حذف شدند. بقیه به دلیل مرتبط بودن با سرنخ‌ها حذف نشدند.',
553+
'none-delete-warning' => 'هیچ‌یک از افراد انتخاب‌شده به دلیل مرتبط بودن با سرنخ‌ها حذف نشدند.',
554+
'no-selection' => 'هیچ فردی برای حذف انتخاب نشده است.',
555+
'delete-failed' => 'حذف افراد انتخاب‌شده با شکست مواجه شد.',
553556

554557
'datagrid' => [
555558
'contact-numbers' => 'شماره‌های تماس',

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -537,12 +537,15 @@
537537
'contacts' => [
538538
'persons' => [
539539
'index' => [
540-
'title' => 'Pessoas',
541-
'create-btn' => 'Adicionar Pessoa',
542-
'create-success' => 'Pessoa adicionada com sucesso.',
543-
'update-success' => 'Pessoa atualizada com sucesso.',
544-
'delete-success' => 'Pessoa excluída com sucesso.',
545-
'delete-failed' => 'Não foi possível excluir a pessoa.',
540+
'title' => 'Pessoas',
541+
'create-btn' => 'Adicionar Pessoa',
542+
'create-success' => 'Pessoa adicionada com sucesso.',
543+
'update-success' => 'Pessoa atualizada com sucesso.',
544+
'all-delete-success' => 'Todas as pessoas selecionadas foram excluídas com sucesso.',
545+
'partial-delete-warning' => 'Algumas pessoas foram excluídas com sucesso. Outras não puderam ser excluídas porque estão vinculadas a leads.',
546+
'none-delete-warning' => 'Nenhuma das pessoas selecionadas pôde ser excluída porque estão vinculadas a leads.',
547+
'no-selection' => 'Nenhuma pessoa foi selecionada para exclusão.',
548+
'delete-failed' => 'Falha ao excluir as pessoas selecionadas.',
546549

547550
'datagrid' => [
548551
'contact-numbers' => 'Números de Contato',

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -543,12 +543,15 @@
543543
'contacts' => [
544544
'persons' => [
545545
'index' => [
546-
'title' => 'Kişiler',
547-
'create-btn' => 'Kişi Oluştur',
548-
'create-success' => 'Kişi başarıyla oluşturuldu.',
549-
'update-success' => 'Kişi başarıyla güncellendi.',
550-
'delete-success' => 'Kişi başarıyla silindi.',
551-
'delete-failed' => 'Kişi silinemedi.',
546+
'title' => 'Kişiler',
547+
'create-btn' => 'Kişi Oluştur',
548+
'create-success' => 'Kişi başarıyla oluşturuldu.',
549+
'update-success' => 'Kişi başarıyla güncellendi.',
550+
'all-delete-success' => 'Seçilen tüm kişiler başarıyla silindi.',
551+
'partial-delete-warning' => 'Bazı kişiler başarıyla silindi. Diğerleri potansiyel müşterilerle bağlantılı olduğu için silinemedi.',
552+
'none-delete-warning' => 'Seçilen kişilerin hiçbiri potansiyel müşterilerle bağlantılı olduğu için silinemedi.',
553+
'no-selection' => 'Silinecek kişi seçilmedi.',
554+
'delete-failed' => 'Seçilen kişiler silinemedi.',
552555

553556
'datagrid' => [
554557
'contact-numbers' => 'İletişim Numaraları',

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

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -540,12 +540,15 @@
540540
'contacts' => [
541541
'persons' => [
542542
'index' => [
543-
'title' => 'Người',
544-
'create-btn' => 'Tạo Người',
545-
'create-success' => 'Người đã được tạo thành công.',
546-
'update-success' => 'Người đã được cập nhật thành công.',
547-
'delete-success' => 'Người đã được xóa thành công.',
548-
'delete-failed' => 'Không thể xóa người này.',
543+
'title' => 'Người',
544+
'create-btn' => 'Tạo Người',
545+
'create-success' => 'Người đã được tạo thành công.',
546+
'update-success' => 'Người đã được cập nhật thành công.',
547+
'all-delete-success' => 'Tất cả người được chọn đã được xóa thành công.',
548+
'partial-delete-warning' => 'Một số người đã được xóa thành công. Những người khác không thể xóa vì có liên kết với khách hàng tiềm năng.',
549+
'none-delete-warning' => 'Không thể xóa bất kỳ người nào được chọn vì họ có liên kết với khách hàng tiềm năng.',
550+
'no-selection' => 'Chưa chọn người nào để xóa.',
551+
'delete-failed' => 'Xóa người được chọn không thành công.',
549552

550553
'datagrid' => [
551554
'contact-numbers' => 'Số Liên hệ',

packages/Webkul/Admin/src/Resources/views/settings/web-forms/create.blade.php

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ class="!w-1/4 rounded-r-none"
9595
id="submit_success_content"
9696
class="rounded-l-none"
9797
rules="required"
98+
:value="old('submit_success_content')"
9899
:label="trans('admin::app.settings.webforms.create.submit-success-action')"
99100
::placeholder="placeholder"
100101
/>
@@ -120,7 +121,7 @@ class="rounded-l-none"
120121
name="create_lead"
121122
value="1"
122123
:label="trans('admin::app.settings.webforms.create.create-lead')"
123-
v-model="createLead"
124+
:checked="false"
124125
/>
125126
126127
</x-admin::form.control-group>
@@ -546,7 +547,7 @@ class="!h-10 !w-12 rounded-l-none p-1 dark:border-gray-800 dark:bg-gray-900"
546547
data() {
547548
return {
548549
submitSuccessAction: {
549-
value: 'message',
550+
value: '{{ old('submit_success_action', 'message') }}',
550551
551552
options: [
552553
{ value: 'message', label: '@lang('admin::app.settings.webforms.create.display-custom-message')' },

0 commit comments

Comments
 (0)