[Cluster-devel] conga/luci/cluster resource-form-macros resour ...
rmccabe at sourceware.org
rmccabe at sourceware.org
Fri Sep 22 19:21:43 UTC 2006
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2006-09-22 19:21:42
Modified files:
luci/cluster : resource-form-macros resource_form_handlers.js
Log message:
fix for a javascript bug that shows up when inserting global resources into a service
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.13&r2=1.14
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&r1=1.9&r2=1.10
--- conga/luci/cluster/resource-form-macros 2006/09/22 18:21:59 1.13
+++ conga/luci/cluster/resource-form-macros 2006/09/22 19:21:41 1.14
@@ -153,11 +153,11 @@
<br/>
<form>
<input type="hidden" name="parent_uuid" value="" />
+ <input type="hidden" name="uuid" value="" />
<input type="hidden" name="tree_level" value="" />
- <select name="gres_chooser"
- onChange="swap_in_global_res('global_resources_block',
- this.options[this.selectedIndex].value,
- this.form.parentNode.parentNode, this.form);">
+ <select id="gres_chooser"
+ onChange="swap_in_global_res('global_resources_block', this,
+ this.form.parentNode, this.form);">
<option checked="checked">Select a resource name</option>
<tal:block
tal:repeat="gres global_resources">
--- conga/luci/cluster/resource_form_handlers.js 2006/09/22 18:21:59 1.9
+++ conga/luci/cluster/resource_form_handlers.js 2006/09/22 19:21:41 1.10
@@ -1,21 +1,18 @@
-function swap_in_global_res(container_id, res_id, replace, form) {
+function swap_in_global_res(container_id, sel, replace, form) {
+ sel.id = null;
var container = document.getElementById(container_id);
if (!container)
return (-1);
+ var res_id = sel.options[sel.selectedIndex].value;
var res = document.getElementById(res_id);
- if (!res)
+ if (!res || !replace)
return (-1);
- if (!replace)
- return (-1);
- var new_uuid = update_resource_form_uuid(res, form.parent_uuid.value, form.tree_level.value);
+ var new_uuid = update_resource_form_uuid(res, form.parent_uuid.value, form.tree_level.value, form.uuid.value);
res.id = new_uuid;
- if (form.gres_chooser && form.gres_chooser.options) {
- var o = form.gres_chooser.options;
- for (var i = 0 ; i < o.length ; i++) {
- if (o[i].value == res_id)
- o[i] = null;
- }
- }
+
+ var sopt = document.getElementById('gres_chooser');
+ if (sopt)
+ sopt.options[sel.selectedIndex].className = 'invisible';
return (replace.parentNode.replaceChild(res, replace));
}
@@ -211,14 +208,19 @@
}
}
-function update_resource_form_uuid(node, parent_uuid, indent_level) {
+function update_resource_form_uuid(node, parent_uuid, indent_level, uuid) {
var forms = node.getElementsByTagName('form');
for (var i = 0 ; i < forms.length ; i++)
forms.name = parent_uuid;
var ielem = node.getElementsByTagName('input');
if (!ielem)
return (null);
- var new_uuid = uuid_list.pop();
+
+ var new_uuid = null;
+ if (!uuid)
+ new_uuid = uuid_list.pop();
+ else
+ new_uuid = uuid;
var used_new_uuid = 0;
for (var i = 0 ; i < ielem.length ; i++) {
if (ielem[i].getAttribute('name') == 'tree_level')
@@ -235,7 +237,7 @@
}
}
- if (!used_new_uuid) {
+ if (!used_new_uuid && !uuid) {
uuid_list.push(new_uuid);
return (null);
}
@@ -276,7 +278,7 @@
node.id = null;
node.className = null;
- var new_uuid = update_resource_form_uuid(node, form.uuid.value, ilevel);
+ var new_uuid = update_resource_form_uuid(node, form.uuid.value, ilevel, null);
if (!new_uuid)
return (-1);
More information about the Cluster-devel
mailing list