2018-09-29 15:39:16 +02:00
|
|
|
|
$("#night-mode-enabled").on("change", function()
|
|
|
|
|
{
|
|
|
|
|
var value = $(this).is(":checked");
|
|
|
|
|
if (value)
|
|
|
|
|
{
|
2019-09-18 19:43:33 +02:00
|
|
|
|
// Force disable auto night mode when night mode is enabled
|
|
|
|
|
$("#auto-night-mode-enabled").prop("checked", false);
|
|
|
|
|
$("#auto-night-mode-enabled").trigger("change");
|
2020-09-14 11:15:11 +02:00
|
|
|
|
|
|
|
|
|
$("body").addClass("night-mode");
|
2018-09-29 15:39:16 +02:00
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$("body").removeClass("night-mode");
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
2018-09-30 13:33:21 +02:00
|
|
|
|
$("#auto-night-mode-enabled").on("change", function()
|
2018-09-29 15:39:16 +02:00
|
|
|
|
{
|
2018-09-30 13:33:21 +02:00
|
|
|
|
var value = $(this).is(":checked");
|
2018-09-30 17:14:04 +02:00
|
|
|
|
$("#auto-night-mode-time-range-from").prop("readonly", !value);
|
|
|
|
|
$("#auto-night-mode-time-range-to").prop("readonly", !value);
|
2018-09-30 18:02:59 +02:00
|
|
|
|
|
|
|
|
|
if (!value && !BoolVal(Grocy.UserSettings.night_mode_enabled))
|
|
|
|
|
{
|
|
|
|
|
$("body").removeClass("night-mode");
|
|
|
|
|
}
|
2019-09-18 19:43:33 +02:00
|
|
|
|
|
|
|
|
|
// Force disable night mode when auto night mode is enabled
|
|
|
|
|
if (value)
|
|
|
|
|
{
|
|
|
|
|
$("#night-mode-enabled").prop("checked", false);
|
|
|
|
|
$("#night-mode-enabled").trigger("change");
|
|
|
|
|
}
|
2018-09-30 18:02:59 +02:00
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$(document).on("keyup", "#auto-night-mode-time-range-from, #auto-night-mode-time-range-to", function()
|
|
|
|
|
{
|
|
|
|
|
var value = $(this).val();
|
|
|
|
|
var valueIsValid = moment(value, "HH:mm", true).isValid();
|
2020-08-29 16:41:27 +02:00
|
|
|
|
|
2018-09-30 18:02:59 +02:00
|
|
|
|
if (valueIsValid)
|
|
|
|
|
{
|
|
|
|
|
$(this).removeClass("bg-danger");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
$(this).addClass("bg-danger");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CheckNightMode();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$("#auto-night-mode-time-range-goes-over-midgnight").on("change", function()
|
|
|
|
|
{
|
|
|
|
|
CheckNightMode();
|
2018-09-30 13:33:21 +02:00
|
|
|
|
});
|
|
|
|
|
|
2019-09-21 08:25:32 +02:00
|
|
|
|
if (Grocy.UserId !== -1)
|
|
|
|
|
{
|
|
|
|
|
$("#night-mode-enabled").prop("checked", BoolVal(Grocy.UserSettings.night_mode_enabled));
|
|
|
|
|
$("#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");
|
|
|
|
|
}
|
2018-09-30 18:02:59 +02:00
|
|
|
|
|
|
|
|
|
function CheckNightMode()
|
|
|
|
|
{
|
2019-09-21 08:25:32 +02:00
|
|
|
|
if (Grocy.UserId === -1 || !BoolVal(Grocy.UserSettings.auto_night_mode_enabled))
|
2018-09-30 18:02:59 +02:00
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
var start = moment(Grocy.UserSettings.auto_night_mode_time_range_from, "HH:mm", true);
|
|
|
|
|
var end = moment(Grocy.UserSettings.auto_night_mode_time_range_to, "HH:mm", true);
|
|
|
|
|
var now = moment();
|
|
|
|
|
|
|
|
|
|
if (!start.isValid() || !end.isValid)
|
|
|
|
|
{
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (BoolVal(Grocy.UserSettings.auto_night_mode_time_range_goes_over_midnight))
|
|
|
|
|
{
|
|
|
|
|
end.add(1, "day");
|
|
|
|
|
}
|
|
|
|
|
|
2021-11-08 21:38:19 +01:00
|
|
|
|
if (now.isBetween(start, end)) // We're INSIDE of night mode time range
|
2018-09-30 18:02:59 +02:00
|
|
|
|
{
|
2018-09-30 19:31:03 +02:00
|
|
|
|
if (!$("body").hasClass("night-mode"))
|
|
|
|
|
{
|
|
|
|
|
$("body").addClass("night-mode");
|
|
|
|
|
$("#currently-inside-night-mode-range").prop("checked", true);
|
|
|
|
|
$("#currently-inside-night-mode-range").trigger("change");
|
|
|
|
|
}
|
2018-09-30 18:02:59 +02:00
|
|
|
|
}
|
|
|
|
|
else // We're OUTSIDE of night mode time range
|
|
|
|
|
{
|
2018-09-30 19:31:03 +02:00
|
|
|
|
if ($("body").hasClass("night-mode"))
|
|
|
|
|
{
|
|
|
|
|
$("body").removeClass("night-mode");
|
|
|
|
|
$("#currently-inside-night-mode-range").prop("checked", false);
|
|
|
|
|
$("#currently-inside-night-mode-range").trigger("change");
|
2020-08-29 16:41:27 +02:00
|
|
|
|
}
|
2018-09-30 18:02:59 +02:00
|
|
|
|
}
|
|
|
|
|
}
|
2019-09-21 08:25:32 +02:00
|
|
|
|
if (Grocy.UserId !== -1)
|
|
|
|
|
{
|
|
|
|
|
CheckNightMode();
|
|
|
|
|
}
|
2018-09-30 19:31:03 +02:00
|
|
|
|
|
|
|
|
|
if (Grocy.Mode === "production")
|
|
|
|
|
{
|
|
|
|
|
setInterval(CheckNightMode, 60000);
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
setInterval(CheckNightMode, 4000);
|
|
|
|
|
}
|