[Checkins] SVN: z3c.listjs/trunk/src/z3c/listjs/ Fix this so it also works with IE, which cannot use innerHTML with

Martijn Faassen faassen at infrae.com
Thu Jan 8 12:25:03 EST 2009


Log message for revision 94631:
  Fix this so it also works with IE, which cannot use innerHTML with
  tr.
  

Changed:
  U   z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt
  D   z3c.listjs/trunk/src/z3c/listjs/listjswidget_record.pt
  U   z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js
  U   z3c.listjs/trunk/src/z3c/listjs/widget.py

-=-
Modified: z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt	2009-01-08 16:37:10 UTC (rev 94630)
+++ z3c.listjs/trunk/src/z3c/listjs/listjswidget.pt	2009-01-08 17:25:03 UTC (rev 94631)
@@ -31,5 +31,5 @@
 <input type="hidden" tal:attributes="
             name string:${view/name}.template;
             id string:${view/name}.template;
-            value view/record_template" />
+            value view/widgetTemplate" />
 <input tal:replace="structure view/marker" />

Deleted: z3c.listjs/trunk/src/z3c/listjs/listjswidget_record.pt
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/listjswidget_record.pt	2009-01-08 16:37:10 UTC (rev 94630)
+++ z3c.listjs/trunk/src/z3c/listjs/listjswidget_record.pt	2009-01-08 17:25:03 UTC (rev 94631)
@@ -1,9 +0,0 @@
-    <td>
-      <input class="editcheck" type="checkbox"
-             tal:attributes="
-                 name string:${view/name}.remove_0" />
-    </td>
-    <td>
-      <input tal:replace="structure view/widgetTemplate" />
-    </td>
-

Modified: z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js	2009-01-08 16:37:10 UTC (rev 94630)
+++ z3c.listjs/trunk/src/z3c/listjs/resources/listjs.js	2009-01-08 17:25:03 UTC (rev 94631)
@@ -102,7 +102,7 @@
         // update count
         var count_el = document.getElementById(prefix + '.count');
         count_el.value = els.length;
-    }
+    };
 
     // add a new repeating element to the list
     Z3C.listjs.add = function(prefix) {
@@ -111,10 +111,22 @@
         var template_text = template_el.value;
         var buttons_el = document.getElementById(prefix + '.buttons');
 
+        // note that some DOM manipulation is needed as IE cannot
+        // use innerHTML on tr directly. Instead we create the td
+        // and put the widget contents in that.
         var new_tr = document.createElement('tr');
         new_tr.className = 'list_item';
-        buttons_el.parentNode.insertBefore(new_tr, buttons_el); 
-        new_tr.innerHTML = template_text;
+        buttons_el.parentNode.insertBefore(new_tr, buttons_el);
+        var td1 = document.createElement('td');
+        var td2 = document.createElement('td');
+        new_tr.appendChild(td1);
+        new_tr.appendChild(td2);
+        var cb = document.createElement('input');
+        cb.className = 'editcheck';
+        cb.type = 'checkbox';
+        cb.name = prefix + '.remove_0';
+        td1.appendChild(cb);
+        td2.innerHTML = template_text;
 
         updateAllNumbers(prefix);
     };

Modified: z3c.listjs/trunk/src/z3c/listjs/widget.py
===================================================================
--- z3c.listjs/trunk/src/z3c/listjs/widget.py	2009-01-08 16:37:10 UTC (rev 94630)
+++ z3c.listjs/trunk/src/z3c/listjs/widget.py	2009-01-08 17:25:03 UTC (rev 94631)
@@ -13,7 +13,6 @@
 class _ListJsWidget(ListSequenceWidget):
 
     template = ViewPageTemplateFile('listjswidget.pt')
-    record_template = ViewPageTemplateFile('listjswidget_record.pt')
 
     def widgetTemplate(self):
         # XXX hack: always get a widget that isn't in the sequence



More information about the Checkins mailing list