This commit is contained in:
2025-07-16 16:44:43 +03:00
parent f075cdf871
commit 52e4daf37f
3 changed files with 105 additions and 18 deletions

View File

@@ -151,12 +151,16 @@
<td>
<div class="btn-group btn-group-sm">
{% if user.username != current_user.username %}
<button type="button" class="btn btn-outline-warning"
onclick="editUser('{{ user.id }}', '{{ user.username }}', '{{ user.role }}', {{ user.is_active_user|tojson }})">
<button type="button" class="btn btn-outline-warning edit-user-btn"
data-user-id="{{ user.id }}"
data-username="{{ user.username }}"
data-role="{{ user.role }}"
data-active="{{ user.is_active_user|tojson }}">
<i class="bi bi-pencil"></i>
</button>
<button type="button" class="btn btn-outline-danger"
onclick="deleteUser('{{ user.id }}', '{{ user.username }}')">
<button type="button" class="btn btn-outline-danger delete-user-btn"
data-user-id="{{ user.id }}"
data-username="{{ user.username }}">
<i class="bi bi-trash"></i>
</button>
{% else %}
@@ -502,7 +506,7 @@
<div class="modal-body">
<div class="mb-3">
<label for="editUsername" class="form-label">Username</label>
<input type="text" class="form-control" id="editUsername" name="username" readonly>
<input type="text" class="form-control" id="editUsername" name="username" required>
</div>
<div class="mb-3">
<label for="editRole" class="form-label">Role</label>
@@ -613,23 +617,65 @@
let currentUserId = null;
function editUser(userId, username, role, isActive) {
console.log('editUser called with:', userId, username, role, isActive);
currentUserId = userId;
document.getElementById('editUserId').value = userId;
document.getElementById('editUsername').value = username;
document.getElementById('editRole').value = role;
document.getElementById('editIsActive').checked = isActive;
const editUserId = document.getElementById('editUserId');
const editUsername = document.getElementById('editUsername');
const editRole = document.getElementById('editRole');
const editIsActive = document.getElementById('editIsActive');
if (!editUserId || !editUsername || !editRole || !editIsActive) {
console.error('Modal elements not found');
return;
}
editUserId.value = userId;
editUsername.value = username;
editRole.value = role;
editIsActive.checked = isActive;
document.getElementById('editPassword').value = '';
const modal = new bootstrap.Modal(document.getElementById('editUserModal'));
modal.show();
try {
const modalElement = document.getElementById('editUserModal');
if (!modalElement) {
console.error('Edit modal not found');
return;
}
const modal = new bootstrap.Modal(modalElement);
modal.show();
console.log('Modal should be shown');
} catch (error) {
console.error('Error showing modal:', error);
}
}
function deleteUser(userId, username) {
document.getElementById('deleteUserId').value = userId;
document.getElementById('deleteUsername').textContent = username;
console.log('deleteUser called with:', userId, username);
const modal = new bootstrap.Modal(document.getElementById('deleteUserModal'));
modal.show();
const deleteUserId = document.getElementById('deleteUserId');
const deleteUsername = document.getElementById('deleteUsername');
if (!deleteUserId || !deleteUsername) {
console.error('Delete modal elements not found');
return;
}
deleteUserId.value = userId;
deleteUsername.textContent = username;
try {
const modalElement = document.getElementById('deleteUserModal');
if (!modalElement) {
console.error('Delete modal not found');
return;
}
const modal = new bootstrap.Modal(modalElement);
modal.show();
console.log('Delete modal should be shown');
} catch (error) {
console.error('Error showing delete modal:', error);
}
}
function clearLogs() {
@@ -870,6 +916,31 @@ function deleteTask(taskId) {
document.addEventListener('DOMContentLoaded', function() {
console.log('Admin page loaded - initializing...');
// Add event listeners for edit and delete buttons
document.querySelectorAll('.edit-user-btn').forEach(button => {
button.addEventListener('click', function() {
const userId = this.getAttribute('data-user-id');
const username = this.getAttribute('data-username');
const role = this.getAttribute('data-role');
const isActive = this.getAttribute('data-active') === 'true';
console.log('Edit button clicked:', userId, username, role, isActive);
editUser(userId, username, role, isActive);
});
});
document.querySelectorAll('.delete-user-btn').forEach(button => {
button.addEventListener('click', function() {
const userId = this.getAttribute('data-user-id');
const username = this.getAttribute('data-username');
console.log('Delete button clicked:', userId, username);
deleteUser(userId, username);
});
});
// Make functions globally accessible
window.editUser = editUser;
window.deleteUser = deleteUser;
// Check for successful user operations and handle refresh
checkForUserOperationSuccess();