Skip to content

Commit 896e6da

Browse files
committed
Improve function
1 parent 132c5cf commit 896e6da

File tree

2 files changed

+64
-9
lines changed

2 files changed

+64
-9
lines changed

app/Http/Livewire/UserTable.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,9 +67,9 @@ public function columns(): array
6767
'id' => $row->id
6868
]);
6969
if ($row->email_verified_at == '') {
70-
return '<a href="' . $verifyLink . '" class="text-danger"><span class="badge bg-danger">' . __('messages.Pending') . '</span></a>';
70+
return '<a style="cursor:pointer" data-id="'.$verifyLink.'" class="user-email text-danger"><span class="badge bg-danger">' . __('messages.Pending') . '</span></a>';
7171
} else {
72-
return '<a href="' . $verifyLink . '" class="text-danger"><span class="badge bg-success">' . __('messages.Verified') . '</span></a>';
72+
return '<a style="cursor:pointer" data-id="'.$verifyLink.'" class="user-email text-danger"><span class="badge bg-success">' . __('messages.Verified') . '</span></a>';
7373
}
7474
}
7575
} else {
@@ -85,9 +85,9 @@ public function columns(): array
8585
} else {
8686
$route = route('blockUser', ['block' => $row->block, 'id' => $row->id]);
8787
if ($row->block === 'yes') {
88-
$badge = '<span class="badge bg-danger">'.__('messages.Pending').'</span>';
88+
$badge = '<a style="cursor:pointer" data-id="'.$route.'" class="user-block text-danger"><span class="badge bg-danger">'.__('messages.Pending').'</span></a>';
8989
} elseif ($row->block === 'no') {
90-
$badge = '<span class="badge bg-success">'.__('messages.Approved').'</span>';
90+
$badge = '<a style="cursor:pointer" data-id="'.$route.'" class="user-block text-danger"><span class="badge bg-success">'.__('messages.Approved').'</span></a>';
9191
}
9292
return "<a href=\"$route\">$badge</a>";
9393
}

resources/views/panel/users.blade.php

Lines changed: 60 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
<a href="{{ url('') }}/admin/new-user">+ {{__('messages.Add new user')}}</a>
2828

2929
<script type="text/javascript">
30+
// Function to confirm and delete users
3031
var elems = document.getElementsByClassName('confirmation');
3132
var confirmIt = function (e) {
3233
e.preventDefault();
@@ -35,7 +36,7 @@
3536
deleteUserData(userId);
3637
}
3738
};
38-
39+
3940
var deleteUserData = function(userId) {
4041
var url = "{{ route('deleteTableUser', ['id' => ':id']) }}".replace(':id', userId);
4142
var xhr = new XMLHttpRequest();
@@ -50,16 +51,70 @@
5051
var data = JSON.stringify({ id: userId });
5152
xhr.send(data);
5253
};
53-
54+
55+
// Function to refresh the Livewire table
5456
var refreshLivewireTable = function () {
5557
Livewire.components.getComponentsByName('user-table')[0].$wire.$refresh()
5658
};
57-
59+
60+
// Attach click event listeners to elements with class 'confirmation'
5861
for (var i = 0, l = elems.length; i < l; i++) {
5962
elems[i].addEventListener('click', confirmIt, false);
6063
}
61-
</script>
62-
64+
</script>
65+
<script type="text/javascript">
66+
// Function to handle user verification requests
67+
var elems = document.getElementsByClassName('user-email');
68+
69+
var handleUserClick = function (e) {
70+
e.preventDefault();
71+
var userId = this.getAttribute('data-id');
72+
sendVerificationRequest(userId);
73+
};
74+
75+
var sendVerificationRequest = function(userId) {
76+
var xhr = new XMLHttpRequest();
77+
xhr.open('GET', userId, true);
78+
xhr.onreadystatechange = function () {
79+
if (xhr.readyState === 4 && xhr.status === 200) {
80+
refreshLivewireTable();
81+
}
82+
};
83+
xhr.send();
84+
};
85+
86+
// Attach click event listeners to elements with class 'user-email'
87+
for (var i = 0, l = elems.length; i < l; i++) {
88+
elems[i].addEventListener('click', handleUserClick, false);
89+
}
90+
</script>
91+
<script type="text/javascript">
92+
// Function to handle user blocking
93+
var elems = document.getElementsByClassName('user-block');
94+
95+
var handleUserClick = function (e) {
96+
e.preventDefault();
97+
var userId = this.getAttribute('data-id');
98+
sendVerificationRequest(userId);
99+
};
100+
101+
var sendVerificationRequest = function(userId) {
102+
var xhr = new XMLHttpRequest();
103+
xhr.open('GET', userId, true);
104+
xhr.onreadystatechange = function () {
105+
if (xhr.readyState === 4 && xhr.status === 200) {
106+
refreshLivewireTable();
107+
}
108+
};
109+
xhr.send();
110+
};
111+
112+
// Attach click event listeners to elements with class 'user-block'
113+
for (var i = 0, l = elems.length; i < l; i++) {
114+
elems[i].addEventListener('click', handleUserClick, false);
115+
}
116+
</script>
117+
63118
</div>
64119
</section>
65120

0 commit comments

Comments
 (0)