From adaa54ba8ba04205b7ff841c9fe2a6e75711b75b Mon Sep 17 00:00:00 2001 From: Bernd Bestel Date: Tue, 5 Apr 2022 18:18:38 +0200 Subject: [PATCH] Only load night mode stylesheet when night mode is actually on --- config-dist.php | 1 + public/js/grocy_nightmode.js | 32 ++++++++++++++++++++------------ views/layout/default.blade.php | 14 ++++++-------- 3 files changed, 27 insertions(+), 20 deletions(-) diff --git a/config-dist.php b/config-dist.php index ad75cfd0..7cae311a 100644 --- a/config-dist.php +++ b/config-dist.php @@ -158,6 +158,7 @@ DefaultUserSetting('auto_night_mode_enabled', false); // If night mode is enable DefaultUserSetting('auto_night_mode_time_range_from', '20:00'); // Format HH:mm DefaultUserSetting('auto_night_mode_time_range_to', '07:00'); // Format HH:mm DefaultUserSetting('auto_night_mode_time_range_goes_over_midnight', true); // If the time range above goes over midnight +DefaultUserSetting('night_mode_enabled_internal', false); // Internal setting if night mode is actually enabled (based on the other settings) // Generic settings DefaultUserSetting('auto_reload_on_db_change', false); // If the page should be automatically reloaded when there was an external change diff --git a/public/js/grocy_nightmode.js b/public/js/grocy_nightmode.js index d72de792..dd9fd6e2 100644 --- a/public/js/grocy_nightmode.js +++ b/public/js/grocy_nightmode.js @@ -47,18 +47,6 @@ $("#auto-night-mode-time-range-goes-over-midgnight").on("change", function() CheckNightMode(); }); -if (Grocy.UserId !== -1) -{ - $("input.user-setting-control:radio[name=night-mode][value=" + Grocy.UserSettings.night_mode + "]").prop("checked", true); - $("#auto-night-mode-enabled").prop("checked", BoolVal(Grocy.UserSettings.auto_night_mode_enabled)); - $("#auto-night-mode-time-range-goes-over-midgnight").prop("checked", BoolVal(Grocy.UserSettings.auto_night_mode_time_range_goes_over_midnight)); - $("#auto-night-mode-enabled").trigger("change"); - $("#auto-night-mode-time-range-from").val(Grocy.UserSettings.auto_night_mode_time_range_from); - $("#auto-night-mode-time-range-from").trigger("keyup"); - $("#auto-night-mode-time-range-to").val(Grocy.UserSettings.auto_night_mode_time_range_to); - $("#auto-night-mode-time-range-to").trigger("keyup"); -} - function CheckNightMode() { if (Grocy.UserId === -1) @@ -116,6 +104,16 @@ function CheckNightMode() if (BoolVal(Grocy.UserSettings.night_mode_enabled_internal)) { + if (!$("#night-mode-stylesheet").length) + { + $("") + .appendTo("head") + .attr({ + rel: "stylesheet", + href: U("/css/grocy_night_mode.css") + }); + } + $("body").addClass("night-mode"); } else @@ -123,8 +121,18 @@ function CheckNightMode() $("body").removeClass("night-mode"); } } + if (Grocy.UserId !== -1) { + $("input.user-setting-control:radio[name=night-mode][value=" + Grocy.UserSettings.night_mode + "]").prop("checked", true); + $("#auto-night-mode-enabled").prop("checked", BoolVal(Grocy.UserSettings.auto_night_mode_enabled)); + $("#auto-night-mode-time-range-goes-over-midgnight").prop("checked", BoolVal(Grocy.UserSettings.auto_night_mode_time_range_goes_over_midnight)); + $("#auto-night-mode-enabled").trigger("change"); + $("#auto-night-mode-time-range-from").val(Grocy.UserSettings.auto_night_mode_time_range_from); + $("#auto-night-mode-time-range-from").trigger("keyup"); + $("#auto-night-mode-time-range-to").val(Grocy.UserSettings.auto_night_mode_time_range_to); + $("#auto-night-mode-time-range-to").trigger("keyup"); + CheckNightMode(); } diff --git a/views/layout/default.blade.php b/views/layout/default.blade.php index 54436fac..25ac90b7 100644 --- a/views/layout/default.blade.php +++ b/views/layout/default.blade.php @@ -75,8 +75,13 @@ rel="stylesheet"> - + @endif + @stack('pageStyles') @if(file_exists(GROCY_DATAPATH . '/custom_css.html')) @@ -115,13 +120,6 @@ -@php -if (!isset($userSettings['night_mode_enabled_internal'])) -{ -$userSettings['night_mode_enabled_internal'] = false; -} -@endphp - @if(!($embedded))