feat: enhance PDF generation and improve Lucide icon initialization

This commit is contained in:
Felix Schlusche
2025-10-24 14:41:10 +02:00
parent af23aa369c
commit 1cc8dc3b6c
3 changed files with 267 additions and 303 deletions

View File

@@ -5,12 +5,12 @@
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Zeiterfassung</title>
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="favicon.svg">
<!-- Tailwind CSS via CDN -->
<script src="https://cdn.tailwindcss.com"></script>
<!-- Lucide Icons -->
<script src="https://unpkg.com/lucide@latest"></script>
<!-- Flatpickr CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/flatpickr/dist/flatpickr.min.css">
@@ -833,6 +833,11 @@
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf-autotable/3.8.2/jspdf.plugin.autotable.min.js"></script>
<!-- Lucide Icons - Try multiple CDN sources -->
<script src="https://unpkg.com/lucide@0.294.0/dist/umd/lucide.js"
onerror="console.error('Failed to load Lucide from unpkg'); this.onerror=null; this.src='https://cdn.jsdelivr.net/npm/lucide@0.294.0/dist/umd/lucide.js'">
</script>
<!-- App Logic - Load in correct order -->
<script src="js/state.js"></script>
<script src="js/utils.js"></script>
@@ -842,7 +847,26 @@
<!-- Initialize Lucide Icons -->
<script>
lucide.createIcons();
// Use a more robust initialization
function initLucide() {
console.log('Checking lucide...', typeof lucide, window.lucide);
if (typeof lucide !== 'undefined' && lucide.createIcons) {
console.log('Initializing Lucide icons...');
lucide.createIcons();
} else if (window.lucide && window.lucide.createIcons) {
console.log('Initializing Lucide icons from window...');
window.lucide.createIcons();
} else {
console.error('Lucide still not available after all attempts');
}
}
// Try multiple times
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initLucide);
} else {
setTimeout(initLucide, 100);
}
</script>
</body>
</html>