158 lines
4.9 KiB
JavaScript
158 lines
4.9 KiB
JavaScript
var confirmModal = {
|
|
ar: "تأكيد",
|
|
de: "Bestätigen",
|
|
es: "Confirmar",
|
|
en: "Confirm",
|
|
fr: "Confirmer",
|
|
};
|
|
|
|
var cancelModal = {
|
|
ar: "إلغاء",
|
|
de: "Abbrechen",
|
|
es: "Cancelar",
|
|
en: "Cancel",
|
|
fr: "Annuler",
|
|
};
|
|
|
|
function getCookie(name) {
|
|
let cookieValue = null;
|
|
if (document.cookie && document.cookie !== "") {
|
|
const cookies = document.cookie.split(";");
|
|
for (let i = 0; i < cookies.length; i++) {
|
|
const cookie = cookies[i].trim();
|
|
// Does this cookie string begin with the name we want?
|
|
if (cookie.substring(0, name.length + 1) === name + "=") {
|
|
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
return cookieValue;
|
|
}
|
|
|
|
var originalConfirm = window.confirm;
|
|
// Override the default confirm function with SweetAlert
|
|
window.confirm = function (message) {
|
|
var event = window.event || {};
|
|
event.preventDefault();
|
|
var languageCode = null;
|
|
languageCode = $("#main-section-data").attr("data-lang");
|
|
var confirm =
|
|
confirmModal[languageCode] ||
|
|
((languageCode = "en"), confirmModal[languageCode]);
|
|
var cancel =
|
|
cancelModal[languageCode] ||
|
|
((languageCode = "en"), cancelModal[languageCode]);
|
|
// Add event listener to "Confirm" button
|
|
$("#confirmModalBody").html(message);
|
|
var submit = false;
|
|
Swal.fire({
|
|
text: message,
|
|
icon: "question",
|
|
showCancelButton: true,
|
|
confirmButtonColor: "#008000",
|
|
cancelButtonColor: "#d33",
|
|
confirmButtonText: confirm,
|
|
cancelButtonText: cancel,
|
|
}).then((result) => {
|
|
if (result.isConfirmed) {
|
|
if (event.target.tagName.toLowerCase() === "form") {
|
|
if (event.target["htmx-internal-data"]) {
|
|
var path = event.target["htmx-internal-data"].path;
|
|
var verb = event.target["htmx-internal-data"].verb;
|
|
var hxTarget = $(event.target).attr("hx-target");
|
|
if (verb === "post") {
|
|
htmx.ajax("POST", path, hxTarget);
|
|
} else {
|
|
htmx.ajax("GET", path, hxTarget);
|
|
}
|
|
} else {
|
|
event.target.submit();
|
|
}
|
|
} else if (event.target.tagName.toLowerCase() === "a") {
|
|
if (event.target.href) {
|
|
window.location.href = event.target.href;
|
|
} else {
|
|
var path = event.target["htmx-internal-data"].path;
|
|
var verb = event.target["htmx-internal-data"].verb;
|
|
var hxTarget = $(event.target).attr("hx-target");
|
|
if (verb === "post") {
|
|
// hx.post(path)
|
|
htmx.ajax("POST", path, hxTarget);
|
|
} else {
|
|
htmx.ajax("GET", path, hxTarget);
|
|
}
|
|
}
|
|
} else {
|
|
var path = event.target["htmx-internal-data"].path;
|
|
var verb = event.target["htmx-internal-data"].verb;
|
|
var hxTarget = $(event.target).attr("hx-target");
|
|
if (verb === "post") {
|
|
htmx.ajax("POST", path, hxTarget);
|
|
} else {
|
|
htmx.ajax("GET", path, hxTarget);
|
|
}
|
|
}
|
|
} else {
|
|
}
|
|
});
|
|
};
|
|
var nav = $("section.oh-wrapper.oh-main__topbar");
|
|
nav.after(
|
|
$(
|
|
`
|
|
<div id="filterTagContainerSectionNav" class="oh-titlebar-container__filters mb-2 mt-0 oh-wrapper"></div>
|
|
`
|
|
)
|
|
);
|
|
|
|
|
|
function shiftChange(selectElement) {
|
|
var shiftId =selectElement.val()
|
|
let parentForm = selectElement.parents().closest("form")
|
|
var attendanceDate = parentForm.find("[name=attendance_date]").first().val()
|
|
var employeeId = parentForm.find("[name=employee_id]").first().val()
|
|
$.ajax({
|
|
type: "post",
|
|
url: "/attendance/update-shift-details",
|
|
data: {
|
|
csrfmiddlewaretoken: getCookie("csrftoken"),
|
|
"shift_id":shiftId,
|
|
"attendance_date":attendanceDate,
|
|
'employee_id':employeeId
|
|
},
|
|
success: function (response) {
|
|
parentForm.find("[name=attendance_clock_in]").val(response.shift_start_time)
|
|
parentForm.find("[name=attendance_clock_out]").val(response.shift_end_time)
|
|
parentForm.find("[name=attendance_worked_hour]").val(response.worked_hour)
|
|
parentForm.find("[name=minimum_hour]").val(response.minimum_hour)
|
|
parentForm.find("[name=attendance_clock_out_date]").val(response.checkout_date)
|
|
parentForm.find("[name=attendance_clock_in_date]").val(response.checkin_date)
|
|
parentForm.find("[name=work_type_id]").val(response.work_type).change()
|
|
if (parentForm.find("[name=attendance_date]").val().length == 0) {
|
|
parentForm.find("[name=attendance_date]").val(response.checkin_date)
|
|
}
|
|
}
|
|
});
|
|
}
|
|
|
|
function attendanceDateChange(selectElement) {
|
|
var selectedDate =selectElement.val()
|
|
let parentForm = selectElement.parents().closest("form")
|
|
var shiftId = parentForm.find("[name=shift_id]").val()
|
|
|
|
$.ajax({
|
|
type: "post",
|
|
url: "/attendance/update-date-details",
|
|
data: {
|
|
csrfmiddlewaretoken: getCookie("csrftoken"),
|
|
"attendance_date":selectedDate,
|
|
"shift_id":shiftId
|
|
},
|
|
success: function (response) {
|
|
parentForm.find("[name=minimum_hour]").val(response.minimum_hour)
|
|
|
|
}
|
|
});
|
|
}
|