Files
BeWoPlaner/BeWoPlanerMobil/Scripts/signature.js
Lyndon Jetten b1f3ac742e Mobilklient:
Fehler behoben
2021-04-13 19:45:21 +02:00

136 lines
5.2 KiB
JavaScript

// Blendet das Popup mit der gespeicherten Unterschrift wieder aus
function hideSignature() {
$("#signature-img-popup").modal("hide");
}
function resizeCanvas(sketchPadId, canvasRoId) {
if($(sketchPadId).length !== 0) {
var rowWidth = $(canvasRoId).innerWidth();
var canvasWidth = $(sketchPadId).innerWidth();
var h = $(window).height();
var w = $(window).width();
var isInPortraitMode = h > w;
var newWidth = rowWidth * (isInPortraitMode === true ? 1.0 : 0.85);
var parsedNewWidth = parseInt(newWidth, 10);
var parsedCanvasWidth = parseInt(canvasWidth, 10);
var isMinDifferenceMet = false;
if (parsedCanvasWidth > parsedNewWidth) {
isMinDifferenceMet = parsedCanvasWidth - parsedNewWidth > 4;
} else {
isMinDifferenceMet = parsedNewWidth - parsedCanvasWidth > 4;
}
if(isMinDifferenceMet) {
var sourceCanvas = document.getElementById(sketchPadId.split("#")[1]);
var canvasContext = sourceCanvas.getContext("2d");
var imageData = sourceCanvas.toDataURL("image/png");
$(sketchPadId).prop("width", newWidth);
var img = new Image;
img.onload = function() {
canvasContext.drawImage(img, 0, 0);
};
img.src = imageData;
}
}
}
function initializeSignature(selectedServiceRecordOid) {
$("#main-container, #checkbox-container").hide();
$("#signature-container").addClass("d-block");
$.get(getSelectedRecordInformationUrlWithOid(), { oid: selectedServiceRecordOid }).done(function(jsonServiceRecord) {
if(jsonServiceRecord === "SessionTimeout") {
window.location.href = getRedirectLink();
return;
}
var record = $.parseJSON(jsonServiceRecord);
var startDate = record.Start[18] === "1" ? "" : record.Start.slice(11, 16);
var endDate = record.End[18] === "1" ? "" : record.End.slice(11, 16);
var jahr = record.Start.slice(0, 4);
var monat = record.Start.slice(5, 7);
var tag = record.Start.slice(8, 10);
var datum = tag + "." + monat + "." + jahr;
var serviceDescriptionName = record.ServiceDescription.Name;
var serviceCategoryName = record.ServiceDescription.Category.Name;
var nameAndDateOfBirth = $("#selectedSupportConceptCustomerInfo").text();
var supportConceptInterval = $("#selectedSupportConceptInfo").text();
$("#signature-support-concept").text(nameAndDateOfBirth + " | " + supportConceptInterval);
$("#signature-service-description").text(serviceDescriptionName);
$("#signature-service-category").text(serviceCategoryName);
$("#signature-employee").text(record.Employee.FirstName + " " + record.Employee.LastName);
$("#signature-date-time").text(datum + " " + startDate + " - " + endDate);
resizeCanvas("#sketch-pad", "#canvas-row");
var canvas = document.getElementById("sketch-pad");
var signaturePad = new SignaturePad(canvas, { backgroundColor: "rgba(255, 255, 255, 0)" });
var saveButton = document.getElementById("save-signature-btn");
var clearButton = document.getElementById("clear-canvas-btn");
var cancelButton = document.getElementById("cancel-signature-btn");
saveButton.addEventListener("click", function(event) {
var url = getSetSelectedSignatureUrl();
var date = moment(new Date());
var clonedCanvas = trimCanvas(cloneCanvas(document.getElementById("sketch-pad")));
var context = clonedCanvas.getContext("2d");
context.globalCompositeOperation = "destination-over";
context.fillStyle = "white";
context.fillRect(0, 0, clonedCanvas.width, clonedCanvas.height);
var dataUrl = clonedCanvas.toDataURL("image/png");
var formattedDate = date.format("DD.MM.YYYY HH:mm:ss");
showSpinner();
$.post(url, { blob: dataUrl, timeStamp: formattedDate, serviceRecordOid: selectedServiceRecordOid }).done(function(json) {
hideSpinner();
if(isEmptyOrSpaces(json)) {
$("#signature-container").removeClass("d-block");
$("#main-container, #checkbox-container").show();
showMessagePopupWithCallback("Unterschrift", "Die Unterschrift wurde erfolgreich gespeichert.", function() {
showSpinner();
location.reload();
}, true);
} else {
showMessagePopup("Fehler", json);
signaturePad.clear();
}
});
});
clearButton.addEventListener("click", function(event) {
signaturePad.clear();
});
cancelButton.addEventListener("click", function(event) {
showMessagePopupWithCallback("Unterschrift", "Sind Sie sicher, dass Sie die Unterschrift nicht speichern möchten?",
function() {
$("#signature-container, #checkbox-container").removeClass("d-block");
$("#main-container").show();
signaturePad.clear();
}, false);
});
});
}