Merge branch 'main' into Hargata/consolidated.report
This commit is contained in:
@@ -103,7 +103,7 @@ function getAndValidateCollisionRecordValues() {
|
||||
} else {
|
||||
$("#collisionRecordDescription").removeClass("is-invalid");
|
||||
}
|
||||
if (collisionCost.trim() == '') {
|
||||
if (collisionCost.trim() == '' || !isValidMoney(collisionCost)) {
|
||||
hasError = true;
|
||||
$("#collisionRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
|
||||
@@ -77,6 +77,7 @@ function getAndValidateGasRecordValues() {
|
||||
var gasGallons = $("#gasRecordGallons").val();
|
||||
var gasCost = $("#gasRecordCost").val();
|
||||
var gasIsFillToFull = $("#gasIsFillToFull").is(":checked");
|
||||
var gasIsMissed = $("#gasIsMissed").is(":checked");
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
var gasRecordId = getGasRecordModelData().id;
|
||||
//validation
|
||||
@@ -99,7 +100,7 @@ function getAndValidateGasRecordValues() {
|
||||
} else {
|
||||
$("#gasRecordGallons").removeClass("is-invalid");
|
||||
}
|
||||
if (gasCost.trim() == '') {
|
||||
if (gasCost.trim() == '' || !isValidMoney(gasCost)) {
|
||||
hasError = true;
|
||||
$("#gasRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
@@ -114,6 +115,7 @@ function getAndValidateGasRecordValues() {
|
||||
gallons: gasGallons,
|
||||
cost: gasCost,
|
||||
files: uploadedFiles,
|
||||
isFillToFull: gasIsFillToFull
|
||||
isFillToFull: gasIsFillToFull,
|
||||
missedFuelUp: gasIsMissed
|
||||
}
|
||||
}
|
||||
90
wwwroot/js/note.js
Normal file
90
wwwroot/js/note.js
Normal file
@@ -0,0 +1,90 @@
|
||||
function showAddNoteModal() {
|
||||
$.get('/Vehicle/GetAddNotePartialView', function (data) {
|
||||
if (data) {
|
||||
$("#noteModalContent").html(data);
|
||||
$('#noteModal').modal('show');
|
||||
}
|
||||
});
|
||||
}
|
||||
function showEditNoteModal(noteId) {
|
||||
$.get(`/Vehicle/GetNoteForEditById?noteId=${noteId}`, function (data) {
|
||||
if (data) {
|
||||
$("#noteModalContent").html(data);
|
||||
$('#noteModal').modal('show');
|
||||
}
|
||||
});
|
||||
}
|
||||
function hideAddNoteModal() {
|
||||
$('#noteModal').modal('hide');
|
||||
}
|
||||
function deleteNote(noteId) {
|
||||
$("#workAroundInput").show();
|
||||
Swal.fire({
|
||||
title: "Confirm Deletion?",
|
||||
text: "Deleted Notes cannot be restored.",
|
||||
showCancelButton: true,
|
||||
confirmButtonText: "Delete",
|
||||
confirmButtonColor: "#dc3545"
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.post(`/Vehicle/DeleteNoteById?noteId=${noteId}`, function (data) {
|
||||
if (data) {
|
||||
hideAddNoteModal();
|
||||
successToast("Note Deleted");
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
getVehicleNotes(vehicleId);
|
||||
} else {
|
||||
errorToast("An error has occurred, please try again later.");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#workAroundInput").hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
function saveNoteToVehicle(isEdit) {
|
||||
//get values
|
||||
var formValues = getAndValidateNoteValues();
|
||||
//validate
|
||||
if (formValues.hasError) {
|
||||
errorToast("Please check the form data");
|
||||
return;
|
||||
}
|
||||
//save to db.
|
||||
$.post('/Vehicle/SaveNoteToVehicleId', { note: formValues }, function (data) {
|
||||
if (data) {
|
||||
successToast(isEdit ? "Note Updated" : "Note Added.");
|
||||
hideAddNoteModal();
|
||||
getVehicleNotes(formValues.vehicleId);
|
||||
} else {
|
||||
errorToast("An error has occurred, please try again later.");
|
||||
}
|
||||
})
|
||||
}
|
||||
function getAndValidateNoteValues() {
|
||||
var noteDescription = $("#noteDescription").val();
|
||||
var noteText = $("#noteTextArea").val();
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
var noteId = getNoteModelData().id;
|
||||
//validation
|
||||
var hasError = false;
|
||||
if (noteDescription.trim() == '') { //eliminates whitespace.
|
||||
hasError = true;
|
||||
$("#noteDescription").addClass("is-invalid");
|
||||
} else {
|
||||
$("#noteDescription").removeClass("is-invalid");
|
||||
}
|
||||
if (noteText.trim() == '') {
|
||||
hasError = true;
|
||||
$("#noteTextArea").addClass("is-invalid");
|
||||
} else {
|
||||
$("#noteTextArea").removeClass("is-invalid");
|
||||
}
|
||||
return {
|
||||
id: noteId,
|
||||
hasError: hasError,
|
||||
vehicleId: vehicleId,
|
||||
description: noteDescription,
|
||||
noteText: noteText
|
||||
}
|
||||
}
|
||||
@@ -103,7 +103,7 @@ function getAndValidateServiceRecordValues() {
|
||||
} else {
|
||||
$("#serviceRecordDescription").removeClass("is-invalid");
|
||||
}
|
||||
if (serviceCost.trim() == '') {
|
||||
if (serviceCost.trim() == '' || !isValidMoney(serviceCost)) {
|
||||
hasError = true;
|
||||
$("#serviceRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
|
||||
@@ -110,4 +110,9 @@ function uploadFileAsync(event) {
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
function isValidMoney(input) {
|
||||
const euRegex = /^\$?(?=\(.*\)|[^()]*$)\(?\d{1,3}(\.?\d{3})?(,\d{1,3}?)?\)?$/;
|
||||
const usRegex = /^\$?(?=\(.*\)|[^()]*$)\(?\d{1,3}(,?\d{3})?(\.\d{1,3}?)?\)?$/;
|
||||
return (euRegex.test(input) || usRegex.test(input));
|
||||
}
|
||||
@@ -96,7 +96,7 @@ function getAndValidateTaxRecordValues() {
|
||||
} else {
|
||||
$("#taxRecordDescription").removeClass("is-invalid");
|
||||
}
|
||||
if (taxCost.trim() == '') {
|
||||
if (taxCost.trim() == '' || !isValidMoney(taxCost)) {
|
||||
hasError = true;
|
||||
$("#taxRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
|
||||
124
wwwroot/js/upgraderecord.js
Normal file
124
wwwroot/js/upgraderecord.js
Normal file
@@ -0,0 +1,124 @@
|
||||
function showAddUpgradeRecordModal() {
|
||||
$.get('/Vehicle/GetAddUpgradeRecordPartialView', function (data) {
|
||||
if (data) {
|
||||
$("#upgradeRecordModalContent").html(data);
|
||||
//initiate datepicker
|
||||
$('#upgradeRecordDate').datepicker({
|
||||
endDate: "+0d",
|
||||
format: getShortDatePattern().pattern
|
||||
});
|
||||
$('#upgradeRecordModal').modal('show');
|
||||
}
|
||||
});
|
||||
}
|
||||
function showEditUpgradeRecordModal(upgradeRecordId) {
|
||||
$.get(`/Vehicle/GetUpgradeRecordForEditById?upgradeRecordId=${upgradeRecordId}`, function (data) {
|
||||
if (data) {
|
||||
$("#upgradeRecordModalContent").html(data);
|
||||
//initiate datepicker
|
||||
$('#upgradeRecordDate').datepicker({
|
||||
endDate: "+0d",
|
||||
format: getShortDatePattern().pattern
|
||||
});
|
||||
$('#upgradeRecordModal').modal('show');
|
||||
}
|
||||
});
|
||||
}
|
||||
function hideAddUpgradeRecordModal() {
|
||||
$('#upgradeRecordModal').modal('hide');
|
||||
}
|
||||
function deleteUpgradeRecord(upgradeRecordId) {
|
||||
$("#workAroundInput").show();
|
||||
Swal.fire({
|
||||
title: "Confirm Deletion?",
|
||||
text: "Deleted Upgrade Records cannot be restored.",
|
||||
showCancelButton: true,
|
||||
confirmButtonText: "Delete",
|
||||
confirmButtonColor: "#dc3545"
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
$.post(`/Vehicle/DeleteUpgradeRecordById?upgradeRecordId=${upgradeRecordId}`, function (data) {
|
||||
if (data) {
|
||||
hideAddUpgradeRecordModal();
|
||||
successToast("Upgrade Record Deleted");
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
getVehicleUpgradeRecords(vehicleId);
|
||||
} else {
|
||||
errorToast("An error has occurred, please try again later.");
|
||||
}
|
||||
});
|
||||
} else {
|
||||
$("#workAroundInput").hide();
|
||||
}
|
||||
});
|
||||
}
|
||||
function saveUpgradeRecordToVehicle(isEdit) {
|
||||
//get values
|
||||
var formValues = getAndValidateUpgradeRecordValues();
|
||||
//validate
|
||||
if (formValues.hasError) {
|
||||
errorToast("Please check the form data");
|
||||
return;
|
||||
}
|
||||
//save to db.
|
||||
$.post('/Vehicle/SaveUpgradeRecordToVehicleId', { upgradeRecord: formValues }, function (data) {
|
||||
if (data) {
|
||||
successToast(isEdit ? "Upgrade Record Updated" : "Upgrade Record Added.");
|
||||
hideAddUpgradeRecordModal();
|
||||
getVehicleUpgradeRecords(formValues.vehicleId);
|
||||
if (formValues.addReminderRecord) {
|
||||
setTimeout(function () { showAddReminderModal(formValues); }, 500);
|
||||
}
|
||||
} else {
|
||||
errorToast("An error has occurred, please try again later.");
|
||||
}
|
||||
})
|
||||
}
|
||||
function getAndValidateUpgradeRecordValues() {
|
||||
var upgradeDate = $("#upgradeRecordDate").val();
|
||||
var upgradeMileage = $("#upgradeRecordMileage").val();
|
||||
var upgradeDescription = $("#upgradeRecordDescription").val();
|
||||
var upgradeCost = $("#upgradeRecordCost").val();
|
||||
var upgradeNotes = $("#upgradeRecordNotes").val();
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
var upgradeRecordId = getUpgradeRecordModelData().id;
|
||||
var addReminderRecord = $("#addReminderCheck").is(":checked");
|
||||
//validation
|
||||
var hasError = false;
|
||||
if (upgradeDate.trim() == '') { //eliminates whitespace.
|
||||
hasError = true;
|
||||
$("#upgradeRecordDate").addClass("is-invalid");
|
||||
} else {
|
||||
$("#upgradeRecordDate").removeClass("is-invalid");
|
||||
}
|
||||
if (upgradeMileage.trim() == '' || parseInt(upgradeMileage) < 0) {
|
||||
hasError = true;
|
||||
$("#upgradeRecordMileage").addClass("is-invalid");
|
||||
} else {
|
||||
$("#upgradeRecordMileage").removeClass("is-invalid");
|
||||
}
|
||||
if (upgradeDescription.trim() == '') {
|
||||
hasError = true;
|
||||
$("#upgradeRecordDescription").addClass("is-invalid");
|
||||
} else {
|
||||
$("#upgradeRecordDescription").removeClass("is-invalid");
|
||||
}
|
||||
if (upgradeCost.trim() == '' || !isValidMoney(upgradeCost)) {
|
||||
hasError = true;
|
||||
$("#upgradeRecordCost").addClass("is-invalid");
|
||||
} else {
|
||||
$("#upgradeRecordCost").removeClass("is-invalid");
|
||||
}
|
||||
return {
|
||||
id: upgradeRecordId,
|
||||
hasError: hasError,
|
||||
vehicleId: vehicleId,
|
||||
date: upgradeDate,
|
||||
mileage: upgradeMileage,
|
||||
description: upgradeDescription,
|
||||
cost: upgradeCost,
|
||||
notes: upgradeNotes,
|
||||
files: uploadedFiles,
|
||||
addReminderRecord: addReminderRecord
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,6 @@
|
||||
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
|
||||
@@ -20,7 +10,7 @@ $(document).ready(function () {
|
||||
getVehicleServiceRecords(vehicleId);
|
||||
break;
|
||||
case "notes-tab":
|
||||
getVehicleNote(vehicleId);
|
||||
getVehicleNotes(vehicleId);
|
||||
break;
|
||||
case "gas-tab":
|
||||
getVehicleGasRecords(vehicleId);
|
||||
@@ -37,6 +27,9 @@ $(document).ready(function () {
|
||||
case "reminder-tab":
|
||||
getVehicleReminders(vehicleId);
|
||||
break;
|
||||
case "upgrade-tab":
|
||||
getVehicleUpgradeRecords(vehicleId);
|
||||
break;
|
||||
}
|
||||
switch (e.relatedTarget.id) { //clear out previous tabs with grids in them to help with performance
|
||||
case "servicerecord-tab":
|
||||
@@ -57,15 +50,21 @@ $(document).ready(function () {
|
||||
case "reminder-tab":
|
||||
$("#reminder-tab-pane").html("");
|
||||
break;
|
||||
case "upgrade-tab":
|
||||
$("#upgrade-tab-pane").html("");
|
||||
break;
|
||||
case "notes-tab":
|
||||
$("#notes-tab-pane").html("");
|
||||
break;
|
||||
}
|
||||
});
|
||||
getVehicleServiceRecords(vehicleId);
|
||||
});
|
||||
|
||||
function getVehicleNote(vehicleId) {
|
||||
$.get(`/Vehicle/GetNoteByVehicleId?vehicleId=${vehicleId}`, function (data) {
|
||||
function getVehicleNotes(vehicleId) {
|
||||
$.get(`/Vehicle/GetNotesByVehicleId?vehicleId=${vehicleId}`, function (data) {
|
||||
if (data) {
|
||||
$("#noteTextArea").val(data);
|
||||
$("#notes-tab-pane").html(data);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -75,7 +74,15 @@ function getVehicleServiceRecords(vehicleId) {
|
||||
$("#servicerecord-tab-pane").html(data);
|
||||
getVehicleHaveImportantReminders(vehicleId);
|
||||
}
|
||||
})
|
||||
});
|
||||
}
|
||||
function getVehicleUpgradeRecords(vehicleId) {
|
||||
$.get(`/Vehicle/GetUpgradeRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) {
|
||||
if (data) {
|
||||
$("#upgrade-tab-pane").html(data);
|
||||
getVehicleHaveImportantReminders(vehicleId);
|
||||
}
|
||||
});
|
||||
}
|
||||
function getVehicleGasRecords(vehicleId) {
|
||||
$.get(`/Vehicle/GetGasRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) {
|
||||
@@ -97,7 +104,6 @@ function getVehicleTaxRecords(vehicleId) {
|
||||
$.get(`/Vehicle/GetTaxRecordsByVehicleId?vehicleId=${vehicleId}`, function (data) {
|
||||
if (data) {
|
||||
$("#tax-tab-pane").html(data);
|
||||
getVehicleHaveImportantReminders(vehicleId);
|
||||
}
|
||||
});
|
||||
}
|
||||
@@ -127,6 +133,16 @@ function editVehicle(vehicleId) {
|
||||
function hideEditVehicleModal() {
|
||||
$('#editVehicleModal').modal('hide');
|
||||
}
|
||||
function exportVehicleData(mode) {
|
||||
var vehicleId = GetVehicleId().vehicleId;
|
||||
$.get('/Vehicle/ExportFromVehicleToCsv', { vehicleId: vehicleId, mode: mode }, function (data) {
|
||||
if (!data) {
|
||||
errorToast("An error occurred, please try again later");
|
||||
} else {
|
||||
window.location.href = data;
|
||||
}
|
||||
});
|
||||
}
|
||||
function showBulkImportModal(mode) {
|
||||
$.get(`/Vehicle/GetBulkImportModalPartialView?mode=${mode}`, function (data) {
|
||||
if (data) {
|
||||
|
||||
Reference in New Issue
Block a user