Files
BeWoPlaner/BeWoPlanerMobil/Scripts/mainView.js

1356 lines
49 KiB
JavaScript

var ZeiterfassungDatakonstrukt = [];
var KlientDatakonstrukt = [];
var klientzwischenspeicher = [];
var timeOut = 10000;
function buildCollapsibleSet(jsonString) {
try {
if(jsonString.length < 2) {
return;
}
var kollektion = $.parseJSON(jsonString);
actuallyBuildCollapsibleSet(kollektion, null);
} catch(exception) {
console.log("Fehler(BuildCollapsibleSet): " + exception.message);
}
}
function actuallyBuildCollapsibleSet(kollektion, selectedGoalOids) {
$("#kollabierbar1").empty();
collapsibleHtml = "";
$.each(kollektion, function (index) {
buildGoalTreeItem(kollektion[index], selectedGoalOids);
});
$("#kollabierbar1").append(collapsibleHtml);
}
var level = 0;
var collapsibleHtml;
zeitRegEx = /^(2[0-3]|[01]?[0-9])(:|,|\.|#|;)?([0-5][0-9])$/;
function buildGoalTreeItem(goalItem, selectedGoalOids) {
var goalOid = goalItem.ValueListEntryOid;
var goalHeader = goalItem.Header;
var isChecked = selectedGoalOids !== null && isElementInArray(selectedGoalOids, goalOid) ? "checked" : "";
if (!goalItem.IsLeaf) {
//collapsibleHtml += '<input type="checkbox" style="width: auto;" onclick="updateGoals(' + goalOid + ')" id="' + goalOid + '" value="' + goalHeader + '" ' + isChecked + '/><label class="toggle-btnLabel" for="' + goalHeader + '">' + goalHeader + '</label>';
collapsibleHtml += '<div onclick="toggleOnclick(this);" class="toggle-btn-div" style="margin-right: 0; padding-right: 0;display: block;"><input type="checkbox" style="width: auto;" onclick="updateChildGoals(' + goalOid + ');event.stopPropagation();" id="goal' + goalOid + '" value="' + goalOid + '" ' + isChecked + ' />' + goalHeader + '</div>';
//collapsibleHtml += '<input onclick="toggleOnclick(this);" type="button" class="toggle-btn" value="' + goalHeader + '" style="margin-right: 0; padding-right: 0;" />';
collapsibleHtml += '<div style="margin-right: 0; padding-right: 0;display: none;" class="kollabierbar">';
try {
$.each(goalItem.Children,
function(index) {
buildGoalTreeItem(goalItem.Children[index], selectedGoalOids);
});
} catch(exception) {
console.log('Fehler bei der Baumkonstruktion: ' + exception.message);
}
collapsibleHtml += "</div>";
} else {
collapsibleHtml += '<div style="margin-right: 0; padding-right: 0;display: block;"><input type="checkbox" style="width: auto;" onclick="updateGoals(' + goalOid + ')" id="' + goalOid + '" value="' + goalHeader + '" ' + isChecked + ' />' + goalHeader + '</div>';
}
}
function loadGoalsOnSuccess(json) {
if (json === "SessionTimeout") {
window.location.href = redirectLink;
return;
}
buildCollapsibleSet(json);
}
function loadServiceDescriptionsOnSuccess(json) {
if (json === "SessionTimeout") {
window.location.href = window.redirectLink;
return;
}
var liste = $.parseJSON(json);
$("#leistungen_select").empty();
$("#leistungen_select").val("");
$.each(liste, function (index, leistung) {
$("#leistungen_select").append('<option value="' + leistung.ServiceDescriptionOid + '">' + leistung.Name + "</option>");
});
if(liste[0] !== undefined) {
$("#leistungen_select").val(liste[0].ServiceDescriptionOid);
makeAjaxCall("GET", window.setServiceDescriptionUrl, null, { pServiceDescriptionOid: liste[0].ServiceDescriptionOid }, null);
}
}
function showAjaxError(jqXHR, textStatus, errorThrown) {
hideSanduhr();
//if (jqXHR.status == 0) {
//toggleErrorPopup("Es besteht zurzeit keine Internetverbindung." +
// " Die Daten werden zwischengespeichert und beim nächsten Login an den Server gesendet. " + errorThrown,2);
//setTimeout(function () {
//showServiceRecords();
//}, timeOut);
//}
//else
if(jqXHR.status === 0) {
console.log("status is 0; ajax call aborted.\nError thrown: " + errorThrown + ";\nText status: " + textStatus);
return;
}
toggleErrorPopup(jqXHR.status + " " + errorThrown);
}
function showErrorMsg(message) {
toggleErrorPopup(message);
}
function resizeLabelColumns() {
$("#tabLbl").css("width", $("#zieleLbl").css("width"));
}
function loadGoals(actionPath) {
var selectedServiceRecord = $($("#scDropDown")).find(":selected").val();
if (selectedServiceRecord === -1) {
return;
}
makeAjaxCall("GET", actionPath, loadGoalsOnSuccess, { pCostbearer2SupportConceptOid: selectedServiceRecord }, null);
}
function toggleMenu() {
var menuDiv = $("#menu-div");
$(menuDiv).fadeToggle("fast");
}
function loadServiceDescriptions() {
var selectedCategory = $("#kategorien_select").find(":selected").val();
if (selectedCategory === null || selectedCategory === undefined) {
return;
}
makeAjaxCall("GET", window.loadServiceCategoriesUrl, loadServiceDescriptionsOnSuccess, { pServiceCategoryOid: selectedCategory }, null);
loadTextbausteineForServiceCategory(selectedCategory);
}
function updateGoals(cbId) {
makeAjaxCall("GET", updateGoalsUrl, null, { pGoalOid: cbId }, null);
}
var goalOidArray = new Array();
function updateChildGoals(goalOid) {
goalOidArray = new Array();
var parent = document.getElementById("goal" + goalOid);
//alert("start");
CheckChildGoalNodes(parent);
//makeAjaxCall("GET", updateGoalsUrl, null, { pGoalOid: cbId }, null);
}
function CheckChildGoalNodes(parent) {
goalOidArray = new Array();
var next = parent.parentNode;
//alert(next);
//alert(next.nextSibling);
var nodeList = next.childNodes;
//alert(nodeList.length);
for (var i = 0; i < nodeList.length; i++) {
var node = nodeList[i];
//alert(node.nodeName);
CheckChildGoalNodes(node);
}
//makeAjaxCall("GET", updateGoalsUrl, null, { pGoalOid: cbId }, null);
}
function setServiceDescription() {
var sdOid = $($("#leistungen_select")).find(":selected").val();
makeAjaxCall("GET", window.setServiceDescriptionUrl, null, { pServiceDescriptionOid: sdOid }, null);
}
function selectServiceRecord(oid) {
$("#versteckt").val("Speichern");
$("html, body").animate({ scrollTop: 0 }, "fast");
$.ajax({
type: "GET",
url: window.setSelectedServiceRecordUrl,
data: { recordOid: oid },
success: function () {
$.ajax({
type: "GET",
url: window.getSelectedRecordInformationUrl,
success: function (jsonServiceRecord) {
try {
if(jsonServiceRecord === "SessionTimeout") {
window.location.href = window.redirectLink;
return;
}
var record = $.parseJSON(jsonServiceRecord);
var goals = record.Goals;
var idArray = new Array();
var meinGoalsArray = new Array();
var j = 0;
for(var i = 0; i < goals.length; i++) {
if(goals[i].ValueListEntryOid !== undefined) {
idArray[j] = goals[i].ValueListEntryOid;
j++;
}
}
$.ajax({
type: "GET",
url: window.loadGoalsUrl,
data: { pCostbearer2SupportConceptOid: $($("#scDropDown")).find(":selected").val() },
success: function (goalsJson) {
if (goalsJson === "SessionTimeout") {
window.location.href = window.redirectLink;
return;
}
try {
meinGoalsArray = goalsJson !== "" ? $.parseJSON(goalsJson) : "";
} catch (exception) {
console.log("Fehler beim JSON Parsing von selectServiceRecord(" + oid + "): " + exception.message);
}
var rawStartDateStr = record.Start[18] === "1" ? "" : record.Start.slice(11, 16);
var rawEndDateStr = record.End[18] === "1" ? "" : record.End.slice(11, 16);
var startDateYearStr = record.Start.slice(0, 4);
var startDateMonthStr = record.Start.slice(5, 7);
var startDateDayStr = record.Start.slice(8, 10);
var dateStr = startDateDayStr + "." + startDateMonthStr + "." + startDateYearStr;
var endDateYearStr = record.End.slice(0, 4);
var endDateMonthStr = record.End.slice(5, 7);
var endDateDayStr = record.End.slice(8, 10);
var endDateDateStr = endDateDayStr + "." + endDateMonthStr + "." + endDateYearStr;
$("#start_textbox").val(rawStartDateStr);
$("#ende_textbox").val(rawEndDateStr);
$("#datum_textbox").val(dateStr);
$("#notiz_textbox").val(record.Notice);
$("#enddatum_textbox").val(endDateDateStr);
$("#notiz_textbox1").val(record.Notice);
$("#notiz_textbox2").val(record.Notice2);
$("#notiz_textbox3").val(record.Notice3);
$("#notiz_textbox4").val(record.Notice4);
$("#notiz_textbox5").val(record.Notice5);
$("#duration_textbox").val(record.RoundedDuration);
$("#distance_textbox").val(record.DistanceInMeter);
$("#employeesDropDown").val(record.Employee.EmployeeOid);
window.serviceRecordEmployeeOid = record.Employee.EmployeeOid;
actuallyBuildCollapsibleSet(meinGoalsArray, idArray);
$("#anlegenEditierenBtn").val("Speichern");
$.ajax({
type: "GET",
url: window.loadServiceCategoriesUrl,
success: function (result) {
if (isEmptyOrSpaces(result)) {
window.location.href = window.redirectLink;
return;
}
if (result === "SessionTimeout") {
window.location.href = redirectLink;
return;
}
$("#kategorien_select").val(record.ServiceDescription.Category.ServiceCategoryOid);
var liste = $.parseJSON(result);
$("#leistungen_select").empty();
$("#leistungen_select").val("");
$.each(liste, function (index, leistung) {
$("#leistungen_select").append('<option value="' + leistung.ServiceDescriptionOid + '">' + leistung.Name + '</option>');
});
$("#leistungen_select").val(record.ServiceDescription.ServiceDescriptionOid);
makeAjaxCall("GET", window.setServiceDescriptionUrl, null, { pServiceDescriptionOid: record.ServiceDescription.ServiceDescriptionOid }, null);
toggleLabel("distance_textbox");
toggleLabel("duration_textbox");
toggleLabel("start_textbox");
toggleLabel("ende_textbox");
$("input").prop("disabled", false);
$("#abbrechenBtn").prop("disabled", true);
$("select").prop("disabled", false);
toggleSelectClassesForElement("#kategorien_select", "#kategorien-select-container");
toggleSelectClassesForElement("#leistungen_select", "#leistungen-select-container");
toggleSelectClassesForElement("#recordLoader_select", "#record-loader-select-container");
toggleSelectClassesForElement("#textbausteine_select", "#textbausteine-select-container");
$("#abbrechenBtn").prop("disabled", false);
if (isInGroupBookingMode()) {
$("#changeBookingModeCheckBox").prop("checked", false);
console.log("Gruppenbuchungsmodus abgewählt");
makeAjaxCall("GET", window.resetGroupBookingModeViaGETUrl, function (result) {
$("#changeBookingModeCheckBox").prop("checked", false);
$("#leftContent input[type=checkbox]").prop("checked", false);
$("#rightContent input[type=checkbox]").prop("checked", false);
$("#employeeCollapsible input[type=checkbox]").prop("checked", false);
$("#selectSCForm").show();
if (result.toLowerCase() === "true") {
$("#singleSCEmployeeSelectionContainer").show();
}
$("#groupBookingOpenPopupBtn").hide();
$("#groupBookingOpenEmployeeSelectionPopupBtn").hide();
}, null, null);
}
hideSanduhr();
},
error: showErrorMsg,
data: { pServiceCategoryOid: record.ServiceDescription.Category.ServiceCategoryOid }
});
},
error: showAjaxError,
complete: hideSanduhr
});
} catch (exception1) {
console.log('Fehler beim JSON Parsing von selectServiceRecord(' + oid + '): ' + exception1.message);
}
},
error: showAjaxError
});
}
});
}
function activateForm(actionPath, shouldLoadServiceDescriptions) {
$("input").prop("disabled", false);
$("textarea").prop("disabled", false);
$(".doku-tab-link").prop("disabled", false);
$("#kategorien_select, #leistungen_select, #recordLoader_select, #textbausteine_select, #employeesDropDown").prop("disabled", false);
//toggleSelectClassesForElement("#kategorien_select", "#kategorien-select-container");
//toggleSelectClassesForElement("#leistungen_select", "#leistungen-select-container");
// toggleSelectClassesForElement("#recordLoader_select", "#record-loader-select-container");
// toggleSelectClassesForElement("#employeesDropDown", "#employee-select-container");
loadGoals(actionPath);
$("#kategorien_select").val($("#kategorien_select option").eq(0).val());
if(shouldLoadServiceDescriptions) {
loadServiceDescriptions();
}
}
function resetRecordForm() {
showSanduhr();
$("#versteckt").val("Anlegen");
$("#anlegenEditierenBtn").val("Anlegen");
clearZED();
if (isInGroupBookingMode()) {
$("#changeBookingModeCheckBox").prop("checked", false);
showSanduhr();
$("#groupBookingForm").submit();
}
$("#start_textbox").val("").trigger("change");
$("#ende_textbox").val("").trigger("change");
$("#notiz_textbox").val("").trigger("change");
$("#duration_textbox").val("").trigger("change");
$("#distance_textbox").val("").trigger("change");
$("#datum_textbox").val(getDateStringWithLeadingZeros(new Date()));
$("#enddatum_textbox").val(getDateStringWithLeadingZeros(new Date()));
$("#kategorien_select").val($("#kategorien_select option").eq(0).val());
for(var i = 0; i < numberOfDocumentationTypes; i++) {
$("#notiz_textbox" + (i + 1)).val("");
}
var selectedCategory = $("#kategorien_select").find(":selected").val();
if(isInEditingMode()) {
makeAjaxCall("POST", window.resetEditingModeUrl, function(response) { window.location.reload(); }, { pFormCollection: null }, null);
}
$.ajax({
type: "GET",
url: loadServiceCategoriesUrl,
data: { pServiceCategoryOid: selectedCategory },
success: function (json) {
loadServiceDescriptionsOnSuccess(json);
$.ajax({
type: "GET",
url: setSelectedServiceRecordUrl,
data: { recordOid: null },
success: function () {
loadGoals(loadGoalsUrl);
hideSanduhr();
},
error: showAjaxError
});
}
});
}
function toggleOnclick(element) {
var collapsedDiv = $(element).next("div");
var isHidden = "none" === $(collapsedDiv).css("display");
var newIcon = "url('";
newIcon += isHidden ? toggleIconUContentUrl : toggleIconDContentUrl;
newIcon += "')";
$(element).css("background-image", newIcon);
$(collapsedDiv).fadeToggle("fast");
}
$(document).mouseup(function(e) {
var menu = $("#menu-div");
var menuBtn = $("#menu-btn");
if(!menu.is(e.target) && !menuBtn.is(e.target) && menu.has(e.target).length === 0) {
menu.fadeOut("fast");
}
});
function saveCreateServicerecod() {
showSanduhr();
validateServiceRecordBeforeSubmit();
}
function validateTimeField(id) {
var timeStr = $(id).val();
var zeitStr = id === "#start_textbox" ? "Start" : "End";
if (timeStr !== "" && !zeitRegEx.test(timeStr)) {
showZeiterfassungsError("Bitte geben Sie eine " + zeitStr + "-Zeit in einem g&uuml;ltigen Format (HH:MM oder HHMM) an.");
return false;
} else {
clearZED();
return true;
}
}
function togglePopup(serviceRecordOid) {
$("#oidHolder").val(serviceRecordOid);
var isShowing = $(".modalWrapper").css("display") === "none";
var displayValue = $(".modalWrapper").css("display") === "block" ? "none" : "block";
toggleModalWrapper();
$("#popupDiv").css("display", displayValue);
if (isShowing) {
var titleOuterHeight = $("#popupTitle").outerHeight();
var textOuterHeight = $("#popupText").outerHeight();
var buttonDivOuterHeight = $("#popupBtnDiv").outerHeight();
var btnOuterHeight = $(".popupBtn").outerHeight();
var newHeight = titleOuterHeight + textOuterHeight + buttonDivOuterHeight + btnOuterHeight + btnOuterHeight;
$("#popupDiv").css("height", newHeight + "px");
$("#popupDiv").css("top", window.pageYOffset + window.innerHeight / 2 - newHeight / 2);
$("#popupDiv").css("margin-top", "0");
} else {
$("#popupDiv").css("margin-top", "auto");
}
}
function toggleModalWrapper() {
var displayValue = $(".modalWrapper").css("display") === "block" ? "none" : "block";
$(".modalWrapper").css("display", displayValue);
$(".modalWrapper").css("height", $(document).height());
}
function ErfolgteSpx() {
if (document.getElementById("SaveSignature").value === "True") {
toggleSuccessPopup("Eintrag wurde gespeichert." + "\n" + "Möchte Sie diesen unterschreiben lassen?", 4);
document.getElementById("SaveSignature").value = "False";
$.ajax({
type: "GET",
url: SetSaveSignatureUrl,
data: { save: false }
});
}
}
function initSignatureInfo(serviceRecordOid){
$.ajax({
type: "GET",
url: getSelectedRecordInformationUrlWithOid,
data: {oid: serviceRecordOid},
success: function(jsonServiceRecord) {
try {
if(jsonServiceRecord === "SessionTimeout") {
window.location.href = redirectLink;
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 zahl2 = $("#scDropDown").val();
$("#UnterschriftHilfeplan").val('HilfePlan: ' + $("#scDropDown option[value='" + zahl2 + "']").text());
$("#UnterschriftEmployee").val('Mitarbeiter: ' + record.Employee.FirstName + ' ' + record.Employee.LastName);
$("#UnterschriftKategorie").val('Kategorie: ' + serviceCategoryName);
$("#UnterschriftLeistung").val('Leistungen: ' + serviceDescriptionName);
$("#UnterschriftDatum").val('Datum / Uhrzeit: ' + datum + ' / ' + startDate + ' - ' + endDate);
$("#SaveRecordOID").val(serviceRecordOid);
console.log('Loading data for service record: ' + $("#SaveRecordOID").value);
} catch(exception) {
console.log('Error: ' + + '');
}
}
});
}
// Man kann nur eine fatale Fehlermeldung auf einmal anzeigen. Ein Aufruf dieser Methode bei einem bereits angezeigten Fehler führt dazu, dass das Popup wieder unsichtbar geschaltet wird.
function writeFatalErrorMessage(msg, i) {
toggleErrorPopup(msg, i);
}
function showZeiterfassungsError(msg) {
$("#zeiterfassungsErrorTableRow").css("display", "table-row");
$("#zeiterfassungsErrorTableCell").css("display", "table-cell");
$("#zeiterfassungsErrorDisplay").html(msg + "<br />");
}
function clearZED() {
$("#zeiterfassungsErrorTableRow").css("display", "none");
$("#zeiterfassungsErrorDisplay").empty();
}
function showCustomers() {
$("#customersDropDown").val($("#customersDropDown option").eq(0).val());
preselectCustomer();
$("#zeiterfassung").css("display", "none");
$("#klienten").css("display", "block");
$("#KalenderNavigation").css("display", "none");
$("#Kalender").css("display", "none");
$("#map-canvas").css("width", $("#klientenTabelle").width());
$("#map-canvas").css("height", "500px");
$("#UnterschriftBereich").css("display", "none");
$("#Statistics").css("display", "none");
$("#SupportStatistik").css("display", "none");
$("#colorRibbon").css("background-color", "#3b7799");
toggleMenu();
}
function showKalender() {
$("#customersDropDown").val($("#customersDropDown option").eq(0).val());
$("#zeiterfassung").css("display", "none");
$("#KalenderNavigation").css("display", "block");
$("#Kalender").css("display", "block");
$("#klienten").css("display", "none");
$("#colorRibbon").css("background-color", "#04b4d0");
$("#UnterschriftBereich").css("display", "none");
$("#Statistics").css("display", "none");
$("#SupportStatistik").css("display", "none");
toggleMenu();
initCalendar();
}
function showUsAendern() {
$("#TerminSpeichern").prop('disabled', false);
$("#AenderePopupDivSchalter").val("true");
}
function showUsVerwerfen() {
if ($("#AenderePopupDivSchalter").val() === "true") {
toggleUpdateAppointmentPopup("Wollen Sie wirklich abbrechen und Ihre Änderungen verwerfen?");
$("#AenderePopupDivSchalter").val("false");
} else {
hideEditForm();
}
}
function initCalendar() {
$("#versteckt").val("Speichern");
$("html, body").animate({ scrollTop: 0 }, "fast");
var newtoday;
var datumStr = $("#KalenderDatum").val();
var nextdatum;
if(datumStr === "") {
nextdatum = new Date();
var ddi0 = nextdatum.getDate();
var mmi0 = nextdatum.getMonth() + 1;
var yyyyi0 = nextdatum.getFullYear();
var ddStri0 = ddi0 < 10 ? "0" + ddi0 : ddi0;
var mmStri0 = mmi0 < 10 ? "0" + mmi0 : mmi0;
$("#KalenderDatum").val(yyyyi0 + "-" + mmStri0 + "-" + ddStri0);
newtoday = ddStri0 + '.' + mmStri0 + "." + yyyyi0;
$("#KalenderDatumFormat").val(newtoday);
loadAppointments(newtoday);
}
}
function initAppointmentEditForm() {
var currTime = new Date();
if (currTime.getMinutes() <= 30) {
var k = 30 - currTime.getMinutes();
currTime.setMinutes(currTime.getMinutes() + k);
}
if (currTime.getMinutes() > 30) {
var j = 60 - currTime.getMinutes();
currTime.setMinutes(currTime.getMinutes() + j);
}
$("#AppointmentEditForm").show();
$("#KalenderTable").hide();
$("#KalenderNavigation").hide();
$("#KalenderTableTask").hide();
$("#StartDate").val($("#KalenderDatumFormat").val());
$("#EndDate").val($("#KalenderDatumFormat").val());
$("#TerminStartZeit").val(getHoursAndMinutesWithLeadingZeros(currTime));
$("#TerminEndZeit").val("");
$("#TerminBetreff").val("");
$("#TerminNotiz").val("");
$("#TerminBetreffLabel").val("Betreff");
$("#StartDate").prop("readonly", false);
$("#EndDate").prop("readonly", false);
$("#TerminStartZeit").prop("readonly", false);
$("#TerminEndZeit").prop("readonly", false);
$("#TerminBetreff").prop('readonly', false);
$("#TerminNotiz").prop("readonly", false);
$("#TerminSpeichern").val("Speichern");
$("#TerminSpeichernAbbrechen").val("Abbrechen");
$("#TerminSpeichern").hide();
$("#InsertAppointmentButton").css("display", "inline");
}
function hideEditForm() {
$("#AppointmentEditForm").hide();
$("#KalenderTable").show();
$("#KalenderNavigation").show();
$("#KalenderTableTask").show();
$("#StartDate").val("");
}
function showServiceRecords() {
location.reload();
$("#customersDropDown").val($("#customersDropDown option").eq(0).val());
$("#klientenTabelle").hide();
$("#zeiterfassung").show();
$("#KalenderNavigation").hide();
$("#klienten").hide();
$("#Kalender").hide();
$("#colorRibbon").css("background-color", "#c80000");
$("#UnterschriftBereich").hide();
$("#Statistics").show();
$("#SupportStatistik").hide();
toggleMenu();
}
function goBackToZeiterfassung() {
showSanduhr();
$("#customersDropDown").val($("#customersDropDown option").eq(0).val());
$("#klientenTabelle").hide();
$("#zeiterfassung").show();
$("#KalenderNavigation").hide();
$("#klienten").hide();
$("#Kalender").hide();
$("#colorRibbon").css("background-color", "#c80000");
$("#UnterschriftBereich").hide();
$("#Statistics").show();
$("#SupportStatistik").hide();
}
function klientenLaden() {
$("#map-canvas").fadeOut();
showSanduhr();
var oid = parseInt($("#customersDropDown").find(":selected").val());
if(oid === -1) {
$("#klientenTabelle").hide();
$("#umfeldContainer").hide();
$("#kommentarContainer").hide();
$("#aktenzeichenContainer").hide();
hideSanduhr();
return;
}
makeAjaxCall("GET", getSelectedCustomerUrl, function (json) {
$("#klientenTabelle").show();
$("#umfeldContainer").show();
$("#kommentarContainer").show();
$("#aktenzeichenContainer").show();
if(json === "SessionTimeout") {
window.location.href = window.redirectLink;
return;
}
vm.update($.parseJSON(json));
$(".toggle-btn2").click(function () {
toggleOnclick(this);
});
},
{
customerOid: oid
},
hideSanduhr);
}
function KlientenVM() {
this.vorname = ko.observable("");
this.nachname = ko.observable("");
this.geburtstag = ko.observable("");
this.geschlecht = ko.observable("");
this.adresszusatz = ko.observable("");
this.strasse = ko.observable("");
this.plz = ko.observable("");
this.ort = ko.observable("");
this.rechnungsadressename = ko.observable("");
this.rechnungsadressestrasse = ko.observable("");
this.rechnungsadressepostleitzahl = ko.observable("");
this.rechnungsadresseort = ko.observable("");
this.email = ko.observable("");
this.pureemail = ko.observable("");
this.fax = ko.observable("");
this.telefon = ko.observable("");
this.handy = ko.observable("");
this.umfeldpersonen = ko.observableArray([]);
this.Wohnheim = ko.observable("");
this.mobileLink = ko.observable("");
this.landLineLink = ko.observable("");
this.kommentar = ko.observable("");
this.aktenzeichenMitNotiz = ko.observableArray([]);
this.update = function(data) {
this.vorname(data.Vorname);
this.nachname(data.Nachname);
this.geburtstag(data.Geburtstag);
this.geschlecht(data.Geschlecht);
this.adresszusatz(data.Adresszusatz);
this.strasse(data.Strasse);
this.plz(data.Postleitzahl);
this.ort(data.Ort);
this.rechnungsadressename(data.RechnungsadresseName);
this.rechnungsadressestrasse(data.RechnungsadresseStrasse);
this.rechnungsadressepostleitzahl(data.RechnungsadressePostleitzahl);
this.rechnungsadresseort(data.RechnungsadresseOrt);
this.email('mailto:' + data.EMail);
this.pureemail(data.EMail);
this.fax(data.Fax);
this.telefon(data.Telefon);
this.handy(data.Handy);
this.mobileLink('tel:' + data.Handy);
this.landLineLink('tel:' + data.Telefon);
this.kommentar(data.Kommentar);
var mappedUmfeldpersonen = $.map(data.Umfeldpersonen, function(item) { return new UmfPers(item); });
var mappedAktenzeichen = $.map(data.ReferenceNumbers, function (item) { return new AktenzeichenMitNotiz(item); });
if(mappedUmfeldpersonen.length === 0) {
$("#WohnheimContainer").css("display", "none");
}
this.umfeldpersonen(mappedUmfeldpersonen);
this.aktenzeichenMitNotiz(mappedAktenzeichen);
calcPropFieldMinSizes();
updateEigenschaftsfelder();
};
}
function AktenzeichenMitNotiz(referenceNumberAndNotice) {
var self = this;
self.aktenzeichen = ko.observable(referenceNumberAndNotice.ReferenceNumber);
self.notiz = ko.observable(referenceNumberAndNotice.Notice);
self.kostentraeger = ko.observable(referenceNumberAndNotice.Costbearer);
self.update = function(updateData) {
self.aktenzeichen(updateData.ReferenceName);
self.notice(updateData.Notice);
self.kostentraeger(updateData.Costbearer);
}
}
function UmfPers(initdata) {
var self = this;
self.umfvorname = ko.observable(initdata.Vorname);
self.umfnachname = ko.observable(initdata.Nachname);
self.umfstrnr = ko.observable(initdata.StrNameNr);
self.umfplzort = ko.observable(initdata.PLZOrt);
self.umftelnr = ko.observable("tel:" + initdata.TelNr);
self.nurtelnr = ko.observable(initdata.TelNr);
self.nurmobil = ko.observable(initdata.Mobil);
self.umfmobil = ko.observable("tel:" + initdata.Mobil);
self.umfemail = ko.observable("mailto:" + initdata.EMail);
self.nuremail = ko.observable(initdata.EMail);
self.umffax = ko.observable(initdata.Fax);
self.umfrolle = ko.observable(initdata.Rolle);
self.umftitel = ko.observable(initdata.Titel);
self.formattedName = ko.computed(function () {
var titel = self.umftitel() ? self.umftitel() + " " : "";
return titel + self.umfvorname() + " " + self.umfnachname();
});
self.update = function(updatedata) {
self.umfvorname(updatedata.Vorname);
self.umfnachname(updatedata.Nachname);
self.umfstrnr(updatedata.StrNameNr);
self.umfplzort(updatedata.PLZOrt);
self.umfmobil("tel:" + updatedata.Mobil);
self.nurmobil(updatedata.Mobil);
self.umfemail("mailto:" + updatedata.EMail);
self.nuremail(ko.observable(updatedata.EMail));
self.umffax(updatedata.Fax);
self.umfrolle(updatedata.Rolle);
self.umftitel(updatedata.Titel);
self.umftelnr("tel:" + updatedata.TelNr);
self.nurtelnr(updatedata.TelNr);
}
}
minSizes = undefined;
function calcPropFieldMinSizes() {
var width = 0;
var height = 0;
var elementCount = 0;
$(".eigenschaftsdiv").each(
function (index, element) {
var x = $(element).clone().css({ "height": "auto", "width": "auto" }).appendTo("body");
var temporaryWidth = x.outerWidth(true);
var temporaryHeight = x.outerHeight(true);
x.remove();
elementCount++;
if(temporaryWidth > width) {
width = temporaryWidth;
}
if(temporaryHeight > height) {
height = temporaryHeight;
}
}
);
window.minSizes = { minWidth: width, minHeight: height, divCount: elementCount };
}
function updateEigenschaftsfelder() {
var customerTableWidth = $("#klientenTabelle").width();
$("#map-canvas").css("width", customerTableWidth - 16);
$("#map-canvas").css("height", customerTableWidth - 16);
if(minSizes === undefined) {
return;
}
var mitPadding = minSizes.minWidth;
var maxAnzahl = parseInt(customerTableWidth / mitPadding);
if(maxAnzahl > minSizes.divCount) {
maxAnzahl = minSizes.divCount;
}
var width = parseInt(customerTableWidth / maxAnzahl) - 16;
if(minSizes !== undefined) {
$(".eigenschaftsdiv").each(
function (index, element) {
$(element).css("width", width + "px");
$(element).css("height", (minSizes.minHeight - 16) + "px");
}
);
}
}
$(window).resize(function () {
if($("#klientenTabelle").css("display") === "block") {
updateEigenschaftsfelder();
}
updateDokuTabLinks();
});
function showSanduhr() {
$(".modalWrapper").show();
$(".modalWrapper").css("height", $(document).height());
$(".warte-animation").css("display", "inline-block");
}
function hideSanduhr() {
if($("#errorPopupDiv").css("display") === "none" && $("#popupDiv").css("display") === "none") {
$(".modalWrapper").hide();
$(".modalWrapper").css("height", "0");
}
if($("#SuccessPopupDiv").css("display") === "none" && $("#popupDiv").css("display") === "none") {
$(".modalWrapper").hide();
$(".modalWrapper").css("height", "0");
}
if($("#AendernPopupDiv").css("display") === "none" && $("#popupDiv").css("display") === "none") {
$(".modalWrapper").hide();
$(".modalWrapper").css("height", "0");
}
$(".warte-animation").hide();
}
function submitDeletionForm() {
showSanduhr();
$("#deletionForm").submit();
}
function toggleErrorPopup(errorMessage, i) {
var isDisplayNone = $("#errorPopupDiv").css("display") === "none";
var displayValue = isDisplayNone ? "block" : "none";
$("#errorPopupDiv").css("display", displayValue);
$(".modalWrapper").css("display", displayValue);
$(".modalWrapper").css("height", $(document).height());
if(isDisplayNone ) {
$("#errorPopupText").text(errorMessage);
if(i === 1) {
$("#errorPopupTitle").text("Info");
$("#errorPopupOkBtn").onclick = "toggleErrorPopup('')";
} else if(i === 2) {
$("#errorPopupTitle").text("Fehler");
$("#errorPopupOkBtn").onclick = "toggleErrorPopup('')";
clearLocalStorage(1);
//SaveOnly(); // Speichere Daten bei absturz
}
else {
$("#errorPopupTitle").text("Fehler");
$("#errorPopupOkBtn").onclick = "toggleErrorPopup('')";
}
var errorPopupTitleOuterHeight = $("#errorPopupTitle").outerHeight();
var errorPopupTextOuterHeight = $("#errorPopupText").outerHeight();
var errorPopupButtonOuterHeight = $("#errorPopupBtnDiv").outerHeight();
var errorPopupOkButtonOuterHeight = $("#errorPopupOkBtn").outerHeight();
var height = errorPopupTitleOuterHeight + errorPopupTextOuterHeight + errorPopupButtonOuterHeight + errorPopupOkButtonOuterHeight + errorPopupOkButtonOuterHeight;
$("#errorPopupDiv").css("height", height + "px");
$("#errorPopupDiv").css("top", window.pageYOffset + window.innerHeight / 2 - height / 2);
$("#errorPopupDiv").css("margin-top", "0");
} else {
$("#errorPopupDiv").css("margin-top", "auto");
}
}
function toggleSuccessPopup(message, i) {
var isDisplayNone = $("#SuccessPopupDiv").css("display") === "none";
var displayValue = isDisplayNone ? "block" : "none";
$("#SuccessPopupDiv").css("display", displayValue);
$(".modalWrapper").css("display", displayValue);
$(".modalWrapper").css("height", $(document).height());
$("#SuccessPopupOkBtn").val("OK");
if(i === 2) {
$(".SuccessPopupUSchrift").css("display", "none");
}
else if(i === 3) {
$(".SuccessPopupUSchrift").css("display", "none");
$("#SuccessPopupTitle").text("Es ist leider ein Fehler aufgetreten!");
}
else if(i === 4) {
$(".SuccessPopupUSchrift").css("display", "inline");
$("#SuccessPopupOkBtn").val("Nein");
}
else {
$(".SuccessPopupUSchrift").css("display", "inline");
}
if(isDisplayNone) {
$("#SuccessPopupText").text(message);
var successPopupTitleOuterHeight = $("#SuccessPopupTitle").outerHeight();
var successPopupTextOuterHeight = $("#SuccessPopupText").outerHeight();
var successPopupButtonOuterHeight = $("#SuccessPopupBtnDiv").outerHeight();
var successPopupOkButtonOuterHeight = $(".SuccessPopupOkBtn").outerHeight();
var successPopupSignatureButtonOuterHeight = $(".SuccessPopupUSchrift").outerHeight();
var height = successPopupTitleOuterHeight + successPopupTextOuterHeight + successPopupButtonOuterHeight + successPopupOkButtonOuterHeight + successPopupSignatureButtonOuterHeight;
$("#SuccessPopupDiv").css("height", height + "px");
$("#SuccessPopupDiv").css("top", window.pageYOffset + window.innerHeight / 2 - height / 2);
$("#SuccessPopupDiv").css("margin-top", "0");
} else {
$("#SuccessPopupDiv").css("margin-top", "auto");
}
}
function toggleUpdateAppointmentPopup(message) {
var isDisplayNone = $("#AendernPopupDiv").css("display") === "none";
var displayValue = isDisplayNone ? "block" : "none";
$("#AendernPopupDiv").css("display", displayValue);
$(".modalWrapper").css("display", displayValue);
$(".modalWrapper").css("height", $(document).height());
if(isDisplayNone) {
$("#AendernPopupText").text(message);
var aendernPopupTitleOuterHeight = $("#AendernPopupTitle").outerHeight();
var aenderPopupTextOuterHeight = $("#AendernPopupText").outerHeight();
var aendernPopupButtonDivOuterHeight = $("#AendernPopupBtnDiv").outerHeight();
var aendernPopupOkButtonOuterHeight = $(".AendernPopupOkBtn").outerHeight();
var aendernPopupSignatureOuterHeight = $(".AendernPopupUSchrift").outerHeight();
var height = aendernPopupTitleOuterHeight + aenderPopupTextOuterHeight + aendernPopupButtonDivOuterHeight + aendernPopupOkButtonOuterHeight + aendernPopupSignatureOuterHeight;
$("#AendernPopupDiv").css("height", height + "px");
$("#AendernPopupDiv").css("top", window.pageYOffset + window.innerHeight / 2 - height / 2);
$("#AendernPopupDiv").css("margin-top", "0");
} else {
$("#AendernPopupDiv").css("margin-top", "auto");
}
}
function confirmErrorPopup() {
toggleErrorPopup("");
}
function clearRecords() {
$("#serviceRecords").empty();
}
function preselectCustomer() {
$.ajax({
type: "GET",
url: getSupportConceptCustomerUrl,
success: function (json) {
if(json === "NoSupportConceptSelected") {
return;
}
var valueToSelect = $.parseJSON(json);
$("#customersDropDown option").each(function () {
if(this.value === valueToSelect === true) {
$("#customersDropDown").val(valueToSelect);
$("#customersDropDown").trigger("change");
return false;
} else {
return true;
}
});
}
});
}
function setSelectedEmployee() {
var oid = parseInt($("#employeesDropDown").find(":selected").val());
if(isNaN(oid)) {
return;
}
window.serviceRecordEmployeeOid = oid;
makeAjaxCall("GET", setServiceRecordEmployeeUrl, null, { employeeOid: window.serviceRecordEmployeeOid }, null);
}
function SaveOnly() {
if(typeof Storage !== "undefined") {
clearLocalStorage(1);
var costBearer2SupportConceptOid = $("#scDropDown").val();
var hilfeplan = $("#scDropDown option[value='" + zahl + "']").text();
var mitarbeiter = $("#employeesDropDown option:selected").text();
var kategorie = $("#kategorien_select option:selected").text();
var leistung = $("#leistungen_select option:selected").val();
var duration = $("#duration_textbox").val();
var notiz = $("#notiz_textbox").val();
var notiz2, notiz3, notiz4, notiz5;
if($("#notiz_textbox1").val() !== "") {
notiz = $("#notiz_textbox1").val();
}
if($("#notiz_textbox2").val() !== "") {
notiz2 = $("#notiz_textbox2").val();
}
if($("#notiz_textbox3").val() !== "") {
notiz3 = $("#notiz_textbox3").val();
}
if($("#notiz_textbox4").val() !== "") {
notiz4 = $("#notiz_textbox4").val();
}
if($("#notiz_textbox5").val() !== "") {
notiz5 = $("#notiz_textbox5").val();
}
localStorage.setItem("Zeitdaten", new LocalServiceRecord(costBearer2SupportConceptOid, hilfeplan, mitarbeiter, kategorie, leistung, $("#datum_textbox").val(), $("#start_textbox").val(), $("#ende_textbox").val(), duration, notiz, notiz2, notiz3, notiz4, notiz5, $("#enddatum_textbox").val()));
}
}
function clearLocalStorage(i) {
if(i === 1) {
localStorage.removeItem("Zeitdaten");
}
if(i === 2) {
localStorage.removeItem("Kalenderdaten");
}
}
function saveZeiterfassungAfterCrash(datum, startd, endd, dauer, doku, leistung, costBearer2SupportConceptOid, doku2, doku3, doku4, doku5, enddatum) {
var x = getDateObj(true);
var y = getDateObj(false);
var vonDatum = getDateTimeStringWithLeadingZeros(x);
var bisDatum = getDateTimeStringWithLeadingZeros(y);
if (costBearer2SupportConceptOid === -2) {
$.ajax({
type: "GET",
url: saveZeiterfassungAfterCrashUrl,
data: {
pDatum: datum,
pStartDate: startd,
pEndDate: endd,
pDuration: dauer,
pNotice: doku,
pServiceDescription: leistung,
pNotice2: doku2,
pNotice3: doku3,
pNotice4: doku4,
pNotice5: doku5,
pEndDate2: enddatum
}, success: null, error: null
});
} else {
$.ajax({
type: "GET",
url: CheckRightsAfterCrashUrl,
data: { von: vonDatum, bis: bisDatum, inEditMode: false, dateString: datum, startString: startd, endString: endd, costbearerOId: costBearer2SupportConceptOid, leistung:leistung},
success: function (json) {
var hasSufficientRights = json;
if (hasSufficientRights === "True") {
$.ajax({
type: "GET",
url: saveZeiterfassungAfterCrashUrl,
data: { Datum: datum, StartD: startd, EndeD: endd, Dauer: dauer, Doku: doku, Leistungen: leistung, Doku2: doku2, Doku3: doku3, Doku4: doku4, Doku5: doku5, EndDatum: enddatum }, success: function () { }, error: function () { writeFatalErrorMessage("Es konnte keine verbindung zum Server aufgebaut werden. Bitte überprüfen sie ihre Internet Verbindung."); /*$("#scDropDown option[value='" + oid + "']").attr('selected', true).trigger("change");*/ }
});
} else {
clearLocalStorage(1);
setTimeout(function () {
$("#scDropDown option[value='" + costBearer2SupportConceptOid + "']").attr("selected", true).trigger("change");
}, 4500);
}
}, error: function () {
clearLocalStorage(1);
writeFatalErrorMessage("Es konnte keine Verbindung zum Server aufgebaut werden. Bitte überprüfen Sie Ihre Internetverbindung.");
// $("#scDropDown option[value='" + costBearer2SupportConceptOid + "']").attr('selected', true).trigger("change");
}
});
}
}
function showErrorAfterCrash() {
var errorAfterCrashSwitch = $("#ErrorZeiterfassungAfterCrashSchalter");
var switchValue = errorAfterCrashSwitch.val();
var errorMessage = "";
if(switchValue === 2 || switchValue === 3) {
errorMessage = "Es konnte keine Verbindung zum Server aufgebaut werden. Bitte überprüfen sie ihre Internet Verbindung.";
} else if(switchValue === 4) {
errorMessage = "Das Datum liegt außerhalb des Zeitraumes des gewählten Hilfeplans. Der Eintrag kann nicht gespeichert werden.";
} else if(switchValue === 5) {
errorMessage = "Die eingegebene Uhrzeit ist ungültig. Der Eintrag kann nicht gespeichert werden.";
}
if(errorAfterCrashSwitch.val() > 1) {
writeFatalErrorMessage(errorMessage);
errorAfterCrashSwitch.val(1);
clearLocalStorage(1);
setTimeout(function() {
$.ajax({
type: "GET",
url: ErrorZeiterfassungAnzeigenUrl,
data: { errorwert: 1 }
});
}, timeOut);
}
}
function focusOnTab(tabIdentifier) {
focusOnDoku(tabIdentifier);
}
function focusOnDoku(number) {
setTimeout(function() {
var displayValue;
for (var i = 0; i < window.numberOfDocumentationTypes; i++) {
var idNumber = i + 1;
displayValue = idNumber === number ? "block" : "none";
if (idNumber === number) {
$("#doku-name-" + idNumber).addClass("active");
} else {
$("#doku-name-" + idNumber).removeClass("active");
}
$("#doku-tab-content-" + idNumber).css("display", displayValue);
$("#notiz_textbox" + idNumber).css("display", displayValue);
}
var f = number - 1;
var c = window.numberOfDocumentationTypes;
for (var e = 0; e < window.numberOfDocumentationTypes; e++) {
if ((e > f || e < f - 1) && e < c - 1) {
$("#doku-name-" + (e + 1)).css("border-right", "1px solid #bbbbbb");
}
}
$("#notiz_textbox" + number).get(0).focus();
window.focusedDokuTextarea = $("#notiz_textbox" + number);
}, 100);
}
function updateDokuTabLinks() {
if (numberOfDocumentationTypes !== undefined && numberOfDocumentationTypes > 1) {
var height = 0;
$(".doku-tab-link").css("height", "auto");
for (var i = 0; i < numberOfDocumentationTypes; i++) {
var idNumber = i + 1;
var dokuTab = $("#doku-name-" + idNumber);
var outerHeight = dokuTab.outerHeight();
if (outerHeight > height) {
height = outerHeight;
}
}
$(".doku-tab-link").css("height", height + "px");
}
}