Index: luci/cluster/fence_device.js =================================================================== RCS file: /cvs/cluster/conga/luci/cluster/fence_device.js,v retrieving revision 1.2.2.8 diff -u -r1.2.2.8 fence_device.js --- a/luci/cluster/fence_device.js 23 Jan 2008 04:44:30 -0000 1.2.2.8 +++ b/luci/cluster/fence_device.js 7 Aug 2010 02:35:17 -0000 @@ -26,7 +26,7 @@ var fi_form = document.getElementById(fence_type + '_instance'); if (fi_form) { - var cloned_iform = fi_form.cloneNode(1); + var cloned_iform = clone_element(fi_form, true); var fencei_name = fi_cont_id + '_' + num_fence_instances[fi_cont_id]++; cloned_iform.id = fencei_name; cloned_iform.name = fencei_name; @@ -68,7 +68,7 @@ container_element.removeChild(container_element.firstChild); } - var target = child_element.cloneNode(1); + var target = clone_element(child_element, true); target.id = null; container_element.appendChild(target); } @@ -91,7 +91,7 @@ container_element.removeChild(container_element.firstChild); } - var target = child_element.cloneNode(1); + var target = clone_element(child_element, true); target.id = ''; var fence_type = fence_id; @@ -105,6 +105,10 @@ } } } + input_tags = target.getElementsByTagName('select'); + for (var i = 0 ; i < input_tags.length ; i++) { + input_tags[i].disabled = true; + } } var target_form = document.createElement('form'); @@ -119,7 +123,7 @@ idiv.id = container_id + '_instances'; idiv.name = idiv.id; - var cloned_iform = fi_form.cloneNode(1); + var cloned_iform = clone_element(fi_form, true); cloned_iform.id = container_id + '_0'; cloned_iform.name = cloned_iform.id; cloned_iform.className = 'fence_instance'; @@ -190,7 +194,7 @@ div_elem.id = 'fence' + fence_level + '_' + level_num_fences; div_elem.className = 'fence_level'; - var chooser_elem = chooser_elem_orig.cloneNode(1); + var chooser_elem = clone_element(chooser_elem_orig, true); chooser_elem.id = null; chooser_elem.className = null; Index: luci/cluster/resource_form_handlers.js =================================================================== RCS file: /cvs/cluster/conga/luci/cluster/resource_form_handlers.js,v retrieving revision 1.20.2.18 diff -u -r1.20.2.18 resource_form_handlers.js --- a/luci/cluster/resource_form_handlers.js 21 May 2009 13:32:04 -0000 1.20.2.18 +++ b/luci/cluster/resource_form_handlers.js 7 Aug 2010 02:35:17 -0000 @@ -17,7 +17,7 @@ if (!res || !replace) return (-1); - var clres = res.cloneNode(1); + var clres = clone_element(res, true); clres.id = null; clres.className = null; @@ -442,7 +442,7 @@ } } - var node = sdiv.cloneNode(1); + var node = clone_element(sdiv, true); node.id = null; node.className = null; Index: luci/plone-custom/conga.js =================================================================== RCS file: /cvs/cluster/conga/luci/plone-custom/conga.js,v retrieving revision 1.3.2.9 diff -u -r1.3.2.9 conga.js --- a/luci/plone-custom/conga.js 5 Aug 2010 17:33:05 -0000 1.3.2.9 +++ b/luci/plone-custom/conga.js 7 Aug 2010 02:35:17 -0000 @@ -272,3 +272,13 @@ } return (new_tab); } + +function clone_element(orig_element, deep) { + var orig_select = orig_element.getElementsByTagName('select'); + var cloned_element = orig_element.cloneNode(deep); + var cloned_select = cloned_element.getElementsByTagName('select'); + for (var i = 0 ; i < orig_select.length ; i++) { + cloned_select[i].selectedIndex = orig_select[i].selectedIndex; + } + return (cloned_element); +}