147 lines
4.9 KiB
JavaScript
147 lines
4.9 KiB
JavaScript
function initializeReportView() {
|
|
window.checkForExistingSignature();
|
|
window.qbFilterSelectionChange();
|
|
}
|
|
|
|
function calculateDays() {
|
|
const month = $("#month-select option:selected").val();
|
|
const year = $("#year-select option:selected").val();
|
|
|
|
const monthInt = parseInt(month, 10) - 1;
|
|
|
|
const begin = window.moment(new Date(year, monthInt, 1)).date();
|
|
const end = window.moment(new Date(year, monthInt, 1)).add(1, "months").add(-1, "days").date();
|
|
|
|
$("#start-day-select").empty();
|
|
$("#end-day-select").empty();
|
|
|
|
for(let i = begin; i <= end; i++) {
|
|
const option = new Option(i, i);
|
|
const option2 = new Option(i, i);
|
|
|
|
$("#start-day-select").append(option);
|
|
$("#end-day-select").append(option2);
|
|
}
|
|
|
|
$("#start-day-select").val(1);
|
|
$("#end-day-select").val(end);
|
|
|
|
const startDay = $("#start-day-select option:selected").val();
|
|
const endDay = $("#end-day-select option:selected").val();
|
|
|
|
if(startDay === 0 || endDay === 0 || year === 0 || month === 0 || areUndefinedOrNull([month, year, startDay, endDay])) {
|
|
return;
|
|
}
|
|
|
|
const changeDateSelectionUrl = window.getChangeDateSelectionUrl();
|
|
|
|
$.get(changeDateSelectionUrl, { startDayString: startDay, endDayString: endDay, monthString: month, yearString: year});
|
|
}
|
|
|
|
function hideSigningParts(canSign) {
|
|
if(!isUndefinedOrNull(canSign)) {
|
|
if(canSign === false) {
|
|
$(".signingContent").hide();
|
|
} else {
|
|
$(".signingContent").show();
|
|
}
|
|
}
|
|
}
|
|
|
|
function confirmReportSignatureCancellation() {
|
|
showMessagePopupWithCallback("Unterschrift", "Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
|
function() {
|
|
$("#report-signature-container").removeClass("d-block");
|
|
$("#report-form-container").show();
|
|
|
|
const canvas = document.getElementById("sketch-pad");
|
|
const context = canvas.getContext("2d", {willReadFrequently: true});
|
|
context.clearRect(0, 0, canvas.width, canvas.height);
|
|
|
|
}, false);
|
|
}
|
|
|
|
function onMonthOrYearChange() {
|
|
calculateDays();
|
|
window.checkForExistingSignature();
|
|
}
|
|
|
|
function cancelSignature(canSign, signaturePad, canvasId, signatureContainer, overridingAlertId) {
|
|
if(canSign === false) {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
signaturePad.clear();
|
|
|
|
return;
|
|
}
|
|
|
|
const canvas = document.getElementById(canvasId);
|
|
const twoDContext = canvas.getContext("2d", { willReadFrequently: true });
|
|
|
|
const width = canvas.getBoundingClientRect().width;
|
|
const height = canvas.getBoundingClientRect().height;
|
|
|
|
if (width === 0 || height === 0) {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
signaturePad.clear();
|
|
|
|
return;
|
|
}
|
|
|
|
const isEmpty = signaturePad.isEmpty();
|
|
|
|
if(isEmpty === true) {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
signaturePad.clear();
|
|
|
|
return;
|
|
}
|
|
|
|
showMessagePopupWithCallback("Unterschrift",
|
|
"Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
|
|
function() {
|
|
hideSignatureContainer(signatureContainer, overridingAlertId);
|
|
|
|
signaturePad.clear();
|
|
},
|
|
false);
|
|
}
|
|
|
|
function hideSignatureContainer(signatureContainer, overridingAlertId) {
|
|
$(`#${signatureContainer}, #${overridingAlertId}`).removeClass("d-block");
|
|
$("#report-form-container").show();
|
|
}
|
|
|
|
function saveSignature(customerOid, isEmployeeSignature, overwrite, signaturePad, canvasId) {
|
|
const canvas = document.getElementById(canvasId);
|
|
const clonedCanvas = cloneCanvas(canvas);
|
|
const trimmedCanvas = trimCanvas(clonedCanvas);
|
|
|
|
const context = trimmedCanvas.getContext("2d", {willReadFrequently: true});
|
|
context.globalCompositeOperation = "destination-over";
|
|
context.fillStyle = "white";
|
|
context.fillRect(0, 0, trimmedCanvas.width, trimmedCanvas.height);
|
|
|
|
const dataUrl = trimmedCanvas.toDataURL("image/png");
|
|
|
|
showSpinner();
|
|
|
|
const url = window.getCreateSignatureForServiceOverviewUrl();
|
|
|
|
$.post(url, { base64SignatureString: dataUrl, customerOidString: customerOid, isCustomerSignature: !isEmployeeSignature, overwrite: overwrite }).done(function (json) {
|
|
hideSpinner();
|
|
|
|
if(isEmptyOrSpaces(json)) {
|
|
showMessagePopupWithHtmlAndCallback("Unterschrift",
|
|
"Die Unterschrift wurde erfolgreich gespeichert.<br/><br/>Verändern Sie jedoch Einträge der Zeiterfassung in dem ausgewählten Zeitraum, muss die Unterschrift erneut geleistet werden.", false,
|
|
function () {
|
|
showSpinner();
|
|
// ToDo: Seite neuladen und Quittierungsbelegsobjekt neuerstellen!
|
|
location.reload();
|
|
},
|
|
true);
|
|
} else {
|
|
showMessagePopup("Fehler", json);
|
|
signaturePad.clear();
|
|
}
|
|
});
|
|
} |