From 9bcd1943a5f63145bfac5212fdf696e0924ad7c4 Mon Sep 17 00:00:00 2001 From: Jason Huebel Date: Tue, 9 Jul 2019 09:50:14 -0500 Subject: [PATCH] completed Delete User modal changes --- app/Http/Controllers/UsersController.php | 98 +++++++++++++++++------- resources/views/layouts/master.blade.php | 4 +- resources/views/users/index.blade.php | 6 +- 3 files changed, 80 insertions(+), 28 deletions(-) diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 768d0232e..f257bfca6 100644 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -242,47 +242,93 @@ public function destroy(Request $request) $id = $request->id; $user = User::with('clients', 'tasks', 'leads')->findOrFail($id); - if ($request->user_clients === $id || $request->user_tasks === $id || $request->user_leads === $id) { - Session()->flash('flash_error', 'You may not reassign clients, leads or tasks to the user you are deleting!'); + if ($request->user_clients == $id || $request->user_tasks == $id || $request->user_leads == $id) { + Session()->flash('flash_message_warning', 'You may not reassign clients, leads or tasks to the user you are deleting.'); } else { - // are we keeping her clients? - if ('' === $request->user_clients) { - // just delete all the clients related to this user - foreach ($user->clients as $client) { - $client->delete(); - } - } else { - // move all clients to new user - foreach ($user->clients() as $client) { - $client->user_id = $request->user_clients; - $client->save(); + // are we keeping her tasks? + if ($user->tasks()->count() > 0) { + if ('' == $request->user_tasks) { + // just delete all the tasks related to this user + $user->tasks()->delete(); + } else { + // move all clients to new user + foreach ($user->tasks as $task) { + $task->user_assigned_id = $request->user_tasks; + $task->save(); + } } } - // are we keeping her tasks? - if ('' === $request->user_tasks) { - // just delete all the tasks related to this user - $user->tasks()->delete(); + // clean up tasks created but not assigned to the user + $tasks = Task::where('user_created_id', $id)->get(); + if ('' == $request->user_tasks) { + foreach ($tasks as $task) { + $task->user_created_id = $task->user_assigned_id; + $task->save(); + } } else { - // move all clients to new user - foreach ($user->tasks() as $task) { - $task->user_id = $request->user_tasks; + foreach ($tasks as $task) { + $task->user_created_id = $request->user_tasks; $task->save(); } } + // refresh the user + $user->refresh(); + // are we keeping her leads? - if ('' === $request->user_leads) { - // just delete all the leads related to this user - $user->leads()->delete(); + if ($user->leads()->count() > 0) { + if ('' == $request->user_leads) { + // just delete all the leads related to this user + $user->leads()->delete(); + } else { + // move all clients to new user + foreach ($user->leads as $lead) { + $lead->user_assigned_id = $request->user_leads; + $lead->save(); + } + } + } + + // clean up leads created but not assigned to the user + $leads = Lead::where('user_created_id', $id)->get(); + if ('' == $request->user_leads) { + foreach ($leads as $lead) { + $lead->user_created_id = $lead->user_assigned_id; + $lead->save(); + } } else { - // move all clients to new user - foreach ($user->leads() as $lead) { - $lead->user_assigned_id = $request->user_leads; + foreach ($leads as $lead) { + $lead->user_created_id = $request->user_leads; $lead->save(); } } + // refresh the user + $user->refresh(); + + // are we keeping her clients? + if ($user->clients()->count() > 0) { + if ('' == $request->user_clients) { + // just delete all the clients related to this user + foreach ($user->clients as $client) { + // clean out all remaining client tasks and leads + $client->tasks()->delete(); + $client->leads()->delete(); + $client->delete(); + } + } else { + // move all clients to new user + foreach ($user->clients as $client) { + $client->user_id = $request->user_clients; + $client->save(); + } + } + } + + // refresh the user one more time + $user->refresh(); + $user->delete(); Session()->flash('flash_message', 'User successfully deleted'); } diff --git a/resources/views/layouts/master.blade.php b/resources/views/layouts/master.blade.php index 682f721bc..81ae107d2 100644 --- a/resources/views/layouts/master.blade.php +++ b/resources/views/layouts/master.blade.php @@ -117,8 +117,10 @@ function postRead(id) { - + + @stack('scripts') + diff --git a/resources/views/users/index.blade.php b/resources/views/users/index.blade.php index fb70216d7..04a320d79 100644 --- a/resources/views/users/index.blade.php +++ b/resources/views/users/index.blade.php @@ -33,7 +33,7 @@
- {{ Form::label('user_clients', __('Choose a new user to assign the clients')) }} + {{ Form::label('user_clients', __('Choose a new user to assign the clients')) }} {{ Form::select('user_clients', $users, null, ['class' => 'form-control', 'placeholder' => 'Delete All Clients']) }}
@@ -89,5 +89,9 @@ }); }); +$(function () { + $('[data-toggle="tooltip"]').tooltip() +}) + @endpush