roadmaster-rev / script.js
philpelerin's picture
Structure du Cahier des Charges
ac459f7 verified
// Global functions and event listeners
document.addEventListener('DOMContentLoaded', () => {
// Initialize tooltips
const tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
tooltipTriggerList.map(function (tooltipTriggerEl) {
return new bootstrap.Tooltip(tooltipTriggerEl);
});
// Track user progress (mock function)
if (localStorage.getItem('userProgress')) {
const progress = JSON.parse(localStorage.getItem('userProgress'));
console.log('User progress loaded:', progress);
} else {
localStorage.setItem('userProgress', JSON.stringify({
scores: [],
weakTopics: [],
lastSession: null
}));
}
});
// Shared utility functions
function formatTime(seconds) {
const mins = Math.floor(seconds / 60);
const secs = seconds % 60;
return `${mins}:${secs < 10 ? '0' : ''}${secs}`;
}
function calculatePercentage(score, total) {
return Math.round((score / total) * 100);
}