templates/base.html.twig line 1

Open in your IDE?
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <!-- Responsive -->
  6. <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  7. <link rel="SHORTCUT ICON" href="{{ asset('img/log.ico') }}"/>
  8. <!-- Bootstrap CSS -->
  9. <link rel="stylesheet" href="{{ asset('bootstrap/dist/css/bootstrap.min.css') }}">
  10. <link rel="manifest" href="/manifest.json">
  11. <meta name="theme-color" content="#1a3a5c">
  12. <meta name="mobile-web-app-capable" content="yes">
  13. <meta name="apple-mobile-web-app-capable" content="yes">
  14. <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
  15. <meta name="apple-mobile-web-app-title" content="ERP STOPES">
  16. <link rel="apple-touch-icon" href="/img/icon-192.png">
  17. <title>{% block title %}{% endblock %}</title>
  18. <style type="text/css">
  19. </style>
  20. {% block stylesheets %}{% endblock %}
  21. </head>
  22. <body>
  23. {% block body %}{% endblock %}
  24. {% block javascripts %}
  25. <!-- Bootstrap JS (optionnel mais recommandé) -->
  26. <script src="{{ asset('bootstrap/dist/js/bootstrap.bundle.min.js') }}"></script>
  27. <script>
  28. (function () {
  29. 'use strict';
  30. // ── Détecter un changement de locale dans l'URL ──────────────────
  31. const urlParams = new URLSearchParams(window.location.search);
  32. const newLocale = urlParams.get('locale_changed');
  33. if (newLocale && 'serviceWorker' in navigator) {
  34. // Envoyer message au Service Worker pour vider le cache pages
  35. navigator.serviceWorker.ready.then(registration => {
  36. if (registration.active) {
  37. registration.active.postMessage({
  38. type : 'CLEAR_PAGES_CACHE',
  39. locale: newLocale,
  40. });
  41. console.log('[Locale] Cache pages vidé pour locale:', newLocale);
  42. }
  43. });
  44. // Nettoyer l'URL (retirer locale_changed sans recharger la page)
  45. urlParams.delete('locale_changed');
  46. const newUrl = window.location.pathname
  47. + (urlParams.toString() ? '?' + urlParams.toString() : '');
  48. window.history.replaceState({}, '', newUrl);
  49. }
  50. // ── Écouter la confirmation du SW que le cache est vidé ──────────
  51. if ('serviceWorker' in navigator) {
  52. navigator.serviceWorker.addEventListener('message', event => {
  53. if (event.data?.type === 'PAGES_CACHE_CLEARED') {
  54. console.log('[Locale] Cache SW vidé ✅ — locale:', event.data.locale);
  55. // Optionnel : recharger la page courante pour afficher
  56. // les nouvelles traductions immédiatement
  57. // window.location.reload();
  58. }
  59. });
  60. }
  61. })();
  62. </script>
  63. {% endblock %}
  64. <p>&nbsp;</p>
  65. <p>&nbsp;</p>
  66. <p>&nbsp;</p>
  67. <p>&nbsp;</p>
  68. </body>
  69. </html>