-
Notifications
You must be signed in to change notification settings - Fork 0
/
sendMail.js
84 lines (80 loc) · 4.49 KB
/
sendMail.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<div class="container">
<h1 class="mt-4">Product List</h1>
<table class="table table-bordered table-striped mt-4" id="user-table">
<thead class="thead-dark">
<tr>
<th>ID</th>
<th>Photo</th>
<th>Name</th>
<th>Price</th>
<th>Stock</th>
<th>Status</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<% users.forEach(user => { %>
<tr>
<td><%= user._id %></td>
<td><%= user.main-photo%></td>
<td><%= user.name%></td>
<td><%= user.price%></td>
<td><%= user.stock%></td>
<td><%= user.status%></td>
<td id="status-<%= user._id %>"><%= user.status %></td>
<td>
<button class="btn<%= user.status === 'Unblocked' ? ' red-button' : (user.status === 'Blocked' ? ' green-button' : '') %>" onclick="toggleUserStatus('<%= user._id %>', '<%= user.status %>')">
<% if (user.status === 'Blocked') { %>
Unblock
<% } else { %>
Block
<% } %>
</button>
</td>
</tr>
<% }); %>
</tbody>
</table>
</div>
<script>
function toggleUserStatus(userId, currentStatus) {
const statusElement = document.querySelector(`#status-${userId}`);
// Toggle the user's status
const newStatus = currentStatus === 'Blocked' ? 'Unblocked' : 'Blocked';
// Update the user's status in your database (use an API call or Mongoose).
// For example, using an API call with the Fetch API:
fetch(`/update-user-status/${userId}`, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
},
body: JSON.stringify({ status: newStatus }),
})
.then(response => {
if (response.ok) {
return response.json();
} else {
// Handle the error
console.error('Error updating user status');
}
})
.then(data => {
// Update the button's text with the new status from the response
statusElement.textContent = data.status;
// Reload the page to reflect the updated status
location.reload();
})
.catch(error => {
console.error(error);
});
}
</script>
<!-- for pagination and searching -->
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/jquery.dataTables.min.js"></script>
<script src="https://cdn.datatables.net/1.13.6/js/dataTables.bootstrap5.min.js"></script>
<script>
$(document).ready(function () {
new DataTable('#user-table');
})
</script>