Author: maksimkaszynski
Date: 2007-07-30 14:39:00 -0400 (Mon, 30 Jul 2007)
New Revision: 1936
Modified:
trunk/sandbox/ui/scrollable-grid/src/main/javascript/ClientUI/common/utils/Utils.js
Log:
fixed incompatibilities with IE7 (a damn crutch)
Modified:
trunk/sandbox/ui/scrollable-grid/src/main/javascript/ClientUI/common/utils/Utils.js
===================================================================
---
trunk/sandbox/ui/scrollable-grid/src/main/javascript/ClientUI/common/utils/Utils.js 2007-07-30
16:34:01 UTC (rev 1935)
+++
trunk/sandbox/ui/scrollable-grid/src/main/javascript/ClientUI/common/utils/Utils.js 2007-07-30
18:39:00 UTC (rev 1936)
@@ -1,5 +1,7 @@
var Utils = {
+ xmlns: new
RegExp("xmlns=\"http://www.w3.org/1999/xhtml\"",
'g'),
+
DOM: {
copyAttributes : function(target, source, opts) {
@@ -41,11 +43,24 @@
replaceNode : function(id, request) {
var target = document.getElementById(id);
var src = request.getElementById(id);
-
+
if(target && src) {
Utils.DOM.Event.removeListeners(target);
if (ClientUILib.isIE) {
+
+ var s = String();
+ var newOuterXml = "<table><tbody>" +
src.xml.replace(Utils.xmlns, '') + "</tbody></table>";
+ var newNode = document.createElement("DIV");
+ newNode.innerHTML = newOuterXml;
+ var imported = newNode.firstChild.firstChild.firstChild;
+
+ //alert(imported);
+
+ target.parentNode.replaceChild(imported, target);;
+ return imported;
+
+ } /*else if (ClientUILib.isIE) {
var theDoc = document;
//var createEl = theDoc.createElement;
@@ -76,7 +91,8 @@
target.parentNode.replaceChild(row, target);
return row;
- } else {
+ } */
+ else {
var theDoc = document;
Utils.DOM._clearAttributes(target);
@@ -232,6 +248,7 @@
var countForUpdate = 0;
var rowsForUpdate = [];
+
for(i=0; i<count; i++) {
rowindex = startRow + i;
if(rowindex >= rowCount){
@@ -251,6 +268,18 @@
}
);
}
+ if (ClientUILib.isIE7) {
+ setTimeout(function() {
+ var body = grid.getBody();
+ ["fTable", "nTable"].unbreakableEach(
+ function(prop) {
+ body[prop].hide();
+ body[prop].show();
+ }
+ );
+ }
+ ,50);
+ }
if (callbacks && countForUpdate>0) {
// process suspended processing