[Erp5-report] r20079 - /experimental/bt5/erp5_xhtml_style_experimental/SkinTemplateItem/por...

nobody at svn.erp5.org nobody at svn.erp5.org
Thu Mar 20 17:59:08 CET 2008


Author: bartek
Date: Thu Mar 20 17:59:04 2008
New Revision: 20079

URL: http://svn.erp5.org?rev=20079&view=rev
Log:
Simplified the script after introducing r20078 - it is now much simpler and shorter.

Modified:
    experimental/bt5/erp5_xhtml_style_experimental/SkinTemplateItem/portal_skins/erp5_xhtml_style_experimental/dynamicGUI.js.xml

Modified: experimental/bt5/erp5_xhtml_style_experimental/SkinTemplateItem/portal_skins/erp5_xhtml_style_experimental/dynamicGUI.js.xml
URL: http://svn.erp5.org/experimental/bt5/erp5_xhtml_style_experimental/SkinTemplateItem/portal_skins/erp5_xhtml_style_experimental/dynamicGUI.js.xml?rev=20079&r1=20078&r2=20079&view=diff
==============================================================================
--- experimental/bt5/erp5_xhtml_style_experimental/SkinTemplateItem/portal_skins/erp5_xhtml_style_experimental/dynamicGUI.js.xml (original)
+++ experimental/bt5/erp5_xhtml_style_experimental/SkinTemplateItem/portal_skins/erp5_xhtml_style_experimental/dynamicGUI.js.xml Thu Mar 20 17:59:04 2008
@@ -35,57 +35,42 @@
             <key> <string>raw</string> </key>
             <value> <string encoding="cdata"><![CDATA[
 
-function parallel(select){\n
-  /*\n
-  XXX the implementation is plain awful\n
-  will undergo a complete refactoring\n
+function updateParallelField(select){\n
+  /* \n
+    Hook in "onchange" to a parallel list field\n
+    it does what a parallel field normally does, but without\n
+    reloading the page.\n
+    Requires r20078 to work.\n
   */\n
-  // get current box with neighbours\n
-  var input = select.parentNode;\n
-  var field = input.parentNode;\n
-  var t = input.previousSibling\n
-  var label = t.previousSibling;\n
-  var tt = input.nextSibling;\n
-  var p = tt.nextSibling;\n
+  // get current box\n
+  var div = select.parentNode.parentNode;\n
+  var field = div.parentNode;\n
   // get and store field label\n
   main_label = field.getElementsByTagName(\'label\')[0]\n
   label_text = main_label.innerHTML;\n
   // calculate base select name\n
   base = select.name.match(/(.*?)\\d+/)[1]\n
   // clone\n
-  var c_input = input.cloneNode(true);\n
-  var c_label = label.cloneNode(true);\n
-  var c_p = p.cloneNode(true);\n
-  var c_t = t.cloneNode(true);\n
-  var c_tt = tt.cloneNode(true);\n
+  var c_div = div.cloneNode(true);\n
   // remove all empty boxes\n
-  var box_list = field.getElementsByTagName(\'div\');\n
-  for(var i=box_list.length-1;i>=0;i--){\n
-    var div = box_list[i];\n
-    var sel = div.getElementsByTagName(\'select\')[0]\n
+  var select_list = field.getElementsByTagName(\'select\');\n
+  for(var i=select_list.length-1;i>=0;i--){\n
+    var sel = select_list[i];\n
     var idx = sel.selectedIndex;\n
     if(idx < 1){\n
-      field.removeChild(div.previousSibling);\n
-      field.removeChild(div.previousSibling);\n
-      field.removeChild(div.nextSibling);\n
-      field.removeChild(div.nextSibling);\n
-      field.removeChild(div);\n
+      field.removeChild(sel.parentNode.parentNode);\n
     }\n
   }\n
   // append an empty box\n
-  c_input.getElementsByTagName(\'select\')[0].selectedIndex = -1;\n
-  c_label.innerHTML = \'&nbsp;\';\n
-  field.appendChild(c_label);\n
-  field.appendChild(c_t);\n
-  field.appendChild(c_input);\n
-  field.appendChild(c_tt);\n
-  field.appendChild(c_p);\n
+  c_div.getElementsByTagName(\'select\')[0].selectedIndex = -1;\n
+  c_div.getElementsByTagName(\'label\')[0].innerHTML = \'&nbsp;\';\n
+  field.appendChild(c_div);\n
   // restore field label\n
   main_label = field.getElementsByTagName(\'label\')[0]\n
   main_label.innerHTML = label_text;\n
   // name inputs\n
   var select_list = field.getElementsByTagName(\'select\');\n
-  for(var i=0;i<box_list.length;i++){\n
+  for(var i=0;i<select_list.length;i++){\n
     select_list[i].name = base + i;\n
   }\n
 }\n




More information about the Erp5-report mailing list