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/storage cylinder_select.js form-mac ...
Date: 25 Sep 2007 16:49:37 -0000	[thread overview]
Message-ID: <20070925164937.11169.qmail@sourceware.org> (raw)

CVSROOT:	/cvs/cluster
Module name:	conga
Changes by:	rmccabe at sourceware.org	2007-09-25 16:49:36

Modified files:
	luci/storage   : cylinder_select.js form-macros 
Added files:
	luci/storage   : popup_log.js storage_content.js 
	                 storage_probing.js storage_svs.js 
	                 storage_utils.js storage_validation.js 

Log message:
	Extract CSS and javascript from page templates

Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/popup_log.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_content.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_probing.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_svs.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_utils.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/storage_validation.js.diff?cvsroot=cluster&r1=NONE&r2=1.1
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/cylinder_select.js.diff?cvsroot=cluster&r1=1.1&r2=1.2
http://sourceware.org/cgi-bin/cvsweb.cgi/conga/luci/storage/form-macros.diff?cvsroot=cluster&r1=1.26&r2=1.27

/cvs/cluster/conga/luci/storage/popup_log.js,v  -->  standard output
revision 1.1
--- conga/luci/storage/popup_log.js
+++ -	2007-09-25 16:49:37.071853000 +0000
@@ -0,0 +1,15 @@
+function popup_log(mylink, windowname) {
+	//Thanks to htmlcodetutorial.com
+	if (!window.focus) {
+		return true;
+	}
+
+	var href;
+	if (typeof(mylink) == 'string') {
+		href = mylink;
+	} else {
+		href = mylink.href;
+	}
+	window.open(href, windowname, 'width=500,height=500,scrollbars=yes');
+	return false;
+}
/cvs/cluster/conga/luci/storage/storage_content.js,v  -->  standard output
revision 1.1
--- conga/luci/storage/storage_content.js
+++ -	2007-09-25 16:49:37.163554000 +0000
@@ -0,0 +1,30 @@
+/*
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
+var replace_properties_block__old_select_value = ''
+
+function replace_properties_block(parent_id, select_id) {
+	var selem = document.getElementById(select_id);
+	var child_id = selem.value;
+	selem.value = replace_properties_block__old_select_value;
+	singleVisibleSpan(parent_id, child_id);
+}
+
+function change_content(select_content_id, content_span_id) {
+	var content_id = document.getElementById(select_content_id).value;
+	singleVisibleSpan(content_span_id, content_id);
+}
+
+function reset_bd_form(form, select_content_id, content_span_id) {
+	if (reset_form(form)) {
+		change_content(select_content_id, content_span_id);
+		return true;
+	}
+	return false;
+}
/cvs/cluster/conga/luci/storage/storage_probing.js,v  -->  standard output
revision 1.1
--- conga/luci/storage/storage_probing.js
+++ -	2007-09-25 16:49:37.243145000 +0000
@@ -0,0 +1,47 @@
+/*
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
+function strip_left(txt) {
+	for (var i = 0 ; i < txt.length ; i++) {
+		if (txt[i] == " " || txt[i] == "\n") {
+			continue;
+		}
+		return txt.substr(i);
+	}
+	return txt;
+}
+
+function cache_report_callback() {
+	if (xmlHttp_object.readyState == 4) {
+		var i = (window.location + '').indexOf('?');
+		var list_URL = (window.location + '').substr(0, i);
+
+		if (xmlHttp_object.status == 200) {
+			res = xmlHttp_object.responseText;
+			res = strip_left(res);
+			if (res.substr(0, 2) == "OK") {
+				window.location.reload();
+			} else {
+				alert('An error has occured while probing storage:\n\n' + res);
+				window.location = list_URL;
+			}
+		} else {
+			alert("Error retrieving data from Luci server");
+			window.location = list_URL;
+		}
+	}
+}
+
+function cache_report() {
+	var i = (window.location + '').indexOf('?');
+	var URL = 'cache_report' + (window.location + '').substr(i);
+	initiate_async_get(URL, cache_report_callback);
+}
+
+setTimeout("cache_report()", 10);
/cvs/cluster/conga/luci/storage/storage_svs.js,v  -->  standard output
revision 1.1
--- conga/luci/storage/storage_svs.js
+++ -	2007-09-25 16:49:37.322933000 +0000
@@ -0,0 +1,23 @@
+/*
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
+function singleVisibleSpan(parent_id, child_id) {
+	parent = document.getElementById(parent_id);
+	for (var i = 0; i < parent.childNodes.length ; i++) {
+		var item = parent.childNodes[i];
+		var item_type = item.nodeName().lower();
+		if (item_type == 'span' || item_type == 'div') {
+			if (item.id == child_id) {
+				item.className = 'visible';
+			} else if (item.className == 'visible') {
+				item.className = 'invisible';
+			}
+		}
+	}
+}
/cvs/cluster/conga/luci/storage/storage_utils.js,v  -->  standard output
revision 1.1
--- conga/luci/storage/storage_utils.js
+++ -	2007-09-25 16:49:37.431385000 +0000
@@ -0,0 +1,72 @@
+/*
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
+function strip_left(txt) {
+	for (var i = 0 ; i < txt.length ; i++) {
+		if (txt[i] == " " || txt[i] == "\n") {
+			continue;
+		}
+		return txt.substr(i);
+	}
+	return txt;
+}
+
+function check_batch_callback() {
+	if (xmlHttp_object.readyState == 4) {
+		var err_url = (window.location + '').split("?")[1].split("&");
+		for (var i = 0 ; i < err_url.length ; i++) {
+			var t = err_url[i];
+			if (t.indexOf("storagename=") == 0) {
+				err_url = './?' + t + '&pagetype=44';
+				break;
+			}
+		}
+
+		if (xmlHttp_object.status == 200) {
+			var msg = xmlHttp_object.responseText;
+			msg = strip_left(msg);
+			var res = msg.split('\n');
+
+			if (res[0] == "DONE") {
+				window.location = res[1];
+			} else if (res[0] == "NOT_DONE") {
+				setTimeout("initiate_check_batch()", 3000);
+			} else {
+				var m = '';
+				if (res[0] == "FAILURE") {
+					err_url = res[1];
+					m = res[2];
+				} else {
+					m = msg;
+				}
+				alert('An error has occured while committing changes:\n\n' + m);
+				window.location = err_url;
+			}
+		} else {
+			alert("Error retrieving data from Luci server:\n\nTransfer error:\nStorage server might (not) have completed successfuly.\nVerify by yourself.");
+			window.location = err_url;
+		}
+	}
+}
+
+function initiate_check_batch() {
+	var form = document.getElementById("urls_form");
+	for (var i = 0 ; i < form.length ; i++) {
+		var elem = form.elements[i];
+		var name = elem.name;
+		var value = elem.value;
+
+		if (name == 'check_url') {
+			initiate_async_get(value, check_batch_callback);
+			return;
+		}
+	}
+}
+
+setTimeout("initiate_check_batch()", 1000);
/cvs/cluster/conga/luci/storage/storage_validation.js,v  -->  standard output
revision 1.1
--- conga/luci/storage/storage_validation.js
+++ -	2007-09-25 16:49:37.516263000 +0000
@@ -0,0 +1,398 @@
+/*
+** Copyright (C) 2006-2007 Red Hat, Inc.
+**
+** This program is free software; you can redistribute
+** it and/or modify it under the terms of version 2 of the
+** GNU General Public License as published by the
+** Free Software Foundation.
+*/
+
+function validate_text(	elem,
+						timeout,
+						illegal_chars,
+						reserved_words,
+						min_length,
+						max_length,
+						button_id)
+{
+	document.getElementById(button_id).disabled = true;
+
+	var value = elem.value;
+
+	for (var i = 0 ; i < value.length ; i++) {
+		if (illegal_chars.indexOf(value[i]) != -1) {
+			elem.className = 'validation_error';
+			display_warning(elem, timeout,
+				'Illegal characters are: \'' + illegal_chars + '\'');
+			return;
+		}
+	}
+
+	var res_list = reserved_words.split(';');
+	for (var i = 0 ; i < res_list.length ; i++) {
+		if (value == res_list[i] && value != '') {
+			elem.className = 'validation_error';
+			display_warning(elem, timeout, 'Reserved words are: ' + res_list);
+			return;
+		}
+	}
+
+	if (value.length < min_length) {
+		elem.className = 'validation_error';
+		display_warning(elem, timeout, 'Minimum length is ' + min_length);
+		return;
+	}
+
+	if (value.length > max_length) {
+		elem.className = 'validation_error';
+		display_warning(elem, timeout, 'Maximum length is ' + max_length);
+		return;
+	}
+
+	elem.className = '';
+	document.getElementById(button_id).disabled = false;
+}
+
+function validate_int(elem, timeout, min, max, step, units, button_id) {
+	document.getElementById(button_id).disabled = true;
+
+	var value = elem.value;
+	for (var i = 0 ; i < value.length ; i++) {
+		if ('0123456789'.indexOf(value[i]) == -1) {
+			elem.className = 'validation_error';
+			display_warning(elem, timeout, 'Only whole numbers are allowed');
+			return;
+		}
+	}
+
+	min = parseInt(min);
+	max = parseInt(max);
+	step = parseInt(step);
+
+	if (step == 0) {
+		step = 1;
+	}
+
+	value = parseInt(value);
+	value = (value / step) * step;
+
+	if (value < min) {
+		elem.className = 'validation_error';
+		display_warning(elem, timeout,
+			'Minimum allowed value is ' + min + ' ' + units);
+		return;
+	}
+
+	if (value > max) {
+		elem.className = 'validation_error';
+		display_warning(elem, timeout,
+			'Maximum allowed value is ' + max + ' ' + units);
+		return;
+	}
+
+	elem.className = '';
+	document.getElementById(button_id).disabled = false;
+}
+
+function validate_float(elem, timeout, min, max, step, units, button_id) {
+	document.getElementById(button_id).disabled = true;
+
+	var value = elem.value;
+	for (var i = 0 ; i < value.length ; i++) {
+		if ('0123456789.'.indexOf(value[i]) == -1) {
+			elem.className = 'validation_error';
+			display_warning(elem, timeout,
+				'Only digits and \'.\' are allowed');
+			return;
+		}
+	}
+
+	min = parseFloat(min);
+	max = parseFloat(max);
+	step = parseFloat(step);
+
+	if (step == 0.0) {
+		step = 0.00001;
+	}
+
+	value = parseFloat(value);
+	value = (value / step) * step;
+
+	if (value < min) {
+		elem.className = 'validation_error';
+		display_warning(elem, timeout,
+			'Minimum allowed value is ' + min + ' ' + units);
+		return;
+	}
+
+	if (value > max) {
+		elem.className = 'validation_error';
+		display_warning(elem, timeout,
+			'Maximum allowed value is ' + max + ' ' + units);
+		return;
+	}
+
+	elem.className = '';
+	document.getElementById(button_id).disabled = false;
+}
+
+function validate_text_keypress(elem, event, timeout, illegal_chars, max_length)
+{
+	var ev = event;
+	if (!ev) {
+		ev = window.event;
+	}
+
+	var key = get_keycode(ev);
+	if (key == 8 || key == 9) {
+		return true;
+	} else if (ev.which) {
+		;
+	} else if (document.selection) {
+		;
+	} else {
+		return true;
+	}
+
+	var ch = String.fromCharCode(key);
+	if (illegal_chars.indexOf(ch) != -1) {
+		return false;
+	}
+
+	if (elem.value.length >= max_length) {
+		return false;
+	}
+
+	return true;
+}
+
+function validate_int_keypress(elem, event, timeout) {
+	var ev = event;
+	if (!ev) {
+		ev = window.event;
+	}
+	var key = get_keycode(ev);
+
+	if (key == 8 || key == 9) {
+		return true;
+	} else if (ev.which) {
+		;
+	} else if (document.selection) {
+		;
+	} else {
+		return true;
+	}
+
+	var ch = String.fromCharCode(key);
+
+	if ('0123456789'.indexOf(ch) == -1) {
+		//display_warning(elem, timeout, 'Only whole numbers are allowed');
+		return false;
+	}
+
+	return true;
+}
+
+function validate_float_keypress(elem, event, timeout) {
+	var ev = event;
+	if (!ev) {
+		ev = window.event;
+	}
+	var key = get_keycode(ev);
+
+	if (key == 8 || key == 9) {
+		return true;
+	} else if (ev.which) {
+		;
+	} else if (document.selection) {
+		;
+	} else {
+		return true;
+	}
+
+	var ch = String.fromCharCode(key);
+
+	if ('0123456789.'.indexOf(ch) == -1) {
+		//display_warning(elem, timeout, 'Only digits and dot are allowed');
+		return false;
+	}
+
+	if (ch == '.') {
+		var txt = elem.value;
+		var c = 0;
+		for (var i = 0 ; i < txt.length ; i++) {
+			if (txt[i] == '.') {
+				c++;
+			}
+		}
+
+		if (c != 0) {
+			return false;
+		}
+	}
+
+	return true;
+}
+
+function get_keycode(ev) {
+	if (ev.keyCode) {
+		return ev.keyCode;
+	} else {
+		return ev.which;
+	}
+}
+
+var pending_warning = false;
+function display_warning(el, timeout, text) {
+	if (!pending_warning) {
+		pending_warning = true;
+		alert(text);
+		pending_warning = false;
+	}
+/*
+	var geom_obj = getGeom(el);
+
+	var warning_box = document.getElementById('warning_box');
+	if (!warning_box) {
+		alert(text);
+		return;
+	}
+
+	warning_box.innerHTML = text;
+	warning_box.style.position = 'absolute'
+	warning_box.style.left = geom_obj.x + '';
+	warning_box.style.top = (geom_obj.y - 65) + '';
+	warning_box.style.display = 'inline';
+	warning_box.style.visibility = 'visible';
+	setTimeout("remove_warning()", (1000 * timeout));
+*/
+}
+
+function remove_warning() {
+	var warning_box = document.getElementById('warning_box');
+	//warning_box.style.display = 'none';
+	warning_box.style.visibility = 'hidden';
+}
+
+function getGeom(el) {
+	var obj = new Object();
+
+	obj.x = el.offsetLeft;
+	obj.y = el.offsetTop;
+	var parent_el = el.offsetParent;
+	obj.width = el.offsetWidth;
+	obj.height = el.offsetHeight;
+
+	while (parent_el !== null) {
+		obj.x += parent_el.offsetLeft;
+		obj.y += parent_el.offsetTop;
+		parent_el = parent_el.offsetParent;
+	}
+	return obj;
+}
+
+function reset_form(form) {
+	if (confirm('Do you really want to reset the form?')) {
+		form.reset();
+		for (var i = 0 ; i < form.length ; i++) {
+			form.elements[i].className = '';
+			form.elements[i].disabled = false;
+		}
+		return true;
+	}
+	return false;
+}
+
+function strip_left(txt) {
+	for (var i = 0 ; i < txt.length ; i++) {
+		if (txt[i] == " " || txt[i] == "\n") {
+			continue;
+		}
+		return txt.substr(i);
+	}
+	return txt;
+}
+
+// Apply is a button, other ones are submits
+var tmp_submit_URL = "";
+var tmp_button_id = "";
+var tmp_prompt_msg = "";
+var tmp_form_id = "";
+
+function validate_and_submit_form_callback() {
+	if (xmlHttp_object.readyState == 4) {
+		if (xmlHttp_object.status == 200) {
+			var res = xmlHttp_object.responseText;
+			res = strip_left(res);
+			if (res.substr(0, 2) == "OK") {
+				if (confirm(tmp_prompt_msg)) {
+					var URL = tmp_submit_URL + 'action_type=Apply';
+					tmp_submit_URL = "";
+					window.location.assign(URL);
+					return;
+				}
+			} else {
+				// get elem_name & msg
+				var ind = res.indexOf(' ');
+				var elem_name = res.substr(0, ind);
+				var err_msg = strip_left(res.substr(ind));
+
+				var form = document.getElementById(tmp_form_id);
+				for (var i = 0 ; i < form.length ; i++) {
+					var elem = form.elements[i];
+					var name = elem.name;
+					if (name == elem_name) {
+						elem.className = 'validation_error';
+					}
+				}
+
+				alert(err_msg);
+			}
+		} else {
+			alert("Error retrieving data from server");
+		}
+
+		if (tmp_button_id != "") {
+			document.getElementById(tmp_button_id).disabled = false;
+		}
+		tmp_button_id = "";
+	}
+}
+
+function validate_and_submit_form(	validation_URL,
+									form_id,
+									button_id,
+									prompt_msg)
+{
+	var form = document.getElementById(form_id);
+	var URL = validation_URL + '?';
+
+	tmp_prompt_msg = prompt_msg;
+	tmp_form_id = form_id;
+	tmp_submit_URL = form.action + '?';
+
+	for (var i = 0 ; i < form.length ; i++) {
+		var elem = form.elements[i];
+		var name = elem.name;
+		var value = elem.value;
+
+		if (name != 'action_type' && name != '') {
+			if (elem.type == 'checkbox') {
+				if (elem.checked) {
+					value = 'on';
+				} else {
+					value = 'off';
+				}
+			}
+			URL += name + '=' + value + '&';
+			tmp_submit_URL += name + '=' + value + '&';
+		}
+	}
+
+	URL += 'action_type=Validate';
+	initiate_async_get(URL, validate_and_submit_form_callback);
+	tmp_button_id = button_id;
+	if (tmp_button_id != "") {
+		document.getElementById(tmp_button_id).disabled = true;
+	}
+}
--- conga/luci/storage/cylinder_select.js	2007/09/25 03:49:50	1.1
+++ conga/luci/storage/cylinder_select.js	2007/09/25 16:49:36	1.2
@@ -12,20 +12,23 @@
 var ellipse_dict = [ 2, 3, 4, 5, 5, 6, 6, 7, 7, 7, 8, 8, 8, 8 ];
 
 function ellipse(y) {
-	if (y > 26)
+	if (y > 26) {
 		return ellipse(40 - y);
-	if (y > 13)
+	}
+	if (y > 13) {
 		return 9;
+	}
 	return ellipse_dict[y];
 }
 
 function select_subcyl(id, h_data) {
 	var old_selection = current_selection;
 	unselect_cyl(old_selection, h_data);
-	if (id == old_selection)
+	if (id == old_selection) {
 		current_selection = h_data[0][0];
-	else
+	} else {
 		current_selection = id;
+	}
 	display_props(h_data);
 }
 
@@ -36,8 +39,7 @@
 			var list = h_data[i][1];
 			for (var j = 0 ; j < list.length ; j++) {
 				var el = document.getElementById(list[j]);
-				if (el)
-					el.className = 'invisible';
+				el.className = 'invisible';
 			}
 		}
 	}
--- conga/luci/storage/form-macros	2007/09/25 03:50:27	1.26
+++ conga/luci/storage/form-macros	2007/09/25 16:49:36	1.27
@@ -1,99 +1,16 @@
 <html>
-  <head>
-    <title tal:content="string:"></title>
-  </head>
-  <body>
+<head>
+	<title tal:content="string:" />
+</head>
+<body>
 
 
 <div metal:define-macro="forms-css">
-   <style>
-table.form td { padding: 0px;  }
-
-
-
-table {
-    border-spacing: 0px;
-}
-
-th {
-    font-weigt: bold;
-}
-
-th, td {
-    padding: 5px;
-}
-
-
-table.props-form-table {
-    width: 100%;
-    padding: 2px;
-}
-table.props-form-table tr,
-table.props-form-table td {
-    padding: 2px;
-}
-
-tr.props-form-header {
-    background-color: #fff;
-}
-tr.props-form-header th {
-    background-color: #dee7ec;
-    text-align: left;
-}
-tr.props-form-header th:first-child {
-}
-tr.props-form-header th:last-child {
-}
-
-tr.props-form-body {
-    height: 100%;
-}
-tr.props-form-body td {
-    width: 50%;
-}
-tr.props-form-body td:first-child {
-    border-left: 1px solid #dee7ec;
-}
-tr.props-form-body td:last-child {
-    border-right: 1px solid #dee7ec;
-}
-
-tr.props-form-footer {
-    background-color: #fff;
-}
-tr.props-form-footer td {
-    background-color: #dee7ec;
-    padding: 3px;
-}
-tr.props-form-footer td:first-child {
-}
-tr.props-form-footer td:last-child {
-}
-
-table.props-inner-table {
-    width: 100%;
-    height: 100%;
-}
-table.props-inner-table tr {
-
-}
-table.props-inner-table tr td:first-child {
-    border-left: 2px solid #fff;
-}
-table.props-inner-table tr td:last-child {
-    border-right: 2px solid #fff;
-}
-table.props-inner-table td {
-    width: auto;
-}
-
-
-   </style>
+	<style type="text/css">
+		<!-- @import url(conga_storage.css); -->
+	</style>
 </div>
 
-
-
-
 <div metal:define-macro="commit-changes">
    <span tal:omit-tag=""
         tal:define="batch_id     python:here.apply_storage_changes(ricci, storage_report, request);
@@ -108,66 +25,7 @@
   </span>
 
 
-<script language="javascript" type="text/javascript">
-
-function strip_left(txt) {
-   for (i=0; i<txt.length; i++) {
-      if (txt[i] == " " || txt[i] == "\n")
-         continue;
-      return txt.substr(i);
-   }
-   return txt;
-}
-function check_batch_callback() {
-  if (xmlHttp_object.readyState == 4) {
-    var err_url = (window.location + '').split("?")[1].split("&");
-    for (i=0; i<err_url.length; i++) {
-      var t = err_url[i];
-      if (t.indexOf("storagename=") == 0) {
-        err_url = './?' + t + '&pagetype=44';
-        break;
-      }
-    }
-    if (xmlHttp_object.status == 200) {
-      var msg = xmlHttp_object.responseText;
-      msg = strip_left(msg);
-      var res = msg.split('\n');
-      if (res[0] == "DONE") {
-         window.location = res[1];
-      } else if (res[0] == "NOT_DONE") {
-         setTimeout("initiate_check_batch()", 3000);
-      } else {
-         var m = '';
-         if (res[0] == "FAILURE") {
-           err_url = res[1];
-           m = res[2];
-         } else {
-           m = msg;
-         }
-         alert('An error has occured while committing changes:\n\n' + m);
-         window.location = err_url;
-      }
-    } else {
-      alert("Error retrieving data from Luci server:\n\nTransfer error:\nStorage server might (not) have completed successfuly.\nVerify by yourself.");
-      window.location = err_url;
-    }
-  }
-}
-function initiate_check_batch() {
-  form = document.getElementById("urls_form");
-  for (i=0; i<form.length; i++) {
-    elem = form.elements[i];
-    name = elem.name;
-    value = elem.value;
-    if (name == 'check_url') {
-      initiate_async_get(value, check_batch_callback);
-      return;
-    }
-  }
-}
-setTimeout("initiate_check_batch()", 1000);
-
-</script>
+<script type="text/javascript" src="storage_utils.js"></script>
 
 </div>
 
@@ -194,41 +52,7 @@
 
 
 <div metal:define-macro="wait-probing-storage">
-   <script>
-function strip_left(txt) {
-   for (i=0; i<txt.length; i++) {
-      if (txt[i] == " " || txt[i] == "\n")
-         continue;
-      return txt.substr(i);
-   }
-   return txt;
-}
-function cache_report_callback() {
-  if (xmlHttp_object.readyState == 4) {
-    var i = (window.location + '').indexOf('?');
-    var list_URL = (window.location + '').substr(0, i);
-    if (xmlHttp_object.status == 200) {
-        res = xmlHttp_object.responseText;
-        res = strip_left(res);
-        if (res.substr(0, 2) == "OK") {
-           window.location.reload();
-        } else {
-           alert('An error has occured while probing storage:\n\n' + res);
-           window.location = list_URL;
-        }
-    } else {
-        alert("Error retrieving data from Luci server");
-        window.location = list_URL;
-    }
-  }
-}
-function cache_report() {
-   var i = (window.location + '').indexOf('?');
-   var URL = 'cache_report' + (window.location + '').substr(i);
-   initiate_async_get(URL, cache_report_callback);
-}
-setTimeout("cache_report()", 10)
-   </script>
+	<script type="text/javascript" src="storage_probing.js"></script>
 
    <table style="width: 100%;">
     <tr>
@@ -351,24 +175,14 @@
 
 
 <div tal:omit-tag="" metal:define-macro="tree-css">
- <style type="text/css">
-  @media screen, print {
-   ul.tree              { margin-left : 0px; padding : 0px; }
-   ul.tree ul.tree, ul.tree ul , ul.tree li { margin-left : 10px; padding : 0px; }
-   ul.tree              { list-style: none; }
-   ul.tree li           { padding-left: 0px; }
-   ul.tree li.opened    { padding-left: 0px; background-image: url(tree_opened.gif); background-repeat: no-repeat; background-position: 0 0; }
-   ul.tree li.closed    { padding-left: 0px; background-image: url(tree_closed.gif); background-repeat: no-repeat; background-position: 0 0; }
-   ul.tree li.bullet    { padding-left: 0px; background-image: url(tree_bullet.gif); background-repeat: no-repeat; background-position: 0 0; }
-   ul.tree li.opened ul { display: block; }
-   ul.tree li.closed ul { display: none; }
-  }
- </style>
+	<style type="text/css">
+		<!-- @import url(storage_tree.css); -->
+	</style>
 </div>
+
 <div tal:omit-tag="" metal:define-macro="li-collapse-handler">
  <a onClick="this.parentNode.className = (this.parentNode.className == 'opened') ? 'closed' : 'opened';">
-  <img src="tree_transparent.gif"
-       style="cursor: pointer;"/>
+  <img src="tree_transparent.gif" style="cursor: pointer;"/>
  </a>
 </div>
 
@@ -415,25 +229,8 @@
   </div>
 
 
-  <div metal:define-macro="view-mappers-all-form">
-
-
-<script language="javascript" type="text/javascript">
-
-function popup_log(mylink, windowname)
-{
-   //Thanks to htmlcodetutorial.com
-   if (!window.focus) return true;
-     var href;
-   if (typeof(mylink) == 'string')
-     href=mylink;
-   else
-     href=mylink.href;
-   window.open(href, windowname, 'width=500,height=500,scrollbars=yes');
-   return false;
-}
-
-</script>
+<div metal:define-macro="view-mappers-all-form">
+	<script type="text/javascript" src="popup_log.js"></script>
 
 
    <div metal:use-macro="here/form-macros/macros/tree-css"/>
@@ -1160,452 +957,26 @@
 
 
 
-  <div tal:omit-tag="" metal:define-macro="content-scripts">
-   <script language="javascript" type="text/javascript">
-
-    var replace_properties_block__old_select_value = ''
-    function replace_properties_block(parent_id, select_id) {
-       selem = document.getElementById(select_id);
-       child_id = selem.value;
-       selem.value = replace_properties_block__old_select_value;
-       singleVisibleSpan(parent_id, child_id);
-    }
-
-    function change_content(select_content_id, content_span_id) {
-       content_id = document.getElementById(select_content_id).value;
-       singleVisibleSpan(content_span_id, content_id);
-    }
-
-    function reset_bd_form(form, select_content_id, content_span_id) {
-       if (reset_form(form)) {
-          change_content(select_content_id, content_span_id);
-          return true;
-       }
-       return false;
-    }
-
-   </script>
-  </div>
-
+<div tal:omit-tag="" metal:define-macro="content-scripts">
+   <script type="text/javascript" src="storage_content.js"></script>
+</div>
 
 
 <div tal:omit-tag="" metal:define-macro="form-scripts">
- <style>
-   input                  { background-image: none; }
-   input.validation_error { border: medium double red; background-color: orange; }
-   input.selected         { border: thin solid orange; }
-   input.form_button      { background-color: #fff; }
- </style>
-
- <script language="javascript" type="text/javascript">
-
-
-// validations
-
-function validate_text(elem, timeout, illegal_chars, reserved_words, min_length, max_length, button_id)
-{
-   document.getElementById(button_id).disabled = true;
-
-   var value = elem.value;
-
-   for (var i=0; i<value.length; i++) {
-      if (illegal_chars.indexOf(value[i]) != -1) {
-         //return;
-         elem.className = 'validation_error';
-         display_warning(elem, timeout, 'Illegal characters are: \'' + illegal_chars + '\'');
-         return;
-      }
-   }
-
-   var res_list = reserved_words.split(';');
-   for (var i=0; i<res_list.length; i++) {
-      if (value == res_list[i] && value != '') {
-         //return;
-         elem.className = 'validation_error';
-         display_warning(elem, timeout, 'Reserved words are: ' + res_list);
-         return;
-      }
-   }
-
-   if (value.length < min_length) {
-      //return;
-      elem.className = 'validation_error';
-      display_warning(elem, timeout, 'Minimum length is ' + min_length);
-      return;
-   }
-
-   if (value.length > max_length) {
-      //return;
-      elem.className = 'validation_error';
-      display_warning(elem, timeout, 'Maximum length is ' + max_length);
-      return;
-   }
-
-   elem.className = '';
-   document.getElementById(button_id).disabled = false;
-}
-
-
-function validate_int(elem, timeout, min, max, step, units, button_id)
-{
-   document.getElementById(button_id).disabled = true;
-
-   var value = elem.value;
-   for (var i=0; i<value.length; i++) {
-      if ('0123456789'.indexOf(value[i]) == -1) {
-         //return;
-         elem.className = 'validation_error';
-         display_warning(elem, timeout, 'Only whole numbers are allowed');
-         return;
-      }
-   }
-
-   min  = parseInt(min);
-   max  = parseInt(max);
-   step = parseInt(step);
-   if (step == 0)
-      step = 1;
-   value = parseInt(value);
-   value = (value / step) * step;
-
-   if (value < min) {
-      //return;
-      elem.className = 'validation_error';
-      display_warning(elem, timeout, 'Minimum allowed value is ' + min + ' ' + units);
-      return;
-   }
-
-   if (value > max) {
-      //return;
-      elem.className = 'validation_error';
-      display_warning(elem, timeout, 'Maximum allowed value is ' + max + ' ' + units);
-      return;
-   }
-
-   elem.className = '';
-   document.getElementById(button_id).disabled = false;
-}
-
-function validate_float(elem, timeout, min, max, step, units, button_id)
-{
-   document.getElementById(button_id).disabled = true;
-
-   var value = elem.value;
-   for (var i=0; i<value.length; i++) {
-      if ('0123456789.'.indexOf(value[i]) == -1) {
-         //return;
-         elem.className = 'validation_error';
-         display_warning(elem, timeout, 'Only whole digits and dot are allowed');
-         return;
-      }
-   }
-
-   min  = parseFloat(min);
-   max  = parseFloat(max);
-   step = parseFloat(step);
-   if (step == 0.0)
-      step = 0.00001;
-   value = parseFloat(value);
-   value = (value / step) * step;
-
-   if (value < min) {
-      //return;
-      elem.className = 'validation_error';
-      display_warning(elem, timeout, 'Minimum allowed value is ' + min + ' ' + units);
-      return;
-   }
-
-   if (value > max) {
-      //return;
-      elem.className = 'validation_error';
-      display_warning(elem, timeout, 'Maximum allowed value is ' + max + ' ' + units);
-      return;
-   }
-
-   elem.className = '';
-   document.getElementById(button_id).disabled = false;
-}
-
-
-function validate_text_keypress(elem, event, timeout, illegal_chars, max_length)
-{
-   var ev = event;
-   if (!ev) ev = window.event;
-   var key = get_keycode(ev);
-
-   if (key == 8 || key == 9) return true;
-   else if (ev.which) ;
-   else if (document.selection) ;
-   else return true;
-
-   var ch = String.fromCharCode(key);
-
-   if (illegal_chars.indexOf(ch) != -1) {
-//      display_warning(elem, timeout, 'Illegal characters are: \'' + illegal_chars + '\'');
-      return false;
-   }
-
-   if (elem.value.length + 1 > max_length) {
-//      display_warning(elem, timeout, 'Maximum allowed length is ' + max_length);
-      return false;
-   }
-
-   return true;
-}
-
-function validate_int_keypress(elem, event, timeout)
-{
-   var ev = event;
-   if (!ev) ev = window.event;
-   var key = get_keycode(ev);
-
-   if (key == 8 || key == 9) return true;
-   else if (ev.which) ;
-   else if (document.selection) ;
-   else return true;
-
-   var ch = String.fromCharCode(key);
-
-   if ('0123456789'.indexOf(ch) == -1) {
-//      display_warning(elem, timeout, 'Only whole numbers are allowed');
-      return false;
-   }
-
-   return true;
-}
-
-function validate_float_keypress(elem, event, timeout)
-{
-   var ev = event;
-   if (!ev) ev = window.event;
-   var key = get_keycode(ev);
-
-   if (key == 8 || key == 9) return true;
-   else if (ev.which) ;
-   else if (document.selection) ;
-   else return true;
-
-   var ch = String.fromCharCode(key);
-
-   if ('0123456789.'.indexOf(ch) == -1) {
-//      display_warning(elem, timeout, 'Only digits and dot are allowed');
-      return false;
-   }
-
-   if (ch == '.') {
-      txt = elem.value;
-      c = 0;
-      for (i=0; i<txt.length; i++) {
-         if (txt[i] == '.')
-            c++;
-      }
-      if (c != 0)
-         return false;
-   }
-
-   return true;
-}
-
-function get_keycode(ev)
-{
-    if (ev.keyCode)
-        return ev.keyCode;
-    else
-        return ev.which;
-}
-
-var pending_warning = false;
-
-function display_warning(el, timeout, text)
-{
-	if (!pending_warning) {
-		pending_warning = true;
-		alert(text);
-		pending_warning = false;
-	}
-    return;
-
-    var geom_obj = getGeom(el);
-
-    var warning_box = document.getElementById('warning_box');
-    if (!warning_box) {
-       alert(text);
-       return;
-    }
-
-    warning_box.innerHTML = text;
-    /*
-    warning_box.style.position = 'absolute'
-    warning_box.style.left = geom_obj.x + '';
-    warning_box.style.top  = (geom_obj.y - 65) + '';
-    warning_box.style.display = 'inline';
-    */
-    warning_box.style.visibility = 'visible';
-    setTimeout("remove_warning()", (1000 * timeout));
-}
-
-function remove_warning()
-{
-    var warning_box = document.getElementById('warning_box');
-//    warning_box.style.display = 'none';
-    warning_box.style.visibility = 'hidden';
-}
-
-function getGeom(el)
-{
-   var object   = new Object();
-
-   object.x     = el.offsetLeft;
-   object.y     = el.offsetTop;
-   var parent    = el.offsetParent;
-   object.width  = el.offsetWidth;
-   object.height = el.offsetHeight;
-   while(parent != null) {
-      object.x += parent.offsetLeft;
-      object.y += parent.offsetTop;
-      parent   = parent.offsetParent;
-   }
-   return object;
-}
-
-function reset_form(form) {
-   if (confirm('Do you really want to reset the form?')) {
-      form.reset();
-      for (i=0; i<form.length; i++) {
-         form.elements[i].className = '';
-         form.elements[i].disabled  = false;
-      }
-      return true;
-   }
-   return false;
-}
-
-
-
-
-
-
-function strip_left(txt) {
-   for (i=0; i<txt.length; i++) {
-      if (txt[i] == " " || txt[i] == "\n")
-         continue;
-      return txt.substr(i);
-   }
-   return txt;
-}
-
-
-// Apply is button, other ones are submits
-
-var tmp_submit_URL = "";
-var tmp_button_id = "";
-var tmp_prompt_msg = "";
-var tmp_form_id = "";
-
-function validate_and_submit_form_callback() {
-  if (xmlHttp_object.readyState == 4) {
-    if (xmlHttp_object.status == 200) {
-        res = xmlHttp_object.responseText;
-        res = strip_left(res);
-        if (res.substr(0, 2) == "OK") {
-           if (confirm(tmp_prompt_msg)) {
-              URL = tmp_submit_URL + 'action_type=Apply';
-              tmp_submit_URL = "";
-              window.location.assign(URL);
-              return;
-           }
-        } else {
-
-           // get elem_name & msg
-           var ind = res.indexOf(' ');
-           var elem_name = res.substr(0, ind);
-           var err_msg = strip_left(res.substr(ind));
-
-           form = document.getElementById(tmp_form_id);
-           for (i=0; i<form.length; i++) {
-              elem = form.elements[i];
-              name = elem.name;
-              if (name == elem_name)
-                 elem.className = 'validation_error';
-           }
-
-           alert(err_msg);
-        }
-    } else {
-        alert("Error retrieving data from server");
-    }
-    if (tmp_button_id != "")
-       document.getElementById(tmp_button_id).disabled = false;
-    tmp_button_id = "";
-  }
-}
-function validate_and_submit_form(validation_URL, form_id, button_id, prompt_msg) {
-   form = document.getElementById(form_id);
-   tmp_prompt_msg = prompt_msg;
-   tmp_form_id = form_id;
-   tmp_submit_URL = form.action + '?';
-   URL = validation_URL + '?';
-   for (i=0; i<form.length; i++) {
-      elem = form.elements[i];
-      name = elem.name;
-      value = elem.value;
-      if (name != 'action_type' && name != '') {
-         if (elem.type == 'checkbox') {
-            if (elem.checked)
-               value = 'on';
-            else
-               value = 'off';
-         }
-         URL += name + '=' + value + '&';
-         tmp_submit_URL += name + '=' + value + '&';
-      }
-   }
-   URL += 'action_type=Validate';
-   initiate_async_get(URL, validate_and_submit_form_callback);
-   tmp_button_id = button_id;
-   if (tmp_button_id != "")
-      document.getElementById(tmp_button_id).disabled = true;
-}
-
-
- </script>
+	<style type="text/css">
+		<!-- @import url(storage_validation.css); -->
+	</style>
+	<script type="text/javascript" src="storage_validation.js"></script>
 </div>
 
-
 <div tal:omit-tag="" metal:define-macro="single-visible-span">
-<!--
-   @media screen, print {
-    span.visible     { visibility: visible; }
-    span.invisible   { visibility: hidden; }
-    div.visible      { display: block; }
-    div.invisible    { height: 0px; width: 0px; overflow: hidden; }
-   }
--->
- <style type="text/css">
-   @media screen, print {
-    span.visible     { display: block; }
-    span.invisible   { display: none; }
-    div.visible      { display: block; }
-    div.invisible    { display: none; }
-   }
- </style>
- <script language="javascript" type="text/javascript">
-  function singleVisibleSpan(parent_id, child_id) {
-    parent = document.getElementById(parent_id);
-    for (var i=0; i < parent.childNodes.length; i++) {
-      var item = parent.childNodes[i];
-      if (item.nodeName == 'SPAN' || item.nodeName == 'span' || item.nodeName == 'DIV' || item.nodeName == 'div') {
-        if (item.id == child_id)
-          item.className = 'visible';
-        else if (item.className == 'visible')
-          item.className = 'invisible';
-      }
-    }
-  }
- </script>
+	<style type="text/css">
+		<!-- @import url(storage_svs.css); -->
+	</style>
+	<script type="text/javascript" src="storage_svs.js"></script>
 </div>
 
-  <div metal:define-macro="display-BD">
+<div metal:define-macro="display-BD">
    <div metal:use-macro="here/form-macros/macros/forms-css"/>
    <span tal:omit-tag=""
          tal:define="predefines_test python:'display-BD: ' + str(bd_data) + storagename + properties_span_id"/>



                 reply	other threads:[~2007-09-25 16:49 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20070925164937.11169.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.