[Cluster-devel] conga/luci/cluster fence_device.js form-macros
rmccabe at sourceware.org
rmccabe at sourceware.org
Tue Jan 9 18:27:05 UTC 2007
CVSROOT: /cvs/cluster
Module name: conga
Changes by: rmccabe at sourceware.org 2007-01-09 18:27:04
Modified files:
luci/cluster : fence_device.js form-macros
Log message:
final node-specific fence device frontend bits
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/fence_device.js.diff?cvsroot=cluster&r1=1.5&r2=1.6
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.145&r2=1.146
--- conga/luci/cluster/fence_device.js 2007/01/08 21:58:33 1.5
+++ conga/luci/cluster/fence_device.js 2007/01/09 18:27:04 1.6
@@ -1,3 +1,6 @@
+var num_fences_level = Array(0, 0)
+var num_fence_instances = new Array()
+
function del_fence_instance(fi_div_id) {
delete_element_id(fi_div_id);
}
@@ -6,7 +9,33 @@
delete_element_id(fence_id);
}
-function add_fence_instance(fi_cont_id) {
+function add_fence_instance(fi_cont_id, fence_type) {
+ var instance_div = document.getElementById(fi_cont_id + '_instances');
+ if (!instance_div)
+ return (-1);
+
+ var fi_form = document.getElementById(fence_type + '_instance');
+ if (fi_form) {
+ var cloned_iform = fi_form.cloneNode(1);
+ var fencei_name = fi_cont_id + '_' + num_fence_instances[fi_cont_id]++;
+ cloned_iform.id = fencei_name;
+ cloned_iform.name = fencei_name;
+ cloned_iform.className = 'fence_instance';
+
+ var form_elem = document.createElement('form');
+ form_elem.name = cloned_iform.id;
+ form_elem.appendChild(cloned_iform);
+ var ielem = cloned_iform.getElementsByTagName('input');
+ for (var i = 0 ; i < ielem.length ; i++) {
+ if (ielem[i].type == 'button' && ielem[i].name == 'remove_fence') {
+ ielem[i].setAttribute('onclick',
+ 'del_fence_instance(\'' + cloned_iform.id + '\')');
+ break;
+ }
+ }
+
+ instance_div.appendChild(cloned_iform);
+ }
}
function swap_fence_div(container_id, element_id) {
@@ -82,25 +111,33 @@
break;
}
}
-
idiv.appendChild(form_elem);
container_element.appendChild(idiv);
+ num_fence_instances[container_id] = 1;
}
var remove_div = document.createElement('div');
remove_div.className = 'hbSubmit';
+
var remove_button = document.createElement('input');
remove_button.setAttribute('type', 'button');
- remove_button.setAttribute('value', 'Remove this fence device');
+ remove_button.setAttribute('value', 'Remove this device');
remove_button.setAttribute('onclick', "del_fence('" + container_element.id + "');");
+
+ var add_instance_button = document.createElement('input');
+ add_instance_button.setAttribute('type', 'button');
+ add_instance_button.setAttribute('name', 'add_fence_inst');
+ add_instance_button.setAttribute('value', 'Add an instance');
+ add_instance_button.setAttribute('onclick', "add_fence_instance('" + container_element.id + "','" + fence_type + "');");
+ add_instance_button.className = 'pad_left';
+
var remove_form = document.createElement('form');
remove_form.appendChild(remove_button);
+ remove_form.appendChild(add_instance_button);
remove_div.appendChild(remove_form);
container_element.appendChild(remove_div);
}
-var num_fences_level = Array(0, 0)
-
function add_node_fence_device(fence_level) {
var cont_name = 'fence_list_level' + fence_level;
var container = document.getElementById(cont_name);
--- conga/luci/cluster/form-macros 2007/01/08 21:58:33 1.145
+++ conga/luci/cluster/form-macros 2007/01/09 18:27:04 1.146
@@ -1283,16 +1283,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_apc" />
</div>
</div>
@@ -1351,16 +1341,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_mcdata" />
</div>
</div>
@@ -1410,16 +1390,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_wti" />
</div>
</div>
@@ -1624,16 +1594,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_brocade" />
</div>
</div>
@@ -1687,16 +1647,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_sanbox2" />
</div>
</div>
@@ -1746,16 +1696,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_vixel" />
</div>
</div>
@@ -1796,16 +1736,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_gnbd" />
</div>
</div>
@@ -1855,16 +1785,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_egenera" />
</div>
</div>
@@ -1915,16 +1835,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_bladecenter" />
</div>
</div>
@@ -1983,16 +1893,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="fence_bullpap" />
</div>
</div>
@@ -2066,16 +1966,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="xvm" />
</div>
</div>
@@ -2107,16 +1997,6 @@
</tal:block>
<input type="hidden" name="sharable" value="1" />
- <tal:block tal:condition="exists: cur_fencedev">
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances"
- tal:attributes="
- value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
- <tal:block tal:condition="not:exists: cur_fencedev/instance_list">
- <input type="hidden" name="num_instances" value="1" />
- </tal:block>
- </tal:block>
<input type="hidden" name="fence_type" value="scsi" />
</div>
</div>
@@ -2277,8 +2157,11 @@
</tal:block>
</div>
-<div metal:define-macro="fence-instance-form-apc">
- <div id="fence_apc_instance" name="fence_apc" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-apc"
+ tal:omit-tag="exists: cur_fence_dev_id">
+
+ <div id="fence_apc_instance" name="fence_apc" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Port</td>
@@ -2316,8 +2199,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-egenera">
- <div id="fence_egenera_instance" name="fence_egenera" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-egenera"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_egenera_instance" name="fence_egenera" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>lpan</td>
@@ -2355,8 +2240,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-wti">
- <div id="fence_wti_instance" name="fence_wti" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-wti"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_wti_instance" name="fence_wti" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Port</td>
@@ -2387,8 +2274,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-brocade">
- <div id="fence_brocade_instance" name="fence_brocade" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-brocade"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_brocade_instance" name="fence_brocade" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Port</td>
@@ -2419,8 +2308,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-vixel">
- <div id="fence_vixel_instance" name="fence_vixel" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-vixel"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_vixel_instance" name="fence_vixel" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Port</td>
@@ -2451,8 +2342,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-sanbox2">
- <div id="fence_sanbox2_instance" name="fence_sanbox2" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-sanbox2"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_sanbox2_instance" name="fence_sanbox2" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Port</td>
@@ -2483,8 +2376,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-mcdata">
- <div id="fence_mcdata_instance" name="fence_mcdata" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-mcdata"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_mcdata_instance" name="fence_mcdata" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Port</td>
@@ -2515,8 +2410,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-gndb">
- <div id="fence_gnbd_instance" name="fence_gnbd" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-gndb"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_gnbd_instance" name="fence_gnbd" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>IP Address</td>
@@ -2547,8 +2444,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-bladecenter">
- <div id="fence_bladecenter_instance" name="fence_bladecenter" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-bladecenter"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_bladecenter_instance" name="fence_bladecenter" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Blade</td>
@@ -2579,8 +2478,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-bullpap">
- <div id="fence_bullpap_instance" name="fence_bullpap" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-bullpap"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_bullpap_instance" name="fence_bullpap" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Domain</td>
@@ -2611,8 +2512,10 @@
</div>
</div>
-<div metal:define-macro="fence-instance-form-xvm">
- <div id="fence_xvm_instance" name="fence_xvm" class="fencedev_instance">
+<div metal:define-macro="fence-instance-form-xvm"
+ tal:omit-tag="exists: cur_fence_dev_id">
+ <div id="fence_xvm_instance" name="fence_xvm" class="fencedev_instance"
+ tal:omit-tag="exists: cur_fence_dev_id">
<table>
<tr>
<td>Domain</td>
@@ -2965,11 +2868,6 @@
<form tal:attributes="name cur_fence_dev_id | string:[unknown]">
<tal:block metal:use-macro="here/form-macros/macros/fencedev-cond-ladder" />
- <tal:block tal:condition="exists: cur_fencedev/instance_list">
- <input type="hidden"
- name="num_instances"
- tal:attributes="value python: len(cur_fencedev['instance_list'])" />
- </tal:block>
</form>
<tal:block
@@ -2977,6 +2875,7 @@
<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
<tal:block tal:condition="exists: cur_fencedev/instance_list">
+ <tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fence_instances[\'' + cur_fence_dev_id + '\'] = ' + str(len(cur_fencedev['instance_list'])) + ';</script>'" />
<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
<tal:block
tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
@@ -2998,9 +2897,13 @@
</div>
<div class="hbSubmit">
<input type="button" name="remove_fence_dev"
- value="Remove this fence device"
+ value="Remove this device"
tal:attributes="
onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
+ <input tal:condition="exists: cur_fencedev/isShared"
+ name="add_instance" type="button"
+ value="Add an instance"
+ tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
</div>
<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
</tal:block>
@@ -3041,6 +2944,7 @@
<div tal:attributes="id python: cur_fence_dev_id + '_instances'">
<tal:block tal:condition="exists: cur_fencedev/instance_list">
+ <tal:block tal:replace="structure python: '<script type='+chr(0x22)+'text/javascript'+chr(0x22)+'>num_fence_instances[\'' + cur_fence_dev_id + '\'] = ' + str(len(cur_fencedev['instance_list'])) + ';</script>'" />
<tal:block tal:repeat="cur_instance cur_fencedev/instance_list">
<tal:block
tal:define="global cur_fence_instance_id python: cur_fence_dev_id + '_' + str(cur_instance_num)" />
@@ -3062,9 +2966,13 @@
</div>
<div class="hbSubmit">
<input type="button" name="remove_fence_dev"
- value="Remove this fence device"
+ value="Remove this device"
tal:attributes="
onclick python: 'del_fence(\'' + cur_fence_dev_id + '\')'" />
+ <input tal:condition="exists: cur_fencedev/isShared"
+ name="add_instance" type="button"
+ value="Add an instance"
+ tal:attributes="onclick python: 'add_fence_instance(\'' + cur_fence_dev_id + '\',\'' + cur_fence_type + '\')'" />
</div>
<tal:block tal:define="global cur_fence_num python: cur_fence_num + 1" />
</tal:block>
More information about the Cluster-devel
mailing list