Files
BeWoPlaner/BeWoPlanerMobil/Scripts/calendar.js
2018-12-13 07:15:24 -04:00

295 lines
11 KiB
JavaScript

var currentAppointment;
var selectedAppointmentOid, selectedAppointmentSubject, selectedAppointmentNotice, selectedAppointmentStartDate, selectedAppointmentEndDate, selectedAppointmentDate;
array2 = new Array();
appointments = new Array();
function saveOnlyKalender() {
if(navigator.onLine) {
clearLocalStorage(2);
localStorage.setItem("Kalenderdaten", currentAppointment);
location.reload();
}
}
function loadAppointments(newtoday) {
$.ajax({
type: "GET",
url: loadAppointmentsUrl,
data: { newtoday: newtoday },
success: function(json) {
var kalenderRec = $.parseJSON(json);
var html = "";
$("#KalenderTable").empty();
var i = 0;
$.each(kalenderRec, function(index, termin) {
var description = termin.Subject;
var startD = termin.StartDate;
var endD = termin.EndDate;
var date = new Date(startD);
var dateend = new Date(endD);
appointments[termin.SchedulerAppointmentOid] = termin;
//html += `<tr class="testklasse"><td class="kalender-td kalender-uhrzeit">${getHoursAndMinutesWithLeadingZeros(date)} - ${getHoursAndMinutesWithLeadingZeros(dateend)}</td><td class="kalender-td" onclick="appointmentOnClick(${termin.SchedulerAppointmentOid})">${description}</td></tr>`;
html += '<tr class="testklasse"><td class="kalender-td kalender-uhrzeit">' + getHoursAndMinutesWithLeadingZeros(date) + ' - ' + getHoursAndMinutesWithLeadingZeros(dateend) + '</td><td class="kalender-td" onclick="appointmentOnClick(' + termin.SchedulerAppointmentOid + ')">' + description + '</td></tr>';
i++;
});
$("#KalenderTable").append(html);
loadBeWoTask(newtoday);
}
});
}
function appointmentOnClick(appointmentOid) {
if(appointmentOid === null) {
return;
}
var selectedAppointment = appointments[appointmentOid];
if(selectedAppointment.RecurrenceInfo !== null) {
return;
}
var startDate = new Date(selectedAppointment.StartDate);
var endDate = new Date(selectedAppointment.EndDate);
var startTime = getHoursAndMinutesWithLeadingZeros(startDate);
var endTime = getHoursAndMinutesWithLeadingZeros(endDate);
window.selectedAppointmentOid = selectedAppointment.SchedulerAppointmentOid;
$("#AppointmentEditForm").css("display", "block");
$("#KalenderTable").css("display", "none");
$("#KalenderNavigation").css("display", "none");
$("#KalenderTableTask").css("display", "none");
$("#StartDate").val(getDateStringWithLeadingZeros(startDate));
$("#EndDate").val(getDateStringWithLeadingZeros(endDate));
$("#TerminStartZeit").val(startTime);
$("#TerminEndZeit").val(endTime);
$("#TerminBetreff").val(selectedAppointment.Subject);
$("#TerminNotiz").val(selectedAppointment.Description);
$("#TerminSpeichernAbbrechen").val("Schließen");
$("#TerminSpeichern").val("Speichern");
$("#TerminSpeichern").prop("disabled", true);
$("#TerminSpeichern").css("display", "inline");
$("#InsertAppointmentButton").css("display", "none");
}
function updateSelectedAppointment() {
$.ajax({
type: "POST",
url: updateAppointmentUrl,
data: {
oid: selectedAppointmentOid,
betreff: currentAppointment.subject,
notice: currentAppointment.notice,
startZeit: currentAppointment.startTime,
endZeit: currentAppointment.endTime,
day: currentAppointment.startDate,
endDate: currentAppointment.endDate
}, success: function() {
var dp = $("#KalenderDatumFormat").val();
var dateParts = dp.split(".");
var nextdatum2 = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
$("#KalenderDatum").val(toDateStringYearMonthDay(nextdatum2));
$("#KalenderDatumFormat").val(dp);
$("#AppointmentEditForm").css("display", "none");
$("#KalenderTable").css("display", "block");
$("#KalenderNavigation").css("display", "block");
$("#KalenderTableTask").css("display", "block");
loadAppointments(dp);
}
});
}
function updateAppointmentOnClick() {
if(checkAppointmentFields()) {
updateSelectedAppointment();
}
}
function checkAppointmentFields() {
var newAppointmentStartDate = $("#StartDate").val();
var newAppointmentEndDate = $("#EndDate").val();
var newAppointmentStartTime = $("#TerminStartZeit").val();
var newAppointmentEndTime = $("#TerminEndZeit").val();
var newAppointmentSubject = $("#TerminBetreff").val();
if(newAppointmentStartDate === "" || newAppointmentEndDate === "" || newAppointmentStartTime === "" || newAppointmentEndTime === "" || newAppointmentSubject === "") {
writeFatalErrorMessage("Bitte geben Sie Uhrzeit und Betreff ein.");
return false;
}
currentAppointment = new Appointment(newAppointmentStartDate, newAppointmentStartTime, newAppointmentEndTime, newAppointmentSubject, $("#TerminNotiz").val(), newAppointmentEndDate);
return true;
}
function insertAppointmentOnClick() {
if(checkAppointmentFields()) {
insertNewAppointment(currentAppointment.startDate, currentAppointment.startTime, currentAppointment.endTime, currentAppointment.subject, currentAppointment.notice, currentAppointment.endDate);
}
}
function insertNewAppointmentAfterCrash(pDay, pStartTime, pEndTime, pSubject, pNotice, pEndDate) {
$.ajax({
type: "GET",
url: insertAppointmentUrl,
data: {
pStartDate: pDay,
pStartTime: pStartTime,
pEndTime: pEndTime,
pSubject: pSubject,
pNotice: pNotice,
pEndDate: pEndDate
}, success: null, error: null
});
}
function insertNewAppointment(pStartDate, pStartTime, pEndTime, pSubject, pNotice, pEndDate) {
$.ajax({
type: "GET",
url: insertAppointmentUrl,
data: {
pStartDate: pStartDate,
pStartTime: pStartTime,
pEndTime: pEndTime,
pSubject: pSubject,
pNotice: pNotice,
pEndDate: pEndDate
}, success: function() {
$("#AppointmentEditForm").css("display", "none");
$("#KalenderTable").css("display", "block");
$("#KalenderNavigation").css("display", "block");
$("#KalenderTableTask").css("display", "block");
loadAppointments(pStartDate);
}, error: function() {
/*saveOnlyKalender();*/
}
});
}
function selectDate() {
var dp = $("#KalenderDatumFormat").val();
var dateParts = dp.split(".");
var nextdatum2 = new Date(dateParts[2], (dateParts[1] - 1), dateParts[0]);
$("#KalenderDatum").val(toDateStringYearMonthDay(nextdatum2));
$("#KalenderDatumFormat").val(dp);
loadAppointments(dp);
}
function previousDayButtonClick() {
var nextdatum = new Date($("#KalenderDatum").val());
nextdatum.setDate((nextdatum.getDate() - 1));
$("#KalenderDatum").val(toDateStringYearMonthDay(nextdatum));
var newtoday = getDateStringWithLeadingZeros(nextdatum);
$("#KalenderDatumFormat").val(newtoday);
loadAppointments(newtoday);
}
function loadBeWoTask(newtoday) {
$.ajax({
type: "GET",
url: loadBewoTasksUrl,
data: { newtoday: newtoday },
success: function(json) {
var kalenderRec = $.parseJSON(json);
var html = "";
$("#KalenderTableTask").empty();
var zahl = 0;
$.each(kalenderRec, function(index, termin) {
var description = termin.Title;
var date = new Date(termin.DueDate);
if(zahl === 0) {
html += "<thead><tr><th style='width: 150px; border-bottom: solid 1px #D8D8D8;'>Aufgaben</th><th style='width: 80%; border-bottom: solid 1px #D8D8D8;'></th></tr></thead>";
}
//var minutes = date.getMinutes() < 10 ? `0${date.getMinutes().toString()}` : date.getMinutes().toString();
//var hours = date.getHours() < 10 ? `0${date.getHours().toString()}` : date.getHours().toString();
var minutes = date.getMinutes() < 10 ? '0' + date.getMinutes().toString() : date.getMinutes.toString();
var hours = date.getHours() < 10 ? '0' + date.getHours().toString() : date.getHours().toString();
var farbe = "2B508B";
//html += `<tr><td style="width: 150px; border-bottom: solid 1px #D8D8D8;">${hours.fontcolor(farbe)}:${minutes.fontcolor(farbe)} </td><td style="width: 80%; border-bottom: solid 1px #D8D8D8;">${description}</td></tr>`;
html += '<tr><td style="width: 150px; border-bottom: solid 1px #D8D8D8;">'+hours.fontcolor(farbe)+':' + minutes.fontcolor(farbe) + ' </td><td style="width: 80%; border-bottom: solid 1px #D8D8D8;">' + description + '</td></tr>';
zahl++;
});
$("#KalenderTableTask").append(html);
}
});
}
function LoadOnly(i, x) {
var serviceRecord = localStorage.getItem("Zeitdaten");
var appointment = localStorage.getItem("Kalenderdaten");
if(serviceRecord !== null || appointment !== null) {
if(serviceRecord !== null && i === 1) {
if(serviceRecord.startTime !== "" && serviceRecord.endTime !== "" && serviceRecord.duration !== "" && serviceRecord.notice !== "" && serviceRecord.supportConceptIndex !== "" && serviceRecord.date !== "") {
writeFatalErrorMessage("Es ist ein nicht gespeicherter Eintrag vorhanden. Dieser wird nun an den Server gesendet.");
setTimeout(function() {
saveZeiterfassungAfterCrash(serviceRecord.date, serviceRecord.startTime, serviceRecord.endTime, serviceRecord.duration, serviceRecord.notice, serviceRecord.serviceCategory, serviceRecord.costBearer2SupportConceptOid, serviceRecord.notice2, serviceRecord.notice3, serviceRecord.notice4, serviceRecord.notice5, serviceRecord.endDate);
clearLocalStorage(1);
showServiceRecords();
}, timeOut);
}
}
if(kalenderdata !== null && x === 2) {
if (appointment !== null && appointment.isValid()) {
writeFatalErrorMessage("Es ist ein nicht gespeicherter Kalendereintrag vorhanden. Dieser wird nun an den Server gesendet.", 1);
setTimeout(function() {
insertNewAppointmentAfterCrash(appointment.startDate, appointment.startTime, appointment.endTime, appointment.subject, appointment.notice, appointment.endDate);
clearLocalStorage(2);
showServiceRecords();
}, timeOut);
}
}
}
}
function nextDayButtonClick() {
var nextdatum = new Date($("#KalenderDatum").val() + "T00:00:00Z");
nextdatum.setDate((nextdatum.getDate() + 1));
$("#KalenderDatum").val(toDateStringYearMonthDay(nextdatum));
var newtoday = getDateStringWithLeadingZeros(nextdatum);
$("#KalenderDatumFormat").val(newtoday);
loadAppointments(newtoday);
}