[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 = \' \';\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 = \' \';\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