app/views/layouts/good_job/application.html.erb in good_job-3.27.1 vs app/views/layouts/good_job/application.html.erb in good_job-3.27.2

- old
+ new

@@ -4,27 +4,33 @@ <title>Good Job Dashboard</title> <meta charset="utf-8"> <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"> <%= csrf_meta_tags %> <%= csp_meta_tag %> + + <%# Bootstrap Color Modes + "It is suggested to include the JavaScript at the top of your page + to reduce potential screen flickering during reloading of your site." + https://getbootstrap.com/docs/5.3/customize/color-modes/#javascript + %> + <%= tag.script "", nonce: content_security_policy_nonce do %> + let theme = localStorage.getItem('good_job-theme'); + if (!["light", "dark"].includes(theme)) { + theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; + } + document.documentElement.setAttribute('data-bs-theme', theme); + <% end %> + <%# Do not use asset tag helpers to avoid paths being overriden by config.asset_host %> <%= tag.link rel: "stylesheet", href: frontend_static_path(:bootstrap, format: :css, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %> <%= tag.link rel: "stylesheet", href: frontend_static_path(:style, format: :css, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %> <%= tag.script "", src: frontend_static_path(:bootstrap, format: :js, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %> <%= tag.script "", src: frontend_static_path(:chartjs, format: :js, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %> <%= tag.script "", src: frontend_static_path(:rails_ujs, format: :js, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %> <%= tag.script "", src: frontend_static_path(:es_module_shims, format: :js, v: GoodJob::VERSION, locale: nil), async: true, nonce: content_security_policy_nonce %> <% importmaps = GoodJob::FrontendsController.js_modules.keys.index_with { |module_name| frontend_module_path(module_name, format: :js, locale: nil, v: GoodJob::VERSION) } %> <%= tag.script({ imports: importmaps }.to_json.html_safe, type: "importmap", nonce: content_security_policy_nonce) %> <%= tag.script "", type: "module", nonce: content_security_policy_nonce do %> import "application"; <% end %> - <%= tag.script "", nonce: content_security_policy_nonce do %> - // Ensure theme is updated before dom loads to avoid flash of style - let theme = localStorage.getItem('good_job-theme'); - if (!["light", "dark"].includes(theme)) { - theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light'; - } - document.documentElement.setAttribute('data-bs-theme', theme); - <% end %> </head> <body> <div class="d-flex flex-column min-vh-100"> <%= render "good_job/shared/navbar" %> <%= render "good_job/shared/secondary_navbar" %>