Merge pull request #1094 from hargata/Hargata/1093

fixed intervals for certain reminders
This commit is contained in:
Hargata Softworks 2025-10-08 20:21:05 -06:00 committed by GitHub
commit 96291bae76
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 20 additions and 6 deletions

View File

@ -151,6 +151,7 @@ namespace CarCareTracker.Controllers
Mileage = result.Mileage,
Metric = result.Metric,
IsRecurring = result.IsRecurring,
FixedIntervals = result.FixedIntervals,
UseCustomThresholds = result.UseCustomThresholds,
CustomThresholds = result.CustomThresholds,
ReminderMileageInterval = result.ReminderMileageInterval,

View File

@ -16,8 +16,8 @@ namespace CarCareTracker.Helper
}
public ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, int? currentMileage)
{
var newDate = currentDate ?? existingReminder.Date;
var newMileage = currentMileage ?? existingReminder.Mileage;
var newDate = existingReminder.FixedIntervals ? existingReminder.Date : currentDate ?? existingReminder.Date;
var newMileage = existingReminder.FixedIntervals ? existingReminder.Mileage : currentMileage ?? existingReminder.Mileage;
if (existingReminder.Metric == ReminderMetric.Both)
{
if (existingReminder.ReminderMonthInterval != ReminderMonthInterval.Other)

View File

@ -10,6 +10,7 @@
public string Notes { get; set; }
public bool IsRecurring { get; set; } = false;
public bool UseCustomThresholds { get; set; } = false;
public bool FixedIntervals { get; set; } = false;
public ReminderUrgencyConfig CustomThresholds { get; set; } = new ReminderUrgencyConfig();
public int CustomMileageInterval { get; set; } = 0;
public int CustomMonthInterval { get; set; } = 0;

View File

@ -10,6 +10,7 @@
public string Notes { get; set; }
public bool IsRecurring { get; set; } = false;
public bool UseCustomThresholds { get; set; } = false;
public bool FixedIntervals { get; set; } = false;
public ReminderUrgencyConfig CustomThresholds { get; set; } = new ReminderUrgencyConfig();
public int CustomMileageInterval { get; set; } = 0;
public int CustomMonthInterval { get; set; } = 0;
@ -29,6 +30,7 @@
Description = Description,
Metric = Metric,
IsRecurring = IsRecurring,
FixedIntervals = FixedIntervals,
UseCustomThresholds = UseCustomThresholds,
CustomThresholds = CustomThresholds,
ReminderMileageInterval = ReminderMileageInterval,

View File

@ -57,9 +57,15 @@
<div class="col-md-6 col-12">
<label for="reminderNotes">@translator.Translate(userLanguage,"Notes(optional)")<a class="link-underline link-underline-opacity-0" onclick="showLinks(this)"><i class="bi bi-markdown ms-2"></i></a></label>
<textarea id="reminderNotes" class="form-control" rows="5">@Model.Notes</textarea>
<div class="form-check form-switch">
<input class="form-check-input" type="checkbox" onChange="enableRecurring()" role="switch" id="reminderIsRecurring" checked="@Model.IsRecurring">
<label class="form-check-label" for="reminderIsRecurring">@translator.Translate(userLanguage,"Is Recurring")</label>
<div>
<div class="form-check form-switch form-check-inline">
<input class="form-check-input" type="checkbox" onChange="enableRecurring()" role="switch" id="reminderIsRecurring" checked="@Model.IsRecurring">
<label class="form-check-label" for="reminderIsRecurring">@translator.Translate(userLanguage, "Is Recurring")</label>
</div>
<div class="form-check form-switch form-check-inline">
<input class="form-check-input" type="checkbox" role="switch" id="reminderFixedIntervals" checked="@Model.FixedIntervals" @(Model.IsRecurring ? "" : "disabled")>
<label class="form-check-label" for="reminderFixedIntervals">@translator.Translate(userLanguage, "Fixed Intervals")</label>
</div>
</div>
<label for="reminderRecurringMileage">@translator.Translate(userLanguage,"Odometer")</label>
<select class="form-select" onchange="checkCustomMileageInterval()" id="reminderRecurringMileage" @(Model.IsRecurring && (Model.Metric == ReminderMetric.Odometer || Model.Metric == ReminderMetric.Both) ? "" : "disabled")>

File diff suppressed because one or more lines are too long

View File

@ -151,6 +151,7 @@ function appendMileageToOdometer(increment) {
function enableRecurring() {
var reminderIsRecurring = $("#reminderIsRecurring").is(":checked");
if (reminderIsRecurring) {
$("#reminderFixedIntervals").attr('disabled', false);
//check selected metric
var reminderMetric = $('#reminderOptions input:radio:checked').val();
if (reminderMetric == "Date") {
@ -168,6 +169,7 @@ function enableRecurring() {
} else {
$("#reminderRecurringMileage").attr('disabled', true);
$("#reminderRecurringMonth").attr('disabled', true);
$("#reminderFixedIntervals").attr('disabled', true);
}
}
@ -201,6 +203,7 @@ function getAndValidateReminderRecordValues() {
var reminderVeryUrgentDays = $("#reminderVeryUrgentDays").val();
var reminderUrgentDistance = $("#reminderUrgentDistance").val();
var reminderVeryUrgentDistance = $("#reminderVeryUrgentDistance").val();
var reminderFixedIntervals = $("#reminderFixedIntervals").is(":checked");
//validation
var hasError = false;
var reminderDateIsInvalid = reminderDate.trim() == ''; //eliminates whitespace.
@ -271,6 +274,7 @@ function getAndValidateReminderRecordValues() {
notes: reminderNotes,
metric: reminderOption,
isRecurring: reminderIsRecurring,
fixedIntervals: reminderFixedIntervals,
useCustomThresholds: reminderUseCustomThresholds,
customThresholds: {
urgentDays: reminderUrgentDays,