73 lines
3 KiB
HTML
73 lines
3 KiB
HTML
{% extends "admin/admin-layout.html" %}
|
|
|
|
{% block app_content %}
|
|
<h1>Member List</h1>
|
|
<a href="{{ url_for('admin.users_csv') }}" target="_blank">CSV for ACM</a>
|
|
<table class="table table-striped">
|
|
<thead>
|
|
<tr>
|
|
<th>Email</th>
|
|
<th>Name</th>
|
|
<th>Created</th>
|
|
<th>Last Login</th>
|
|
<th>Officer?</th>
|
|
<th>Options</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
{% for u in u_list %}
|
|
<tr>
|
|
<td>{{ u.email }}</td>
|
|
<td>{{ u.first_name }} {{ u.last_name }}</td>
|
|
<td>{{ u.created }}</td>
|
|
<td>{{ u.last_login }}</td>
|
|
<td>{{ u.is_admin }}</td>
|
|
<td>
|
|
<div class="dropdown">
|
|
<a href="#" class="btn btn-primary dropdown-toggle"
|
|
data-bs-toggle="dropdown"><span
|
|
class="caret"></span></a>
|
|
<ul class="dropdown-menu">
|
|
{% if u.is_admin %}
|
|
<li class="dropdown-item"><a href="#" class="toggle-admin" data-id="{{
|
|
u.id}}
|
|
">Demote
|
|
Officer</a></li>
|
|
{% else %}
|
|
<li class="dropdown-item"> <a class="toggle-admin"
|
|
href="#" data-id="{{ u.id}}">Promote Officer</a></li>
|
|
{% endif %}
|
|
<li class="dropdown-item"><a href="{{
|
|
url_for('admin.officer_positions',
|
|
user_id=u.id)}}">Manage Officer
|
|
Entries</a></li>
|
|
<li class="dropdown-item">View Event Checkins</li>
|
|
<li class="dropdown-item">Delete Member</li>
|
|
</ul>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
{% endfor %}
|
|
</tbody>
|
|
</table>
|
|
<script src="{{ url_for('static', filename='js/jquery-3.6.3.min.js') }}" charset="utf-8"></script>
|
|
<script charset="utf-8">
|
|
$(document).ready(() => {
|
|
$('a.toggle-admin').click((e) => {
|
|
e.preventDefault();
|
|
let id = e.target.dataset.id
|
|
console.log(`Toggling admin status of ${id}`)
|
|
$.get(`/admin/users/toggle_admin/${id}`, (data) => {
|
|
if (data.status === 'success') {
|
|
window.alert("Success!");
|
|
window.location.reload()
|
|
} else {
|
|
window.alert(`Error :(\n${data.message}`)
|
|
window.location.reload()
|
|
}
|
|
});
|
|
});
|
|
});
|
|
</script>
|
|
|
|
{% endblock app_content %}
|