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,
|
Mileage = result.Mileage,
|
||||||
Metric = result.Metric,
|
Metric = result.Metric,
|
||||||
IsRecurring = result.IsRecurring,
|
IsRecurring = result.IsRecurring,
|
||||||
|
UseCustomThresholds = result.UseCustomThresholds,
|
||||||
|
CustomThresholds = result.CustomThresholds,
|
||||||
ReminderMileageInterval = result.ReminderMileageInterval,
|
ReminderMileageInterval = result.ReminderMileageInterval,
|
||||||
ReminderMonthInterval = result.ReminderMonthInterval,
|
ReminderMonthInterval = result.ReminderMonthInterval,
|
||||||
CustomMileageInterval = result.CustomMileageInterval,
|
CustomMileageInterval = result.CustomMileageInterval,
|
||||||
|
|||||||
@ -66,6 +66,10 @@ namespace CarCareTracker.Helper
|
|||||||
var reminderUrgencyConfig = _config.GetReminderUrgencyConfig();
|
var reminderUrgencyConfig = _config.GetReminderUrgencyConfig();
|
||||||
foreach (var reminder in reminders)
|
foreach (var reminder in reminders)
|
||||||
{
|
{
|
||||||
|
if (reminder.UseCustomThresholds)
|
||||||
|
{
|
||||||
|
reminderUrgencyConfig = reminder.CustomThresholds;
|
||||||
|
}
|
||||||
var reminderViewModel = new ReminderRecordViewModel()
|
var reminderViewModel = new ReminderRecordViewModel()
|
||||||
{
|
{
|
||||||
Id = reminder.Id,
|
Id = reminder.Id,
|
||||||
|
|||||||
@ -9,6 +9,8 @@
|
|||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public bool IsRecurring { get; set; } = false;
|
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 CustomMileageInterval { get; set; } = 0;
|
||||||
public int CustomMonthInterval { get; set; } = 0;
|
public int CustomMonthInterval { get; set; } = 0;
|
||||||
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
||||||
|
|||||||
@ -9,6 +9,8 @@
|
|||||||
public string Description { get; set; }
|
public string Description { get; set; }
|
||||||
public string Notes { get; set; }
|
public string Notes { get; set; }
|
||||||
public bool IsRecurring { get; set; } = false;
|
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 CustomMileageInterval { get; set; } = 0;
|
||||||
public int CustomMonthInterval { get; set; } = 0;
|
public int CustomMonthInterval { get; set; } = 0;
|
||||||
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
||||||
@ -26,6 +28,8 @@
|
|||||||
Description = Description,
|
Description = Description,
|
||||||
Metric = Metric,
|
Metric = Metric,
|
||||||
IsRecurring = IsRecurring,
|
IsRecurring = IsRecurring,
|
||||||
|
UseCustomThresholds = UseCustomThresholds,
|
||||||
|
CustomThresholds = CustomThresholds,
|
||||||
ReminderMileageInterval = ReminderMileageInterval,
|
ReminderMileageInterval = ReminderMileageInterval,
|
||||||
ReminderMonthInterval = ReminderMonthInterval,
|
ReminderMonthInterval = ReminderMonthInterval,
|
||||||
CustomMileageInterval = CustomMileageInterval,
|
CustomMileageInterval = CustomMileageInterval,
|
||||||
|
|||||||
@ -93,6 +93,22 @@
|
|||||||
<!option value="ThreeYears" @(Model.ReminderMonthInterval == ReminderMonthInterval.ThreeYears ? "selected" : "")>@translator.Translate(userLanguage, "3 Years")</!option>
|
<!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>
|
<!option value="FiveYears" @(Model.ReminderMonthInterval == ReminderMonthInterval.FiveYears ? "selected" : "")>@translator.Translate(userLanguage, "5 Years")</!option>
|
||||||
</select>
|
</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>
|
</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) {
|
function saveReminderRecordToVehicle(isEdit) {
|
||||||
//get values
|
//get values
|
||||||
var formValues = getAndValidateReminderRecordValues();
|
var formValues = getAndValidateReminderRecordValues();
|
||||||
@ -180,9 +188,13 @@ function getAndValidateReminderRecordValues() {
|
|||||||
var reminderRecurringMonth = $("#reminderRecurringMonth").val();
|
var reminderRecurringMonth = $("#reminderRecurringMonth").val();
|
||||||
var reminderRecurringMileage = $("#reminderRecurringMileage").val();
|
var reminderRecurringMileage = $("#reminderRecurringMileage").val();
|
||||||
var reminderTags = $("#reminderRecordTag").val();
|
var reminderTags = $("#reminderRecordTag").val();
|
||||||
var reminderCustomMileageInterval = customMileageInterval;
|
|
||||||
var vehicleId = GetVehicleId().vehicleId;
|
var vehicleId = GetVehicleId().vehicleId;
|
||||||
var reminderId = getReminderRecordModelData().id;
|
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
|
//validation
|
||||||
var hasError = false;
|
var hasError = false;
|
||||||
var reminderDateIsInvalid = reminderDate.trim() == ''; //eliminates whitespace.
|
var reminderDateIsInvalid = reminderDate.trim() == ''; //eliminates whitespace.
|
||||||
@ -205,6 +217,33 @@ function getAndValidateReminderRecordValues() {
|
|||||||
} else {
|
} else {
|
||||||
$("#reminderDescription").removeClass("is-invalid");
|
$("#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) {
|
if (reminderOption == undefined) {
|
||||||
hasError = true;
|
hasError = true;
|
||||||
$("#reminderMetricDate").addClass("is-invalid");
|
$("#reminderMetricDate").addClass("is-invalid");
|
||||||
@ -226,6 +265,13 @@ function getAndValidateReminderRecordValues() {
|
|||||||
notes: reminderNotes,
|
notes: reminderNotes,
|
||||||
metric: reminderOption,
|
metric: reminderOption,
|
||||||
isRecurring: reminderIsRecurring,
|
isRecurring: reminderIsRecurring,
|
||||||
|
useCustomThresholds: reminderUseCustomThresholds,
|
||||||
|
customThresholds: {
|
||||||
|
urgentDays: reminderUrgentDays,
|
||||||
|
veryUrgentDays: reminderVeryUrgentDays,
|
||||||
|
urgentDistance: reminderUrgentDistance,
|
||||||
|
veryUrgentDistance: reminderVeryUrgentDistance
|
||||||
|
},
|
||||||
reminderMileageInterval: reminderRecurringMileage,
|
reminderMileageInterval: reminderRecurringMileage,
|
||||||
reminderMonthInterval: reminderRecurringMonth,
|
reminderMonthInterval: reminderRecurringMonth,
|
||||||
customMileageInterval: customMileageInterval,
|
customMileageInterval: customMileageInterval,
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user