diagnostic-assets.html 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. <!DOCTYPE html>
  2. <html lang="fr">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Diagnostic des assets Map Generator</title>
  6. <style>
  7. body { font-family: sans-serif; margin: 2em; }
  8. .ok { color: green; }
  9. .fail { color: red; }
  10. .warn { color: orange; }
  11. table { border-collapse: collapse; margin-top: 1em; }
  12. th, td { border: 1px solid #ccc; padding: 0.5em 1em; }
  13. </style>
  14. </head>
  15. <body>
  16. <h1>Diagnostic des assets Map Generator</h1>
  17. <p>Ce diagnostic vérifie la présence des fichiers JS/CSS essentiels et signale les doublons ou inclusions non conditionnelles.</p>
  18. <table>
  19. <thead>
  20. <tr><th>Asset</th><th>Statut</th><th>Remarque</th></tr>
  21. </thead>
  22. <tbody id="assets-table"></tbody>
  23. </table>
  24. <script>
  25. const assets = [
  26. '/assets/bootstrap.bundle.min.js',
  27. '/assets/bootstrap.min.js',
  28. '/assets/jquery.min.js',
  29. '/assets/js/pages/projects.js',
  30. '/assets/js/editor/map-editor.js',
  31. '/assets/js/loader.js',
  32. '/assets/js/core/dom-ready.js',
  33. '/assets/js/ui/header.js',
  34. '/assets/styles.css',
  35. '/assets/bootstrap-icons.min.css',
  36. ];
  37. function checkAsset(url, cb) {
  38. var xhr = new XMLHttpRequest();
  39. xhr.open('HEAD', url);
  40. xhr.onload = function() {
  41. cb(xhr.status === 200);
  42. };
  43. xhr.onerror = function() {
  44. cb(false);
  45. };
  46. xhr.send();
  47. }
  48. function addRow(asset, ok, note) {
  49. var tr = document.createElement('tr');
  50. var td1 = document.createElement('td'); td1.textContent = asset;
  51. var td2 = document.createElement('td'); td2.textContent = ok ? 'Présent' : 'Manquant'; td2.className = ok ? 'ok' : 'fail';
  52. var td3 = document.createElement('td'); td3.textContent = note || '';
  53. tr.appendChild(td1); tr.appendChild(td2); tr.appendChild(td3);
  54. document.getElementById('assets-table').appendChild(tr);
  55. }
  56. (function(){
  57. assets.forEach(function(asset){
  58. checkAsset(asset, function(ok){
  59. let note = '';
  60. if (asset === '/assets/bootstrap.min.js' && ok) note = 'Doit charger le bundle, wrapper présent.';
  61. if (asset === '/assets/bootstrap.bundle.min.js' && !ok) note = 'Indispensable pour le modal Bootstrap.';
  62. addRow(asset, ok, note);
  63. });
  64. });
  65. })();
  66. </script>
  67. <hr>
  68. <h2>Conseils</h2>
  69. <ul>
  70. <li>Vérifiez que chaque asset "Présent" est bien chargé dans le HTML (onglet Network).</li>
  71. <li>Si un asset est "Manquant", vérifiez le chemin et la présence sur le disque.</li>
  72. <li>Pour le JS d'édition de carte, assurez-vous que <code>map-editor.js</code> n'est inclus que sur les pages où <code>#mapCanvas</code> existe.</li>
  73. <li>Pour le CSS, vérifiez que <code>styles.css</code> et <code>bootstrap-icons.min.css</code> sont bien chargés.</li>
  74. </ul>
  75. </body>
  76. </html>