// request is directed to current location
//
JsHttpRequest.request= function(trigger, form) {
-
+ var mark = document.getElementById('ajaxmark');
+ if(mark) mark.style.visibility = 'visible';
+ if (trigger.tagName=='A') {
+ var content = {};
+ var upload = 0;
+ var url = trigger.href;
+ if (trigger.id) content[trigger.id] = 1;
+ } else {
var submitObj = typeof(trigger) == "string" ?
document.getElementsByName(trigger)[0] : trigger;
var content = this.formInputs(trigger, form, upload);
if (!form) url = url.substring(0, url.indexOf('?'));
-
+
if (!submitObj)
content[trigger] = 1;
- // this is to avoid caching problems
+
+ }
+ // this is to avoid caching problems
content['_random'] = Math.random()*1234567;
JsHttpRequest.query(
// Function is called when an answer arrives.
function(result, errors) {
// Write the answer.
+ var newwin = 0;
if (result) {
for(var i in result ) {
atom = result[i];
if(cmd=='as') {
eval("objElement.setAttribute('"+property+"',"+data+");");
} else if(cmd=='up') {
-// if(!objElement) debug('No element "'+id+'"');
+// if(!objElement) alert('No element "'+id+'"');
+ if(objElement) {
if (objElement.tagName == 'INPUT' || objElement.tagName == 'TEXTAREA')
objElement.value = data;
else
objElement.innerHTML = data; // selector, div, span etc
+ }
} else if(cmd=='di') { // disable/enable element
objElement.disabled = data;
} else if(cmd=='fc') { // set focus
eval(data);
} else if(cmd=='rd') { // client-side redirection
window.location = data;
+ } else if(cmd=='pu') { // pop-up
+ newwin = 1;
+ window.open(data,'REP_WINDOW','toolbar=no,scrollbar=no,resizable=yes,menubar=no');
} else {
errors = errors+'<br>Unknown ajax function: '+cmd;
}
// Write errors to the debug div.
document.getElementById('msgbox').innerHTML = errors;
+ var mark = document.getElementById('ajaxmark');
+ if(mark) mark.style.visibility = 'hidden';
Behaviour.apply();
+
if (errors.length>0)
window.scrollTo(0,0);
//document.getElementById('msgbox').scrollIntoView(true);
// Restore focus if we've just lost focus because of DOM element refresh
- setFocus();
+ if(!newwin) {
+ setFocus();
+ }
}
},
false // do not disable caching
}
function setFocus(name, byId) {
-
+ if(document.location.pathname.indexOf('index.php') != -1) {
+ // this is application menu page - set focus on first link
+ // var el = document.getElementById('msgbox');
+ // TODO find first link after msgbox and set focus
+ }
if(!name) {
if (_focus)
name = _focus; // last focus set in onfocus handlers