Skip to content

Commit 132c5cf

Browse files
committed
Updated delete function
1 parent 9e9a2d1 commit 132c5cf

File tree

3 files changed

+49
-9
lines changed

3 files changed

+49
-9
lines changed

app/Http/Controllers/AdminController.php

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,21 @@ public function deleteUser(request $request)
223223
return redirect('admin/users/all');
224224
}
225225

226+
//Delete existing user with POST request
227+
public function deleteTableUser(request $request)
228+
{
229+
$id = $request->id;
230+
231+
Link::where('user_id', $id)->delete();
232+
233+
Schema::disableForeignKeyConstraints();
234+
235+
$user = User::find($id);
236+
$user->forceDelete();
237+
238+
Schema::enableForeignKeyConstraints();
239+
}
240+
226241
//Show user to edit
227242
public function showUser(request $request)
228243
{

resources/views/panel/users.blade.php

Lines changed: 33 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,15 +26,39 @@
2626

2727
<a href="{{ url('') }}/admin/new-user">+ {{__('messages.Add new user')}}</a>
2828

29-
<script type="text/javascript">
30-
var elems = document.getElementsByClassName('confirmation');
31-
var confirmIt = function (e) {
32-
if (!confirm("{{__('messages.confirm.delete.user')}}")) e.preventDefault();
33-
};
34-
for (var i = 0, l = elems.length; i < l; i++) {
35-
elems[i].addEventListener('click', confirmIt, false);
36-
}
37-
</script>
29+
<script type="text/javascript">
30+
var elems = document.getElementsByClassName('confirmation');
31+
var confirmIt = function (e) {
32+
e.preventDefault();
33+
if (confirm("{{ __('messages.confirm.delete.user') }}")) {
34+
var userId = this.getAttribute('data-id');
35+
deleteUserData(userId);
36+
}
37+
};
38+
39+
var deleteUserData = function(userId) {
40+
var url = "{{ route('deleteTableUser', ['id' => ':id']) }}".replace(':id', userId);
41+
var xhr = new XMLHttpRequest();
42+
xhr.open('POST', url, true);
43+
xhr.setRequestHeader('X-CSRF-TOKEN', '{{ csrf_token() }}');
44+
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
45+
xhr.onreadystatechange = function () {
46+
if (xhr.readyState === 4 && xhr.status === 200) {
47+
refreshLivewireTable();
48+
}
49+
};
50+
var data = JSON.stringify({ id: userId });
51+
xhr.send(data);
52+
};
53+
54+
var refreshLivewireTable = function () {
55+
Livewire.components.getComponentsByName('user-table')[0].$wire.$refresh()
56+
};
57+
58+
for (var i = 0, l = elems.length; i < l; i++) {
59+
elems[i].addEventListener('click', confirmIt, false);
60+
}
61+
</script>
3862

3963
</div>
4064
</section>

routes/web.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@
171171
Route::post('/admin/edit-user/{id}', [AdminController::class, 'editUser'])->name('editUser');
172172
Route::get('/admin/new-user', [AdminController::class, 'createNewUser'])->name('createNewUser')->middleware('max.users');
173173
Route::get('/admin/delete-user/{id}', [AdminController::class, 'deleteUser'])->name('deleteUser');
174+
Route::post('/admin/delete-table-user/{id}', [AdminController::class, 'deleteTableUser'])->name('deleteTableUser');
174175
Route::get('/admin/pages', [AdminController::class, 'showSitePage'])->name('showSitePage');
175176
Route::post('/admin/pages', [AdminController::class, 'editSitePage'])->name('editSitePage');
176177
Route::get('/admin/advanced-config', [AdminController::class, 'showFileEditor'])->name('showFileEditor');

0 commit comments

Comments
 (0)