From b7f14b04290fa64b6fd26fe1c2bc4c213b4bbecf Mon Sep 17 00:00:00 2001 From: sullrich Date: Fri, 11 Dec 2009 21:21:29 -0500 Subject: Overhaul haproxy package. Rename backends to frontends. Add rowhelper to the server edit screen for backend selection eliminating quite a number of needed configuration entries for common hosting items. --- config/haproxy/haproxy_servers_edit.php | 216 +++++++++++++++++++++++++++----- 1 file changed, 186 insertions(+), 30 deletions(-) (limited to 'config/haproxy/haproxy_servers_edit.php') diff --git a/config/haproxy/haproxy_servers_edit.php b/config/haproxy/haproxy_servers_edit.php index b2053f4a..a265353d 100755 --- a/config/haproxy/haproxy_servers_edit.php +++ b/config/haproxy/haproxy_servers_edit.php @@ -32,6 +32,7 @@ require("guiconfig.inc"); $d_haproxyconfdirty_path = $g['varrun_path'] . "/haproxy.conf.dirty"; +$a_backend = &$config['installedpackages']['haproxy']['ha_backends']['item']; if (!is_array($config['installedpackages']['haproxy']['ha_servers']['item'])) { $config['installedpackages']['haproxy']['ha_servers']['item'] = array(); @@ -63,8 +64,8 @@ if ($_POST) { unset($input_errors); $pconfig = $_POST; - $reqdfields = explode(" ", "name address port backend weight"); - $reqdfieldsn = explode(",", "Name,Address,Port,Backend,Weight"); + $reqdfields = explode(" ", "name address port weight"); + $reqdfieldsn = explode(",", "Name,Address,Port,Weight"); do_input_validation($_POST, $reqdfields, $reqdfieldsn, &$input_errors); @@ -96,6 +97,15 @@ if ($_POST) { if (($_POST['name'] == $config['installedpackages']['haproxy']['ha_servers']['item'][$i]['name']) && ($i != $id)) $input_errors[] = "This server name has already been used. Server names must be unique."; + $backend = ""; + for($x=0; $x<299; $x++) { + $comd = "\$backends = \$_POST['backend" . $x . "'];"; + eval($comd); + if($backends) + $backend .= "$backends "; + } + $backend = trim($backend); + if (!$input_errors) { $server = array(); if(isset($id) && $a_server[$id]) @@ -103,14 +113,14 @@ if ($_POST) { if($server['name'] != "") $changedesc .= " modified '{$server['name']}' pool:"; - + update_if_changed("name", $server['name'], $_POST['name']); - update_if_changed("address", $server['address'], $_POST['address']); update_if_changed("port", $server['port'], $_POST['port']); - update_if_changed("backend", $server['backend'], $_POST['backend']); + update_if_changed("backend", $server['backend'], $backend); update_if_changed("cookie", $server['cookie'], $_POST['cookie']); update_if_changed("weight", $server['weight'], $_POST['weight']); update_if_changed("status", $server['status'], $_POST['status']); + update_if_changed("address", $server['address'], $_POST['address']); if (isset($id) && $a_server[$id]) { $a_server[$id] = $server; @@ -140,8 +150,12 @@ if(strstr($pfSversion, "1.2")) $pgtitle = "HAProxy: Server: Edit"; include("head.inc"); +row_helper(); + ?> + + @@ -153,7 +167,11 @@ function clearcombo(){ document.iform.serversSelect.selectedIndex = -1; } - + @@ -162,7 +180,7 @@ function clearcombo(){
- + @@ -171,10 +189,68 @@ function clearcombo(){ - - + + + + + + @@ -182,25 +258,6 @@ function clearcombo(){ size="5"> - - - -
Edit haproxy serverEdit HAProxy server
Name
Address - size="64"> - Frontend(s) + + + + + + 0) + $tracker = $counter + 1; + ?> + + + + + + + + +
+ + + 0) + echo ""; + ?> +
+ + + +
+
+ IP Address +
+
+ +
Port
Backend - -
-
Status @@ -249,5 +306,104 @@ function clearcombo(){
+ + +"; + $options .= $backend['name']; + $options .= ""; + } + + echo << +// Global Variables +var rowname = new Array(99); +var rowtype = new Array(99); +var newrow = new Array(99); +var rowsize = new Array(99); + +for (i = 0; i < 99; i++) { + rowname[i] = ''; + rowtype[i] = ''; + newrow[i] = ''; + rowsize[i] = '25'; +} + +var field_counter_js = 0; +var loaded = 0; +var is_streaming_progress_bar = 0; +var temp_streaming_text = ""; + +var addRowTo = (function() { + return (function (tableId) { + var d, tbody, tr, td, bgc, i, ii, j; + d = document; + tbody = d.getElementById(tableId).getElementsByTagName("tbody").item(0); + tr = d.createElement("tr"); + totalrows++; + for (i = 0; i < field_counter_js; i++) { + td = d.createElement("td"); + if(rowtype[i] == 'textbox') { + td.innerHTML=" "; + } else if(rowtype[i] == 'select') { + td.innerHTML=" "; + } else { + td.innerHTML=" "; + } + tr.appendChild(td); + } + td = d.createElement("td"); + td.rowSpan = "1"; + + td.innerHTML = ''; + tr.appendChild(td); + tbody.appendChild(tr); + }); +})(); + +function removeRow(el) { + var cel; + while (el && el.nodeName.toLowerCase() != "tr") + el = el.parentNode; + + if (el && el.parentNode) { + cel = el.getElementsByTagName("td").item(0); + el.parentNode.removeChild(el); + } +} + +function find_unique_field_name(field_name) { + // loop through field_name and strip off -NUMBER + var last_found_dash = 0; + for (var i = 0; i < field_name.length; i++) { + // is this a dash, if so, update + // last_found_dash + if (field_name.substr(i,1) == "-" ) + last_found_dash = i; + } + if (last_found_dash < 1) + return field_name; + return(field_name.substr(0,last_found_dash)); +} + + +EOF; + +} + +?> \ No newline at end of file -- cgit v1.2.3