Author: simoneg
Date: Wed Feb 16 04:33:42 2011
New Revision: 1071141
URL: http://svn.apache.org/viewvc?rev=1071141&view=rev
Log:
Better way to understand proper order of elements in the dom after updates
Modified:
labs/magma/trunk/website-autoajax/src/main/resources/org/apache/magma/website/autoajax/autoajax.js
Modified:
labs/magma/trunk/website-autoajax/src/main/resources/org/apache/magma/website/autoajax/autoajax.js
URL:
http://svn.apache.org/viewvc/labs/magma/trunk/website-autoajax/src/main/resources/org/apache/magma/website/autoajax/autoajax.js?rev=1071141&r1=1071140&r2=1071141&view=diff
==============================================================================
---
labs/magma/trunk/website-autoajax/src/main/resources/org/apache/magma/website/autoajax/autoajax.js
(original)
+++
labs/magma/trunk/website-autoajax/src/main/resources/org/apache/magma/website/autoajax/autoajax.js
Wed Feb 16 04:33:42 2011
@@ -59,15 +59,12 @@ magma.autoajax = new function() {
* other methods work correctly.
*/
this.updateState = function(statepart) {
- var cnt=0;
for (var id in statepart) {
var grp = statepart[id];
var ele = document.getElementById(id);
if (ele) {
grp.domElement=ele;
}
- grp.order = cnt;
- cnt++;
this.state.elements[id] = grp;
}
}
@@ -115,31 +112,45 @@ magma.autoajax = new function() {
}
}
}
+
+ function zeropad(str) {
+ while (str.length % 3 != 0) str = '0' + str;
+ return str;
+ }
+
// Find parents and children
for (var id in this.state.elements) {
var stategrp = this.state.elements[id];
if (stategrp.type == 'tpl') continue;
- var ele = stategrp.domElement;
- ele = ele.parentNode;
- while (ele) {
- if (this.state.elements[ele.id]) {
-
stategrp.parent=this.state.elements[ele.id];
-
this.state.elements[ele.id].children.push(stategrp);
+ var indexstr = '';
+ var ele = $(stategrp.domElement);
+ indexstr = zeropad(ele.index() + indexstr);
+ ele = ele.parent();
+ while (ele.length > 0) {
+ indexstr = zeropad(ele.index() + indexstr);
+ var pid = ele[0].id;
+ var ps = this.state.elements[ele[0].id]
+ if (ps) {
+ stategrp.parent=ps;
+ ps.children.push(stategrp);
break;
};
- ele = ele.parentNode;
+ ele = ele.parent();
}
if (stategrp.parent == null) {
stategrp.parent = this.state.root;
this.state.root.children.push(stategrp);
}
+ stategrp.order = indexstr;
}
for (var id in this.state.elements) {
var stategrp = this.state.elements[id];
if (stategrp.children && stategrp.children.length > 0) {
stategrp.children.sort(function(a,b) {
- return a.order - b.order;
+ if (a.order < b.order) return -1;
+ if (b.order < a.order) return 1;
+ return 0;
});
}
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]