171 lines
6.3 KiB
JavaScript
171 lines
6.3 KiB
JavaScript
// Initialize upgrade record modal for mobile (using shared mobile framework)
|
||
function initializeUpgradeRecordMobile() {
|
||
initMobileModal({
|
||
modalId: '#upgradeRecordModal',
|
||
dateInputId: '#upgradeRecordDate',
|
||
tagSelectorId: '#upgradeRecordTag'
|
||
});
|
||
|
||
// Handle desktop initialization
|
||
if (!isMobileDevice()) {
|
||
initDatePicker($('#upgradeRecordDate'));
|
||
initTagSelector($("#upgradeRecordTag"));
|
||
}
|
||
}
|
||
|
||
function showAddUpgradeRecordModal() {
|
||
$.get('/Vehicle/GetAddUpgradeRecordPartialView', function (data) {
|
||
if (data) {
|
||
$("#upgradeRecordModalContent").html(data);
|
||
|
||
// Initialize mobile experience using shared framework
|
||
initializeUpgradeRecordMobile();
|
||
|
||
$('#upgradeRecordModal').modal('show');
|
||
}
|
||
});
|
||
}
|
||
function showEditUpgradeRecordModal(upgradeRecordId, nocache) {
|
||
if (!nocache) {
|
||
var existingContent = $("#upgradeRecordModalContent").html();
|
||
if (existingContent.trim() != '') {
|
||
//check if id is same.
|
||
var existingId = getUpgradeRecordModelData().id;
|
||
if (existingId == upgradeRecordId && $('[data-changed=true]').length > 0) {
|
||
$('#upgradeRecordModal').modal('show');
|
||
$('.cached-banner').show();
|
||
return;
|
||
}
|
||
}
|
||
}
|
||
$.get(`/Vehicle/GetUpgradeRecordForEditById?upgradeRecordId=${upgradeRecordId}`, function (data) {
|
||
if (data) {
|
||
$("#upgradeRecordModalContent").html(data);
|
||
// Initialize mobile experience using shared framework
|
||
initializeUpgradeRecordMobile();
|
||
$('#upgradeRecordModal').modal('show');
|
||
bindModalInputChanges('upgradeRecordModal');
|
||
$('#upgradeRecordModal').off('shown.bs.modal').on('shown.bs.modal', function () {
|
||
if (getGlobalConfig().useMarkDown) {
|
||
toggleMarkDownOverlay("upgradeRecordNotes");
|
||
}
|
||
});
|
||
}
|
||
});
|
||
}
|
||
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(genericErrorMessage());
|
||
}
|
||
});
|
||
} 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();
|
||
saveScrollPosition();
|
||
getVehicleUpgradeRecords(formValues.vehicleId);
|
||
if (formValues.addReminderRecord) {
|
||
setTimeout(function () { showAddReminderModal(formValues); }, 500);
|
||
}
|
||
} else {
|
||
errorToast(genericErrorMessage());
|
||
}
|
||
})
|
||
}
|
||
function getAndValidateUpgradeRecordValues() {
|
||
var upgradeDate = $("#upgradeRecordDate").val();
|
||
var upgradeMileage = parseInt(globalParseFloat($("#upgradeRecordMileage").val())).toString();
|
||
var upgradeDescription = $("#upgradeRecordDescription").val();
|
||
var upgradeCost = $("#upgradeRecordCost").val();
|
||
var upgradeNotes = $("#upgradeRecordNotes").val();
|
||
var upgradeTags = $("#upgradeRecordTag").val();
|
||
var vehicleId = GetVehicleId().vehicleId;
|
||
var upgradeRecordId = getUpgradeRecordModelData().id;
|
||
var addReminderRecord = $("#addReminderCheck").is(":checked");
|
||
//Odometer Adjustments
|
||
if (isNaN(upgradeMileage) && GetVehicleId().odometerOptional) {
|
||
upgradeMileage = '0';
|
||
}
|
||
upgradeMileage = GetAdjustedOdometer(upgradeRecordId, upgradeMileage);
|
||
//validation
|
||
var hasError = false;
|
||
var extraFields = getAndValidateExtraFields();
|
||
if (extraFields.hasError) {
|
||
hasError = true;
|
||
}
|
||
if (upgradeDate.trim() == '') { //eliminates whitespace.
|
||
hasError = true;
|
||
$("#upgradeRecordDate").addClass("is-invalid");
|
||
} else {
|
||
$("#upgradeRecordDate").removeClass("is-invalid");
|
||
}
|
||
if (upgradeMileage.trim() == '' || isNaN(upgradeMileage) || 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,
|
||
supplies: selectedSupplies,
|
||
tags: upgradeTags,
|
||
addReminderRecord: addReminderRecord,
|
||
extraFields: extraFields.extraFields,
|
||
requisitionHistory: supplyUsageHistory,
|
||
deletedRequisitionHistory: deletedSupplyUsageHistory,
|
||
reminderRecordId: recurringReminderRecordId,
|
||
copySuppliesAttachment: copySuppliesAttachments
|
||
}
|
||
} |