projects
/
fa-stable.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fixed errors during focus on nonexistent elements.
[fa-stable.git]
/
js
/
utils.js
diff --git
a/js/utils.js
b/js/utils.js
index 761917a2d0f9e17cd5a6a143f74ec2c523c07225..24a9c1a914d3414f6cb1aa149a79d89c34996b77 100644
(file)
--- a/
js/utils.js
+++ b/
js/utils.js
@@
-9,7
+9,14
@@
// request is directed to current location
//
JsHttpRequest.request= function(trigger, form) {
// 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 submitObj = typeof(trigger) == "string" ?
document.getElementsByName(trigger)[0] : trigger;
@@
-23,10
+30,12
@@
var content = this.formInputs(trigger, form, upload);
if (!form) url = url.substring(0, url.indexOf('?'));
var content = this.formInputs(trigger, form, upload);
if (!form) url = url.substring(0, url.indexOf('?'));
-
+
if (!submitObj)
content[trigger] = 1;
if (!submitObj)
content[trigger] = 1;
- // this is to avoid caching problems
+
+ }
+ // this is to avoid caching problems
content['_random'] = Math.random()*1234567;
JsHttpRequest.query(
content['_random'] = Math.random()*1234567;
JsHttpRequest.query(
@@
-35,6
+44,7
@@
// Function is called when an answer arrives.
function(result, errors) {
// Write the answer.
// 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 (result) {
for(var i in result ) {
atom = result[i];
@@
-49,11
+59,13
@@
if(cmd=='as') {
eval("objElement.setAttribute('"+property+"',"+data+");");
} else if(cmd=='up') {
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
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
} else if(cmd=='di') { // disable/enable element
objElement.disabled = data;
} else if(cmd=='fc') { // set focus
@@
-62,6
+74,9
@@
eval(data);
} else if(cmd=='rd') { // client-side redirection
window.location = data;
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;
}
} else {
errors = errors+'<br>Unknown ajax function: '+cmd;
}
@@
-69,13
+84,18
@@
// Write errors to the debug div.
document.getElementById('msgbox').innerHTML = errors;
// Write errors to the debug div.
document.getElementById('msgbox').innerHTML = errors;
+ var mark = document.getElementById('ajaxmark');
+ if(mark) mark.style.visibility = 'hidden';
Behaviour.apply();
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
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
}
},
false // do not disable caching
@@
-183,7
+203,11
@@
function goBack() {
}
function setFocus(name, byId) {
}
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
if(!name) {
if (_focus)
name = _focus; // last focus set in onfocus handlers