Skip to content

Commit 96291ba

Browse files
authored
Merge pull request #1094 from hargata/Hargata/1093
fixed intervals for certain reminders
2 parents 1893a59 + 643f7a3 commit 96291ba

7 files changed

Lines changed: 20 additions & 6 deletions

File tree

Controllers/Vehicle/ReminderController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ public IActionResult GetReminderRecordForEditById(int reminderRecordId)
151151
Mileage = result.Mileage,
152152
Metric = result.Metric,
153153
IsRecurring = result.IsRecurring,
154+
FixedIntervals = result.FixedIntervals,
154155
UseCustomThresholds = result.UseCustomThresholds,
155156
CustomThresholds = result.CustomThresholds,
156157
ReminderMileageInterval = result.ReminderMileageInterval,

Helper/ReminderHelper.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@ public ReminderHelper(IConfigHelper config)
1616
}
1717
public ReminderRecord GetUpdatedRecurringReminderRecord(ReminderRecord existingReminder, DateTime? currentDate, int? currentMileage)
1818
{
19-
var newDate = currentDate ?? existingReminder.Date;
20-
var newMileage = currentMileage ?? existingReminder.Mileage;
19+
var newDate = existingReminder.FixedIntervals ? existingReminder.Date : currentDate ?? existingReminder.Date;
20+
var newMileage = existingReminder.FixedIntervals ? existingReminder.Mileage : currentMileage ?? existingReminder.Mileage;
2121
if (existingReminder.Metric == ReminderMetric.Both)
2222
{
2323
if (existingReminder.ReminderMonthInterval != ReminderMonthInterval.Other)

Models/Reminder/ReminderRecord.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class ReminderRecord
1010
public string Notes { get; set; }
1111
public bool IsRecurring { get; set; } = false;
1212
public bool UseCustomThresholds { get; set; } = false;
13+
public bool FixedIntervals { get; set; } = false;
1314
public ReminderUrgencyConfig CustomThresholds { get; set; } = new ReminderUrgencyConfig();
1415
public int CustomMileageInterval { get; set; } = 0;
1516
public int CustomMonthInterval { get; set; } = 0;

Models/Reminder/ReminderRecordInput.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ public class ReminderRecordInput
1010
public string Notes { get; set; }
1111
public bool IsRecurring { get; set; } = false;
1212
public bool UseCustomThresholds { get; set; } = false;
13+
public bool FixedIntervals { get; set; } = false;
1314
public ReminderUrgencyConfig CustomThresholds { get; set; } = new ReminderUrgencyConfig();
1415
public int CustomMileageInterval { get; set; } = 0;
1516
public int CustomMonthInterval { get; set; } = 0;
@@ -29,6 +30,7 @@ public ReminderRecord ToReminderRecord()
2930
Description = Description,
3031
Metric = Metric,
3132
IsRecurring = IsRecurring,
33+
FixedIntervals = FixedIntervals,
3234
UseCustomThresholds = UseCustomThresholds,
3335
CustomThresholds = CustomThresholds,
3436
ReminderMileageInterval = ReminderMileageInterval,

Views/Vehicle/Reminder/_ReminderRecordModal.cshtml

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,15 @@
5757
<div class="col-md-6 col-12">
5858
<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>
5959
<textarea id="reminderNotes" class="form-control" rows="5">@Model.Notes</textarea>
60-
<div class="form-check form-switch">
61-
<input class="form-check-input" type="checkbox" onChange="enableRecurring()" role="switch" id="reminderIsRecurring" checked="@Model.IsRecurring">
62-
<label class="form-check-label" for="reminderIsRecurring">@translator.Translate(userLanguage,"Is Recurring")</label>
60+
<div>
61+
<div class="form-check form-switch form-check-inline">
62+
<input class="form-check-input" type="checkbox" onChange="enableRecurring()" role="switch" id="reminderIsRecurring" checked="@Model.IsRecurring">
63+
<label class="form-check-label" for="reminderIsRecurring">@translator.Translate(userLanguage, "Is Recurring")</label>
64+
</div>
65+
<div class="form-check form-switch form-check-inline">
66+
<input class="form-check-input" type="checkbox" role="switch" id="reminderFixedIntervals" checked="@Model.FixedIntervals" @(Model.IsRecurring ? "" : "disabled")>
67+
<label class="form-check-label" for="reminderFixedIntervals">@translator.Translate(userLanguage, "Fixed Intervals")</label>
68+
</div>
6369
</div>
6470
<label for="reminderRecurringMileage">@translator.Translate(userLanguage,"Odometer")</label>
6571
<select class="form-select" onchange="checkCustomMileageInterval()" id="reminderRecurringMileage" @(Model.IsRecurring && (Model.Metric == ReminderMetric.Odometer || Model.Metric == ReminderMetric.Both) ? "" : "disabled")>

wwwroot/defaults/en_US.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

wwwroot/js/reminderrecord.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ function appendMileageToOdometer(increment) {
151151
function enableRecurring() {
152152
var reminderIsRecurring = $("#reminderIsRecurring").is(":checked");
153153
if (reminderIsRecurring) {
154+
$("#reminderFixedIntervals").attr('disabled', false);
154155
//check selected metric
155156
var reminderMetric = $('#reminderOptions input:radio:checked').val();
156157
if (reminderMetric == "Date") {
@@ -168,6 +169,7 @@ function enableRecurring() {
168169
} else {
169170
$("#reminderRecurringMileage").attr('disabled', true);
170171
$("#reminderRecurringMonth").attr('disabled', true);
172+
$("#reminderFixedIntervals").attr('disabled', true);
171173
}
172174
}
173175

@@ -201,6 +203,7 @@ function getAndValidateReminderRecordValues() {
201203
var reminderVeryUrgentDays = $("#reminderVeryUrgentDays").val();
202204
var reminderUrgentDistance = $("#reminderUrgentDistance").val();
203205
var reminderVeryUrgentDistance = $("#reminderVeryUrgentDistance").val();
206+
var reminderFixedIntervals = $("#reminderFixedIntervals").is(":checked");
204207
//validation
205208
var hasError = false;
206209
var reminderDateIsInvalid = reminderDate.trim() == ''; //eliminates whitespace.
@@ -271,6 +274,7 @@ function getAndValidateReminderRecordValues() {
271274
notes: reminderNotes,
272275
metric: reminderOption,
273276
isRecurring: reminderIsRecurring,
277+
fixedIntervals: reminderFixedIntervals,
274278
useCustomThresholds: reminderUseCustomThresholds,
275279
customThresholds: {
276280
urgentDays: reminderUrgentDays,

0 commit comments

Comments
 (0)