Files
sternwarte/sternwarte/beoanswer/js/beoanswer.js

319 lines
7.7 KiB
JavaScript
Executable File

/*
*
*******************
2025-06-16:
Da leider kein CRON auf dem Webserver läuft, kann 'checkfuehrung' bis auf
Weiteres nicht weiter gepflegt bzw. ausgeführt werden. 'checkfuehrung' ist
für dieses Programm )beoanswer) hier notwendig.
*******************
*/
$(document).ready(function() {
let sendobject = {
stattgefunden: false,
anzahl: 0,
spende:0,
betrag:0,
rem:'',
newtermin: '1900-01-01',
};
let ajaxURL = '../../intern/sofue/php/sofueDB.php'
$('#versn').html("Version: " + VERSION + ' vom ' + VDATE);
console.log("von php:", url_id);
// Daten der Führung holen
if(url_id != null) {
doAjaxCall_arr(ajaxURL,{cmd: 'GET_ONE', id: url_id}, enterajaxerg);
} else {
alert("Keine ID übergeben");
return false
// throw new Error("Keine ID übergeben");
}
function enterajaxerg(erg) {
console.log(erg)
let t = $('#sofueHead').html();
$('#sofueHead').html(t+(erg.wtermin).substr(0,10));
$('#sofueName').html('für ' + erg.name);
}
// Change bei 'stattgefunden'
$('#inputstatt').change(function() {
let s = $('input[name="statt"]:checked').val();
console.log(s);
if(s == "nein") {
showAbsage();
sendobject.stattgefunden=false;
} else if (s=='ja') {
showBesucher();
sendobject.stattgefunden=true;
}
});
// der JA-Zweig
function showBesucher() {
$('#besucher').removeClass("hide");
}
$('#beszahl').keydown(e=>{
let keycode = e.keyCode || e.which;
if(keycode == 13) {
besucher = $('#beszahl').val();
if($.isNumeric(besucher)) {
console.log(besucher);
sendobject.anzahl = besucher;
showSpende();
} else {
alert("Nur Ziffern eingeben");
}
}
});
$('#btnOK0').click(()=>{
besucher = $('#beszahl').val();
if($.isNumeric(besucher)) {
console.log(besucher);
sendobject.anzahl = besucher;
showSpende();
} else {
alert("Nur Ziffern eingeben");
}
});
function showSpende() {
$('#diespende').removeClass("hide");
}
$('#inputspend').change(function() {
let spende=0;
let s = $('input[name="spend"]:checked').val();
console.log(s);
if(s == "bar") {
spende=1;
showBarspende();
} else {
showRemark();
if (s=='ueberweis') {
spende=2;
} else if (s=='kasse') {
spende=3;
}
}
sendobject.spende = spende;
});
function showBarspende() {
$('#barspend').removeClass("hide");
}
$('#barsp').keydown(e=>{
let keycode = e.keyCode || e.which;
if(keycode == 13) {
let barsp = $('#barsp').val();
if($.isNumeric(barsp)) {
console.log(barsp);
sendobject.betrag = barsp;
showRemark();
} else {
alert("Nur Ziffern eingeben");
}
}
});
$('#btnOK1').click(()=>{
let barsp = $('#barsp').val();
if($.isNumeric(barsp)) {
console.log(barsp);
sendobject.betrag = barsp;
showRemark();
} else {
alert("Nur Ziffern eingeben");
}
});
$('#btnOK2').click(()=>{
sendobject.rem = $('#remark').val();
showFertig();
});
function showRemark() {
let p = $('#btnOK2').offset();
$('#btnOK2').offset({top: p.top-10, left: p.left});
$('#remarks').removeClass('hide');
}
function showFertig() {
$('#fertig').removeClass("hide");
$('#btnsend').removeClass("hide");
}
// der NEIN-Zweig
function showAbsage() {
$('input[name="nostatt"]').prop('checked',"");
$('#inputabs').removeClass("hide");
}
// Change bei 'nicht stattt'
$('#inputabs').change(function() {
let s = $('input[name="nostatt"]:checked').val();
console.log(s);
if(s == "abgesagt") {
showFertig();
} else if (s == "verschoben") {
showVerschoben();
}
});
function showVerschoben() {
$('#verschbn').removeClass("hide");
// Picker für den neuen Termin
$('#newtermin').datetimepicker( // Initialisierung des datetimepickers
{
addSliderAccess: true,
sliderAccessArgs: { touchonly: false },
showOn: 'focus' , // onFocus wird der Picker angezeigt
timeFormat: 'HH:mm',
showMinute: true,
stepMinute: 15,
// showSecond: false,
// showMillisec: false,
// showMicrosec: false,
// showTimezone: false,
hourMin: 13,
dateFormat: "yy-mm-dd", // angezeigt wird in diesem Format
minDate: "+1d", // min Datum: morgen
closeText: "OK", // erst wenn OK geklickt wird, dann gehts weiter
timeText: "Uhrzeit", // Texte dazu
hourText: "Stunde",
onClose: function (dateText, inst) { // was passiert, wenn OK gedrückt wird:
if(dateText != "") {
var dt = moment(dateText).format('YYYY-MM-DD HH:mm');
$("#newtermin").html(dt);
sendobject.newtermin=dt;
showFertig();
}
}
});
}
// Datepicker auf Deutsch einstellen
$.datepicker.regional['de'] = {
closeText: '',
prevText: '<',
nextText: '>',
currentText: '',
monthNames: ['Januar','Februar','M&auml;rz','April','Mai','Juni',
'Juli','August','September','Oktober','November','Dezember'],
monthNamesShort: ['Jan','Feb','Mar','Apr','Mai','Jun',
'Jul','Aug','Sep','Okt','Nov','Dez'],
dayNames: ['Sonntag','Montag','Dienstag','Mittwoch','Donnerstag','Freitag','Samstag'],
dayNamesShort: ['SON','MON','DIE','MIT','DON','FRE','SAM'],
dayNamesMin: ['So','Mo','Di','Mi','Do','Fr','Sa'],
weekHeader: 'KW',
dateFormat: 'yyyy-mm-dd',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''
};
$.datepicker.setDefaults($.datepicker.regional['de']); // diese Einstellung nun übernehmen
// Buttons
$('#btncancel').click(()=>location.reload());
$('#btnsend').click(()=>{
console.log("Sende an Datenbank:");
console.log(sendobject);
clearAll(0);
let cmd = {
stattgefunden: sendobject.stattgefunden ? 1 : 0,
id: url_id,
cmd: 'UPDATEAFTER'
};
if(sendobject.stattgefunden) { // der Termin hat stattgefunden
cmd.besucher = sendobject.anzahl;
cmd.remark = sendobject.rem;
cmd.bezahlt = (function() {
console.log("sendobjc:", sendobject);
if( sendobject.spende == 1 ) {
return `bar Kasse (€${sendobject.betrag})`;
} else if (sendobject.spende == 2) {
return 'Überweisung';
} else if (sendobject.spende == 3) {
return 'Spendenkasse';
} else return 'Keine';
})()
} else { // der Termin hat NICHT stattgefunden
cmd.besucher = sendobject.anzahl;
cmd.remark = '';
cmd.bezahlt = 'Keine';
if(sendobject.newtermin != '1900-01-01') {
cmd.wtermin = sendobject.newtermin; // er wurde verlegt, also gibts einen neuen Wunschtermin
} else {
cmd.status = 3; // nicht stattgefunden -> abgesagt
}
}
console.log(cmd);
if(url_id != null) {
doAjaxCall_arr(ajaxURL,cmd,showajaxerg);
}
});
function clearAll(was) {
$('#tosend').addClass('hide');
$('#inputstatt').addClass('hide');
$('#fertig').addClass('hide');
$('#verschbn').addClass('hide');
$('#inputabs').addClass('hide');
$('#besucher').addClass('hide');
$('#diespende').addClass('hide');
$('#barspend').addClass('hide');
$('#remarks').addClass('hide');
}
function showajaxerg(erg) {
console.log("AjaxErg: ", erg);
$('#beendet').removeClass('hide');
}
// Klick auf den Anleitungs-Button
$('#btnMan').click(function() {
$("#anleitung").dialog('open');
});
// 3. Dialog für die Anleitung
// Dieser hat KEINEN Button (wird über das Schließkreuz beendet) und
// eine etwas kleinere Schrift
$("#anleitung").dialog({
autoOpen: false,
width: 400,
modal: true,
position: {my: 'top', at: 'top', of: window },
title: 'Anleitung',
open:
function() {
$(this).load('beoanswer.html');
},
buttons: [
{
text: "Abbrechen",
click : function() {
$(this).dialog("close");
},
width: 150,
}
],
});
});