mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 00:46:08 -06:00
Merge pull request #610 from hargata/Hargata/609
Added custom thresholds for reminder.
This commit is contained in:
commit
26b7d101ab
@ -1733,6 +1733,8 @@ namespace CarCareTracker.Controllers
|
||||
Mileage = result.Mileage,
|
||||
Metric = result.Metric,
|
||||
IsRecurring = result.IsRecurring,
|
||||
UseCustomThresholds = result.UseCustomThresholds,
|
||||
CustomThresholds = result.CustomThresholds,
|
||||
ReminderMileageInterval = result.ReminderMileageInterval,
|
||||
ReminderMonthInterval = result.ReminderMonthInterval,
|
||||
CustomMileageInterval = result.CustomMileageInterval,
|
||||
|
||||
@ -66,6 +66,10 @@ namespace CarCareTracker.Helper
|
||||
var reminderUrgencyConfig = _config.GetReminderUrgencyConfig();
|
||||
foreach (var reminder in reminders)
|
||||
{
|
||||
if (reminder.UseCustomThresholds)
|
||||
{
|
||||
reminderUrgencyConfig = reminder.CustomThresholds;
|
||||
}
|
||||
var reminderViewModel = new ReminderRecordViewModel()
|
||||
{
|
||||
Id = reminder.Id,
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
public string Description { get; set; }
|
||||
public string Notes { get; set; }
|
||||
public bool IsRecurring { get; set; } = false;
|
||||
public bool UseCustomThresholds { get; set; } = false;
|
||||
public ReminderUrgencyConfig CustomThresholds { get; set; } = new ReminderUrgencyConfig();
|
||||
public int CustomMileageInterval { get; set; } = 0;
|
||||
public int CustomMonthInterval { get; set; } = 0;
|
||||
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
||||
|
||||
@ -9,6 +9,8 @@
|
||||
public string Description { get; set; }
|
||||
public string Notes { get; set; }
|
||||
public bool IsRecurring { get; set; } = false;
|
||||
public bool UseCustomThresholds { get; set; } = false;
|
||||
public ReminderUrgencyConfig CustomThresholds { get; set; } = new ReminderUrgencyConfig();
|
||||
public int CustomMileageInterval { get; set; } = 0;
|
||||
public int CustomMonthInterval { get; set; } = 0;
|
||||
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
||||
@ -26,6 +28,8 @@
|
||||
Description = Description,
|
||||
Metric = Metric,
|
||||
IsRecurring = IsRecurring,
|
||||
UseCustomThresholds = UseCustomThresholds,
|
||||
CustomThresholds = CustomThresholds,
|
||||
ReminderMileageInterval = ReminderMileageInterval,
|
||||
ReminderMonthInterval = ReminderMonthInterval,
|
||||
CustomMileageInterval = CustomMileageInterval,
|
||||
|
||||
@ -93,6 +93,22 @@
|
||||
<!option value="ThreeYears" @(Model.ReminderMonthInterval == ReminderMonthInterval.ThreeYears ? "selected" : "")>@translator.Translate(userLanguage, "3 Years")</!option>
|
||||
<!option value="FiveYears" @(Model.ReminderMonthInterval == ReminderMonthInterval.FiveYears ? "selected" : "")>@translator.Translate(userLanguage, "5 Years")</!option>
|
||||
</select>
|
||||
<div class="form-check form-switch">
|
||||
<input class="form-check-input" type="checkbox" role="switch" onchange="toggleCustomThresholds()" id="reminderUseCustomThresholds" checked="@Model.UseCustomThresholds">
|
||||
<label class="form-check-label" for="reminderUseCustomThresholds">@translator.Translate(userLanguage, "Use Custom Thresholds")</label>
|
||||
</div>
|
||||
<div class="collapse @(Model.UseCustomThresholds ? "show" : "")" id="reminderCustomThresholds">
|
||||
<div>
|
||||
<label for="reminderUrgentDays">@translator.Translate(userLanguage, "Urgent(Days)")</label>
|
||||
<input type="text" id="reminderUrgentDays" class="form-control" placeholder="@translator.Translate(userLanguage, "Urgent")" value="@Model.CustomThresholds.UrgentDays">
|
||||
<label for="reminderVeryUrgentDays">@translator.Translate(userLanguage, "Very Urgent(Days)")</label>
|
||||
<input type="text" id="reminderVeryUrgentDays" class="form-control" placeholder="@translator.Translate(userLanguage, "Very Urgent")" value="@Model.CustomThresholds.VeryUrgentDays">
|
||||
<label for="reminderUrgentDistance">@translator.Translate(userLanguage, "Urgent(Distance)")</label>
|
||||
<input type="text" id="reminderUrgentDistance" class="form-control" placeholder="@translator.Translate(userLanguage, "Urgent")" value="@Model.CustomThresholds.UrgentDistance">
|
||||
<label for="reminderVeryUrgentDistance">@translator.Translate(userLanguage, "Very Urgent(Distance)")</label>
|
||||
<input type="text" id="reminderVeryUrgentDistance" class="form-control" placeholder="@translator.Translate(userLanguage, "Very Urgent")" value="@Model.CustomThresholds.VeryUrgentDistance">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -102,6 +102,14 @@ function deleteReminderRecord(reminderRecordId, e) {
|
||||
}
|
||||
});
|
||||
}
|
||||
function toggleCustomThresholds() {
|
||||
var isChecked = $("#reminderUseCustomThresholds").is(':checked');
|
||||
if (isChecked) {
|
||||
$("#reminderCustomThresholds").collapse('show');
|
||||
} else {
|
||||
$("#reminderCustomThresholds").collapse('hide');
|
||||
}
|
||||
}
|
||||
function saveReminderRecordToVehicle(isEdit) {
|
||||
//get values
|
||||
var formValues = getAndValidateReminderRecordValues();
|
||||
@ -180,9 +188,13 @@ function getAndValidateReminderRecordValues() {
|
||||
var reminderRecurringMonth = $("#reminderRecurringMonth").val();
|
||||
var reminderRecurringMileage = $("#reminderRecurringMileage").val();
|
||||
var reminderTags = $("#reminderRecordTag").val();
|
||||
var reminderCustomMileageInterval = customMileageInterval;
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
var reminderId = getReminderRecordModelData().id;
|
||||
var reminderUseCustomThresholds = $("#reminderUseCustomThresholds").is(":checked");
|
||||
var reminderUrgentDays = $("#reminderUrgentDays").val();
|
||||
var reminderVeryUrgentDays = $("#reminderVeryUrgentDays").val();
|
||||
var reminderUrgentDistance = $("#reminderUrgentDistance").val();
|
||||
var reminderVeryUrgentDistance = $("#reminderVeryUrgentDistance").val();
|
||||
//validation
|
||||
var hasError = false;
|
||||
var reminderDateIsInvalid = reminderDate.trim() == ''; //eliminates whitespace.
|
||||
@ -205,6 +217,33 @@ function getAndValidateReminderRecordValues() {
|
||||
} else {
|
||||
$("#reminderDescription").removeClass("is-invalid");
|
||||
}
|
||||
if (reminderUseCustomThresholds) {
|
||||
//validate custom threshold values
|
||||
if (reminderUrgentDays.trim() == '' || isNaN(reminderUrgentDays) || parseInt(reminderUrgentDays) < 0) {
|
||||
hasError = true;
|
||||
$("#reminderUrgentDays").addClass("is-invalid");
|
||||
} else {
|
||||
$("#reminderUrgentDays").removeClass("is-invalid");
|
||||
}
|
||||
if (reminderVeryUrgentDays.trim() == '' || isNaN(reminderVeryUrgentDays) || parseInt(reminderVeryUrgentDays) < 0) {
|
||||
hasError = true;
|
||||
$("#reminderVeryUrgentDays").addClass("is-invalid");
|
||||
} else {
|
||||
$("#reminderVeryUrgentDays").removeClass("is-invalid");
|
||||
}
|
||||
if (reminderUrgentDistance.trim() == '' || isNaN(reminderUrgentDistance) || parseInt(reminderUrgentDistance) < 0) {
|
||||
hasError = true;
|
||||
$("#reminderUrgentDistance").addClass("is-invalid");
|
||||
} else {
|
||||
$("#reminderUrgentDistance").removeClass("is-invalid");
|
||||
}
|
||||
if (reminderVeryUrgentDistance.trim() == '' || isNaN(reminderVeryUrgentDistance) || parseInt(reminderVeryUrgentDistance) < 0) {
|
||||
hasError = true;
|
||||
$("#reminderVeryUrgentDistance").addClass("is-invalid");
|
||||
} else {
|
||||
$("#reminderVeryUrgentDistance").removeClass("is-invalid");
|
||||
}
|
||||
}
|
||||
if (reminderOption == undefined) {
|
||||
hasError = true;
|
||||
$("#reminderMetricDate").addClass("is-invalid");
|
||||
@ -226,6 +265,13 @@ function getAndValidateReminderRecordValues() {
|
||||
notes: reminderNotes,
|
||||
metric: reminderOption,
|
||||
isRecurring: reminderIsRecurring,
|
||||
useCustomThresholds: reminderUseCustomThresholds,
|
||||
customThresholds: {
|
||||
urgentDays: reminderUrgentDays,
|
||||
veryUrgentDays: reminderVeryUrgentDays,
|
||||
urgentDistance: reminderUrgentDistance,
|
||||
veryUrgentDistance: reminderVeryUrgentDistance
|
||||
},
|
||||
reminderMileageInterval: reminderRecurringMileage,
|
||||
reminderMonthInterval: reminderRecurringMonth,
|
||||
customMileageInterval: customMileageInterval,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user