mirror of
https://github.com/hargata/lubelog.git
synced 2025-12-10 18:36:38 -06:00
added ability for user to define custom mileage intervals.
This commit is contained in:
parent
fb45aefde3
commit
178b50a033
@ -1309,7 +1309,8 @@ namespace CarCareTracker.Controllers
|
|||||||
Metric = result.Metric,
|
Metric = result.Metric,
|
||||||
IsRecurring = result.IsRecurring,
|
IsRecurring = result.IsRecurring,
|
||||||
ReminderMileageInterval = result.ReminderMileageInterval,
|
ReminderMileageInterval = result.ReminderMileageInterval,
|
||||||
ReminderMonthInterval = result.ReminderMonthInterval
|
ReminderMonthInterval = result.ReminderMonthInterval,
|
||||||
|
CustomMileageInterval = result.CustomMileageInterval
|
||||||
};
|
};
|
||||||
return PartialView("_ReminderRecordModal", convertedResult);
|
return PartialView("_ReminderRecordModal", convertedResult);
|
||||||
}
|
}
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
{
|
{
|
||||||
public enum ReminderMileageInterval
|
public enum ReminderMileageInterval
|
||||||
{
|
{
|
||||||
|
Other = 0,
|
||||||
FiftyMiles = 50,
|
FiftyMiles = 50,
|
||||||
OneHundredMiles = 100,
|
OneHundredMiles = 100,
|
||||||
FiveHundredMiles = 500,
|
FiveHundredMiles = 500,
|
||||||
|
|||||||
@ -14,11 +14,24 @@ namespace CarCareTracker.Helper
|
|||||||
if (existingReminder.Metric == ReminderMetric.Both)
|
if (existingReminder.Metric == ReminderMetric.Both)
|
||||||
{
|
{
|
||||||
existingReminder.Date = existingReminder.Date.AddMonths((int)existingReminder.ReminderMonthInterval);
|
existingReminder.Date = existingReminder.Date.AddMonths((int)existingReminder.ReminderMonthInterval);
|
||||||
existingReminder.Mileage += (int)existingReminder.ReminderMileageInterval;
|
if (existingReminder.ReminderMileageInterval != ReminderMileageInterval.Other)
|
||||||
|
{
|
||||||
|
existingReminder.Mileage += (int)existingReminder.ReminderMileageInterval;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
existingReminder.Mileage += existingReminder.CustomMileageInterval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (existingReminder.Metric == ReminderMetric.Odometer)
|
else if (existingReminder.Metric == ReminderMetric.Odometer)
|
||||||
{
|
{
|
||||||
existingReminder.Mileage += (int)existingReminder.ReminderMileageInterval;
|
if (existingReminder.ReminderMileageInterval != ReminderMileageInterval.Other)
|
||||||
|
{
|
||||||
|
existingReminder.Mileage += (int)existingReminder.ReminderMileageInterval;
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
existingReminder.Mileage += existingReminder.CustomMileageInterval;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (existingReminder.Metric == ReminderMetric.Date)
|
else if (existingReminder.Metric == ReminderMetric.Date)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
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 int CustomMileageInterval { get; set; } = 0;
|
||||||
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
||||||
public ReminderMonthInterval ReminderMonthInterval { get; set; } = ReminderMonthInterval.OneYear;
|
public ReminderMonthInterval ReminderMonthInterval { get; set; } = ReminderMonthInterval.OneYear;
|
||||||
public ReminderMetric Metric { get; set; } = ReminderMetric.Date;
|
public ReminderMetric Metric { get; set; } = ReminderMetric.Date;
|
||||||
|
|||||||
@ -9,6 +9,7 @@
|
|||||||
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 int CustomMileageInterval { get; set; } = 0;
|
||||||
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
public ReminderMileageInterval ReminderMileageInterval { get; set; } = ReminderMileageInterval.FiveThousandMiles;
|
||||||
public ReminderMonthInterval ReminderMonthInterval { get; set; } = ReminderMonthInterval.OneYear;
|
public ReminderMonthInterval ReminderMonthInterval { get; set; } = ReminderMonthInterval.OneYear;
|
||||||
public ReminderMetric Metric { get; set; } = ReminderMetric.Date;
|
public ReminderMetric Metric { get; set; } = ReminderMetric.Date;
|
||||||
@ -22,6 +23,7 @@
|
|||||||
IsRecurring = IsRecurring,
|
IsRecurring = IsRecurring,
|
||||||
ReminderMileageInterval = ReminderMileageInterval,
|
ReminderMileageInterval = ReminderMileageInterval,
|
||||||
ReminderMonthInterval = ReminderMonthInterval,
|
ReminderMonthInterval = ReminderMonthInterval,
|
||||||
|
CustomMileageInterval = CustomMileageInterval,
|
||||||
Notes = Notes }; }
|
Notes = Notes }; }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -148,7 +148,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal fade" id="reminderRecordModal" tabindex="-1" role="dialog" aria-hidden="true">
|
<div class="modal fade" data-bs-focus="false" id="reminderRecordModal" tabindex="-1" role="dialog" aria-hidden="true">
|
||||||
<div class="modal-dialog modal-lg" role="document">
|
<div class="modal-dialog modal-lg" role="document">
|
||||||
<div class="modal-content" id="reminderRecordModalContent">
|
<div class="modal-content" id="reminderRecordModalContent">
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@ -46,7 +46,8 @@
|
|||||||
<label class="form-check-label" for="reminderIsRecurring">Is Recurring</label>
|
<label class="form-check-label" for="reminderIsRecurring">Is Recurring</label>
|
||||||
</div>
|
</div>
|
||||||
<label for="reminderRecurringMileage">Odometer</label>
|
<label for="reminderRecurringMileage">Odometer</label>
|
||||||
<select class="form-select" id="reminderRecurringMileage" @(Model.IsRecurring ? "" : "disabled")>
|
<select class="form-select" onchange="checkCustomMileageInterval()" id="reminderRecurringMileage" @(Model.IsRecurring ? "" : "disabled")>
|
||||||
|
<!option value="Other" @(Model.ReminderMileageInterval == ReminderMileageInterval.Other ? "selected" : "")>@(Model.CustomMileageInterval > 0 ? $"Other: {Model.CustomMileageInterval}" : "Other")</!option>
|
||||||
<!option value="FiftyMiles" @(Model.ReminderMileageInterval == ReminderMileageInterval.FiftyMiles ? "selected" : "")>50 mi. / Km</!option>
|
<!option value="FiftyMiles" @(Model.ReminderMileageInterval == ReminderMileageInterval.FiftyMiles ? "selected" : "")>50 mi. / Km</!option>
|
||||||
<!option value="OneHundredMiles" @(Model.ReminderMileageInterval == ReminderMileageInterval.OneHundredMiles ? "selected" : "")>100 mi. / Km</!option>
|
<!option value="OneHundredMiles" @(Model.ReminderMileageInterval == ReminderMileageInterval.OneHundredMiles ? "selected" : "")>100 mi. / Km</!option>
|
||||||
<!option value="FiveHundredMiles" @(Model.ReminderMileageInterval == ReminderMileageInterval.FiveHundredMiles ? "selected" : "")>500 mi. / Km</!option>
|
<!option value="FiveHundredMiles" @(Model.ReminderMileageInterval == ReminderMileageInterval.FiveHundredMiles ? "selected" : "")>500 mi. / Km</!option>
|
||||||
@ -95,7 +96,8 @@
|
|||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
var customMileageInterval = @Model.CustomMileageInterval;
|
||||||
function getReminderRecordModelData() {
|
function getReminderRecordModelData() {
|
||||||
return { id: @Model.Id}
|
return { id: @Model.Id, mileageInterval: '@Model.ReminderMileageInterval.ToString()'}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
@ -15,6 +15,35 @@
|
|||||||
function hideAddReminderRecordModal() {
|
function hideAddReminderRecordModal() {
|
||||||
$('#reminderRecordModal').modal('hide');
|
$('#reminderRecordModal').modal('hide');
|
||||||
}
|
}
|
||||||
|
function checkCustomMileageInterval() {
|
||||||
|
var selectedValue = $("#reminderRecurringMileage").val();
|
||||||
|
if (selectedValue == "Other") {
|
||||||
|
$("#workAroundInput").show();
|
||||||
|
Swal.fire({
|
||||||
|
title: 'Specify Custom Mileage Interval',
|
||||||
|
html: `
|
||||||
|
<input type="text" id="inputCustomMileage" class="swal2-input" placeholder="Mileage">
|
||||||
|
`,
|
||||||
|
confirmButtonText: 'Set',
|
||||||
|
focusConfirm: false,
|
||||||
|
preConfirm: () => {
|
||||||
|
const customMileage = $("#inputCustomMileage").val();
|
||||||
|
if (!customMileage || isNaN(parseInt(customMileage)) || parseInt(customMileage) <= 0) {
|
||||||
|
Swal.showValidationMessage(`Please enter a valid number`);
|
||||||
|
}
|
||||||
|
return { customMileage }
|
||||||
|
},
|
||||||
|
}).then(function (result) {
|
||||||
|
if (result.isConfirmed) {
|
||||||
|
customMileageInterval = result.value.customMileage;
|
||||||
|
$("option[value='Other']").text(`Other: ${result.value.customMileage}`);
|
||||||
|
} else {
|
||||||
|
$("#reminderRecurringMileage").val(getReminderRecordModelData().mileageInterval);
|
||||||
|
}
|
||||||
|
$("#workAroundInput").hide();
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
function deleteReminderRecord(reminderRecordId, e) {
|
function deleteReminderRecord(reminderRecordId, e) {
|
||||||
if (e != undefined) {
|
if (e != undefined) {
|
||||||
event.stopPropagation();
|
event.stopPropagation();
|
||||||
@ -108,6 +137,7 @@ function getAndValidateReminderRecordValues() {
|
|||||||
var reminderIsRecurring = $("#reminderIsRecurring").is(":checked");
|
var reminderIsRecurring = $("#reminderIsRecurring").is(":checked");
|
||||||
var reminderRecurringMonth = $("#reminderRecurringMonth").val();
|
var reminderRecurringMonth = $("#reminderRecurringMonth").val();
|
||||||
var reminderRecurringMileage = $("#reminderRecurringMileage").val();
|
var reminderRecurringMileage = $("#reminderRecurringMileage").val();
|
||||||
|
var reminderCustomMileageInterval = customMileageInterval;
|
||||||
var vehicleId = GetVehicleId().vehicleId;
|
var vehicleId = GetVehicleId().vehicleId;
|
||||||
var reminderId = getReminderRecordModelData().id;
|
var reminderId = getReminderRecordModelData().id;
|
||||||
//validation
|
//validation
|
||||||
@ -154,6 +184,7 @@ function getAndValidateReminderRecordValues() {
|
|||||||
metric: reminderOption,
|
metric: reminderOption,
|
||||||
isRecurring: reminderIsRecurring,
|
isRecurring: reminderIsRecurring,
|
||||||
reminderMileageInterval: reminderRecurringMileage,
|
reminderMileageInterval: reminderRecurringMileage,
|
||||||
reminderMonthInterval: reminderRecurringMonth
|
reminderMonthInterval: reminderRecurringMonth,
|
||||||
|
customMileageInterval: customMileageInterval
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user