[UPDT] HORILLA: Refactor html files to use Django i18n gettext in js
This commit is contained in:
@@ -1,158 +1,86 @@
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var excelMessages = {
|
||||
ar: "هل ترغب في تنزيل ملف Excel؟",
|
||||
de: "Möchten Sie die Excel-Datei herunterladen?",
|
||||
es: "¿Desea descargar el archivo de Excel?",
|
||||
en: "Do you want to download the excel file?",
|
||||
fr: "Voulez-vous télécharger le fichier Excel?",
|
||||
};
|
||||
|
||||
var deleteAssignedMessages = {
|
||||
ar: "هل تريد حقًا حذف كافة حالات الغياب المعينة المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten zugewiesenen abwesenheit löschen?",
|
||||
es: "¿Realmente desea eliminar todas las hojas asignadas dejar?",
|
||||
en: "Do you really want to delete all the selected assigned leaves?",
|
||||
fr: "Voulez-vous vraiment supprimer tous les sélectionnés congés attribués ?",
|
||||
};
|
||||
|
||||
var no_rows_deleteMessages = {
|
||||
ar: "لم يتم تحديد أي صفوف لحذف الإجازات المخصصة.",
|
||||
de: "Es gibt keine Zeilen zum Löschen der zugewiesenen abwesenheit.",
|
||||
es: "No se ha seleccionado ninguna fila para eliminar la asignadas dejar",
|
||||
en: "No rows are selected for deleting assigned leaves.",
|
||||
fr: "Aucune ligne n'est sélectionnée pour supprimer les congés attribués.",
|
||||
};
|
||||
|
||||
var downloadMessages = {
|
||||
ar: "هل ترغب في تنزيل القالب؟",
|
||||
de: "Möchten Sie die Vorlage herunterladen?",
|
||||
es: "¿Quieres descargar la plantilla?",
|
||||
en: "Do you want to download the template?",
|
||||
fr: "Voulez-vous télécharger le modèle ?",
|
||||
};
|
||||
|
||||
tickLeaveCheckboxes();
|
||||
function makeLeaveListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function importAssignedLeave() {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = downloadMessages[languageCode];
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/assign-leave-type-excel",
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "assign_leave_type_excel.xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function leaveAssigBulkDelete() {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteAssignedMessages[languageCode];
|
||||
var textMessage = no_rows_deleteMessages[languageCode];
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/assigned-leave-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
Swal.fire({
|
||||
text: i18nMessages.downloadTemplate,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/assign-leave-type-excel",
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
}
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "assign_leave_type_excel.xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function leaveAssigBulkDelete() {
|
||||
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/assigned-leave-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,60 +0,0 @@
|
||||
var closeButtonText = {
|
||||
ar: "إغلاق",
|
||||
de: "Schließen",
|
||||
es: "Cerrar",
|
||||
en: "Close",
|
||||
fr: "Fermer",
|
||||
};
|
||||
|
||||
var confirmButtonText = {
|
||||
ar: "تأكيد",
|
||||
de: "Bestätigen",
|
||||
es: "Confirmar",
|
||||
en: "Confirm",
|
||||
fr: "Confirmer",
|
||||
};
|
||||
|
||||
var deleteCompensatoryMessages = {
|
||||
ar: "هل تريد حقًا حذف جميع طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten Urlaubsanfragen löschen?",
|
||||
es: "¿Realmente desea eliminar todas las solicitudes de permiso seleccionadas?",
|
||||
en: "Are you sure you want to delete ?",
|
||||
fr: "Voulez-vous vraiment supprimer toutes les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
|
||||
|
||||
tickLeaverequestsCheckboxes();
|
||||
function makeLeaverequestsListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
tickUserrequestsCheckboxes();
|
||||
function makeUserrequestsListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,188 +1,120 @@
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var deleteHolidayMessages = {
|
||||
ar: "هل تريد حقًا حذف جميع العطل المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten Feiertage löschen?",
|
||||
es: "¿Realmente quieres eliminar todas las vacaciones seleccionadas?",
|
||||
en: "Do you really want to delete all the selected holidays?",
|
||||
fr: "Voulez-vous vraiment supprimer toutes les vacances sélectionnées?",
|
||||
};
|
||||
|
||||
var no_rows_deleteMessages = {
|
||||
ar: "لم تتم تحديد صفوف لحذف العطلات.",
|
||||
de: "Es wurden keine Zeilen zum Löschen von Feiertagen ausgewählt.",
|
||||
es: "No se han seleccionado filas para eliminar las vacaciones.",
|
||||
en: "No rows are selected for deleting holidays.",
|
||||
fr: "Aucune ligne n'a été sélectionnée pour supprimer les vacances.",
|
||||
};
|
||||
var downloadMessages = {
|
||||
ar: "هل ترغب في تنزيل القالب؟",
|
||||
de: "Möchten Sie die Vorlage herunterladen?",
|
||||
es: "¿Quieres descargar la plantilla?",
|
||||
en: "Do you want to download the template?",
|
||||
fr: "Voulez-vous télécharger le modèle ?",
|
||||
};
|
||||
|
||||
function createHolidayHxValue() {
|
||||
function createHolidayHxValue() {
|
||||
var pd = $(".oh-pagination").attr("data-pd");
|
||||
var hxValue = JSON.stringify(pd);
|
||||
$("#holidayCreateButton").attr("hx-vals", `{"pd":${hxValue}}`);
|
||||
}
|
||||
}
|
||||
|
||||
tickHolidayCheckboxes();
|
||||
function makeHolidayListUnique(list) {
|
||||
tickHolidayCheckboxes();
|
||||
function makeHolidayListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
}
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function tickHolidayCheckboxes() {
|
||||
function tickHolidayCheckboxes() {
|
||||
var ids = JSON.parse($("#selectedHolidays").attr("data-ids") || "[]");
|
||||
uniqueIds = makeHolidayListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
click = $("#selectedHolidays").attr("data-clicked");
|
||||
if (click === "1") {
|
||||
$(".all-holidays").prop("checked", true);
|
||||
$(".all-holidays").prop("checked", true);
|
||||
}
|
||||
uniqueIds.forEach(function (id) {
|
||||
$("#" + id).prop("checked", true);
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
if (selectedCount > 0) {
|
||||
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllHolidays").css("display", "inline-flex");
|
||||
$("#exportHolidays").css("display", "inline-flex");
|
||||
$("#selectedShowHolidays").css("display", "inline-flex");
|
||||
$("#selectedShowHolidays").text(selectedCount + " -" + message);
|
||||
} else {
|
||||
$("#selectedShowHolidays").text(selectedCount + " -" + i18nMessages.selected);
|
||||
} else {
|
||||
$("#unselectAllHolidays").css("display", "none ");
|
||||
$("#selectedShowHolidays").css("display", "none");
|
||||
$("#exportHolidays").css("display", "none");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//$(".holidaysInfoImport").click(function (e) {
|
||||
//$(".holidaysInfoImport").click(function (e) {
|
||||
|
||||
function importHolidays() {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = downloadMessages[languageCode];
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
Swal.fire({
|
||||
text: i18nMessages.downloadTemplate,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/configuration/holidays-excel-template",
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "holiday_excel.xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function bulkDeleteHoliday(){
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteHolidayMessages[languageCode];
|
||||
var textMessage = no_rows_deleteMessages[languageCode];
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/holidays-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
type: "GET",
|
||||
url: "/configuration/holidays-excel-template",
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "holiday_excel.xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
function bulkDeleteHoliday() {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/holidays-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,88 +1,6 @@
|
||||
var closeButtonText = {
|
||||
ar: "إغلاق",
|
||||
de: "Schließen",
|
||||
es: "Cerrar",
|
||||
en: "Close",
|
||||
fr: "Fermer",
|
||||
};
|
||||
|
||||
var confirmButtonText = {
|
||||
ar: "تأكيد",
|
||||
de: "Bestätigen",
|
||||
es: "Confirmar",
|
||||
en: "Confirm",
|
||||
fr: "Confirmer",
|
||||
};
|
||||
|
||||
var deleteLeaveRequestMessages = {
|
||||
ar: "هل تريد حقًا حذف جميع طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten Urlaubsanfragen löschen?",
|
||||
es: "¿Realmente desea eliminar todas las solicitudes de permiso seleccionadas?",
|
||||
en: "Do you really want to delete all the selected leave requests?",
|
||||
fr: "Voulez-vous vraiment supprimer toutes les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
var approveLeaveRequests = {
|
||||
ar: "هل ترغب في الموافقة على طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie die ausgewählten Urlaubsanfragen genehmigen?",
|
||||
es: "¿Quieres aprobar las solicitudes de licencia seleccionadas?",
|
||||
en: "Do you want to approve the selected leave requests?",
|
||||
fr: "Voulez-vous approuver les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
var noRowMessage = {
|
||||
ar: "لم يتم تحديد أي صفوف.",
|
||||
de: "Es wurden keine Zeilen ausgewählt.",
|
||||
es: "No se han seleccionado filas.",
|
||||
en: "No rows have been selected.",
|
||||
fr: "Aucune ligne n'a été sélectionnée.",
|
||||
};
|
||||
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var excelMessages = {
|
||||
ar: "هل ترغب في تنزيل ملف Excel؟",
|
||||
de: "Möchten Sie die Excel-Datei herunterladen?",
|
||||
es: "¿Desea descargar el archivo de Excel?",
|
||||
en: "Do you want to download the excel file?",
|
||||
fr: "Voulez-vous télécharger le fichier Excel?",
|
||||
};
|
||||
|
||||
tickLeaverequestsCheckboxes();
|
||||
function makeLeaverequestsListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
// ---------------------------------------
|
||||
@@ -90,170 +8,157 @@ function getCurrentLanguageCode(callback) {
|
||||
// ---------------------------------------
|
||||
|
||||
function tickLeaverequestsCheckboxes() {
|
||||
var ids = JSON.parse($("#selectedLeaverequests").attr("data-ids") || "[]");
|
||||
uniqueIds = makeLeaverequestsListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
click = $("#selectedLeaverequests").attr("data-clicked");
|
||||
if (click === "1") {
|
||||
$(".all-leave-requests").prop("checked", true);
|
||||
}
|
||||
uniqueIds.forEach(function (id) {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllLeaverequests").css("display", "inline-flex");
|
||||
$("#exportLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").text(selectedCount + " -" + message);
|
||||
} else {
|
||||
$("#selectedShowLeaverequests").css("display", "none");
|
||||
$("#exportLeaverequests").css("display", "none");
|
||||
$("#unselectAllLeaverequests").css("display", "none");
|
||||
var ids = JSON.parse($("#selectedLeaverequests").attr("data-ids") || "[]");
|
||||
uniqueIds = makeLeaverequestsListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
click = $("#selectedLeaverequests").attr("data-clicked");
|
||||
if (click === "1") {
|
||||
$(".all-leave-requests").prop("checked", true);
|
||||
}
|
||||
});
|
||||
uniqueIds.forEach(function (id) {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllLeaverequests").css("display", "inline-flex");
|
||||
$("#exportLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").text(selectedCount + " -" + i18nMessages.selected);
|
||||
} else {
|
||||
$("#selectedShowLeaverequests").css("display", "none");
|
||||
$("#exportLeaverequests").css("display", "none");
|
||||
$("#unselectAllLeaverequests").css("display", "none");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// function bulkApproveLeaveRequests() {
|
||||
// var languageCode = null;
|
||||
// getCurrentLanguageCode(function (code) {
|
||||
// languageCode = code;
|
||||
// var confirmMessage = approveLeaveRequests[languageCode];
|
||||
// var textMessage = noRowMessage[languageCode];
|
||||
// ids = [];
|
||||
// ids.push($("#selectedInstances").attr("data-ids"));
|
||||
// ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
// console.log(ids) // Parse IDs
|
||||
// function bulkApproveLeaveRequests() {
|
||||
// var languageCode = null;
|
||||
// getCurrentLanguageCode(function (code) {
|
||||
// languageCode = code;
|
||||
// var confirmMessage = approveLeaveRequests[languageCode];
|
||||
// var textMessage = noRowMessage[languageCode];
|
||||
// ids = [];
|
||||
// ids.push($("#selectedInstances").attr("data-ids"));
|
||||
// ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
// console.log(ids) // Parse IDs
|
||||
|
||||
// if (ids.length === 0) {
|
||||
// Swal.fire({
|
||||
// text: textMessage,
|
||||
// icon: "warning",
|
||||
// confirmButtonText: closeButtonText[languageCode], // Use language-specific text for close button
|
||||
// });
|
||||
// } else {
|
||||
// Swal.fire({
|
||||
// text: confirmMessage,
|
||||
// icon: "question",
|
||||
// showCancelButton: true,
|
||||
// confirmButtonColor: "#008000",
|
||||
// cancelButtonColor: "#d33",
|
||||
// confirmButtonText: confirmButtonText[languageCode], // Use language-specific text for confirm button
|
||||
// }).then(function (result) {
|
||||
// if (result.isConfirmed) {
|
||||
// ids = [];
|
||||
// ids.push($("#selectedInstances").attr("data-ids"));
|
||||
// ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
// console.log(ids)
|
||||
// $.ajax({
|
||||
// type: "POST",
|
||||
// url: "/leave/leave-requests-bulk-approve",
|
||||
// data: {
|
||||
// csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
// ids: JSON.stringify(ids),
|
||||
// },
|
||||
// success: function (response, textStatus, jqXHR) {
|
||||
// if (jqXHR.status === 200) {
|
||||
// location.reload(); // Reload the current page on success
|
||||
// } else {
|
||||
// console.error("Unexpected HTTP status:", jqXHR.status);
|
||||
// }
|
||||
// },
|
||||
// error: function (jqXHR, textStatus, errorThrown) {
|
||||
// console.error("AJAX Error:", errorThrown);
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// if (ids.length === 0) {
|
||||
// Swal.fire({
|
||||
// text: textMessage,
|
||||
// icon: "warning",
|
||||
// confirmButtonText: closeButtonText[languageCode], // Use language-specific text for close button
|
||||
// });
|
||||
// } else {
|
||||
// Swal.fire({
|
||||
// text: confirmMessage,
|
||||
// icon: "question",
|
||||
// showCancelButton: true,
|
||||
// confirmButtonColor: "#008000",
|
||||
// cancelButtonColor: "#d33",
|
||||
// confirmButtonText: confirmButtonText[languageCode], // Use language-specific text for confirm button
|
||||
// }).then(function (result) {
|
||||
// if (result.isConfirmed) {
|
||||
// ids = [];
|
||||
// ids.push($("#selectedInstances").attr("data-ids"));
|
||||
// ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
// console.log(ids)
|
||||
// $.ajax({
|
||||
// type: "POST",
|
||||
// url: "/leave/leave-requests-bulk-approve",
|
||||
// data: {
|
||||
// csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
// ids: JSON.stringify(ids),
|
||||
// },
|
||||
// success: function (response, textStatus, jqXHR) {
|
||||
// if (jqXHR.status === 200) {
|
||||
// location.reload(); // Reload the current page on success
|
||||
// } else {
|
||||
// console.error("Unexpected HTTP status:", jqXHR.status);
|
||||
// }
|
||||
// },
|
||||
// error: function (jqXHR, textStatus, errorThrown) {
|
||||
// console.error("AJAX Error:", errorThrown);
|
||||
// },
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
// });
|
||||
// }
|
||||
|
||||
|
||||
|
||||
function bulkApproveLeaveRequests() {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function(code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = approveLeaveRequests[languageCode];
|
||||
var textMessage = noRowMessage[languageCode];
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function(result) {
|
||||
if (result.isConfirmed) {
|
||||
console.log("worked")
|
||||
var hxVals = JSON.stringify(ids);
|
||||
console.log(hxVals)
|
||||
$("#bulkApproveSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkApproveSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function bulkDeleteLeaveRequests(){
|
||||
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteLeaveRequestMessages[languageCode];
|
||||
var textMessage = noRowMessage[languageCode];
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
text: i18nMessages.confirmBulkApprove,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/leave-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
if (result.isConfirmed) {
|
||||
console.log("worked")
|
||||
var hxVals = JSON.stringify(ids);
|
||||
console.log(hxVals)
|
||||
$("#bulkApproveSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkApproveSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function bulkDeleteLeaveRequests() {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/leave-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,59 +1,3 @@
|
||||
var closeButtonText = {
|
||||
ar: "إغلاق",
|
||||
de: "Schließen",
|
||||
es: "Cerrar",
|
||||
en: "Close",
|
||||
fr: "Fermer",
|
||||
};
|
||||
|
||||
var confirmButtonText = {
|
||||
ar: "تأكيد",
|
||||
de: "Bestätigen",
|
||||
es: "Confirmar",
|
||||
en: "Confirm",
|
||||
fr: "Confirmer",
|
||||
};
|
||||
|
||||
var deleteLeaveRequestMessages = {
|
||||
ar: "هل تريد حقًا حذف جميع طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten Urlaubsanfragen löschen?",
|
||||
es: "¿Realmente desea eliminar todas las solicitudes de permiso seleccionadas?",
|
||||
en: "Do you really want to delete all the selected leave requests?",
|
||||
fr: "Voulez-vous vraiment supprimer toutes les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
var approveLeaveRequests = {
|
||||
ar: "هل ترغب في الموافقة على طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie die ausgewählten Urlaubsanfragen genehmigen?",
|
||||
es: "¿Quieres aprobar las solicitudes de licencia seleccionadas?",
|
||||
en: "Do you want to approve the selected leave requests?",
|
||||
fr: "Voulez-vous approuver les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
var noRowMessages = {
|
||||
ar: "لم يتم تحديد أي صفوف.",
|
||||
de: "Es wurden keine Zeilen ausgewählt.",
|
||||
es: "No se han seleccionado filas.",
|
||||
en: "No rows have been selected.",
|
||||
fr: "Aucune ligne n'a été sélectionnée.",
|
||||
};
|
||||
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var excelMessages = {
|
||||
ar: "هل ترغب في تنزيل ملف Excel؟",
|
||||
de: "Möchten Sie die Excel-Datei herunterladen?",
|
||||
es: "¿Desea descargar el archivo de Excel?",
|
||||
en: "Do you want to download the excel file?",
|
||||
fr: "Voulez-vous télécharger le fichier Excel?",
|
||||
};
|
||||
|
||||
// tickLeaverequestsCheckboxes();
|
||||
// function makeLeaverequestsListUnique(list) {
|
||||
// return Array.from(new Set(list));
|
||||
@@ -64,31 +8,6 @@ var excelMessages = {
|
||||
// return Array.from(new Set(list));
|
||||
// }
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------
|
||||
// LEAVE REQUEST
|
||||
// ---------------------------------------
|
||||
@@ -123,48 +42,47 @@ function getCurrentLanguageCode(callback) {
|
||||
|
||||
|
||||
function myLeaveRequestBulkDelete() {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteLeaveRequestMessages[languageCode];
|
||||
var textMessage = noRowMessages[languageCode];
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
|
||||
|
||||
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/user-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
if (result.isConfirmed) {
|
||||
ids = [];
|
||||
ids.push($("#selectedInstances").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/user-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,317 +1,238 @@
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var excelMessages = {
|
||||
ar: "هل ترغب في تنزيل ملف Excel؟",
|
||||
de: "Möchten Sie die Excel-Datei herunterladen?",
|
||||
es: "¿Desea descargar el archivo de Excel?",
|
||||
en: "Do you want to download the excel file?",
|
||||
fr: "Voulez-vous télécharger le fichier Excel?",
|
||||
};
|
||||
|
||||
var deleteAssignedMessages = {
|
||||
ar: "هل تريد حقًا حذف كافة حالات الغياب المعينة المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten zugewiesenen abwesenheit löschen?",
|
||||
es: "¿Realmente desea eliminar todas las hojas asignadas dejar?",
|
||||
en: "Do you really want to delete all the selected assigned leaves?",
|
||||
fr: "Voulez-vous vraiment supprimer tous les sélectionnés congés attribués ?",
|
||||
};
|
||||
|
||||
var no_rows_deleteMessages = {
|
||||
ar: "لم يتم تحديد أي صفوف لحذف الإجازات المخصصة.",
|
||||
de: "Es gibt keine Zeilen zum Löschen der zugewiesenen abwesenheit.",
|
||||
es: "No se ha seleccionado ninguna fila para eliminar la asignadas dejar",
|
||||
en: "No rows are selected for deleting assigned leaves.",
|
||||
fr: "Aucune ligne n'est sélectionnée pour supprimer les congés attribués.",
|
||||
};
|
||||
|
||||
var downloadMessages = {
|
||||
ar: "هل ترغب في تنزيل القالب؟",
|
||||
de: "Möchten Sie die Vorlage herunterladen?",
|
||||
es: "¿Quieres descargar la plantilla?",
|
||||
en: "Do you want to download the template?",
|
||||
fr: "Voulez-vous télécharger le modèle ?",
|
||||
};
|
||||
|
||||
tickLeaveCheckboxes();
|
||||
function makeLeaveListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function tickLeaveCheckboxes() {
|
||||
var ids = JSON.parse($("#selectedLeaves").attr("data-ids") || "[]");
|
||||
uniqueIds = makeLeaveListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
click = $("#selectedLeaves").attr("data-clicked");
|
||||
if (click === "1") {
|
||||
$(".all-assigned-leaves").prop("checked", true);
|
||||
}
|
||||
uniqueIds.forEach(function (id) {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllLeaves").css("display", "inline-flex");
|
||||
$("#exportAssignedLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").text(selectedCount + " -" + message);
|
||||
} else {
|
||||
$("#selectedShowLeaves").css("display", "none");
|
||||
$("#exportAssignedLeaves").css("display", "none");
|
||||
$("#unselectAllLeaves").css("display", "none");
|
||||
var ids = JSON.parse($("#selectedLeaves").attr("data-ids") || "[]");
|
||||
uniqueIds = makeLeaveListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
click = $("#selectedLeaves").attr("data-clicked");
|
||||
if (click === "1") {
|
||||
$(".all-assigned-leaves").prop("checked", true);
|
||||
}
|
||||
});
|
||||
uniqueIds.forEach(function (id) {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllLeaves").css("display", "inline-flex");
|
||||
$("#exportAssignedLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").text(selectedCount + " -" + i18nMessages.selected);
|
||||
} else {
|
||||
$("#selectedShowLeaves").css("display", "none");
|
||||
$("#exportAssignedLeaves").css("display", "none");
|
||||
$("#unselectAllLeaves").css("display", "none");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function addingAssignedLeaveIds() {
|
||||
var ids = JSON.parse($("#selectedLeaves").attr("data-ids") || "[]");
|
||||
var selectedCount = 0;
|
||||
var ids = JSON.parse($("#selectedLeaves").attr("data-ids") || "[]");
|
||||
var selectedCount = 0;
|
||||
|
||||
$(".all-assigned-leaves-row").each(function () {
|
||||
if ($(this).is(":checked")) {
|
||||
ids.push(this.id);
|
||||
} else {
|
||||
var index = ids.indexOf(this.id);
|
||||
if (index > -1) {
|
||||
ids.splice(index, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
$(".all-assigned-leaves-row").each(function () {
|
||||
if ($(this).is(":checked")) {
|
||||
ids.push(this.id);
|
||||
} else {
|
||||
var index = ids.indexOf(this.id);
|
||||
if (index > -1) {
|
||||
ids.splice(index, 1);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
ids = makeLeaveListUnique(ids);
|
||||
selectedCount = ids.length;
|
||||
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
ids = makeLeaveListUnique(ids);
|
||||
selectedCount = ids.length;
|
||||
|
||||
$("#selectedLeaves").attr("data-ids", JSON.stringify(ids));
|
||||
|
||||
if (selectedCount === 0) {
|
||||
$("#selectedShowLeaves").css("display", "none");
|
||||
$("#exportAssignedLeaves").css("display", "none");
|
||||
$("#unselectAllLeaves").css("display", "none");
|
||||
$("#selectedShowLeaves").css("display", "none");
|
||||
$("#exportAssignedLeaves").css("display", "none");
|
||||
$("#unselectAllLeaves").css("display", "none");
|
||||
} else {
|
||||
$("#unselectAllLeaves").css("display", "inline-flex");
|
||||
$("#exportAssignedLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").text(selectedCount + " - " + message);
|
||||
$("#unselectAllLeaves").css("display", "inline-flex");
|
||||
$("#exportAssignedLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").css("display", "inline-flex");
|
||||
$("#selectedShowLeaves").text(selectedCount + " - " + i18nMessages.selected);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
$("#selectAllLeaves").click(function () {
|
||||
$("#selectedLeaves").attr("data-clicked", 1);
|
||||
$("#selectedShowLeaves").removeAttr("style");
|
||||
var savedFilters = JSON.parse(localStorage.getItem("savedFilters"));
|
||||
$("#selectedLeaves").attr("data-clicked", 1);
|
||||
$("#selectedShowLeaves").removeAttr("style");
|
||||
var savedFilters = JSON.parse(localStorage.getItem("savedFilters"));
|
||||
|
||||
if (savedFilters && savedFilters["filterData"] !== null) {
|
||||
var filter = savedFilters["filterData"];
|
||||
$.ajax({
|
||||
url: "/leave/assigned-leave-select-filter",
|
||||
data: { page: "all", filter: JSON.stringify(filter) },
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
var employeeIds = response.employee_ids;
|
||||
if (savedFilters && savedFilters["filterData"] !== null) {
|
||||
var filter = savedFilters["filterData"];
|
||||
$.ajax({
|
||||
url: "/leave/assigned-leave-select-filter",
|
||||
data: { page: "all", filter: JSON.stringify(filter) },
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
var employeeIds = response.employee_ids;
|
||||
|
||||
for (var i = 0; i < employeeIds.length; i++) {
|
||||
var empId = employeeIds[i];
|
||||
$("#" + empId).prop("checked", true);
|
||||
}
|
||||
$("#selectedLeaves").attr("data-ids", JSON.stringify(employeeIds));
|
||||
count = makeLeaveListUnique(employeeIds);
|
||||
tickLeaveCheckboxes(count);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error:", error);
|
||||
},
|
||||
});
|
||||
} else {
|
||||
$.ajax({
|
||||
url: "/leave/assigned-leave-select",
|
||||
data: { page: "all" },
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
var employeeIds = response.employee_ids;
|
||||
for (var i = 0; i < employeeIds.length; i++) {
|
||||
var empId = employeeIds[i];
|
||||
$("#" + empId).prop("checked", true);
|
||||
}
|
||||
$("#selectedLeaves").attr("data-ids", JSON.stringify(employeeIds));
|
||||
count = makeLeaveListUnique(employeeIds);
|
||||
tickLeaveCheckboxes(count);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error:", error);
|
||||
},
|
||||
});
|
||||
} else {
|
||||
$.ajax({
|
||||
url: "/leave/assigned-leave-select",
|
||||
data: { page: "all" },
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
var employeeIds = response.employee_ids;
|
||||
|
||||
for (var i = 0; i < employeeIds.length; i++) {
|
||||
var empId = employeeIds[i];
|
||||
$("#" + empId).prop("checked", true);
|
||||
}
|
||||
var previousIds = $("#selectedLeaves").attr("data-ids");
|
||||
$("#selectedLeaves").attr(
|
||||
"data-ids",
|
||||
JSON.stringify(
|
||||
Array.from(new Set([...employeeIds, ...JSON.parse(previousIds)]))
|
||||
)
|
||||
);
|
||||
count = makeLeaveListUnique(employeeIds);
|
||||
tickLeaveCheckboxes(count);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error:", error);
|
||||
},
|
||||
});
|
||||
}
|
||||
for (var i = 0; i < employeeIds.length; i++) {
|
||||
var empId = employeeIds[i];
|
||||
$("#" + empId).prop("checked", true);
|
||||
}
|
||||
var previousIds = $("#selectedLeaves").attr("data-ids");
|
||||
$("#selectedLeaves").attr(
|
||||
"data-ids",
|
||||
JSON.stringify(
|
||||
Array.from(new Set([...employeeIds, ...JSON.parse(previousIds)]))
|
||||
)
|
||||
);
|
||||
count = makeLeaveListUnique(employeeIds);
|
||||
tickLeaveCheckboxes(count);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error:", error);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$("#unselectAllLeaves").click(function (e) {
|
||||
$("#unselectAllLeaves").click(function () {
|
||||
$("#selectedLeaves").attr("data-clicked", 0);
|
||||
$.ajax({
|
||||
url: "/leave/assigned-leave-select",
|
||||
data: { page: "all", filter: "{}" },
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
var employeeIds = response.employee_ids;
|
||||
for (var i = 0; i < employeeIds.length; i++) {
|
||||
var empId = employeeIds[i];
|
||||
$("#" + empId).prop("checked", false);
|
||||
$(".all-assigned-leaves").prop("checked", false);
|
||||
}
|
||||
var ids = JSON.parse($("#selectedLeaves").attr("data-ids") || "[]");
|
||||
uniqueIds = makeLeaveListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
$("#selectedLeaves").attr("data-ids", JSON.stringify([]));
|
||||
count = [];
|
||||
tickLeaveCheckboxes(count);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error:", error);
|
||||
},
|
||||
$("#unselectAllLeaves").click(function () {
|
||||
$("#selectedLeaves").attr("data-clicked", 0);
|
||||
$.ajax({
|
||||
url: "/leave/assigned-leave-select",
|
||||
data: { page: "all", filter: "{}" },
|
||||
type: "GET",
|
||||
dataType: "json",
|
||||
success: function (response) {
|
||||
var employeeIds = response.employee_ids;
|
||||
for (var i = 0; i < employeeIds.length; i++) {
|
||||
var empId = employeeIds[i];
|
||||
$("#" + empId).prop("checked", false);
|
||||
$(".all-assigned-leaves").prop("checked", false);
|
||||
}
|
||||
var ids = JSON.parse($("#selectedLeaves").attr("data-ids") || "[]");
|
||||
uniqueIds = makeLeaveListUnique(ids);
|
||||
toggleHighlight(uniqueIds);
|
||||
$("#selectedLeaves").attr("data-ids", JSON.stringify([]));
|
||||
count = [];
|
||||
tickLeaveCheckboxes(count);
|
||||
},
|
||||
error: function (xhr, status, error) {
|
||||
console.error("Error:", error);
|
||||
},
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$("#exportAssignedLeaves").click(function (e) {
|
||||
var currentDate = new Date().toISOString().slice(0, 10);
|
||||
var language_code = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
language_code = code;
|
||||
var confirmMessage = excelMessages[language_code];
|
||||
var currentDate = new Date().toISOString().slice(0, 10);
|
||||
|
||||
ids = [];
|
||||
ids = JSON.parse($("#selectedLeaves").attr("data-ids"));
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
text: i18nMessages.downloadExcel,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/assigned-leaves-info-export",
|
||||
data: {
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/assigned-leaves-info-export",
|
||||
data: {
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "Assigned_leaves" + currentDate + ".xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "Assigned_leaves" + currentDate + ".xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
$("#bulkAssignedLeavesDelete").click(function (e) {
|
||||
e.preventDefault();
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteAssignedMessages[languageCode];
|
||||
var textMessage = no_rows_deleteMessages[languageCode];
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaves").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaves").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaves").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaves").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/assigned-leave-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaves").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaves").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/assigned-leave-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,76 +1,3 @@
|
||||
var closeButtonText = {
|
||||
ar: "إغلاق",
|
||||
de: "Schließen",
|
||||
es: "Cerrar",
|
||||
en: "Close",
|
||||
fr: "Fermer",
|
||||
};
|
||||
|
||||
var confirmButtonText = {
|
||||
ar: "تأكيد",
|
||||
de: "Bestätigen",
|
||||
es: "Confirmar",
|
||||
en: "Confirm",
|
||||
fr: "Confirmer",
|
||||
};
|
||||
|
||||
var deleteLeaveRequestMessages = {
|
||||
ar: "هل تريد حقًا حذف جميع طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten Urlaubsanfragen löschen?",
|
||||
es: "¿Realmente desea eliminar todas las solicitudes de permiso seleccionadas?",
|
||||
en: "Do you really want to delete all the selected leave requests?",
|
||||
fr: "Voulez-vous vraiment supprimer toutes les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
var approveLeaveRequests = {
|
||||
ar: "هل ترغب في الموافقة على طلبات الإجازة المحددة؟",
|
||||
de: "Möchten Sie die ausgewählten Urlaubsanfragen genehmigen?",
|
||||
es: "¿Quieres aprobar las solicitudes de licencia seleccionadas?",
|
||||
en: "Do you want to approve the selected leave requests?",
|
||||
fr: "Voulez-vous approuver les demandes de congé sélectionnées?",
|
||||
};
|
||||
|
||||
var rejectLeaveRequests = {
|
||||
ar: "هل تريد رفض طلبات الإجازة المختارة؟",
|
||||
de: "Möchten Sie die ausgewählten Abwesenheitsanträge ablehnen?",
|
||||
es: "¿Quieres rechazar las solicitudes de vacaciones seleccionadas?",
|
||||
en: "Do you want to reject the selected leave requests?",
|
||||
fr: "Vous souhaitez rejeter les demandes de congés sélectionnées ?",
|
||||
};
|
||||
|
||||
var noRowLeaveMessages = {
|
||||
ar: "لم يتم تحديد أي صفوف.",
|
||||
de: "Es wurden keine Zeilen ausgewählt.",
|
||||
es: "No se han seleccionado filas.",
|
||||
en: "No rows have been selected to delete",
|
||||
fr: "Aucune ligne n'a été sélectionnée.",
|
||||
};
|
||||
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var excelMessages = {
|
||||
ar: "هل ترغب في تنزيل ملف Excel؟",
|
||||
de: "Möchten Sie die Excel-Datei herunterladen?",
|
||||
es: "¿Desea descargar el archivo de Excel?",
|
||||
en: "Do you want to download the excel file?",
|
||||
fr: "Voulez-vous télécharger le fichier Excel?",
|
||||
};
|
||||
|
||||
var leaveReportCreate = {
|
||||
ar: "هل ترغب في تنزيل ملف PDF",
|
||||
de: "Möchten Sie die PDF-Datei herunterladen?",
|
||||
es: "¿Desea descargar el archivo de PDF?",
|
||||
en: "Do you wish to create a Leave Report?",
|
||||
fr: "Voulez-vous télécharger le fichier PDF?",
|
||||
};
|
||||
|
||||
|
||||
tickLeaverequestsCheckboxes();
|
||||
function makeLeaverequestsListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
@@ -81,30 +8,7 @@ function makeUserrequestsListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// ---------------------------------------
|
||||
// LEAVE REQUEST
|
||||
@@ -122,20 +26,16 @@ function tickLeaverequestsCheckboxes() {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllLeaverequests").css("display", "inline-flex");
|
||||
$("#exportLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").text(selectedCount + " -" + message);
|
||||
} else {
|
||||
$("#selectedShowLeaverequests").css("display", "none");
|
||||
$("#exportLeaverequests").css("display", "none");
|
||||
$("#unselectAllLeaverequests").css("display", "none");
|
||||
}
|
||||
});
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllLeaverequests").css("display", "inline-flex");
|
||||
$("#exportLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").text(selectedCount + " -" + i18nMessages.selected);
|
||||
} else {
|
||||
$("#selectedShowLeaverequests").css("display", "none");
|
||||
$("#exportLeaverequests").css("display", "none");
|
||||
$("#unselectAllLeaverequests").css("display", "none");
|
||||
}
|
||||
}
|
||||
|
||||
function addingLeaverequestsIds() {
|
||||
@@ -156,21 +56,18 @@ function addingLeaverequestsIds() {
|
||||
ids = makeLeaverequestsListUnique(ids);
|
||||
selectedCount = ids.length;
|
||||
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
$("#selectedLeaverequests").attr("data-ids", JSON.stringify(ids));
|
||||
if (selectedCount === 0) {
|
||||
$("#selectedShowLeaverequests").css("display", "none");
|
||||
$("#exportLeaverequests").css("display", "none");
|
||||
$("#unselectAllLeaverequests").css("display", "none");
|
||||
} else {
|
||||
$("#unselectAllLeaverequests").css("display", "inline-flex");
|
||||
$("#exportLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").text(selectedCount + " - " + message);
|
||||
}
|
||||
});
|
||||
$("#selectedLeaverequests").attr("data-ids", JSON.stringify(ids));
|
||||
if (selectedCount === 0) {
|
||||
$("#selectedShowLeaverequests").css("display", "none");
|
||||
$("#exportLeaverequests").css("display", "none");
|
||||
$("#unselectAllLeaverequests").css("display", "none");
|
||||
} else {
|
||||
$("#unselectAllLeaverequests").css("display", "inline-flex");
|
||||
$("#exportLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").css("display", "inline-flex");
|
||||
$("#selectedShowLeaverequests").text(selectedCount + " - " + i18nMessages.selected);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function selectAllLeaverequests() {
|
||||
@@ -261,210 +158,189 @@ function unselectAllLeaverequests() {
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
function exportLeaverequests() {
|
||||
var currentDate = new Date().toISOString().slice(0, 10);
|
||||
var language_code = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
language_code = code;
|
||||
var confirmMessage = excelMessages[language_code];
|
||||
ids = [];
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/leave-requests-info-export",
|
||||
data: {
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "Leave_requests" + currentDate + ".xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ids = [];
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
Swal.fire({
|
||||
text: i18nMessages.downloadExcel,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/leave-requests-info-export",
|
||||
data: {
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "Leave_requests" + currentDate + ".xlsx";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function createLeaveReport() {
|
||||
var currentDate = new Date().toISOString().slice(0, 10);
|
||||
var language_code = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
language_code = code;
|
||||
var confirmMessage = leaveReportCreate[language_code];
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/create-leave-report",
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/pdf",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "LeaveRequestReport" + currentDate + ".pdf";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
Swal.fire({
|
||||
text: gettext("Do you wish to create a Leave Report?"),
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/leave/create-leave-report",
|
||||
dataType: "binary",
|
||||
xhrFields: {
|
||||
responseType: "blob",
|
||||
},
|
||||
success: function (response) {
|
||||
const file = new Blob([response], {
|
||||
type: "application/pdf",
|
||||
});
|
||||
const url = URL.createObjectURL(file);
|
||||
const link = document.createElement("a");
|
||||
link.href = url;
|
||||
link.download = "LeaveRequestReport" + currentDate + ".pdf";
|
||||
document.body.appendChild(link);
|
||||
link.click();
|
||||
},
|
||||
error: function (xhr, textStatus, errorThrown) {
|
||||
console.error("Error downloading file:", errorThrown);
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("#leaveRequestsBulkApprove").click(function (e) {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = approveLeaveRequests[languageCode];
|
||||
var textMessage = noRowLeaveMessages[languageCode];
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var hxVals = JSON.stringify(ids);
|
||||
$("#bulkApproveSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkApproveSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkApprove,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var hxVals = JSON.stringify(ids);
|
||||
$("#bulkApproveSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkApproveSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
$("#idBulkRejectReason").click(function (e) {
|
||||
e.preventDefault();
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = rejectLeaveRequests[languageCode];
|
||||
var textMessage = noRowLeaveMessages[languageCode];
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
var rejectReason = $("#id_reject_reason").val();
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var data = JSON.stringify({ "request_ids": ids, "reason": rejectReason })
|
||||
$("#bulkRejectSpan").attr("hx-vals", data);
|
||||
$("#bulkRejectSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
var rejectReason = $("#id_reject_reason").val();
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: gettext("Do you want to reject the selected leave requests?"),
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var data = JSON.stringify({ "request_ids": ids, "reason": rejectReason })
|
||||
$("#bulkRejectSpan").attr("hx-vals", data);
|
||||
$("#bulkRejectSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$("#leaveRequestBulkDelete").click(function (e) {
|
||||
e.preventDefault();
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteLeaveRequestMessages[languageCode];
|
||||
var textMessage = noRowLeaveMessages[languageCode];
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaverequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaverequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/leave-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaverequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedLeaverequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedLeaverequests").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/leave-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
// ---------------------------------------
|
||||
@@ -483,20 +359,16 @@ function tickUserrequestsCheckboxes() {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllUserrequests").css("display", "inline-flex");
|
||||
$("#exportUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").text(selectedCount + " -" + message);
|
||||
} else {
|
||||
$("#unselectAllUserrequests").css("display", "none");
|
||||
$("#exportUserrequests").css("display", "none");
|
||||
$("#selectedShowUserrequests").css("display", "none");
|
||||
}
|
||||
});
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllUserrequests").css("display", "inline-flex");
|
||||
$("#exportUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").text(selectedCount + " -" + i18nMessages.selected);
|
||||
} else {
|
||||
$("#unselectAllUserrequests").css("display", "none");
|
||||
$("#exportUserrequests").css("display", "none");
|
||||
$("#selectedShowUserrequests").css("display", "none");
|
||||
}
|
||||
}
|
||||
|
||||
function addingUserrequestsIds() {
|
||||
@@ -517,21 +389,17 @@ function addingUserrequestsIds() {
|
||||
ids = makeUserrequestsListUnique(ids);
|
||||
selectedCount = ids.length;
|
||||
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
$("#selectedUserrequests").attr("data-ids", JSON.stringify(ids));
|
||||
if (selectedCount === 0) {
|
||||
$("#unselectAllUserrequests").css("display", "none");
|
||||
$("#selectedShowUserrequests").css("display", "none");
|
||||
$("#exportUserrequests").css("display", "none");
|
||||
} else {
|
||||
$("#exportUserrequests").css("display", "inline-flex");
|
||||
$("#unselectAllUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").text(selectedCount + " - " + message);
|
||||
}
|
||||
});
|
||||
$("#selectedUserrequests").attr("data-ids", JSON.stringify(ids));
|
||||
if (selectedCount === 0) {
|
||||
$("#unselectAllUserrequests").css("display", "none");
|
||||
$("#selectedShowUserrequests").css("display", "none");
|
||||
$("#exportUserrequests").css("display", "none");
|
||||
} else {
|
||||
$("#exportUserrequests").css("display", "inline-flex");
|
||||
$("#unselectAllUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").css("display", "inline-flex");
|
||||
$("#selectedShowUserrequests").text(selectedCount + " - " + i18nMessages.selected);
|
||||
}
|
||||
}
|
||||
|
||||
function selectAllUserrequests() {
|
||||
@@ -623,50 +491,46 @@ function unselectAllUserrequests() {
|
||||
|
||||
$("#userrequestbulkDelete").click(function (e) {
|
||||
e.preventDefault();
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteLeaveRequestMessages[languageCode];
|
||||
var textMessage = noRowLeaveMessages[languageCode];
|
||||
ids = [];
|
||||
ids.push($("#selectedUserrequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedUserrequests").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedUserrequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedUserrequests").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/user-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
ids = [];
|
||||
ids.push($("#selectedUserrequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedUserrequests").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "error",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
e.preventDefault();
|
||||
ids = [];
|
||||
ids.push($("#selectedUserrequests").attr("data-ids"));
|
||||
ids = JSON.parse($("#selectedUserrequests").attr("data-ids"));
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/leave/user-request-bulk-delete",
|
||||
data: {
|
||||
csrfmiddlewaretoken: getCookie("csrftoken"),
|
||||
ids: JSON.stringify(ids),
|
||||
},
|
||||
success: function (response, textStatus, jqXHR) {
|
||||
if (jqXHR.status === 200) {
|
||||
location.reload();
|
||||
} else {
|
||||
}
|
||||
},
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
@@ -1,52 +1,3 @@
|
||||
var rowMessages = {
|
||||
ar: " تم الاختيار",
|
||||
de: " Ausgewählt",
|
||||
es: " Seleccionado",
|
||||
en: " Selected",
|
||||
fr: " Sélectionné",
|
||||
};
|
||||
|
||||
var deleteDaysMessages = {
|
||||
ar: "هل تريد حقًا حذف جميع العطل المحددة؟",
|
||||
de: "Möchten Sie wirklich alle ausgewählten Feiertage löschen?",
|
||||
es: "¿Realmente quieres eliminar todas las vacaciones seleccionadas?",
|
||||
en: "Do you really want to delete all the selected restrict days?",
|
||||
fr: "Voulez-vous vraiment supprimer toutes les vacances sélectionnées?",
|
||||
};
|
||||
|
||||
var noRowsDeleteMessages = {
|
||||
ar: "لم تتم تحديد صفوف لحذف العطلات.",
|
||||
de: "Es wurden keine Zeilen zum Löschen von Feiertagen ausgewählt.",
|
||||
es: "No se han seleccionado filas para eliminar las vacaciones.",
|
||||
en: "No rows are selected for deleting restrict days.",
|
||||
fr: "Aucune ligne n'a été sélectionnée pour supprimer les vacances.",
|
||||
};
|
||||
|
||||
function getCurrentLanguageCode(callback) {
|
||||
var languageCode = $("#main-section-data").attr("data-lang");
|
||||
var allowedLanguageCodes = ["ar", "de", "es", "en", "fr"];
|
||||
if (allowedLanguageCodes.includes(languageCode)) {
|
||||
callback(languageCode);
|
||||
} else {
|
||||
$.ajax({
|
||||
type: "GET",
|
||||
url: "/employee/get-language-code/",
|
||||
success: function (response) {
|
||||
var ajaxLanguageCode = response.language_code;
|
||||
$("#main-section-data").attr("data-lang", ajaxLanguageCode);
|
||||
callback(
|
||||
allowedLanguageCodes.includes(ajaxLanguageCode)
|
||||
? ajaxLanguageCode
|
||||
: "en"
|
||||
);
|
||||
},
|
||||
error: function () {
|
||||
callback("en");
|
||||
},
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function makeDaysListUnique(list) {
|
||||
return Array.from(new Set(list));
|
||||
}
|
||||
@@ -63,20 +14,17 @@ function tickRestrictDaysCheckboxes() {
|
||||
$("#" + id).prop("checked", true);
|
||||
});
|
||||
var selectedCount = uniqueIds.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllRestrictDays").css("display", "inline-flex");
|
||||
// $("#exportRestrictDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").text(selectedCount + " -" + message);
|
||||
} else {
|
||||
$("#unselectAllRestrictDays").css("display", "none ");
|
||||
$("#showSelectedDays").css("display", "none");
|
||||
// $("#exportRestrictDays").css("display", "none");
|
||||
}
|
||||
});
|
||||
if (selectedCount > 0) {
|
||||
$("#unselectAllRestrictDays").css("display", "inline-flex");
|
||||
// $("#exportRestrictDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").text(selectedCount + " -" + i18nMessages.selected);
|
||||
} else {
|
||||
$("#unselectAllRestrictDays").css("display", "none ");
|
||||
$("#showSelectedDays").css("display", "none");
|
||||
// $("#exportRestrictDays").css("display", "none");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function addingRestrictDayIds() {
|
||||
@@ -96,21 +44,18 @@ function addingRestrictDayIds() {
|
||||
ids = makeDaysListUnique(ids);
|
||||
toggleHighlight(ids);
|
||||
selectedCount = ids.length;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var message = rowMessages[languageCode];
|
||||
$("#selectedRestrictDays").attr("data-ids", JSON.stringify(ids));
|
||||
if (selectedCount === 0) {
|
||||
$("#showSelectedDays").css("display", "none");
|
||||
// $("#exportRestrictDays").css("display", "none");
|
||||
$("#unselectAllRestrictDays").css("display", "none");
|
||||
} else {
|
||||
$("#unselectAllRestrictDays").css("display", "inline-flex");
|
||||
// $("#exportRestrictDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").text(selectedCount + " - " + message);
|
||||
}
|
||||
});
|
||||
|
||||
$("#selectedRestrictDays").attr("data-ids", JSON.stringify(ids));
|
||||
if (selectedCount === 0) {
|
||||
$("#showSelectedDays").css("display", "none");
|
||||
// $("#exportRestrictDays").css("display", "none");
|
||||
$("#unselectAllRestrictDays").css("display", "none");
|
||||
} else {
|
||||
$("#unselectAllRestrictDays").css("display", "inline-flex");
|
||||
// $("#exportRestrictDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").css("display", "inline-flex");
|
||||
$("#showSelectedDays").text(selectedCount + " - " + i18nMessages.selected);
|
||||
}
|
||||
}
|
||||
function updateParentCheckbox() {
|
||||
var parentTable = $(this).closest(".oh-sticky-table");
|
||||
@@ -235,72 +180,62 @@ function unselectAllRestrictDays() {
|
||||
}
|
||||
|
||||
$("#bulkRestrictedDaysDelete").click(function (e) {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteDaysMessages[languageCode];
|
||||
var textMessage = noRowsDeleteMessages[languageCode];
|
||||
try {
|
||||
var ids = JSON.parse($("#selectedRestrictDays").attr("data-ids"));
|
||||
} catch (e) {
|
||||
try {
|
||||
var ids = JSON.parse($("#selectedRestrictDays").attr("data-ids"));
|
||||
} catch (e) {
|
||||
|
||||
var ids = [];
|
||||
}
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var hxVals = JSON.stringify(ids);
|
||||
$("#bulkDeleteSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkDeleteSpan").click();
|
||||
$("#selectedRestrictDays").attr("data-ids", "");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
var ids = [];
|
||||
}
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var hxVals = JSON.stringify(ids);
|
||||
$("#bulkDeleteSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkDeleteSpan").click();
|
||||
$("#selectedRestrictDays").attr("data-ids", "");
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function bulkRestrictedDaysDelete() {
|
||||
var languageCode = null;
|
||||
getCurrentLanguageCode(function (code) {
|
||||
languageCode = code;
|
||||
var confirmMessage = deleteDaysMessages[languageCode];
|
||||
var textMessage = noRowsDeleteMessages[languageCode];
|
||||
ids = JSON.parse($("#selectedInstances").attr("data-ids"));
|
||||
if (ids.length === 0) {
|
||||
Swal.fire({
|
||||
text: textMessage,
|
||||
icon: "warning",
|
||||
confirmButtonText: "Close",
|
||||
});
|
||||
Swal.fire({
|
||||
text: i18nMessages.noRowsSelected,
|
||||
icon: "warning",
|
||||
confirmButtonText: i18nMessages.close,
|
||||
});
|
||||
} else {
|
||||
Swal.fire({
|
||||
text: confirmMessage,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: "Confirm",
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var hxVals = JSON.stringify(ids);
|
||||
$("#bulkDeleteSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkDeleteSpan").click();
|
||||
}
|
||||
});
|
||||
Swal.fire({
|
||||
text: i18nMessages.confirmBulkDelete,
|
||||
icon: "question",
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: "#008000",
|
||||
cancelButtonColor: "#d33",
|
||||
confirmButtonText: i18nMessages.confirm,
|
||||
cancelButtonText: i18nMessages.cancel,
|
||||
}).then(function (result) {
|
||||
if (result.isConfirmed) {
|
||||
var hxVals = JSON.stringify(ids);
|
||||
$("#bulkDeleteSpan").attr("hx-vals", `{"ids":${hxVals}}`);
|
||||
$("#bulkDeleteSpan").click();
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user