Skip to content

Commit 9bcd194

Browse files
committed
completed Delete User modal changes
1 parent 8e3d7e4 commit 9bcd194

File tree

3 files changed

+80
-28
lines changed

3 files changed

+80
-28
lines changed

app/Http/Controllers/UsersController.php

+72-26
Original file line numberDiff line numberDiff line change
@@ -242,47 +242,93 @@ public function destroy(Request $request)
242242
$id = $request->id;
243243
$user = User::with('clients', 'tasks', 'leads')->findOrFail($id);
244244

245-
if ($request->user_clients === $id || $request->user_tasks === $id || $request->user_leads === $id) {
246-
Session()->flash('flash_error', 'You may not reassign clients, leads or tasks to the user you are deleting!');
245+
if ($request->user_clients == $id || $request->user_tasks == $id || $request->user_leads == $id) {
246+
Session()->flash('flash_message_warning', 'You may not reassign clients, leads or tasks to the user you are deleting.');
247247
} else {
248-
// are we keeping her clients?
249-
if ('' === $request->user_clients) {
250-
// just delete all the clients related to this user
251-
foreach ($user->clients as $client) {
252-
$client->delete();
253-
}
254-
} else {
255-
// move all clients to new user
256-
foreach ($user->clients() as $client) {
257-
$client->user_id = $request->user_clients;
258-
$client->save();
248+
// are we keeping her tasks?
249+
if ($user->tasks()->count() > 0) {
250+
if ('' == $request->user_tasks) {
251+
// just delete all the tasks related to this user
252+
$user->tasks()->delete();
253+
} else {
254+
// move all clients to new user
255+
foreach ($user->tasks as $task) {
256+
$task->user_assigned_id = $request->user_tasks;
257+
$task->save();
258+
}
259259
}
260260
}
261261

262-
// are we keeping her tasks?
263-
if ('' === $request->user_tasks) {
264-
// just delete all the tasks related to this user
265-
$user->tasks()->delete();
262+
// clean up tasks created but not assigned to the user
263+
$tasks = Task::where('user_created_id', $id)->get();
264+
if ('' == $request->user_tasks) {
265+
foreach ($tasks as $task) {
266+
$task->user_created_id = $task->user_assigned_id;
267+
$task->save();
268+
}
266269
} else {
267-
// move all clients to new user
268-
foreach ($user->tasks() as $task) {
269-
$task->user_id = $request->user_tasks;
270+
foreach ($tasks as $task) {
271+
$task->user_created_id = $request->user_tasks;
270272
$task->save();
271273
}
272274
}
273275

276+
// refresh the user
277+
$user->refresh();
278+
274279
// are we keeping her leads?
275-
if ('' === $request->user_leads) {
276-
// just delete all the leads related to this user
277-
$user->leads()->delete();
280+
if ($user->leads()->count() > 0) {
281+
if ('' == $request->user_leads) {
282+
// just delete all the leads related to this user
283+
$user->leads()->delete();
284+
} else {
285+
// move all clients to new user
286+
foreach ($user->leads as $lead) {
287+
$lead->user_assigned_id = $request->user_leads;
288+
$lead->save();
289+
}
290+
}
291+
}
292+
293+
// clean up leads created but not assigned to the user
294+
$leads = Lead::where('user_created_id', $id)->get();
295+
if ('' == $request->user_leads) {
296+
foreach ($leads as $lead) {
297+
$lead->user_created_id = $lead->user_assigned_id;
298+
$lead->save();
299+
}
278300
} else {
279-
// move all clients to new user
280-
foreach ($user->leads() as $lead) {
281-
$lead->user_assigned_id = $request->user_leads;
301+
foreach ($leads as $lead) {
302+
$lead->user_created_id = $request->user_leads;
282303
$lead->save();
283304
}
284305
}
285306

307+
// refresh the user
308+
$user->refresh();
309+
310+
// are we keeping her clients?
311+
if ($user->clients()->count() > 0) {
312+
if ('' == $request->user_clients) {
313+
// just delete all the clients related to this user
314+
foreach ($user->clients as $client) {
315+
// clean out all remaining client tasks and leads
316+
$client->tasks()->delete();
317+
$client->leads()->delete();
318+
$client->delete();
319+
}
320+
} else {
321+
// move all clients to new user
322+
foreach ($user->clients as $client) {
323+
$client->user_id = $request->user_clients;
324+
$client->save();
325+
}
326+
}
327+
}
328+
329+
// refresh the user one more time
330+
$user->refresh();
331+
286332
$user->delete();
287333
Session()->flash('flash_message', 'User successfully deleted');
288334
}

resources/views/layouts/master.blade.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,10 @@ function postRead(id) {
117117
<script type="text/javascript" src="{{ URL::asset('js/jquery.dataTables.min.js') }}"></script>
118118
<script type="text/javascript" src="{{ URL::asset('js/jasny-bootstrap.min.js') }}"></script>
119119
<script type="text/javascript" src="{{ URL::asset('js/jquery.caret.min.js') }}"></script>
120-
<script type="text/javascript" src="{{ URL::asset('js/jquery.atwho.min.js') }}"></script>
120+
<script type="text/javascript" src="{{ URL::asset('js/jquery.atwho.min.js') }}"></script>
121+
121122
@stack('scripts')
123+
122124
</body>
123125

124126
</html>

resources/views/users/index.blade.php

+5-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
<!--HANDLE TASKS-->
3535
<div class="form-group">
36-
{{ Form::label('user_clients', __('Choose a new user to assign the clients')) }}
36+
{{ Form::label('user_clients', __('Choose a new user to assign the clients')) }} <span class="glyphicon glyphicon-exclamation-sign text-danger" data-toggle="tooltip" title="Deleting all clients also deletes ALL tasks and leads assigned to that client, regardless of the user they are assigned to."></span>
3737
{{ Form::select('user_clients', $users, null, ['class' => 'form-control', 'placeholder' => 'Delete All Clients']) }}
3838
</div>
3939

@@ -89,5 +89,9 @@
8989
});
9090
});
9191
92+
$(function () {
93+
$('[data-toggle="tooltip"]').tooltip()
94+
})
95+
9296
</script>
9397
@endpush

0 commit comments

Comments
 (0)