116 lines
3.7 KiB
JavaScript
116 lines
3.7 KiB
JavaScript
// Debug script to test the analytics page
|
|
// Save this file to public/js/debug-analytics.js
|
|
|
|
(function() {
|
|
console.log('🔍 Analytics Debug Helper loaded');
|
|
|
|
// Function to check user dropdowns
|
|
function checkUserDropdowns() {
|
|
console.log('Checking user dropdowns...');
|
|
|
|
const selectors = [
|
|
'analyticsUserSelect',
|
|
'userDropdown',
|
|
'wordUserSelect',
|
|
'passwordUsername',
|
|
'reportUser'
|
|
];
|
|
|
|
selectors.forEach(id => {
|
|
const dropdown = document.getElementById(id);
|
|
if (dropdown) {
|
|
console.log(`✅ Found dropdown: ${id}`);
|
|
console.log(` - Options: ${dropdown.options.length}`);
|
|
console.log(` - Values: ${Array.from(dropdown.options).map(o => o.value).join(', ')}`);
|
|
} else {
|
|
console.log(`❌ Dropdown not found: ${id}`);
|
|
}
|
|
});
|
|
}
|
|
|
|
// Function to manually populate the analytics dropdown
|
|
function populateAnalyticsDropdown() {
|
|
console.log('🔄 Manually populating analytics dropdown...');
|
|
|
|
const analyticsDropdown = document.getElementById('analyticsUserSelect');
|
|
if (!analyticsDropdown) {
|
|
console.error('❌ Analytics dropdown not found');
|
|
return;
|
|
}
|
|
|
|
// Clear existing options except the first (All Users)
|
|
while (analyticsDropdown.options.length > 1) {
|
|
analyticsDropdown.remove(1);
|
|
}
|
|
|
|
// Fetch users directly
|
|
fetch('/getUsers')
|
|
.then(response => {
|
|
if (!response.ok) {
|
|
throw new Error(`Server returned ${response.status}`);
|
|
}
|
|
return response.json();
|
|
})
|
|
.then(users => {
|
|
console.log(`✅ Fetched ${users.length} users:`, users.map(u => u.username));
|
|
|
|
// Add users to dropdown
|
|
users.forEach(user => {
|
|
const option = document.createElement('option');
|
|
option.value = user.username;
|
|
option.textContent = user.username;
|
|
analyticsDropdown.appendChild(option);
|
|
});
|
|
|
|
console.log(`✅ Added ${users.length} users to analytics dropdown`);
|
|
})
|
|
.catch(error => {
|
|
console.error('❌ Error fetching users:', error);
|
|
});
|
|
}
|
|
|
|
// Add helper buttons
|
|
window.addEventListener('DOMContentLoaded', () => {
|
|
setTimeout(() => {
|
|
// Create debug control panel
|
|
const debugPanel = document.createElement('div');
|
|
debugPanel.style.position = 'fixed';
|
|
debugPanel.style.bottom = '10px';
|
|
debugPanel.style.right = '10px';
|
|
debugPanel.style.backgroundColor = 'rgba(0,0,0,0.7)';
|
|
debugPanel.style.padding = '10px';
|
|
debugPanel.style.borderRadius = '5px';
|
|
debugPanel.style.color = 'white';
|
|
debugPanel.style.zIndex = '9999';
|
|
debugPanel.style.fontSize = '12px';
|
|
|
|
// Add title
|
|
const title = document.createElement('div');
|
|
title.textContent = '🐞 Debug Tools';
|
|
title.style.fontWeight = 'bold';
|
|
title.style.marginBottom = '5px';
|
|
debugPanel.appendChild(title);
|
|
|
|
// Add check dropdowns button
|
|
const checkBtn = document.createElement('button');
|
|
checkBtn.textContent = '👁️ Check Dropdowns';
|
|
checkBtn.style.marginRight = '5px';
|
|
checkBtn.style.padding = '3px 6px';
|
|
checkBtn.addEventListener('click', checkUserDropdowns);
|
|
debugPanel.appendChild(checkBtn);
|
|
|
|
// Add populate button
|
|
const populateBtn = document.createElement('button');
|
|
populateBtn.textContent = '🔄 Force Populate';
|
|
populateBtn.style.padding = '3px 6px';
|
|
populateBtn.addEventListener('click', populateAnalyticsDropdown);
|
|
debugPanel.appendChild(populateBtn);
|
|
|
|
document.body.appendChild(debugPanel);
|
|
|
|
// Initial check after a delay
|
|
setTimeout(checkUserDropdowns, 2000);
|
|
}, 1000);
|
|
});
|
|
})();
|