function returnToGarage() { window.location.href = '/Home'; } function saveVehicleNote(vehicleId) { var noteText = $("#noteTextArea").val(); $.post('/Vehicle/SaveNoteToVehicle', { vehicleId: vehicleId, noteText: noteText }, function (data) { if (data) { successToast("Note saved successfully."); } else { errorToast("An error has occurred, please try again later."); } }) } $(document).ready(function () { var vehicleId = GetVehicleId().vehicleId; //bind tabs $('button[data-bs-toggle="tab"]').on('show.bs.tab', function (e) { switch (e.target.id) { case "servicerecord-tab": getVehicleServiceRecords(vehicleId); break; case "notes-tab": getVehicleNote(vehicleId); break; } switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance case "servicerecord-tab": $("#servicerecord-tab-pane").html(""); break; } }); getVehicleServiceRecords(vehicleId); }); function getVehicleNote(vehicleId) { $.get(`/Vehicle/GetNoteByVehicleId?vehicleId=${vehicleId}`, function (data) { if (data) { $("#noteTextArea").val(data); } }); } function getVehicleServiceRecords(vehicleId) { $.get(`/Vehicle/GetServiceRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) { if (data) { $("#servicerecord-tab-pane").html(data); //initiate datepicker $('#serviceRecordDate').datepicker({ endDate: "+0d" }); } }) } function DeleteVehicle(vehicleId) { $.post('/Vehicle/DeleteVehicle', { vehicleId: vehicleId }, function (data) { if (data) { window.location.href = '/Home'; } }) } var serviceRecordEditId = 0; function showEditServiceRecordModal(serviceRecordId) { //retrieve service record object. $.get(`/Vehicle/GetServiceRecordById?serviceRecordId=${serviceRecordId}`, function (data) { if (data) { //UI elements. $("#addServiceRecordButton").hide(); $("#editServiceRecordButton").show(); //pre-populate fields. $("#serviceRecordDate").val(data.date); $("#serviceRecordMileage").val(data.mileage); $("#serviceRecordDescription").val(data.description); $("#serviceRecordCost").val(data.cost); $("#serviceRecordNotes").val(data.notes); serviceRecordEditId = serviceRecordId; //set global var. $('#addServiceRecordModal').modal('show'); } }); } function showAddServiceRecordModal() { serviceRecordEditId = 0; $("#addServiceRecordButton").show(); $("#editServiceRecordButton").hide(); $('#addServiceRecordModal').modal('show'); } function hideAddServiceRecordModal() { serviceRecordEditId = 0; $('#addServiceRecordModal').modal('hide'); } function editServiceRecordToVehicle() { var formValues = getAndValidateServiceRecordValues(); //validate if (formValues.hasError) { errorToast("Please check the form data"); return; } //save to db. $.post('/Vehicle/SaveServiceRecordToVehicleId', { serviceRecord: formValues }, function (data) { if (data) { successToast("Service Record updated."); hideAddServiceRecordModal(); getVehicleServiceRecords(formValues.vehicleId); serviceRecordEditId = 0; //reset global var. } else { errorToast("An error has occurred, please try again later."); } }) } function deleteServiceRecord(serviceRecordId) { Swal.fire({ title: "Confirm Deletion?", text: "Deleted Service Records cannot be restored.", showCancelButton: true, confirmButtonText: "Delete", confirmButtonColor: "#dc3545" }).then((result) => { if (result.isConfirmed) { $.post(`/Vehicle/DeleteServiceRecordById?serviceRecordId=${serviceRecordId}`, function (data) { if (data) { successToast("Service Record deleted"); var vehicleId = GetVehicleId().vehicleId; getVehicleServiceRecords(vehicleId); } else { errorToast("An error has occurred, please try again later."); } }); } }); } function addServiceRecordToVehicle() { //get values var formValues = getAndValidateServiceRecordValues(); //validate if (formValues.hasError) { errorToast("Please check the form data"); return; } //save to db. $.post('/Vehicle/SaveServiceRecordToVehicleId', { serviceRecord: formValues }, function (data) { if (data) { successToast("Service Record added."); hideAddServiceRecordModal(); getVehicleServiceRecords(formValues.vehicleId); } else { errorToast("An error has occurred, please try again later."); } }) } function getAndValidateServiceRecordValues() { var serviceDate = $("#serviceRecordDate").val(); var serviceMileage = $("#serviceRecordMileage").val(); var serviceDescription = $("#serviceRecordDescription").val(); var serviceCost = $("#serviceRecordCost").val(); var serviceNotes = $("#serviceRecordNotes").val(); var vehicleId = GetVehicleId().vehicleId; //validation var hasError = false; if (serviceDate.trim() == '') { //eliminates whitespace. hasError = true; $("#serviceRecordDate").addClass("is-invalid"); } else { $("#serviceRecordDate").removeClass("is-invalid"); } if (serviceMileage.trim() == '' || parseInt(serviceMileage) < 0) { hasError = true; $("#serviceRecordMileage").addClass("is-invalid"); } else { $("#serviceRecordMileage").removeClass("is-invalid"); } if (serviceDescription.trim() == '') { hasError = true; $("#serviceRecordDescription").addClass("is-invalid"); } else { $("#serviceRecordDescription").removeClass("is-invalid"); } if (serviceCost.trim() == '') { hasError = true; $("#serviceRecordCost").addClass("is-invalid"); } else { $("#serviceRecordCost").removeClass("is-invalid"); } return { id: serviceRecordEditId, hasError: hasError, vehicleId: vehicleId, date: serviceDate, mileage: serviceMileage, description: serviceDescription, cost: serviceCost, notes: serviceNotes } } function showServiceRecordNotes(note) { if (note.trim() == '') { return; } genericSwal("Note", note); }