mirror of
https://github.com/grocy/grocy.git
synced 2025-04-30 10:05:45 +00:00
Finalize auto night mode feature (references #71)
This commit is contained in:
parent
f1c78659be
commit
8b815fce93
@ -36,6 +36,7 @@ DefaultUserSetting('night_mode_enabled', false); // If night mode is enabled alw
|
|||||||
DefaultUserSetting('auto_night_mode_enabled', false); // If night mode is enabled automatically when inside a given time range (see the two settings below)
|
DefaultUserSetting('auto_night_mode_enabled', false); // If night mode is enabled automatically when inside a given time range (see the two settings below)
|
||||||
DefaultUserSetting('auto_night_mode_time_range_from', "20:00"); // Format HH:mm
|
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_to', "07:00"); // Format HH:mm
|
||||||
|
DefaultUserSetting('auto_night_mode_time_range_goes_over_midnight', true); // If the time range above goes over midnight
|
||||||
|
|
||||||
# If the page should be automatically reloaded when there was
|
# If the page should be automatically reloaded when there was
|
||||||
# an external change
|
# an external change
|
||||||
|
@ -249,6 +249,14 @@ return array(
|
|||||||
'Already expired' => 'Bereits abgelaufen',
|
'Already expired' => 'Bereits abgelaufen',
|
||||||
'Due soon' => 'Bald fällig',
|
'Due soon' => 'Bald fällig',
|
||||||
'Overdue' => 'Überfällig',
|
'Overdue' => 'Überfällig',
|
||||||
|
'View settings' => 'xxx',
|
||||||
|
'Auto reload on external changes' => 'Autom. akt. bei externen Änderungen',
|
||||||
|
'Enable night mode' => 'Nachtmodus aktivieren',
|
||||||
|
'Auto enable in time range' => 'Autom. akt. in diesem Zeitraum',
|
||||||
|
'From' => 'Von',
|
||||||
|
'in format' => 'im Format',
|
||||||
|
'To' => 'Bis',
|
||||||
|
'Time range goes over midnight' => 'Zeitraum geht über Mitternacht',
|
||||||
|
|
||||||
//Constants
|
//Constants
|
||||||
'manually' => 'Manuell',
|
'manually' => 'Manuell',
|
||||||
|
@ -16,7 +16,74 @@ $("#auto-night-mode-enabled").on("change", function()
|
|||||||
var value = $(this).is(":checked");
|
var value = $(this).is(":checked");
|
||||||
$("#auto-night-mode-time-range-from").prop("readonly", !value);
|
$("#auto-night-mode-time-range-from").prop("readonly", !value);
|
||||||
$("#auto-night-mode-time-range-to").prop("readonly", !value);
|
$("#auto-night-mode-time-range-to").prop("readonly", !value);
|
||||||
|
|
||||||
|
if (!value && !BoolVal(Grocy.UserSettings.night_mode_enabled))
|
||||||
|
{
|
||||||
|
$("body").removeClass("night-mode");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
$(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();
|
||||||
|
|
||||||
|
if (valueIsValid)
|
||||||
|
{
|
||||||
|
$(this).removeClass("bg-danger");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$(this).addClass("bg-danger");
|
||||||
|
}
|
||||||
|
|
||||||
|
CheckNightMode();
|
||||||
|
});
|
||||||
|
|
||||||
|
$("#auto-night-mode-time-range-goes-over-midgnight").on("change", function()
|
||||||
|
{
|
||||||
|
CheckNightMode();
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#night-mode-enabled").prop("checked", Grocy.NightModeEnabled);
|
$("#night-mode-enabled").prop("checked", Grocy.NightModeEnabled);
|
||||||
$("#auto-night-mode-enabled").prop("checked", Grocy.UserSettings.auto_night_mode_enabled);
|
$("#auto-night-mode-enabled").prop("checked", Grocy.UserSettings.auto_night_mode_enabled);
|
||||||
|
$("#auto-night-mode-time-range-goes-over-midgnight").prop("checked", 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.UserSettings.auto_night_mode_enabled)
|
||||||
|
{
|
||||||
|
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");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (start.isSameOrBefore(now) && end.isSameOrAfter(now)) // We're INSIDE of night mode time range
|
||||||
|
{
|
||||||
|
$("body").addClass("night-mode");
|
||||||
|
}
|
||||||
|
else // We're OUTSIDE of night mode time range
|
||||||
|
{
|
||||||
|
$("body").removeClass("night-mode");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CheckNightMode();
|
||||||
|
//setInterval(CheckNightMode, 60000);
|
||||||
|
setInterval(CheckNightMode, 4000);
|
||||||
|
@ -231,6 +231,12 @@
|
|||||||
<input type="text" class="form-control my-1 user-setting-control" readonly id="auto-night-mode-time-range-from" placeholder="{{ $L('From') }} ({{ $L('in format') }} HH:mm)" data-setting-key="auto_night_mode_time_range_from">
|
<input type="text" class="form-control my-1 user-setting-control" readonly id="auto-night-mode-time-range-from" placeholder="{{ $L('From') }} ({{ $L('in format') }} HH:mm)" data-setting-key="auto_night_mode_time_range_from">
|
||||||
<input type="text" class="form-control user-setting-control" readonly id="auto-night-mode-time-range-to" placeholder="{{ $L('To') }} ({{ $L('in format') }} HH:mm)" data-setting-key="auto_night_mode_time_range_to">
|
<input type="text" class="form-control user-setting-control" readonly id="auto-night-mode-time-range-to" placeholder="{{ $L('To') }} ({{ $L('in format') }} HH:mm)" data-setting-key="auto_night_mode_time_range_to">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="form-check mt-1">
|
||||||
|
<input class="form-check-input user-setting-control" type="checkbox" id="auto-night-mode-time-range-goes-over-midgnight" data-setting-key="auto_night_mode_time_range_goes_over_midnight">
|
||||||
|
<label class="form-check-label" for="auto-night-mode-time-range-goes-over-midgnight">
|
||||||
|
{{ $L('Time range goes over midnight') }}
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user