Overflights reporting and menu layout changes
This commit is contained in:
@@ -13,27 +13,26 @@
|
||||
<h1>✈️ Swansea Tower</h1>
|
||||
</div>
|
||||
<div class="menu-buttons">
|
||||
<button class="btn btn-success" onclick="openNewPPRModal()">
|
||||
➕ New PPR
|
||||
</button>
|
||||
<button class="btn btn-info" onclick="openLocalFlightModal()">
|
||||
🛫 Book Out
|
||||
</button>
|
||||
<button class="btn btn-info" onclick="openBookInModal()">
|
||||
🛬 Book In
|
||||
</button>
|
||||
<button class="btn btn-secondary" onclick="openOverflightModal()">
|
||||
🔄 Overflight
|
||||
</button>
|
||||
<button class="btn btn-primary" onclick="window.location.href = '/reports'">
|
||||
📊 Reports
|
||||
</button>
|
||||
<button class="btn btn-warning" onclick="openUserManagementModal()" id="user-management-btn" style="display: none;">
|
||||
👥 User Management
|
||||
</button>
|
||||
<button class="btn btn-primary" onclick="loadPPRs()">
|
||||
🔄 Refresh
|
||||
</button>
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-success dropdown-toggle" id="actionsDropdownBtn">
|
||||
📋 Actions
|
||||
</button>
|
||||
<div class="dropdown-menu" id="actionsDropdownMenu">
|
||||
<a href="#" onclick="openNewPPRModal(); closeActionsDropdown()">➕ New PPR <span class="shortcut">(N)</span></a>
|
||||
<a href="#" onclick="openLocalFlightModal('LOCAL'); closeActionsDropdown()">🛫 Book Out <span class="shortcut">(L)</span></a>
|
||||
<a href="#" onclick="openBookInModal(); closeActionsDropdown()">🛬 Book In <span class="shortcut">(I)</span></a>
|
||||
<a href="#" onclick="openOverflightModal(); closeActionsDropdown()">🔄 Overflight <span class="shortcut">(O)</span></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="dropdown">
|
||||
<button class="btn btn-warning dropdown-toggle" id="adminDropdownBtn">
|
||||
⚙️ Admin
|
||||
</button>
|
||||
<div class="dropdown-menu" id="adminDropdownMenu">
|
||||
<a href="#" onclick="window.location.href = '/reports'">📊 Reports</a>
|
||||
<a href="#" onclick="openUserManagementModal(); closeAdminDropdown()" id="user-management-dropdown" style="display: none;">👥 User Management</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="user-info">
|
||||
Logged in as: <span id="current-user">Loading...</span> |
|
||||
@@ -1399,6 +1398,40 @@
|
||||
});
|
||||
}
|
||||
|
||||
// Dropdown menu handlers
|
||||
document.addEventListener('click', function(e) {
|
||||
const actionsBtn = document.getElementById('actionsDropdownBtn');
|
||||
const actionsMenu = document.getElementById('actionsDropdownMenu');
|
||||
const adminBtn = document.getElementById('adminDropdownBtn');
|
||||
const adminMenu = document.getElementById('adminDropdownMenu');
|
||||
|
||||
// Handle Actions dropdown
|
||||
if (e.target === actionsBtn) {
|
||||
e.preventDefault();
|
||||
actionsMenu.classList.toggle('active');
|
||||
adminMenu.classList.remove('active');
|
||||
} else if (!actionsMenu.contains(e.target)) {
|
||||
actionsMenu.classList.remove('active');
|
||||
}
|
||||
|
||||
// Handle Admin dropdown
|
||||
if (e.target === adminBtn) {
|
||||
e.preventDefault();
|
||||
adminMenu.classList.toggle('active');
|
||||
actionsMenu.classList.remove('active');
|
||||
} else if (!adminMenu.contains(e.target)) {
|
||||
adminMenu.classList.remove('active');
|
||||
}
|
||||
});
|
||||
|
||||
function closeActionsDropdown() {
|
||||
document.getElementById('actionsDropdownMenu').classList.remove('active');
|
||||
}
|
||||
|
||||
function closeAdminDropdown() {
|
||||
document.getElementById('adminDropdownMenu').classList.remove('active');
|
||||
}
|
||||
|
||||
function showLogin() {
|
||||
document.getElementById('loginModal').style.display = 'block';
|
||||
document.getElementById('login-username').focus();
|
||||
@@ -3335,20 +3368,20 @@
|
||||
currentUserRole = userData.role;
|
||||
console.log('User role from API:', currentUserRole); // Debug log
|
||||
|
||||
// Show user management button only for administrators
|
||||
const userManagementBtn = document.getElementById('user-management-btn');
|
||||
// Show user management in dropdown only for administrators
|
||||
const userManagementDropdown = document.getElementById('user-management-dropdown');
|
||||
if (currentUserRole && currentUserRole.toUpperCase() === 'ADMINISTRATOR') {
|
||||
userManagementBtn.style.display = 'inline-block';
|
||||
console.log('Showing user management button'); // Debug log
|
||||
userManagementDropdown.style.display = 'block';
|
||||
console.log('Showing user management in dropdown'); // Debug log
|
||||
} else {
|
||||
userManagementBtn.style.display = 'none';
|
||||
console.log('Hiding user management button, current role:', currentUserRole); // Debug log
|
||||
userManagementDropdown.style.display = 'none';
|
||||
console.log('Hiding user management, current role:', currentUserRole); // Debug log
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error updating user role:', error);
|
||||
// Hide user management by default on error
|
||||
document.getElementById('user-management-btn').style.display = 'none';
|
||||
document.getElementById('user-management-dropdown').style.display = 'none';
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user