4 function ajax_request_callback(req)
6 if (req.readyState == 4 && req.status == 200) {
7 var data = json_parse(req.responseText);
9 if (typeof data.error == 'string') {
10 alert("Error in AJAX backend:\n" + data.error);
11 error('Fehler im AJAX-Backend');
12 } else if (req.oncomplete)
17 function ajax_request(func,params,oncomplete)
19 var req = new XMLHttpRequest();
22 var params = 'func=' + func + '&' + params;
23 req.open ("POST", 'ajax/ajax.php');
24 req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
25 req.setRequestHeader("Content-length", params.length);
26 req.setRequestHeader("Connection", "close");
27 if (typeof oncomplete == 'function') {
28 req.onreadystatechange = function() { ajax_request_callback(req); }
29 req.oncomplete = oncomplete;
36 var status = document.getElementById('status');
39 status.innerHTML = msg;
40 status.className = 'status_ok';
45 var status = document.getElementById('status');
48 status.innerHTML = msg;
49 status.className = 'status_error';
52 function set_value(id, value)
54 var obj = document.getElementById(id);
57 if (obj.nodeName.toLowerCase() == 'input'
58 && obj.type.toLowerCase() == 'checkbox')
59 if (value) obj.checked = true;
60 else obj.checked = false;
61 else if (obj.nodeName.toLowerCase() == 'input'
62 || obj.nodeName.toLowerCase() == 'textarea')
64 else if (obj.nodeName.toLowerCase() == 'span')
65 obj.innerHTML = value;
66 else if (obj.nodeName.toLowerCase() == 'select')
67 for (var i=0; i < obj.options.length; i++)
68 if (obj.options[i].value == value)
69 obj.selectedIndex = i;
75 function form_save(obj)
83 function details_callback(data)
86 set_value('detail_'+id, data[id]);
89 function fetch_callback(data)
92 set_value('edit_'+id, data[id]);
98 function gridDrillDown(e)
100 if (e.originalTarget && e.originalTarget.target && e.originalTarget.target == '_top')
103 var id = 0; // Column 0 contains ID
104 var row = grid.edit.drillDown(e,0,0);
105 var cell = grid.columns[id].cell(row);
107 var value = cell.innerHTML;
109 if (document.getElementById('details')) {
110 var params = 'source=' + grid.tableId.substr(5) + '&id=' + value;
111 ajax_request('details', params, details_callback);
114 if (document.getElementById('form_edit')) {
115 var params = 'source=' + grid.tableId.substr(5) + '&id=' + value;
116 ajax_request('fetch', params, fetch_callback);