diff --git a/Controllers/VehicleController.cs b/Controllers/VehicleController.cs index 5005916..727e805 100644 --- a/Controllers/VehicleController.cs +++ b/Controllers/VehicleController.cs @@ -732,6 +732,61 @@ namespace CarCareTracker.Controllers var result = _config.SaveUserConfig(User, currentConfig); return Json(result); } + [HttpPost] + public IActionResult GetGasRecordsEditModal(List recordIds) + { + return PartialView("_GasRecordsModal", new GasRecordEditModel { RecordIds = recordIds }); + } + [HttpPost] + public IActionResult SaveMultipleGasRecords(GasRecordEditModel editModel) + { + var dateIsEdited = editModel.EditRecord.Date != default; + var mileageIsEdited = editModel.EditRecord.Mileage != default; + var consumptionIsEdited = editModel.EditRecord.Gallons != default; + var costIsEdited = editModel.EditRecord.Cost != default; + var noteIsEdited = !string.IsNullOrWhiteSpace(editModel.EditRecord.Notes); + var tagsIsEdited = editModel.EditRecord.Tags.Any(); + //handle clear overrides + if (tagsIsEdited && editModel.EditRecord.Tags.Contains("---")) + { + editModel.EditRecord.Tags = new List(); + } + if (noteIsEdited && editModel.EditRecord.Notes == "---") + { + editModel.EditRecord.Notes = ""; + } + bool result = false; + foreach (int recordId in editModel.RecordIds) + { + var existingRecord = _gasRecordDataAccess.GetGasRecordById(recordId); + if (dateIsEdited) + { + existingRecord.Date = editModel.EditRecord.Date; + } + if (consumptionIsEdited) + { + existingRecord.Gallons = editModel.EditRecord.Gallons; + } + if (costIsEdited) + { + existingRecord.Cost = editModel.EditRecord.Cost; + } + if (mileageIsEdited) + { + existingRecord.Mileage = editModel.EditRecord.Mileage; + } + if (noteIsEdited) + { + existingRecord.Notes = editModel.EditRecord.Notes; + } + if (tagsIsEdited) + { + existingRecord.Tags = editModel.EditRecord.Tags; + } + result = _gasRecordDataAccess.SaveGasRecordToVehicle(existingRecord); + } + return Json(result); + } #endregion #region "Service Records" [TypeFilter(typeof(CollaboratorFilter))] diff --git a/Models/GasRecord/GasRecordEditModel.cs b/Models/GasRecord/GasRecordEditModel.cs new file mode 100644 index 0000000..e67f42f --- /dev/null +++ b/Models/GasRecord/GasRecordEditModel.cs @@ -0,0 +1,8 @@ +namespace CarCareTracker.Models +{ + public class GasRecordEditModel + { + public List RecordIds { get; set; } = new List(); + public GasRecord EditRecord { get; set; } = new GasRecord(); + } +} diff --git a/Views/Home/_Settings.cshtml b/Views/Home/_Settings.cshtml index ec44e1c..649c311 100644 --- a/Views/Home/_Settings.cshtml +++ b/Views/Home/_Settings.cshtml @@ -402,6 +402,7 @@ function restoreBackup(event) { let formData = new FormData(); formData.append("file", event.files[0]); + console.log('LubeLogger - DB Restoration Started'); sloader.show(); $.ajax({ url: "/Files/HandleFileUpload", @@ -415,16 +416,21 @@ $.post('/Files/RestoreBackup', { fileName: response }, function (data) { sloader.hide(); if (data) { + console.log('LubeLogger - DB Restoration Completed'); successToast("Backup Restored"); setTimeout(function () { window.location.href = '/Home/Index' }, 500); } else { errorToast(genericErrorMessage()); + console.log('LubeLogger - DB Restoration Failed - Failed to process backup file.'); } }); + } else { + console.log('LubeLogger - DB Restoration Failed - Failed to upload backup file.'); } }, error: function () { sloader.hide(); + console.log('LubeLogger - DB Restoration Failed - Request failed to reach backend, please check file size.'); errorToast("An error has occurred, please check the file size and try again later."); } }); diff --git a/Views/Vehicle/_Gas.cshtml b/Views/Vehicle/_Gas.cshtml index ddb7f0d..6b8a59d 100644 --- a/Views/Vehicle/_Gas.cshtml +++ b/Views/Vehicle/_Gas.cshtml @@ -219,6 +219,7 @@