aboutsummaryrefslogtreecommitdiffstats
path: root/config/haproxy-devel/www
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2016-01-05 09:35:41 -0200
committerRenato Botelho <renato@netgate.com>2016-01-05 09:35:41 -0200
commit11e685d9fff14ff3fb76dd590f8558b1496dd8a6 (patch)
tree910c219d3fad71d03559230b973772296deba41f /config/haproxy-devel/www
parenta8286f5251063b3e3d6e6c359e8e1cbdee4f0aea (diff)
parente4e35fcdd04ad128ab5c4a69b5459504caab5915 (diff)
downloadpfsense-packages-11e685d9fff14ff3fb76dd590f8558b1496dd8a6.tar.gz
pfsense-packages-11e685d9fff14ff3fb76dd590f8558b1496dd8a6.tar.bz2
pfsense-packages-11e685d9fff14ff3fb76dd590f8558b1496dd8a6.zip
Merge pull request #1225 from PiBa-NL/haproxy_pkg0.32
Diffstat (limited to 'config/haproxy-devel/www')
-rw-r--r--config/haproxy-devel/www/haproxy_listeners.php63
-rw-r--r--config/haproxy-devel/www/haproxy_listeners_edit.php25
-rw-r--r--config/haproxy-devel/www/haproxy_pools.php39
-rw-r--r--config/haproxy-devel/www/widgets/widgets/haproxy.widget.php128
4 files changed, 152 insertions, 103 deletions
diff --git a/config/haproxy-devel/www/haproxy_listeners.php b/config/haproxy-devel/www/haproxy_listeners.php
index c7288e7d..35d9ba54 100644
--- a/config/haproxy-devel/www/haproxy_listeners.php
+++ b/config/haproxy-devel/www/haproxy_listeners.php
@@ -35,6 +35,7 @@ require_once("haproxy.inc");
require_once("certs.inc");
require_once("haproxy_utils.inc");
require_once("pkg_haproxy_tabs.inc");
+require_once("haproxy_gui.inc");
$changedesc = "Services: HAProxy: Frontends";
@@ -85,7 +86,8 @@ if ($_GET['act'] == "del") {
if (isset($a_frontend[$id])) {
if (!$input_errors) {
unset($a_frontend[$id]);
- write_config();
+ $changedesc .= " Frontend delete";
+ write_config($changedesc);
touch($d_haproxyconfdirty_path);
}
header("Location: haproxy_listeners.php");
@@ -132,23 +134,24 @@ echo "<br/></div>";
?>
<script type="text/javascript" language="javascript" src="/javascript/haproxy_geturl.js"></script>
<script language="javascript">
-function toggle_on(button, image) {
- var item = document.getElementById(button);
- item.src = image;
+function set_content(elementid, image) {
+ var item = document.getElementById(elementid);
+ item.innerHTML = image;
}
function js_callback(req) {
showapplysettings.style.display = 'block';
+
if(req.content != '') {
var itemsplit = req.content.split("|");
buttonid = itemsplit[0];
enabled = itemsplit[1];
if (enabled == 1){
- img = 'pass';
+ img = "<?=haproxyicon("enabled", gettext("click to toggle enable/disable this frontend"))?>";
} else {
- img = 'reject';
+ img = "<?=haproxyicon("disabled", gettext("click to toggle enable/disable this frontend"))?>";
}
- toggle_on('btn_'+buttonid, './themes/<?=$g['theme'];?>/images/icons/icon_'+img+'.gif');
+ set_content('btn_'+buttonid, img);
}
}
</script>
@@ -197,9 +200,6 @@ function js_callback(req) {
}
ksort($a_frontend_grouped);
- $img_cert = "/themes/{$g['theme']}/images/icons/icon_frmfld_cert.png";
- $img_adv = "/themes/{$g['theme']}/images/icons/icon_advanced.gif";
- $img_acl = "/themes/{$g['theme']}/images/icons/icon_ts_rule.gif";
$textgray = "";
$first = true;
$last_frontend_shared = false;
@@ -218,13 +218,12 @@ function js_callback(req) {
<td class="listlr" ondblclick="document.location='haproxy_listeners_edit.php?id=<?=$frontendname;?>';">
<?
if ($frontend['status']=='disabled'){
- $iconfn = "reject";
+ $iconfn = "disabled";
} else {
- $iconfn = "pass";
+ $iconfn = "enabled";
}?>
- <a href='javascript:getURL("?id=<?=$frontendname;?>&amp;action=toggle&amp;", js_callback);'>
- <img id="btn_<?=$frontendname;?>" src="./themes/<?= $g['theme']; ?>/images/icons/icon_<?=$iconfn;?>.gif" width="11" height="11" border="0"
- title="<?=gettext("click to toggle enable/disable this frontend");?>" alt="icon" />
+ <a id="btn_<?=$frontendname;?>" href='javascript:getURL("?id=<?=$frontendname;?>&amp;action=toggle&amp;", js_callback);'>
+ <?=haproxyicon($iconfn, gettext("click to toggle enable/disable this frontend"))?>
</a>
</td>
<td class="listr" style="<?=$frontend['secondary']=='yes'?"visibility:hidden;":""?>" ondblclick="document.location='haproxy_listeners_edit.php?id=<?=$frontendname;?>';">
@@ -235,11 +234,12 @@ function js_callback(req) {
$acls = get_frontend_acls($frontend);
$isaclset = "";
foreach ($acls as $acl) {
- $isaclset .= "&#10;" . htmlspecialchars($acl['descr']);
+ $isaclset .= "\n" . htmlspecialchars($acl['descr']);
+ }
+ if ($isaclset) {
+ echo haproxyicon("acl", gettext("acl's used") . ": {$isaclset}");
}
- if ($isaclset)
- echo "<img src=\"$img_acl\" title=\"" . gettext("acl's used") . ": {$isaclset}\" border=\"0\" />";
-
+
if (get_frontend_uses_ssl($frontend)) {
$cert = lookup_cert($frontend['ssloffloadcert']);
$descr = htmlspecialchars($cert['descr']);
@@ -252,14 +252,15 @@ function js_callback(req) {
}
}
}
- echo '<img src="'.$img_cert.'" title="SSL offloading cert: '.$descr.'" alt="SSL offloading" border="0" height="16" width="16" />';
+ echo haproxyicon("cert", "SSL offloading cert: {$descr}");
}
$isadvset = "";
if ($frontend['advanced_bind']) $isadvset .= "Advanced bind: ".htmlspecialchars($frontend['advanced_bind'])."\r\n";
if ($frontend['advanced']) $isadvset .= "Advanced pass thru setting used\r\n";
- if ($isadvset)
- echo "<img src=\"$img_adv\" title=\"" . gettext("Advanced settings set") . ": {$isadvset}\" border=\"0\" />";
+ if ($isadvset) {
+ echo haproxyicon("advanced", gettext("Advanced settings set") . ": {$isadvset}");
+ }
?>
</td>
<td class="listr" ondblclick="document.location='haproxy_listeners_edit.php?id=<?=$frontendname;?>';">
@@ -277,7 +278,7 @@ function js_callback(req) {
print "<div style='white-space:nowrap;'>";
print "{$addr['addr']}:{$addr['port']}";
if ($addr['ssl'] == 'yes') {
- echo '<img src="'.$img_cert.'" title="SSL offloading" alt="SSL" border="0" height="11" width="11" />';
+ echo haproxyicon("cert", "SSL offloading");
}
print "</div";
$first = false;
@@ -327,9 +328,15 @@ function js_callback(req) {
<td class="list" nowrap>
<table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td valign="middle"><a href="haproxy_listeners_edit.php?id=<?=$frontendname;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit frontend");?>" width="17" height="17" border="0" /></a></td>
- <td valign="middle"><a href="haproxy_listeners.php?act=del&amp;id=<?=$frontendname;?>" onclick="return confirm('Do you really want to delete this entry?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete frontend");?>" width="17" height="17" border="0" /></a></td>
- <td valign="middle"><a href="haproxy_listeners_edit.php?dup=<?=$frontendname;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("clone frontend");?>" width="17" height="17" border="0" /></a></td>
+ <td valign="middle"><a href="haproxy_listeners_edit.php?id=<?=$frontendname;?>">
+ <?=haproxyicon("edit", gettext("edit frontend"))?>
+ </a></td>
+ <td valign="middle"><a href="haproxy_listeners.php?act=del&amp;id=<?=$frontendname;?>" onclick="return confirm('Do you really want to delete this entry?')">
+ <?=haproxyicon("delete", gettext("delete frontend"))?>
+ </a></td>
+ <td valign="middle"><a href="haproxy_listeners_edit.php?dup=<?=$frontendname;?>">
+ <?=haproxyicon("clone", gettext("clone frontend"))?>
+ </a></td>
</tr>
</table>
</td>
@@ -342,7 +349,9 @@ function js_callback(req) {
<td class="list">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td valign="middle"><a href="haproxy_listeners_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new frontend");?>" width="17" height="17" border="0" /></a></td>
+ <td valign="middle"><a href="haproxy_listeners_edit.php">
+ <?=haproxyicon("add", gettext("add new frontend"))?>
+ </a></td>
</tr>
</table>
</td>
diff --git a/config/haproxy-devel/www/haproxy_listeners_edit.php b/config/haproxy-devel/www/haproxy_listeners_edit.php
index f26341b2..8c37332e 100644
--- a/config/haproxy-devel/www/haproxy_listeners_edit.php
+++ b/config/haproxy-devel/www/haproxy_listeners_edit.php
@@ -251,14 +251,33 @@ function customdrawcell_actions($object, $item, $itemvalue, $editable, $itemname
$htmllist_extaddr = new HaproxyHtmlList("table_extaddr", $fields_externalAddress);
$htmllist_extaddr->editmode = true;
+function fields_details_showfieldfunction($items, $action, $itemname) {
+ if (is_array($items[$action]) && is_array($items[$action]['fields'])) {
+ foreach($items[$action]['fields'] as $item) {
+ if ($action . "" . $item['name'] == $itemname) {
+ return true;
+ }
+ }
+ }
+ return false;
+}
+function fields_acls_details_showfieldfunction($htmltable, $itemname, $values) {
+ $items = $htmltable->fields[1]['items'];
+ $action = $values['expression'];
+ return fields_details_showfieldfunction($items, $action, $itemname);
+}
$htmllist_acls = new HaproxyHtmlList("table_acls", $fields_aclSelectionList);
$htmllist_acls->fields_details = $fields_acl_details;
-//$htmllist_acls->editmode = true;
+$htmllist_acls->fields_details_showfieldfunction = fields_acls_details_showfieldfunction;
+function fields_actions_details_showfieldfunction($htmltable, $itemname, $values) {
+ $items = $htmltable->fields[0]['items'];
+ $action = $values['action'];
+ return fields_details_showfieldfunction($items, $action, $itemname);
+}
$htmllist_actions = new HaproxyHtmlList("table_actions", $fields_actions);
$htmllist_actions->fields_details = $fields_actions_details;
-//$htmllist_actions->keyfield = "name";
-//$htmllist_actions->editmode = true;
+$htmllist_actions->fields_details_showfieldfunction = fields_actions_details_showfieldfunction;
$htmllist_sslCertificates = new HaproxyHtmlList("tbl_sslCerts", $fields_sslCertificates);
$htmllist_caCertificates = new HaproxyHtmlList("tbl_caCerts", $fields_caCertificates );
diff --git a/config/haproxy-devel/www/haproxy_pools.php b/config/haproxy-devel/www/haproxy_pools.php
index d98c7f41..ef1768db 100644
--- a/config/haproxy-devel/www/haproxy_pools.php
+++ b/config/haproxy-devel/www/haproxy_pools.php
@@ -33,7 +33,7 @@ $shortcut_section = "haproxy";
require_once("guiconfig.inc");
require_once("haproxy.inc");
require_once("pkg_haproxy_tabs.inc");
-
+require_once("haproxy_gui.inc");
if (!is_array($config['installedpackages']['haproxy']['ha_pools']['item'])) {
$config['installedpackages']['haproxy']['ha_pools']['item'] = array();
@@ -58,7 +58,7 @@ if ($_POST) {
if ($_GET['act'] == "del") {
if (isset($a_pools[$_GET['id']])) {
unset($a_pools[$_GET['id']]);
- write_config();
+ write_config("Services: HAProxy: Backend delete");
touch($d_haproxyconfdirty_path);
}
header("Location: haproxy_pools.php");
@@ -97,7 +97,6 @@ haproxy_css();
<td width="10%" class="list"></td>
</tr>
<?php
- $img_adv = "/themes/{$g['theme']}/images/icons/icon_advanced.gif";
$i = 0;
foreach ($a_pools as $pool){
$fe_list = "";
@@ -131,14 +130,19 @@ haproxy_css();
<tr class="<?=$textgray?>">
<td class="listlr" ondblclick="document.location='haproxy_pool_edit.php?id=<?=$i;?>';">
<?
- if ($pool['stats_enabled']=='yes'){
- echo "<img src=\"./themes/{$g['theme']}/images/icons/icon_log_s.gif\"" . ' title="stats enabled" width="11" height="15" border="0" />';
+ if ($pool['stats_enabled']=='yes') {
+ echo haproxyicon("stats", gettext("stats enabled"));
}
$isadvset = "";
- if ($pool['advanced']) $isadvset .= "Per server pass thru\r\n";
- if ($pool['advanced_backend']) $isadvset .= "Backend pass thru\r\n";
- if ($isadvset)
- echo "<img src=\"$img_adv\" title=\"" . gettext("advanced settings set") . ": {$isadvset}\" border=\"0\" />";
+ if ($pool['advanced']) {
+ $isadvset .= "Per server pass thru\r\n";
+ }
+ if ($pool['advanced_backend']) {
+ $isadvset .= "Backend pass thru\r\n";
+ }
+ if ($isadvset) {
+ echo haproxyicon("advanced", gettext("advanced settings set") . ": {$isadvset}");
+ }
?>
</td>
<td class="listlr" ondblclick="document.location='haproxy_pool_edit.php?id=<?=$i;?>';">
@@ -156,9 +160,15 @@ haproxy_css();
<td class="list" nowrap>
<table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td valign="middle"><a href="haproxy_pool_edit.php?id=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit backend");?>" width="17" height="17" border="0" /></a></td>
- <td valign="middle"><a href="haproxy_pools.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('Do you really want to delete this entry?')"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete backend");?>" width="17" height="17" border="0" /></a></td>
- <td valign="middle"><a href="haproxy_pool_edit.php?dup=<?=$i;?>"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("clone backend");?>" width="17" height="17" border="0" /></a></td>
+ <td valign="middle"><a href="haproxy_pool_edit.php?id=<?=$i;?>">
+ <?=haproxyicon("edit", gettext("edit backend"))?>
+ </a></td>
+ <td valign="middle"><a href="haproxy_pools.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('Do you really want to delete this entry?')">
+ <?=haproxyicon("delete", gettext("delete backend"))?>
+ </a></td>
+ <td valign="middle"><a href="haproxy_pool_edit.php?dup=<?=$i;?>">
+ <?=haproxyicon("clone", gettext("clone backend"))?>
+ </a></td>
</tr>
</table>
</td>
@@ -173,7 +183,10 @@ haproxy_css();
<td class="list">
<table border="0" cellspacing="0" cellpadding="1">
<tr>
- <td valign="middle"><a href="haproxy_pool_edit.php"><img src="/themes/<?= $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add new backend");?>" width="17" height="17" border="0" /></a></td>
+ <td valign="middle">
+ <a href="haproxy_pool_edit.php">
+ <?=haproxyicon("add", gettext("add new backend"))?>
+ </a></td>
</tr>
</table>
</td>
diff --git a/config/haproxy-devel/www/widgets/widgets/haproxy.widget.php b/config/haproxy-devel/www/widgets/widgets/haproxy.widget.php
index 5d664e81..92fd9025 100644
--- a/config/haproxy-devel/www/widgets/widgets/haproxy.widget.php
+++ b/config/haproxy-devel/www/widgets/widgets/haproxy.widget.php
@@ -30,10 +30,15 @@
Some mods made from pfBlocker widget to make this for HAProxy on Pfsense
Copyleft 2012 by jvorhees
*/
+
+$nocsrf = true;
+
require_once("guiconfig.inc");
require_once("pfsense-utils.inc");
require_once("functions.inc");
require_once("haproxy_socketinfo.inc");
+require_once("haproxy_gui.inc");
+
$first_time = false;
if (!is_array($config["widgets"]["haproxy"])) {
$first_time = true;
@@ -59,7 +64,7 @@ if ($_POST) {
foreach($simplefields as $fieldname)
$a_config[$fieldname] = $_POST[$fieldname];
- write_config("Updated traffic graph settings via dashboard.");
+ write_config("Services: HAProxy: Widget: Updated settings via dashboard.");
header("Location: /");
exit(0);
}
@@ -77,13 +82,13 @@ $show_frontends = $a_config['haproxy_widget_showfrontends']=='yes';
$show_clients = $a_config['haproxy_widget_showclients']=='yes';
$show_clients_traffic = $a_config['haproxy_widget_showclienttraffic']=='yes';
-$out="<img src ='/themes/{$g['theme']}/images/icons/icon_interface_down.gif'>";
-$in="<img src ='/themes/{$g['theme']}/images/icons/icon_interface_up.gif'>";
-$running="<img src ='/themes/{$g['theme']}/images/icons/icon_pass.gif'>";
-$stopped="<img src ='/themes/{$g['theme']}/images/icons/icon_block.gif'>";
-$log="<img src ='/themes/{$g['theme']}/images/icons/icon_log.gif'>";
-$start="<img src ='/themes/{$g['theme']}/images/icons/icon_service_start.gif' title='Enable this backend/server'>";
-$stop="<img src ='/themes/{$g['theme']}/images/icons/icon_service_stop.gif' title='Disable this backend/server'>";
+$out = haproxyicon("down", "");
+$in = haproxyicon("up", "");
+$running = haproxyicon("enabled", "");
+$stopped = haproxyicon("disabled", "");
+$log = haproxyicon("resolvedns", "");
+$start = haproxyicon("start","Enable this backend/server");
+$stop = haproxyicon("stop","Disable this backend/server");
$clients=array();
$clientstraffic=array();
@@ -98,35 +103,11 @@ if ($show_clients == "YES") {
}
if (!$getupdatestatus) {
?>
-<div id="haproxy-settings" name="haproxy-settings" class="widgetconfigdiv" style="display:none;">
-<form action="/widgets/widgets/haproxy.widget.php" method="post" name="iform" id="iform">
- <table>
- <tr><td>
- Refresh Interval:</td><td>
- <input id="haproxy_widget_timer" name="haproxy_widget_timer" type="text" value="<?=$a_config['haproxy_widget_timer']?>"/></td>
- </tr><tr>
- <td>Show frontends:</td><td>
- <input id="haproxy_widget_showfrontends" name="haproxy_widget_showfrontends" type="checkbox" value="yes" <?php if ($a_config['haproxy_widget_showfrontends']=='yes') echo "checked"; ?>/></td>
- </tr><tr>
- <td>Show clients:</td>
- <td><input id="haproxy_widget_showclients" name="haproxy_widget_showclients" type="checkbox" value="yes" <?php if ($a_config['haproxy_widget_showclients']=='yes') echo "checked"; ?>/>
- Note: showing clients increases CPU/memory usage.
- </td>
- </tr><tr>
- <td>Show client traffic:</td>
- <td><input id="haproxy_widget_showclienttraffic" name="haproxy_widget_showclienttraffic" type="checkbox" value="yes" <?php if ($a_config['haproxy_widget_showclienttraffic']=='yes') echo "checked"; ?>/>
- Note: showing client traffic considerably increases CPU/memory usage.
- </td>
- </tr></table>
- <br>
- <input id="submit" name="submit" type="submit" onclick="return updatePref();" class="formbtn" value="Save Settings" />
-</form>
-</div>
-<div name="haproxy_content" id="haproxy_content">
+<div id="haproxy_content">
<?
}
-echo "<table style=\"padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"";
+echo "<table style=\"padding-top:0px; padding-bottom:0px; padding-left:0px; padding-right:0px\" width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
#Frontends
if ($show_frontends == "YES") {
print "<tr><td class=\"widgetsubheader\" colspan=\"4\"><strong>FrontEnd(s)</strong></td></tr>";
@@ -236,7 +217,17 @@ if (!$getupdatestatus)
{
echo "</div>";
?>
-<script language="javascript" type="text/javascript">
+<?
+}
+
+if ($getupdatestatus) {
+ exit;
+}
+?>
+</div>
+
+<script type="text/javascript" src="/javascript/haproxy_geturl.js"></script>
+<script type="text/javascript">
d = document;
selectIntLink = "haproxy-configure";
textlink = d.getElementById(selectIntLink);
@@ -246,37 +237,54 @@ if (!$getupdatestatus)
function getstatusgetupdate() {
var url = "/widgets/widgets/haproxy.widget.php";
var pars = 'getupdatestatus=yes';
- var myAjax = new Ajax.Request(
- url,
- {
- method: 'get',
- parameters: pars,
- onComplete: activitycallback_haproxy
- });
+ getURL(url+"?"+pars, activitycallback_haproxy);
}
function getstatus_haproxy() {
+ setTimeout(getstatus_haproxy, <?= $refresh_rate ?>);
getstatusgetupdate();
- setTimeout('getstatus_haproxy()', <?= $refresh_rate ?>);
+
}
function activitycallback_haproxy(transport) {
- $('haproxy_content').innerHTML = transport.responseText;
+ if ($('haproxy_content').innerHTML) {
+ $('haproxy_content').innerHTML = transport.content;
+ } else {
+ $('#haproxy_content').html(transport.content);
+ }
+ }
+ setTimeout(getstatus_haproxy, <?= $refresh_rate ?>);
+
+ function control_haproxy(act,be,srv) {
+ var url = "/widgets/widgets/haproxy.widget.php";
+ var pars = 'act='+act+'&be='+be+'&srv='+srv;
+ getURL(url+"?"+pars, getstatusgetupdate);
}
- setTimeout('getstatus_haproxy()', <?= $refresh_rate ?>);
-</script>
-<script type="text/javascript">
- function control_haproxy(act,be,srv) {
- var url = "/widgets/widgets/haproxy.widget.php";
- var pars = 'act='+act+'&be='+be+'&srv='+srv;
- var myAjax = new Ajax.Request(
- url,
- {
- method: 'get',
- parameters: pars,
- //onComplete: activitycallback_haproxy
- onComplete: getstatusgetupdate
- });
- }
</script>
<?
+if (pf_version() < "2.3") {
+ echo '<div id="haproxy-settings" class="widgetconfigdiv" style="display:none;">';
+} else {
+ echo '<div id="widget-haproxy_panel-footer" class="panel-footer collapse">';
}
-?> \ No newline at end of file
+?>
+<form action="/widgets/widgets/haproxy.widget.php" method="post" name="iform" id="iform">
+ <table>
+ <tr><td>
+ Refresh Interval:</td><td>
+ <input id="haproxy_widget_timer" name="haproxy_widget_timer" type="text" value="<?=$a_config['haproxy_widget_timer']?>"/></td>
+ </tr><tr>
+ <td>Show frontends:</td><td>
+ <input id="haproxy_widget_showfrontends" name="haproxy_widget_showfrontends" type="checkbox" value="yes" <?php if ($a_config['haproxy_widget_showfrontends']=='yes') echo "checked"; ?>/></td>
+ </tr><tr>
+ <td>Show clients:</td>
+ <td><input id="haproxy_widget_showclients" name="haproxy_widget_showclients" type="checkbox" value="yes" <?php if ($a_config['haproxy_widget_showclients']=='yes') echo "checked"; ?>/>
+ Note: showing clients increases CPU/memory usage.
+ </td>
+ </tr><tr>
+ <td>Show client traffic:</td>
+ <td><input id="haproxy_widget_showclienttraffic" name="haproxy_widget_showclienttraffic" type="checkbox" value="yes" <?php if ($a_config['haproxy_widget_showclienttraffic']=='yes') echo "checked"; ?>/>
+ Note: showing client traffic considerably increases CPU/memory usage.
+ </td>
+ </tr></table>
+ <br>
+ <input id="submit" name="submit" type="submit" onclick="return updatePref();" class="formbtn" value="Save Settings" />
+</form>