All of lore.kernel.org
 help / color / mirror / Atom feed
From: rmccabe@sourceware.org <rmccabe@sourceware.org>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] conga/luci homebase/form-macros homebase/homeb ...
Date: 11 Jul 2007 22:47:10 -0000	[thread overview]
Message-ID: <20070711224710.11514.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-07-11 22:47:08

Modified files:
	luci/homebase  : form-macros homebase_common.js 
	                 validate_cluster_add.js 
	                 validate_cluster_add_initial.js 
	                 validate_perm.js validate_sys_add.js 
	                 validate_sys_remove.js validate_user_add.js 
	                 validate_user_del.js 
	luci/cluster   : fence_device.js form-macros 
	                 resource-form-macros resource_form_handlers.js 
	                 validate_fence.js 

Log message:
	Fixes for MSIE support

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/form-macros.diff?cvsroot=cluster&r1=1.57&r2=1.58
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/homebase_common.js.diff?cvsroot=cluster&r1=1.17&r2=1.18
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_cluster_add.js.diff?cvsroot=cluster&r1=1.9&r2=1.10
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_cluster_add_initial.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_perm.js.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_sys_add.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_sys_remove.js.diff?cvsroot=cluster&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_user_add.js.diff?cvsroot=cluster&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/validate_user_del.js.diff?cvsroot=cluster&r1=1.2&r2=1.3
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/fence_device.js.diff?cvsroot=cluster&r1=1.11&r2=1.12
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/form-macros.diff?cvsroot=cluster&r1=1.200&r2=1.201
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource-form-macros.diff?cvsroot=cluster&r1=1.38&r2=1.39
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/resource_form_handlers.js.diff?cvsroot=cluster&r1=1.36&r2=1.37
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/cluster/validate_fence.js.diff?cvsroot=cluster&r1=1.7&r2=1.8

--- conga/luci/homebase/form-macros	2007/06/25 16:03:38	1.57
+++ conga/luci/homebase/form-macros	2007/07/11 22:47:07	1.58
@@ -69,7 +69,7 @@
 
 		<div class="hbSubmit" tal:condition="python:userList" id="hbSubmit">
 			<input name="Submit" type="button" value="Delete This User"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 	</form>
 
@@ -136,7 +136,7 @@
 
 		<div class="hbSubmit" id="hbSubmit">
 			<input name="Submit" type="button" value="Submit"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 	</form>
 </div>
@@ -189,7 +189,7 @@
 		<span tal:content="string:Select a User" /><br/>
 		
 		<select class="homebase" name="userList"
-			onChange="document.location = '/luci/homebase/?pagetype=3&user=' + this.form.userList.options[this.form.userList.selectedIndex].text">
+			onchange="document.location = '/luci/homebase/?pagetype=3&user=' + this.form.userList.options[this.form.userList.selectedIndex].text">
 			<tal:block tal:define="userlist python: perms">
 				<tal:block tal:repeat="user userlist">
 					<option class="homebase"
@@ -247,7 +247,7 @@
 		<div class="hbSubmit" id="hbSubmit">
 			<input type="button" name="Update Permissions"
 				value="Update Permissions"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 
 		</tal:block>
@@ -308,7 +308,7 @@
 					</tr>
 				</thead>
 			
-				<tbody class="systemsTable">
+				<tbody class="systemsTable" id="sys_tbody">
 					<tr class="systemsTable" id="__SYSTEM_ROW_0">
 						<td class="systemsTable">
 							<input class="hbInputSys" type="text"
@@ -320,7 +320,7 @@
 								id="__SYSTEM0:Passwd"
 								name="__SYSTEM0:Passwd"
 								class="hbInputPass"
-								onChange="pwd0Change(this.form)" />
+								onchange="pwd0Change(this.form)" />
 						</td>
 						<td class="systemsTable">
 							<img src="/luci/delete-row.png" class="deleteRow"
@@ -343,7 +343,7 @@
 				</thead>
 				<tal:block tal:define="global cur_sysnum python: 0" />
 
-				<tbody class="systemsTable">
+				<tbody class="systemsTable" id="sys_tbody">
 				<tal:block tal:repeat="cur_sys new_systems">
 					<tr class="systemsTable"
 						tal:attributes="
@@ -363,7 +363,7 @@
 							<input type="password"
 								autocomplete="off"
 								class="hbInputPass"
-								onChange="pwd0Change(this.form)"
+								onchange="pwd0Change(this.form)"
 								tal:attributes="
 									id python: '__SYSTEM%d:Passwd' % cur_sysnum;
 									name python: '__SYSTEM%d:Passwd' % cur_sysnum;
@@ -414,7 +414,7 @@
 						<li class="vanilla"
 							tal:attributes="id python: cur_sysnum < 2 and 'allSameDiv' or ''">
 							<input type="checkbox" name="allSameCheckBox"
-								id="allSameCheckBox" onClick="allPasswdsSame(this.form)" />
+								id="allSameCheckBox" onclick="allPasswdsSame(this.form)" />
 							Check if system passwords are identical.
 						</li>
 					</ul>
@@ -423,7 +423,7 @@
 				<tr class="systemsTable"><td class="systemsTable" colspan="2">
 					<div class="systemsTableEnd">
 						<input type="button" value="Add another entry"
-							onClick="addSystem(this.form)" />
+							onclick="addSystem(this.form)" />
 					</div>
 				</td></tr>
 			</tfoot>
@@ -436,7 +436,7 @@
 
 		<div class="hbSubmit" id="hbSubmit">
 			<input type="button" name="Submit" value="Submit"
-				onClick="validateAuth(this.form)" />
+				onclick="validateAuth(this.form)" />
 		</div>
 
 		<tal:block tal:condition="exists: request/SESSION/auth_status">
@@ -542,7 +542,7 @@
 
 		<div class="hbSubmit">
 			<input type="button" name="Submit" value="Remove selected entries"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 	</fieldset>
 	</form>
@@ -601,7 +601,7 @@
 					</tr>
 				</thead>
 			
-				<tbody class="systemsTable">
+				<tbody class="systemsTable" id="sys_tbody">
 					<tr class="systemsTable" id="__SYSTEM_ROW_0">
 						<td class="systemsTable">
 							<input class="hbInputSys" type="text"
@@ -613,7 +613,7 @@
 								id="__SYSTEM0:Passwd"
 								name="__SYSTEM0:Passwd"
 								class="hbInputPass"
-								onChange="pwd0Change(this.form)" />
+								onchange="pwd0Change(this.form)" />
 						</td>
 						<td class="systemsTable">
 							<img src="/luci/delete-row.png" class="deleteRow"
@@ -636,7 +636,7 @@
 				</thead>
 				<tal:block tal:define="global cur_sysnum python: 0" />
 
-				<tbody class="systemsTable">
+				<tbody class="systemsTable" id="sys_tbody">
 				<tal:block tal:repeat="cur_sys new_systems">
 					<tr class="systemsTable"
 						tal:attributes="
@@ -656,7 +656,7 @@
 							<input type="password"
 								autocomplete="off"
 								class="hbInputPass"
-								onChange="pwd0Change(this.form)"
+								onchange="pwd0Change(this.form)"
 								tal:attributes="
 									id python: '__SYSTEM%d:Passwd' % cur_sysnum;
 									name python: '__SYSTEM%d:Passwd' % cur_sysnum;
@@ -706,14 +706,14 @@
 								onchange="view_certs_only(this.form, this.checked)"
 								type="checkbox">View system certificates before sending any passwords.</li>
 						<li class="vanilla"
-							tal:attributes="id python: cur_sysnum < 2 and 'allSameDiv' or ''"><input type="checkbox" name="allSameCheckBox" id="allSameCheckBox" onClick="allPasswdsSame(this.form);"/>Check if storage system passwords are identical.</li>
+							tal:attributes="id python: cur_sysnum < 2 and 'allSameDiv' or ''"><input type="checkbox" name="allSameCheckBox" id="allSameCheckBox" onclick="allPasswdsSame(this.form);"/>Check if storage system passwords are identical.</li>
 					</ul>
 				</td></tr>
 
 				<tr class="systemsTable"><td class="systemsTable" colspan="2">
 					<div class="systemsTableEnd">
 						<input type="button" value="Add another entry"
-							onClick="addSystem(this.form)" />
+							onclick="addSystem(this.form)" />
 					</div>
 				</td></tr>
 			</tfoot>
@@ -724,7 +724,7 @@
 
 		<div class="hbSubmit" id="hbSubmit">
 			<input type="button" name="Submit" value="Submit"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 	</form>
 </div>
@@ -805,7 +805,7 @@
 						<li class="vanilla" id="allSameDiv">
 						<li class="vanilla" tal:condition="not: exists: add_cluster/complete">
 							<input type="checkbox" name="allSameCheckBox"
-								id="allSameCheckBox" onClick="allPasswdsSame(this.form)"
+								id="allSameCheckBox" onclick="allPasswdsSame(this.form)"
 								tal:attributes="checked python: add_cluster['identical_passwds'] and 'checked'"
 							/>
 							
@@ -823,7 +823,8 @@
 
 			<tal:block tal:define="global cur_sysnum python:0" />
 
-			<tbody class="systemsTable" tal:condition="add_cluster/nodes">
+			<tbody class="systemsTable" id="sys_tbody"
+				tal:condition="add_cluster/nodes">
 			 <tal:block tal:repeat="cur_sys add_cluster/nodes">
 				<tr class="systemsTable"
 					tal:define="sys python: add_cluster['nodes'][cur_sys]">
@@ -841,7 +842,7 @@
 						<tal:block tal:condition="not: exists: sys/auth">
 							<input type="password"
 								autocomplete="off"
-								onChange="pwd0Change(this.form)"
+								onchange="pwd0Change(this.form)"
 								tal:attributes="
 									value nothing;
 									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
@@ -850,7 +851,7 @@
 						</tal:block>
 
 						<tal:block tal:condition="exists: sys/auth">
-							<input type="text" onChange="pwd0Change(this.form)"
+							<input type="text" onchange="pwd0Change(this.form)"
 								disabled="disabled" value="[authenticated]"
 								tal:attributes="
 									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
@@ -889,7 +890,7 @@
 
 		<div class="hbSubmit" id="hbSubmit">
 			<input type="button" name="Submit" value="Add This Cluster"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 	</form>
 
@@ -958,7 +959,7 @@
 				</td></tr>
 			</tfoot>
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 				<tr class="systemsTable">
 					<td class="systemsTable">
 						<input class="hbInputSys" type="text"
@@ -968,7 +969,7 @@
 					</td>
 					<td class="systemsTable">
 						<input class="hbInputPass" type="password"
-							onChange="pwd0Change(this.form)"
+							onchange="pwd0Change(this.form)"
 							autocomplete="off"
 							id="__SYSTEM0:Passwd" name="__SYSTEM0:Passwd"
 							tal:attributes="
@@ -997,7 +998,7 @@
 
 		<div class="hbSubmit" id="hbSubmit">
 			<input type="button" name="Submit" value="Submit"
-				onClick="validateForm(this.form)" />
+				onclick="validateForm(this.form)" />
 		</div>
 	</form>
 </div>
--- conga/luci/homebase/homebase_common.js	2007/02/09 18:30:44	1.17
+++ conga/luci/homebase/homebase_common.js	2007/07/11 22:47:07	1.18
@@ -1,28 +1,34 @@
 function set_form_err(ielem) {
-	if (ielem)
+	if (ielem) {
 		ielem.className += ' formerror';
+	}
 }
 
 function clr_form_err(ielem) {
-	if (ielem)
+	if (ielem) {
 		ielem.className = ielem.className.replace(/( )?formerror/, '');
+	}
 }
 
 function toggle_visible(img_obj, elem_id, label_id) {
-	var elem = document.getElementById(elem_id)
-	if (!elem)
+	var elem = document.getElementById(elem_id);
+	if (!elem) {
 		return (-1);
+	}
 
 	var old_state = !!!elem.className.match(/invisible/i);
 
 	if (label_id) {
-		var label = document.getElementById(label_id);
-		if (!label)
+		var label_obj = document.getElementById(label_id);
+		if (!label_obj) {
 			return (-1);
-		if (old_state)
-			label.innerHTML = 'Show';
-		else
-			label.innerHTML = 'Hide';
+		}
+
+		if (old_state) {
+			label_obj.innerHTML = 'Show';
+		} else {
+			label_obj.innerHTML = 'Hide';
+		}
 	}
 
 	if (old_state) {
@@ -38,21 +44,26 @@
 }
 
 function is_valid_int(str, min, max) {
-	if (str.match(/[^0-9 -]/))
+	if (str.match(/[^0-9 -]/)) {
 		return (0);
+	}
 	var val = parseInt(str, 10);
-	if (isNaN(val))
+	if (isNaN(val)) {
 		return (0);
-	if (min !== null && val < min)
+	}
+	if (min !== null && val < min) {
 		return (0);
-	if (max !== null && val > max)
+	}
+	if (max !== null && val > max) {
 		return (0);
+	}
 	return (1);
 }
 
 function error_dialog(errors) {
-	if (!errors || errors.length < 1)
+	if (!errors || errors.length < 1) {
 		return (null);
+	}
 	alert('The following errors were found:\n\n' + errors.join('\n'));
 	return (-1);
 }
@@ -62,32 +73,38 @@
 }
 
 function str_is_valid(str, valid_regex_str) {
-	if (!str || !valid_regex_str)
+	if (!str || !valid_regex_str) {
 		return (null);
+	}
 	var re = eval(valid_regex_str);
 	var invalid = str.replace(re, '');
-	if (!invalid)
+	if (!invalid) {
 		return (null);
+	}
 	return (invalid);
 }
 
 function checkAllBoxes(str, val) {
 	var i = 0;
 	var element;
-	while ((element = document.getElementById(str + i++)))
+	while ((element = document.getElementById(str + i++))) {
 		element.checked = val;
+	}
 }
 
 function checkChildren(parent_cont, parent_input) {
-	if (!parent_cont || !parent_input)
+	if (!parent_cont || !parent_input) {
 		return;
+	}
 	var parent = document.getElementById(parent_cont);
 	var children = parent.getElementsByTagName('input');
 	for (var i = 0 ; i < children.length ; i++) {
-		if (children[i] == parent_input)
+		if (children[i] === parent_input) {
 			continue;
-		if (children[i].type == 'checkbox')
+		}
+		if (children[i].type === 'checkbox') {
 			children[i].checked = parent_input.checked;
+		}
 	}
 }
 
@@ -102,20 +119,21 @@
 function isValidHost(str) {
 	var i = str.split('.');
 
-	if (i.length == 1)
+	if (i.length === 1) {
 		return ('Hostnames must be fully qualified.');
+	}
 
-	if (i.length == 4 && !isNaN(parseInt(i[3]))) {
+	if (i.length === 4 && !isNaN(parseInt(i[3]))) {
 		var o1 = parseInt(i[0]);
 		var o2 = parseInt(i[1]);
 		var o3 = parseInt(i[2]);
 		var o4 = parseInt(i[3]);
 
 		if (isNaN(o1) || isNaN(o2) || isNaN(o3) ||
-			((o1 & 0xff) != o1) ||
-			((o2 & 0xff) != o2) ||
-			((o3 & 0xff) != o3) ||
-			((o4 & 0xff) != o4))
+			((o1 & 0xff) !== o1) ||
+			((o2 & 0xff) !== o2) ||
+			((o3 & 0xff) !== o3) ||
+			((o4 & 0xff) !== o4))
 		{
 			return ('Invalid IP Address.');
 		}
@@ -123,24 +141,28 @@
 		return (null);
 	}
 
-	if (!isNaN(parseInt(i[i.length - 1])))
+	if (!isNaN(parseInt(i[i.length - 1]))) {
 		return ('Invalid IP Address.');
+	}
 
-	if (!str.match(/^[0-9A-Za-z][0-9A-Za-z.-]*$/))
+	if (!str.match(/^[0-9A-Za-z][0-9A-Za-z.-]*$/)) {
 		return ('Hostnames can contain only alphanumeric characters and hyphens.');
+	}
 
 	return (null);
 }
 
 function view_certs_only(form, state) {
 	var num_systems = form.numStorage.value;
-	if (!form.numStorage)
+	if (!form.numStorage) {
 		return (-1);
+	}
 
 	if (state) {
 		var cb = document.getElementById('allSameCheckBox');
-		if (cb && cb.checked)
+		if (cb && cb.checked) {
 			cb.checked = false;
+		}
 	}
 
 	for (var i = 0 ; i < num_systems ; i++) {
@@ -154,8 +176,9 @@
 
 function allPasswdsSame(form) {
 	var cb = document.getElementById('allSameCheckBox');
-	if (!cb)
+	if (!cb) {
 		return (-1);
+	}
 	var num_systems = form.numStorage.value;
 
 	var state = cb.checked;
@@ -164,22 +187,25 @@
 	var first_system = 0;
 	for (var i = 0 ; i < num_systems ; i++) {
 		var passwd = document.getElementById('__SYSTEM' + i + ':Passwd');
-		if (!passwd || passwd.type != 'password')
-			continue
+		if (!passwd || passwd.type !== 'password') {
+			continue;
+		}
 		first_passwd = passwd.value;
 		first_system = i;
 		break;
 	}
 
-	if (first_passwd === null)
+	if (first_passwd === null) {
 		return (-1);
+	}
 
-	if (!first_passwd || !state)
+	if (!first_passwd || !state) {
 		first_passwd = '';
+	}
 
 	for (var i = first_system + 1 ; i < num_systems ; i++) {
 		var element = document.getElementById('__SYSTEM' + i + ':Passwd');
-		if (element && element.type == 'password') {
+		if (element && element.type === 'password') {
 			element.value = first_passwd;
 			element.disabled = state;
 		}
@@ -188,21 +214,24 @@
 
 function delete_element_id(id_str) {
 	var elem = document.getElementById(id_str);
-	if (!elem || !elem.parentNode)
+	if (!elem || !elem.parentNode) {
 		return (-1);
+	}
 	elem.parentNode.removeChild(elem);
 }
 
 function pwd0Change(form) {
 	var element = document.getElementById('allSameCheckBox');
-	if (element && element.checked)
+	if (element && element.checked) {
 		allPasswdsSame(form);
+	}
 }
 
 function addSystem(form) {
-	var sltab = document.getElementById('systemsTable');
-	if (!sltab)
+	var sltab = document.getElementById('sys_tbody');
+	if (!sltab) {
 		return;
+	}
 	var num_systems = form.numStorage.value;
 
 	var newsys = document.createElement('input');
@@ -223,8 +252,9 @@
 	var first_passwd = '';
 	for (var i = 0 ; i < num_systems - 1 ; i++) {
 		var pwd = document.getElementById('__SYSTEM' + i + ':Passwd');
-		if (!pwd || pwd.type != 'password')
+		if (!pwd || pwd.type !== 'password') {
 			continue;
+		}
 		first_passwd = pwd.value;
 		break;
 	}
@@ -247,20 +277,20 @@
 	dcol.className = 'systemsTable';
 	var del_img = document.createElement('img');
 	del_img.src = '/luci/delete-row.png';
-	del_img.title = 'delete this row'
-	del_img.className = 'deleteRow'
-	del_img.setAttribute('onClick', 'delete_element_id(\'' + newrow.id + '\')');
-	dcol.appendChild(del_img);
+	del_img.title = 'delete this row';
+	del_img.className = 'deleteRow';
+	del_img.onclick = new Function('delete_element_id(\'' + newrow.id + '\')');
 
+	sltab.appendChild(newrow);
+	dcol.appendChild(del_img);
 	hcol.appendChild(newsys);
 	pcol.appendChild(newsysp);
 	newrow.appendChild(hcol);
 	newrow.appendChild(pcol);
 	newrow.appendChild(dcol);
-	sltab.appendChild(newrow);
 
 	form.numStorage.value = ++num_systems;
-	if (num_systems == 2) {
+	if (num_systems === 2) {
 		var temp = document.getElementById('allSameDiv');
 		temp.style.visibility = 'visible';
 		temp.style.display = 'block';
@@ -269,20 +299,22 @@
 
 function validate_systems(form, errors) {
 	var allSameCB = document.getElementById('allSameCheckBox');
-	var added_storage = new Array();
+	var added_storage = [];
 	var num_systems = form.numStorage.value;
 
 	var view_certs = document.getElementById('view_certs');
-	if (view_certs)
+	if (view_certs) {
 		view_certs = view_certs.checked;
-	else
+	} else {
 		view_certs = false;
+	}
 
 	for (var i = 0 ; i < num_systems ; i++) {
 		var element = document.getElementById('__SYSTEM' + i + ':Addr');
 
-		if (!element)
+		if (!element) {
 			continue;
+		}
 		element.disabled = false;
 
 		var pwdElem = document.getElementById('__SYSTEM' + i + ':Passwd');
@@ -292,11 +324,13 @@
 				if (!allSameCB || !allSameCB.checked) {
 					errors.push('You entered a password, but no hostname for system ' + (i + 1));
 					clr_form_err(pwdElem);
-				} else
+				} else {
 					pwdElem.value = '';
+				}
 			}
-			if (pwdElem)
+			if (pwdElem) {
 				clr_form_err(pwdElem);
+			}
 			continue;
 		}
 
@@ -316,8 +350,9 @@
 		} else if (str_is_blank(pwdElem.value)) {
 			errors.push('The password entered for \"' + element.value + '\" is blank.');
 			set_form_err(pwdElem);
-		} else
+		} else {
 			clr_form_err(pwdElem);
+		}
 
 		if (str_is_blank(element.value)) {
 			errors.push('You entered a blank hostname for system ' + (i + 1));
--- conga/luci/homebase/validate_cluster_add.js	2007/06/25 16:03:38	1.9
+++ conga/luci/homebase/validate_cluster_add.js	2007/07/11 22:47:07	1.10
@@ -1,8 +1,9 @@
 function validateForm(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	var clustername = form.clustername;
 	if (!clustername || str_is_blank(clustername.value)) {
@@ -18,34 +19,41 @@
 			if (invalid_chars) {
 				errors.push('The cluster name you gave contains the following invalid characters: "' + invalid_chars + '".');
 				set_form_err(form.clustername);
-			} else
+			} else {
 				clr_form_err(form.clustername);
+			}
 		}
 	}
 
 	var added_storage = validate_systems(form, errors);
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
-	if (!added_storage || added_storage.length < 1)
+	if (!added_storage || added_storage.length < 1) {
 		errors.push('You have not added any cluster nodes.');
+	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
 	var view_certs = document.getElementById('view_certs');
 	if (!view_certs || !view_certs.checked) {
 		var confirm_str = '';
-		if (form.addnode)
+		if (form.addnode) {
 			confirm_str = 'Add ' + (added_storage.length > 1 ? 'these nodes' : 'this node') + ' to the \"' + clustername + '\" cluster?';
-		else
+		} else {
 			confirm_str = 'Add the cluster \"' + clustername + '\" to the Luci management interface?';
+		}
 
-		if (confirm(confirm_str))
+		if (confirm(confirm_str)) {
 			form.submit();
-	} else
+		}
+	} else {
 		form.submit();
+	}
 
 	return (0);
 }
--- conga/luci/homebase/validate_cluster_add_initial.js	2006/07/18 19:25:20	1.1
+++ conga/luci/homebase/validate_cluster_add_initial.js	2007/07/11 22:47:07	1.2
@@ -1,22 +1,28 @@
 function validateForm(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	var added_storage = validate_systems(form, errors);
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
-	if (!added_storage || added_storage.length < 1)
+	if (!added_storage || added_storage.length < 1) {
 		errors.push('You have not added any cluster nodes.');
+	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
 	if (confirm('Retrieve cluster information from ' + added_storage[0] + '?'))
+	{
 		form.submit();
+	}
 
 	return (0);
 }
--- conga/luci/homebase/validate_perm.js	2006/06/30 23:07:32	1.2
+++ conga/luci/homebase/validate_perm.js	2007/07/11 22:47:07	1.3
@@ -1,48 +1,58 @@
 function validateForm(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form || !form.userList)
+	if (!form || !form.userList) {
 		return (-1);
+	}
 
 	var userIdx = form.userList.selectedIndex;
-	if (userIdx < 0 || !form.userList.options[userIdx].value)
+	if (userIdx < 0 || !form.userList.options[userIdx].value) {
 		errors.push('You have not selected a valid user.');
+	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
 	var username = form.userList.options[userIdx].value;
-	var selected_clusters = new Array();
-	var selected_storage = new Array();
+	var selected_clusters = [];
+	var selected_storage = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	var num_clusters = document.getElementById('numClusters').value;
 	for (var i = 0 ; i < num_clusters ; i++) {
 		var element = document.getElementById('__CLUSTER' + i);
-		if (!element || !element.value || !element.checked)
+		if (!element || !element.value || !element.checked) {
 			continue;
+		}
 		selected_clusters.push(element.value);
 	}
 
 	var num_storage = document.getElementById('numStorage').value;
 	for (var i = 0 ; i < num_storage ; i++) {
 		var element = document.getElementById('__SYSTEM' + i);
-		if (!element || !element.value || !element.checked)
+		if (!element || !element.value || !element.checked) {
 			continue;
+		}
 		selected_storage.push(element.value);
 	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
-	if (selected_clusters.length + selected_storage.length < 1)
+	var confirm_str = '';
+	if (selected_clusters.length + selected_storage.length < 1) {
 		confirm_str = 'Remove all permissions for ' + username + '?';
-	else
+	} else {
 		confirm_str = 'Modify permissions for ' + username + '?';
+	}
 
-	if (confirm(confirm_str))
+	if (confirm(confirm_str)) {
 		form.submit();
+	}
 	return (0);
 }
--- conga/luci/homebase/validate_sys_add.js	2006/06/30 18:06:10	1.1
+++ conga/luci/homebase/validate_sys_add.js	2007/07/11 22:47:07	1.2
@@ -1,12 +1,14 @@
 function validateForm(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	var added_storage = validate_systems(form, errors);
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
 	if (added_storage.length > 0 &&
 		confirm("Do you really want to add the following Storage Systems:\n" + added_storage.join('\n')))
--- conga/luci/homebase/validate_sys_remove.js	2006/12/21 05:08:48	1.3
+++ conga/luci/homebase/validate_sys_remove.js	2007/07/11 22:47:07	1.4
@@ -1,65 +1,77 @@
 function validateForm(form) {
-	var errors = new Array();
-	var selected_clusters = new Array();
-	var selected_storage = new Array();
+	var errors = [];
+	var selected_clusters = [];
+	var selected_storage = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	var num_clusters = document.getElementById('num_clusters').value;
 	for (var i = 0 ; i < num_clusters ; i++) {
 		var element = document.getElementById('__CLUSTER' + i);
-		if (!element || !element.value || !element.checked)
+		if (!element || !element.value || !element.checked) {
 			continue;
+		}
 		selected_clusters.push(element.value);
 	}
 
 	var num_storage = document.getElementById('num_storage').value;
 	for (var i = 0 ; i < num_storage ; i++) {
 		var element = document.getElementById('__SYSTEM' + i);
-		if (!element || !element.value || !element.checked)
+		if (!element || !element.value || !element.checked) {
 			continue;
+		}
 		selected_storage.push(element.value);
 	}
 
-	if (selected_clusters.length + selected_storage.length < 1)
+	if (selected_clusters.length + selected_storage.length < 1) {
 		return (0);
+	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
 	var confirm_str = 'Do you really want to remove the following managed systems:';
-	if (selected_clusters.length > 0)
+	if (selected_clusters.length > 0) {
 		confirm_str += '\nClusters:\n-' + selected_clusters.join('\n-');
+	}
 
 	if (selected_storage.length > 0) {
-		if (selected_clusters.length > 0)
+		if (selected_clusters.length > 0) {
 			confirm_str += '\n';
+		}
 
 		confirm_str += '\nStorage Systems:\n-' + selected_storage.join('\n-');
 	}
 
-	if (confirm(confirm_str))
+	if (confirm(confirm_str)) {
 		form.submit();
+	}
 	return (0);
 }
 
 function validateAuth(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	var added_storage = validate_systems(form, errors);
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
-	if (!added_storage || added_storage.length < 1)
+	if (!added_storage || added_storage.length < 1) {
 		errors.push('You have not specified any hosts.');
+	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
 	form.submit();
 	return (0);
--- conga/luci/homebase/validate_user_add.js	2006/10/04 16:39:07	1.3
+++ conga/luci/homebase/validate_user_add.js	2007/07/11 22:47:07	1.4
@@ -1,8 +1,9 @@
 function validateForm(form) {
-	var errors = new Array()
+	var errors = [];
 
-	if (!form)
+	if (!form) {
 		return (-1);
+	}
 
 	if (!form.newUserName || !form.newUserName.value) {
 		errors.push('You did not enter a user name.');
@@ -12,8 +13,9 @@
 		if (invalid) {
 			errors.push('The user name you specified contains the following invalid characters: "' + invalid + '"');
 			set_form_err(form.newUserName);
-		} else
+		} else {
 			clr_form_err(form.newUserName);
+		}
 	}
 
 	if (!form.newPassword || !form.newPassword.value) {
@@ -43,9 +45,13 @@
 		}
 	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
+
 	if (confirm('Do you really want to add the user \"' + form.newUserName.value + '\"?'))
+	{
 		form.submit();
+	}
 	return (0);
 }
--- conga/luci/homebase/validate_user_del.js	2006/09/27 22:49:09	1.2
+++ conga/luci/homebase/validate_user_del.js	2007/07/11 22:47:07	1.3
@@ -1,8 +1,9 @@
 function validateForm(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form || !form.deluserId)
+	if (!form || !form.deluserId) {
 		return (-1);
+	}
 
 	var userIdx = form.deluserId.selectedIndex;
 	if (userIdx <= 0 ||
@@ -13,8 +14,10 @@
 		return (-1);
 	}
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
+
 	if (confirm('Do you really want to remove the user \"' +
 		form.deluserId.options[userIdx].value + '\"?'))
 	{
--- conga/luci/cluster/fence_device.js	2007/01/25 21:03:46	1.11
+++ conga/luci/cluster/fence_device.js	2007/07/11 22:47:07	1.12
@@ -1,5 +1,5 @@
-var num_fences_level = Array(0, 0)
-var num_fence_instances = new Array()
+var num_fences_level = [ 0, 0 ];
+var num_fence_instances = [];
 
 function del_fence_instance(fi_div_id) {
 	delete_element_id(fi_div_id);
@@ -11,8 +11,9 @@
 
 function add_fence_instance(fi_cont_id, fence_type) {
 	var instance_div = document.getElementById(fi_cont_id + '_instances');
-	if (!instance_div)
+	if (!instance_div) {
 		return (-1);
+	}
 
 	var fi_form = document.getElementById(fence_type + '_instance');
 	if (fi_form) {
@@ -49,13 +50,16 @@
 
 	var child_element = document.getElementById(element_id);
 	if (!child_element) {
-		if (container_element.firstChild)
+		if (container_element.firstChild) {
 			container_element.removeChild(container_element.firstChild);
+		}
 		return (-1);
 	}
 
-	if (container_element.firstChild)
+	if (container_element.firstChild) {
 		container_element.removeChild(container_element.firstChild);
+	}
+
 	var target = child_element.cloneNode(1);
 	target.id = null;
 	container_element.appendChild(target);
@@ -63,15 +67,21 @@
 
 function swap_node_fence_div(container_id, fence_opt) {
 	var container_element = document.getElementById(container_id);
-	if (!container_element || !fence_opt || !fence_opt.value)
+	if (!container_element) {
 		return (-1);
+	}
+	if (!container_element || !fence_opt || !fence_opt.value) {
+		return (-1);
+	}
 
 	var fence_id = fence_opt.value;
 	var child_element = document.getElementById(fence_id);
-	if (!child_element)
+	if (!child_element) {
 		return (-1);
-	if (container_element.firstChild)
+	}
+	if (container_element.firstChild) {
 		container_element.removeChild(container_element.firstChild);
+	}
 
 	var target = child_element.cloneNode(1);
 	target.id = '';
@@ -82,8 +92,9 @@
 		for (var i = 0 ; i < input_tags.length ; i++) {
 			if (input_tags[i].type != 'button') {
 				input_tags[i].disabled = true;
-				if (input_tags[i].name == 'fence_type')
+				if (input_tags[i].name == 'fence_type') {
 					fence_type = input_tags[i].value;
+				}
 			}
 		}	
 	}
@@ -144,8 +155,9 @@
 
 	var remove_form = document.createElement('form');
 	remove_form.appendChild(remove_button);
-	if (sharable)
+	if (sharable) {
 		remove_form.appendChild(add_instance_button);
+	}
 	remove_div.appendChild(remove_form);
 	container_element.appendChild(remove_div);
 }
@@ -153,38 +165,45 @@
 function add_node_fence_device(fence_level) {
 	var cont_name = 'fence_list_level' + fence_level;
 	var container = document.getElementById(cont_name);
-	if (!container)
+	if (!container) {
 		return (-1);
+	}
 
-	var chooser_elem = document.getElementById('fence_selection_block');
-	if (!chooser_elem)
+	var chooser_elem_orig = document.getElementById('fence_selection_block');
+	if (!chooser_elem_orig) {
 		return (-1);
+	}
 
 	var div_elem = document.createElement('div');
-	if (!div_elem)
+	if (!div_elem) {
 		return (-1);
+	}
 	var level_num_fences = num_fences_level[fence_level - 1];
 
 	div_elem.id = 'fence' + fence_level + '_' + level_num_fences;
 	div_elem.className = 'fence_level';
-	chooser_elem = chooser_elem.cloneNode(1);
+
+	var chooser_elem = chooser_elem_orig.cloneNode(1);
 	chooser_elem.id = null;
 	chooser_elem.className = null;
 
 	var input_elems = chooser_elem.getElementsByTagName('input');
-	if (!input_elems || input_elems.length < 2)
+	if (!input_elems || input_elems.length < 2) {
 		return (-1);
+	}
 	for (var i = 0 ; i < input_elems.length ; i++) {
-		if (input_elems[i].name == 'fence_level')
+		if (input_elems[i].name == 'fence_level') {
 			input_elems[i].value = fence_level;
-		else if (input_elems[i].name == 'fence_num')
+		} else if (input_elems[i].name == 'fence_num') {
 			input_elems[i].value = level_num_fences++;
+		}
 	}
-
 	var select_elem = chooser_elem.getElementsByTagName('select');
-	if (!select_elem || select_elem.length != 1)
+	if (!select_elem || select_elem.length !== 1) {
 		return (-1);
-	select_elem[0].setAttribute('onChange', "swap_node_fence_div('" + div_elem.id + "', this.options[this.selectedIndex])");
+	}
+	select_elem = select_elem[0];
+	select_elem.onchange = new Function("swap_node_fence_div('" + div_elem.id + "', this.options[this.selectedIndex])");
 
 	div_elem.appendChild(chooser_elem);
 	container.appendChild(div_elem);
--- conga/luci/cluster/form-macros	2007/06/25 16:11:30	1.200
+++ conga/luci/cluster/form-macros	2007/07/11 22:47:07	1.201
@@ -384,7 +384,7 @@
 
 			<tal:block tal:define="global cur_sysnum python:0" />
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 			 <tal:block
 				tal:condition="exists: add_cluster/nodes"
 				tal:repeat="cur_sys add_cluster/nodes">
@@ -404,7 +404,7 @@
 					<td class="systemsTable">
 						<tal:block tal:condition="not: exists: sys/auth">
 							<input type="password"
-								onChange="pwd0Change(this.form)"
+								onchange="pwd0Change(this.form)"
 								autocomplete="off"
 								tal:attributes="
 									value nothing;
@@ -414,7 +414,7 @@
 						</tal:block>
 
 						<tal:block tal:condition="exists: sys/auth">
-							<input type="text" onChange="pwd0Change(this.form)"
+							<input type="text" onchange="pwd0Change(this.form)"
 								disabled="disabled" value="[authenticated]"
 								tal:attributes="
 									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
@@ -461,9 +461,8 @@
 					</td>
 					<td class="systemsTable">
 						<input type="password"
-							onChange="pwd0Change(this.form)"
+							onchange="pwd0Change(this.form)"
 							class="hbInputPass" autocomplete="off"
-							onChange="pwd0Change(this.form)"
 							id="__SYSTEM0:Passwd" name="__SYSTEM0:Passwd" />
 					</td>
 					<td class="systemsTable">
@@ -480,7 +479,7 @@
 					</td>
 					<td class="systemsTable">
 						<input type="password"
-							onChange="pwd0Change(this.form)"
+							onchange="pwd0Change(this.form)"
 							class="hbInputPass" autocomplete="off"
 							id="__SYSTEM1:Passwd" name="__SYSTEM1:Passwd" />
 					</td>
@@ -498,7 +497,7 @@
 					</td>
 					<td class="systemsTable">
 						<input type="password"
-							onChange="pwd0Change(this.form)"
+							onchange="pwd0Change(this.form)"
 							class="hbInputPass" autocomplete="off"
 							id="__SYSTEM2:Passwd" name="__SYSTEM2:Passwd" />
 					</td>
@@ -609,7 +608,7 @@
 				</td></tr>
 			</thead>
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 				<tr class="systemsTable">
 					<td class="systemsTable">Cluster Name</td>
 					<td class="systemsTable">
@@ -943,7 +942,7 @@
 				</td></tr>
 			</thead>
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 				<tr class="systemsTable">
 					<td class="systemsTable">Post Fail <span tal:attributes="onclick python:'window.location.assign(\'./?pagetype=80&clustername=' + request['clustername'] + '\')'">Delay</span>
 					</td>
@@ -1009,7 +1008,7 @@
 				</td></tr>
 			</thead>
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 				<tr class="systemsTable">
 					<td class="systemsTable">
 						<input type="radio" name="mcast" value="False"
@@ -1093,7 +1092,7 @@
 				</td></tr>
 			</thead>
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 				<tr class="systemsTable" id="st_row"><td class="systemsTable" id="st_col">
 					<input type="radio" name="quorumd" value="False"
 						onClick="disableChildrenInput('quorumdisk');"
@@ -1314,7 +1313,7 @@
 					<th class="systemsTable">Lock Server</th>
 				</tr>
 			</thead>
-			<tbody>
+			<tbody id="sys_tbody">
 				<tal:block tal:repeat="c clusterinfo/gulm_lockservers">
 					<tr class="systemsTable">
 						<td class="systemsTable">
@@ -3274,7 +3273,7 @@
 
 	<div id="fence_selection_block" class="invisible">
 		<form name="main_fence_form">
-			<select name="select_div">
+			<select name="select_div" onchange="alert('ALERT')">
 				<option value="fence-form-new-device">------ Use an existing Fence Device ------</option>
 				<tal:block tal:repeat="f fencedevinfo/fencedevs">
 					<option class="shared_fencedev"
@@ -3731,7 +3730,7 @@
 
 			<tal:block tal:define="global cur_sysnum python:0" />
 
-			<tbody class="systemsTable">
+			<tbody class="systemsTable" id="sys_tbody">
 			 <tal:block
 				tal:condition="exists: add_cluster/nodes"
 				tal:repeat="cur_sys add_cluster/nodes">
@@ -3752,7 +3751,7 @@
 						<tal:block tal:condition="not: exists: sys/auth">
 							<input type="password"
 								autocomplete="off"
-								onChange="pwd0Change(this.form)"
+								onchange="pwd0Change(this.form)"
 								tal:attributes="
 									value nothing;
 									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
@@ -3761,7 +3760,7 @@
 						</tal:block>
 
 						<tal:block tal:condition="exists: sys/auth">
-							<input type="text" onChange="pwd0Change(this.form)"
+							<input type="text" onchange="pwd0Change(this.form)"
 								disabled="disabled" value="[authenticated]"
 								tal:attributes="
 									class python: 'hbInputPass' + ('errors' in sys and ' error' or '');
@@ -3808,9 +3807,8 @@
 					</td>
 					<td class="systemsTable">
 						<input type="password"
-							onChange="pwd0Change(this.form)"
+							onchange="pwd0Change(this.form)"
 							class="hbInputPass" autocomplete="off"
-							onChange="pwd0Change(this.form)"
 							id="__SYSTEM0:Passwd" name="__SYSTEM0:Passwd" />
 					</td>
 					<td class="systemsTable">
@@ -4976,7 +4974,7 @@
 			<td class="cluster node fence_main fence">
 				<form name="main_fence_form">
 					<select name="select_div"
-						onChange="swap_fence_div('fence_container',
+						onchange="swap_fence_div('fence_container',
 									this.options[this.selectedIndex].value)">
 						<tal:block metal:use-macro="here/form-macros/macros/shared-fence-option-list" />
 					</select>
--- conga/luci/cluster/resource-form-macros	2007/06/25 16:03:37	1.38
+++ conga/luci/cluster/resource-form-macros	2007/07/11 22:47:07	1.39
@@ -102,8 +102,7 @@
 		<strong class="reshdr">Select a Resource Type</strong>
 	</p>
 
-	<p class="reshdr">
-		<form>
+	<form>
 		<select onChange="swap_div_elem(this.form.parentNode,
 									this.options[this.selectedIndex].value);">
 			<option name="blank" value="blank" checked>
@@ -128,8 +127,7 @@
 			<option name="SAPDatabase" value="SAPDatabase">SAP Database</option>
 			<option name="SAPInstance" value="SAPInstance">SAP Instance</option>
 		</select>
-		</form>
-	</p>
+	</form>
 
 	<div name="invisible" class="invisible">
 		<div name="blank">&nbsp;</div>
@@ -155,9 +153,10 @@
 <div metal:define-macro="service-compose-macro">
 	<p class="reshdr">
 		<strong class="reshdr">Add a new local resource</strong>
-		<form>
+	</p>
+	<form>
 		<select onChange="swap_div_elem(this.form.parentNode,
-							this.options[this.selectedIndex].value);">
+							this.options[this.selectedIndex].value)">
 			<option checked="checked">Select a resource type</option>
 			<option name="IP" value="IP">IP address</option>
 			<option name="FS" value="FS">File system</option>
@@ -177,20 +176,21 @@
 			<option name="SAPDatabase" value="SAPDatabase">SAP Database</option>
 			<option name="SAPInstance" value="SAPInstance">SAP Instance</option>
 		</select>
-		</form>
-	</p>
+	</form>
 
 	<p style="margin-left: +5em;margin-top:1em;"><strong>or</strong></p>
 	<p class="reshdr">
 		<strong class="reshdr">Use an existing global resource</strong>
 		<br/>
-		<form>
+	</p>
+
+	<form>
 		<input type="hidden" name="parent_uuid" value="" />
 		<input type="hidden" name="uuid" value="" />
 		<input type="hidden" name="tree_level" value="" />
 		<select id="gres_chooser"
 			onChange="swap_in_global_res('global_resources_block', this,
-						this.form.parentNode, this.form);">
+						this.form.parentNode, this.form)">
 			<option checked="checked">Select a resource name</option>
 			<tal:block
 				tal:repeat="gres global_resources">
@@ -200,8 +200,7 @@
 					tal:content="python: gres['name'] + ' (' + gres['type'].split(':')[0] + ')'" />
 			</tal:block>
 		</select>
-		</form>
-	</p>
+	</form>
 
 	<div name="invisible" class="invisible">
 		<div name="">&nbsp;</div>
--- conga/luci/cluster/resource_form_handlers.js	2007/06/25 16:11:30	1.36
+++ conga/luci/cluster/resource_form_handlers.js	2007/07/11 22:47:07	1.37
@@ -69,14 +69,14 @@
 	var divs = container.getElementsByTagName('div');
 
 	for (var i = 0 ; i < divs.length ; i++) {
-		if (!swap_in_elem && divs[i].getAttribute('name') == swap_in_name) {
+		if (divs[i].getAttribute('name') == swap_in_name) {
 			swap_in_elem = divs[i];
 			break;
 		}
 	}
-	if (!swap_in_elem)
+	if (!swap_in_elem) {
 		return (-1);
-
+	}
 	container.parentNode.replaceChild(swap_in_elem, container);
 }
 
--- conga/luci/cluster/validate_fence.js	2007/06/25 16:11:30	1.7
+++ conga/luci/cluster/validate_fence.js	2007/07/11 22:47:07	1.8
@@ -1,4 +1,4 @@
-var fence_inst_validator = new Array();
+var fence_inst_validator = [];
 fence_inst_validator['apc'] = [ 'port', 'switch' ];
 fence_inst_validator['bladecenter'] = [ 'blade' ];
 fence_inst_validator['brocade'] = [ 'port' ];
@@ -12,7 +12,7 @@
 fence_inst_validator['wti'] = [ 'port' ];
 fence_inst_validator['xvm'] = [ 'domain' ];
 
-var fence_validator = new Array();
+var fence_validator = [];
 fence_validator['apc'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
 fence_validator['bladecenter'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
 fence_validator['brocade'] = [ 'ipaddr', 'login', 'passwd', 'passwd_script' ];
@@ -34,12 +34,12 @@
 fence_validator['xvm'] = [];
 
 function validate_field_str(form, form_elem) {
-	var errors = new Array();
+	var errors = [];
 
 	if (!form_elem || str_is_blank(form_elem.value)) {
-		if (!form_elem)
+		if (!form_elem) {
 			errors.push('No value was given for this field.');
-		else {
+		} else {
 			set_form_err(form_elem);
 			errors.push(form_elem.name + ' values must not be blank.');
 		}
@@ -71,16 +71,18 @@
 }
 
 function validate_field_noop(form, form_elem) {
-	if (form_elem)
+	if (form_elem) {
 		clr_form_err(form_elem);
+	}
 	return (null);
 }
 
 function validate_field_ipmilan_auth(form, form_elem) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form_elem || str_is_blank(form_elem.value))
+	if (!form_elem || str_is_blank(form_elem.value)) {
 		return (null);
+	}
 
 	var auth_type = form_elem.value;
 	if (auth_type != 'none' && auth_type != 'password' && auth_type != 'md5') {
@@ -93,7 +95,7 @@
 	return (null);
 }
 
-var field_validator = new Array();
+var field_validator = [];
 field_validator['ipaddr'] = validate_field_host;
 field_validator['hostname'] = validate_field_host;
 field_validator['login'] = validate_field_str;
@@ -119,37 +121,44 @@
 field_validator['domain'] = validate_field_str;
 
 function validate_fence(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form.fence_type || str_is_blank(form.fence_type.value))
+	if (!form.fence_type || str_is_blank(form.fence_type.value)) {
 		errors.push('No fence device was selected.');
+	}
 
-	if (errors.length > 0)
+	if (errors.length > 0) {
 		return (errors);
+	}
 
 	if (!form.name || str_is_blank(form.name.value)) {
 		errors.push('A unique name must be given for all fence devices.');
 		set_form_err(form.name);
-	} else
+	} else {
 		clr_form_err(form.name);
+	}
 
-	if (errors.length > 0)
+	if (errors.length > 0) {
 		return (errors);
+	}
 
 	var fence_type = form.fence_type.value.replace(/^fence_/, '');
 	var fields = fence_validator[fence_type];
-	if (!fields)
+	if (!fields) {
 		errors.push('An unknown fence device type was given: \"' + fence_type + '.\"');
+	}
 
-	if (errors.length > 0)
+	if (errors.length > 0) {
 		return (errors);
+	}
 
 	for (var i = 0 ; i < fields.length ; i++) {
 		var field_name = fields[i];
 		if (form[field_name]) {
 			var err = field_validator[field_name](form, form[field_name]);
-			if (err)
+			if (err) {
 				errors = errors.concat(err);
+			}
 		}
 	}
 
@@ -159,36 +168,43 @@
 function validate_fence_form(form) {
 	var errors = validate_fence(form);
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
-	if (confirm('Update fence device properties?'))
+	if (confirm('Update fence device properties?')) {
 		form.submit();
+	}
 }
 
 function validate_fence_instance(form) {
-	var errors = new Array();
+	var errors = [];
 
-	if (!form.fence_type || str_is_blank(form.fence_type.value))
+	if (!form.fence_type || str_is_blank(form.fence_type.value)) {
 		errors.push('The fence device associated with this instance could not be determined.');
+	}
 
-	if (errors.length > 0)
+	if (errors.length > 0) {
 		return (errors);
+	}
 
 	var fence_type = form.fence_type.value.replace(/^fence_/, '');
 	var fields = fence_inst_validator[fence_type];
-	if (!fields)
+	if (!fields) {
 		errors.push('An unknown fence device type was given: \"' + fence_type + '.\"');
+	}
 
-	if (errors.length > 0)
+	if (errors.length > 0) {
 		return (errors);
+	}
 
 	for (var i = 0 ; i < fields.length ; i++) {
 		var field_name = fields[i];
 		if (form[field_name]) {
 			var err = field_validator[field_name](form, form[field_name]);
-			if (err)
+			if (err) {
 				errors = errors.concat(err);
+			}
 		}
 	}
 
@@ -196,21 +212,25 @@
 }
 
 function validate_node_fence_form(master_form, container_id) {
-	var errors = new Array();
+	var errors = [];
 	var div_elem = document.getElementById(container_id);
-	if (!div_elem)
+	if (!div_elem) {
 		return (-1);
+	}
 	var form_xml = '';
 
 	var form = div_elem.getElementsByTagName('form');
 	for (var i = 0 ; i < form.length ; i++) {
 		var err = null;
-		if (form[i].fence_instance)
+		if (form[i].fence_instance) {
 			err = validate_fence_instance(form[i]);
-		else if (form[i].fence_type)
+		} else if (form[i].fence_type) {
 			err = validate_fence(form[i]);
-		if (err)
+		}
+
+		if (err) {
 			errors = errors.concat(err);
+		}
 		var input_elem = form[i].getElementsByTagName('input');
 		var temp = '';
 		for (var j = 0 ; j < input_elem.length ; j++) {
@@ -222,10 +242,11 @@
 			} else if (res_type == 'checkbox' || res_type == 'radio') {
 				if (input_elem[j].checked) {
 					temp += '<input type="' + res_type + '" name="' + escapeXML(input_elem[j].name) + '"';
-					if (res_type == 'checkbox')
+					if (res_type == 'checkbox') {
 						temp += ' value="1"';
-					else if (res_type == 'radio')
+					} else if (res_type == 'radio') {
 						temp += ' value="' + escapeXML(input_elem[j].value) + '"';
+					}
 					temp += ' />';
 				} else if (res_type == 'checkbox') {
 					temp += '<input type="' + res_type + '" name="' + escapeXML(input_elem[j].name) + '" value="0" />';
@@ -243,9 +264,11 @@
 
 	master_form.fence_xml.value = '<formlist>' + form_xml + '</formlist>';
 
-	if (error_dialog(errors))
+	if (error_dialog(errors)) {
 		return (-1);
+	}
 
-	if (confirm('Update this node\'s fence configuration?'))
+	if (confirm('Update this node\'s fence configuration?')) {
 		master_form.submit();
+	}
 }



             reply	other threads:[~2007-07-11 22:47 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-07-11 22:47 rmccabe [this message]
  -- strict thread matches above, loose matches on Subject: below --
2008-01-22 15:02 [Cluster-devel] conga/luci homebase/form-macros homebase/homeb rmccabe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20070711224710.11514.qmail@sourceware.org \
    --to=rmccabe@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.