// Das sind die Javascript-Funktionen fuer die FACOUS-Datenbank // blala von Pat 2021 ... htmlForm = false; diaWaitForForm = 0; wurdeGeaendert = false; function openEditor(mitglied_id) { var dia; if (mitglied_id<=0) return; if (diaWaitForForm>0) return; dia = document.getElementById('dialog'); if ( (dia.safeClose) && (!dia.safeClose()) ) return false; dia.safeClose = safeClose; document.getElementById('dialogbg').style.visibility = 'visible'; if (!htmlForm) { diaWaitForForm = mitglied_id; getHtmlForm('/FACOUS_DB/Form_Template.html'); return; } dia.innerHTML = htmlForm; butAbort = document.getElementById('nosave_back'); butAbort.onclick = doAbort; butSave = document.getElementById('save_back'); butSave.onclick = doSave; butSave.mitgliedId = 0; fetch('/cgi-bin/Python_FACOUS_MitgliedDaten.py?mitglied_id='+ mitglied_id) .then(response => response.json()) .then(data => { fillForm(data); }) .catch(error => alert('Es liegt ein Netzwerk- oder Serverfehler2 vor.')); //.catch(error => console.log(error.name + ":" + error.message)); } function getHtmlForm(url) { fetch(url) .then(response => response.text()) .then(text => { importForm(text) }) .catch(error => alert('Es liegt ein Netzwerk- oder Serverfehler1 vor.')); } function importForm(text) { // strip Header and Body-Tag htmlForm = text.replace(/^.*?\s*/is, '').replace(/\s*<\/body>.*$/is, ''); if (diaWaitForForm>0) { var mitglied_id=diaWaitForForm; diaWaitForForm = 0; openEditor(mitglied_id); } } function safeClose() { if (!wurdeGeaendert) return true; return confirm('Achtung, Daten wurden geƤndert und gehen nun verloren.'); } function doAbort() { if (!safeClose()) return; document.getElementById('dialogbg').style.visibility = 'hidden'; document.getElementById('dialog').innerHTML = ''; wurdeGeaendert = false; } function doSave() { var mitgliedID = document.getElementById('save_back').mitgliedId dataJob = { job : 'change', MITGLIED_ID : mitgliedID }; getTextFromForm(dataJob, 'vorname', 'VORNAME'); // .... console.log(dataJob); //jsonString = JSON.stringify(dataJob); fetch('/cgi-bin/jobFacous.py', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(dataJob) }) .then(response => response.json()) .then(data => { console.log('Success:', data); }) .catch((error) => { console.error('Error:', error); }); document.getElementById('dialogbg').style.visibility = 'hidden'; document.getElementById('dialog').innerHTML = ''; wurdeGeaendert = false; } function fillForm(data) { //alert('habe daten von mitglied-id: '+ data.MITGLIED_ID + ' erhalte.'); document.getElementById('save_back').mitgliedId = data.MITGLIED_ID; setTextToForm('titel', data.Titel); //document.getElementById('titel').value = data.Titel; setTextToForm('vorname', data.VORNAME); //document.getElementById('vorname').value = data.VORNAME; setTextToForm('nachname', data.NACHNAME); //document.getElementById('nachname').value = data.NACHNAME; setTextToForm('strasse', data.STRASSE); //document.getElementById('strasse').value = data.STRASSE; setTextToForm('plz', data.PLZ); //document.getElementById('plz').value = data.PLZ; setTextToForm('ort', data.ORT); //document.getElementById('ort').value = data.ORT; setTextToForm('land', data.LAND); //document.getElementById('land').value = data.LAND; setTextToForm('email', data.E_MAIL); //document.getElementById('email').value = data.E_MAIL; setCheckboxToForm('per_hp', data.HAUSPOST); //document.getElementById('per_hp').checked = (data.HAUSPOST!=0); setTextToForm('tel_privat', data.TEL_PRIVAT); //document.getElementById('tel_privat').value = data.TEL_PRIVAT; setTextToForm('mobil', data.MOBIL); //document.getElementById('mobil').value = data.MOBIL; setTextToForm('tel_buero', data.TEL_BUERO); //document.getElementById('tel_buero').value = data.TEL_BUERO; setTextToForm('fach_beruf', data.FACH_BERUF); //document.getElementById('fach_beruf').value = data.FACH_BERUF; setTextToForm('geburtsdatum', data.GEB_DAT); //document.getElementById('geburtsdatum').value = data.GEB_DAT; setCheckboxToForm('schneckenpost', data.Schnecken); //document.getElementById('schneckenpost').checked = (data.Schnecken!=0); setCheckboxToForm('facous_activ', data.AKTIV_FACOUS); //document.getElementById('facous_activ').checked = (data.AKTIV_FACOUS!=0); setTextToForm('facous_eintritt', data.EINTR_FACOUS); //document.getElementById('facous_eintritt').value = data.EINTR_FACOUS; setTextToForm('facous_eintr_bearb', data.BEARB_EINT_FACOUS); //document.getElementById('facous_eintr_bearb').value = data.BEARB_EINT_FACOUS; setTextToForm('facous_austritt', data.AUSTRITT_FACOUS); //document.getElementById('facous_austritt').value = data.AUSTRITT_FACOUS ; setTextToForm('facous_austr_bearb', data.BEARB_AUSTR_FACOUS); //document.getElementById('facous_austr_bearb').value = data.BEARB_AUSTR_FACOUS; setCheckboxToForm('chor_activ', data.AKTIV_CHOR); //document.getElementById('chor_activ').checked = (data.AKTIV_CHOR!=0); setSelectToForm('chor_stimme', data.STIMME); //document.getElementById('chor_stimme').value = data.STIMME; setCheckboxToForm('orch_activ', data.AKTIV_ORCH); //document.getElementById('orch_activ').checked = (data.AKTIV_ORCH!=0); setTextToForm('orch_instr', data.INSTRUMENT); //document.getElementById('orch_instr').value = data.INSTRUMENT; wurdeGeaendert = false; } function setTextToForm(formFeldName, dataFeld) { var field = document.getElementById(formFeldName); field.value = dataFeld; field.onchange = formularGeaendert; field.geaendert = false; } function setCheckboxToForm(formFeldName, dataFeld) { var field = document.getElementById(formFeldName); field.checked = (dataFeld!=0); field.onchange = formularGeaendert; field.geaendert = false; } function setSelectToForm(formFeldName, dataFeld) { var field = document.getElementById(formFeldName); var i; for (i=0; i