X-Git-Url: https://git.infodrom.org/?p=misc%2Fkostenrechnung;a=blobdiff_plain;f=lib%2Ffunctions.js;h=e4c6e50d8ff5c98591c973e6bc30ee713570308c;hp=3a6902493e732a6e3db1d14b9f8b6fcc6ecd2987;hb=fb59ac57d240796dfc9af80207bf3b1e3e9e2fb4;hpb=6384db7f97493ced2040084cd6c80d1ebb630f52 diff --git a/lib/functions.js b/lib/functions.js index 3a69024..e4c6e50 100644 --- a/lib/functions.js +++ b/lib/functions.js @@ -6,7 +6,10 @@ function ajax_request_callback(req) if (req.readyState == 4 && req.status == 200) { var data = json_parse(req.responseText); - if (req.oncomplete) + if (typeof data.error == 'string') { + error('Fehler im AJAX-Backend'); + alert("Error in AJAX backend:\n" + data.error); + } else if (req.oncomplete) req.oncomplete(data); } } @@ -21,21 +24,119 @@ function ajax_request(func,params,oncomplete) req.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); req.setRequestHeader("Content-length", params.length); req.setRequestHeader("Connection", "close"); - if (typeof oncomplete == 'function') { - req.onreadystatechange = function() { ajax_request_callback(req); } + req.onreadystatechange = function() { ajax_request_callback(req); } + if (typeof oncomplete == 'function') req.oncomplete = oncomplete; - } req.send(params); } +function info(msg) +{ + var status = document.getElementById('status'); + if (!status) return; + + status.innerHTML = msg; + status.className = 'status_ok'; +} + +function error(msg) +{ + var status = document.getElementById('status'); + if (!status) return; + + status.innerHTML = msg; + status.className = 'status_error'; +} + +function set_value(id, value) +{ + var obj = document.getElementById(id); + if (!obj) return; + + if (obj.nodeName.toLowerCase() == 'input' + && obj.type.toLowerCase() == 'checkbox') + if (value) obj.checked = true; + else obj.checked = false; + else if (obj.nodeName.toLowerCase() == 'input' + || obj.nodeName.toLowerCase() == 'textarea') + obj.value = value; + else if (obj.nodeName.toLowerCase() == 'span') + obj.innerHTML = value; + else if (obj.nodeName.toLowerCase() == 'select') + for (var i=0; i < obj.options.length; i++) + if (obj.options[i].value == value) + obj.selectedIndex = i; +} + /* * Form functions */ +function form_init() +{ + var form = document.getElementById('form_edit'); + + if (!form) return; + + for (var i=0; i