[Cluster-devel] conga/luci/homebase homebase_common.js

rmccabe at sourceware.org rmccabe at sourceware.org
Fri Jun 30 17:45:59 UTC 2006


CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2006-06-30 17:45:59

Added files:
	luci/homebase  : homebase_common.js 

Log message:
	move common javascript into its own file

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/homebase/homebase_common.js.diff?cvsroot=cluster&r1=NONE&r2=1.1

/cvs/cluster/conga/luci/homebase/homebase_common.js,v  -->  standard output
revision 1.1
--- conga/luci/homebase/homebase_common.js
+++ -	2006-06-30 17:45:59.417970000 +0000
@@ -0,0 +1,196 @@
+function error_dialog(errors) {
+	if (!errors || errors.length < 1)
+		return (null);
+	alert('The following errors were found:\n\n' + errors.join('\n'));
+	return (-1);
+}
+
+function str_is_blank(str) {
+	return (!str || !str.replace(/\s/g, ''));
+}
+
+function str_is_valid(str, valid_regex_str) {
+	if (!str || !valid_regex_str)
+		return (null);
+	var re = eval(valid_regex_str);
+	var invalid = str.replace(re, '');
+	if (!invalid)
+		return (null);
+	return (invalid);
+}
+
+function checkAllBoxes(str, val) {
+	var i = 0;
+	var element;
+	while ((element = document.getElementById(str + i++)))
+		element.checked = val;
+}
+
+function checkChildren(parent_cont, parent_input) {
+	if (!parent_cont || !parent_input)
+		return
+	parent = document.getElementById(parent_cont);
+	children = parent.getElementsByTagName('input')
+	for (var i = 0 ; i < children.length ; i++) {
+		if (children[i] == parent_input)
+			continue;
+		if (children[i].type == 'checkbox')
+			children[i].checked = parent_input.checked;
+	}
+}
+
+function hide_element(id) {
+	var elem = document.getElementById(id);
+	if (elem)
+		elem.style['visibility'] = 'hidden';
+}
+
+function isValidHost(str) {
+	var i = str.split('.');
+
+	if (i.length == 1)
+		return ('Hostnames must be fully qualified.');
+
+	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))
+		{
+			return ('Invalid IP Address.');
+		}
+
+		return (null);
+	}
+
+	if (!isNaN(parseInt(i[i.length - 1])))
+		return ('Invalid IP Address.');
+
+	if (!str.match(/^[0-9A-Za-z][0-9A-Za-z.-]*$/))
+		return ('Hostnames can contain only alphanumeric characters and hyphens.');
+
+	return (null);
+}
+
+function allPasswdsSame(form) {
+	var cb = document.getElementById('allSameCheckBox');
+	if (!cb)
+		return (-1);
+	var num_systems = form.numStorage.value;
+
+	var state = cb.checked;
+	var passwd = document.getElementById('__SYSTEM0:Passwd').value;
+	if (!passwd || !state)
+		passwd = '';
+
+	for (var i = 1 ; i < num_systems ; i++) {
+		var element = document.getElementById('__SYSTEM' + i + ':Passwd')
+		if (element) {
+			element.value = passwd;
+			element.disabled = state;
+		}
+	}
+}
+
+function pwd0Change(form) {
+	var element = document.getElementById('allSameCheckBox');
+	if (element && element.checked)
+		allPasswdsSame(form);
+}
+
+function addSystem(form) {
+	var sltab = document.getElementById('systemsTable');
+	if (!sltab)
+		return;
+	var num_systems = form.numStorage.value;
+
+	var newsys = document.createElement('input');
+	newsys.setAttribute('style', 'padding:.20em !important;width:200px;');
+	newsys.setAttribute('name', '__SYSTEM' + num_systems + ':Addr');
+	newsys.setAttribute('id', '__SYSTEM' + num_systems + ':Addr');
+	newsys.setAttribute('type', 'text');
+	newsys.setAttribute('value', '');
+
+	var newsysp = document.createElement('input');
+	newsysp.setAttribute('style', 'padding:.20em !important;width:160px;');
+	newsysp.setAttribute('name', '__SYSTEM' + num_systems + ':Passwd');
+	newsysp.setAttribute('id', '__SYSTEM' + num_systems + ':Passwd');
+	newsysp.setAttribute('type', 'password');
+	newsysp.setAttribute('value', '');
+
+	var allSameCB = document.getElementById('allSameCheckBox');
+	if (allSameCB && allSameCB.checked) {
+		newsysp.setAttribute('value', document.getElementById('__SYSTEM0:Passwd').value);
+		newsysp.setAttribute('disabled', true);
+	}
+
+	var newrow = document.createElement('tr');
+	var hcol = document.createElement('td')
+	hcol.setAttribute('style', 'margin: 0em;padding: 0em 1em .33em 0em;background: #dee7ec;padding-left: .5em;text-align: left;');
+	var pcol = document.createElement('td')
+	pcol.setAttribute('style', 'margin: 0em;padding: 0em 1em .33em 0em;background: #dee7ec;padding-left: .5em;text-align: left;');
+
+	hcol.appendChild(newsys)
+	pcol.appendChild(newsysp)
+	newrow.appendChild(hcol)
+	newrow.appendChild(pcol)
+	sltab.appendChild(newrow)
+
+	form.numStorage.value = ++num_systems;
+	if (num_systems == 2) {
+		var temp = document.getElementById('allSameDiv');
+		temp.style.visibility = 'visible';
+		temp = document.getElementById('allSameCheckBox');
+		temp.style.visibility = 'visible';
+	}
+}
+
+function validate_systems(form, errors) {
+	var allSameCB = document.getElementById('allSameCheckBox');
+	var added_storage = new Array();
+	var num_systems = form.numStorage.value;
+
+	for (var i = 0 ; i < num_systems ; i++) {
+		var element = document.getElementById('__SYSTEM' + i + ':Addr');
+
+		if (!element)
+			continue;
+
+		var pwdElem = document.getElementById('__SYSTEM' + i + ':Passwd');
+		if (!element.value) {
+			if (pwdElem.value) {
+				if (!allSameCB.checked) {
+					errors.push('You entered a password, but no hostname for system ' + (i + 1));
+					continue;
+				} else
+					pwdElem.value = '';
+			}
+
+			continue;
+		} else if (!pwdElem || !pwdElem.value)
+			errors.push('No password was given for \"' + element.value + '\"');
+		else if (str_is_blank(pwdElem.value))
+			errors.push('The password entered for \"' + element.value + '\" is blank.');
+
+		if (str_is_blank(element.value)) {
+			errors.push('You entered a blank hostname for system ' + (i + 1));
+			element.value = '';
+		} else {
+			var errmsg;
+			if ((errmsg = isValidHost(element.value)))
+				errors.push('\"' + element.value + '\" is not a valid hostname: ' + errmsg);
+			else {
+				pwdElem.disabled = false;
+				added_storage.push(element.value);
+			}
+		}
+	}
+
+	return (added_storage);
+}




More information about the Cluster-devel mailing list