62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
// Subcontractor autocomplete functionality
|
|
$(document).ready(function () {
|
|
$("#subcontractor").keyup(function () {
|
|
let query = $(this).val();
|
|
if (query !== "") {
|
|
$.ajax({
|
|
url: "/search_subcontractor",
|
|
method: "POST",
|
|
data: { query: query },
|
|
success: function (data) {
|
|
$("#subcontractor_list").fadeIn().html(data);
|
|
}
|
|
});
|
|
} else {
|
|
$("#subcontractor_list").fadeOut();
|
|
}
|
|
});
|
|
|
|
$(document).on("click", "li", function () {
|
|
$("#subcontractor").val($(this).text());
|
|
$("#subcontractor_id").val($(this).attr("data-id"));
|
|
$("#subcontractor_list").fadeOut();
|
|
});
|
|
});
|
|
|
|
// Success Alert: show alert and reload after 3 seconds
|
|
function showSuccessAlert() {
|
|
const alertBox = document.getElementById("invoiceSuccessAlert");
|
|
alertBox.classList.add("show");
|
|
setTimeout(() => {
|
|
alertBox.classList.remove("show");
|
|
// Reload page or redirect after alert hides
|
|
window.location.href = '/add_invoice';
|
|
}, 3000);
|
|
}
|
|
|
|
// Submit form via AJAX
|
|
$("#invoiceForm").on("submit", function (e) {
|
|
e.preventDefault();
|
|
let formData = $(this).serialize();
|
|
$.ajax({
|
|
url: '/add_invoice',
|
|
method: 'POST',
|
|
data: formData,
|
|
success: function (response) {
|
|
if(response.status === "success") {
|
|
showSuccessAlert();
|
|
} else {
|
|
alert(response.message);
|
|
}
|
|
},
|
|
error: function (xhr, status, error) {
|
|
alert("Submission failed: " + error);
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
|
|
window.onload = function () {
|
|
document.getElementById('subcontractor').focus();
|
|
}; |