diff options
Diffstat (limited to 'src/usr/local/www/services_captiveportal_ip.php')
-rw-r--r-- | src/usr/local/www/services_captiveportal_ip.php | 173 |
1 files changed, 68 insertions, 105 deletions
diff --git a/src/usr/local/www/services_captiveportal_ip.php b/src/usr/local/www/services_captiveportal_ip.php index c475aeb..dd449c4 100644 --- a/src/usr/local/www/services_captiveportal_ip.php +++ b/src/usr/local/www/services_captiveportal_ip.php @@ -30,7 +30,7 @@ */ /* pfSense_BUILDER_BINARIES: /sbin/ipfw - pfSense_MODULE: captiveportal + pfSense_MODULE: captiveportal */ ##|+PRIV @@ -40,6 +40,8 @@ ##|*MATCH=services_captiveportal_ip.php* ##|-PRIV +$directionicons = array('to' => '→', 'from' => '←', 'both' => '⇄'); + require("guiconfig.inc"); require("functions.inc"); require_once("filter.inc"); @@ -70,6 +72,7 @@ $shortcut_section = "captiveportal"; if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) { $a_allowedips =& $config['captiveportal'][$cpzone]['allowedip']; + if ($a_allowedips[$_GET['id']]) { $ipent = $a_allowedips[$_GET['id']]; @@ -94,115 +97,75 @@ if ($_GET['act'] == "del" && !empty($cpzone) && isset($cpzoneid)) { } } - include("head.inc"); + +if ($savemsg) + print_info_box($savemsg); + +$tab_array = array(); +$tab_array[] = array(gettext("Captive portal(s)"), false, "services_captiveportal.php?zone={$cpzone}"); +$tab_array[] = array(gettext("MAC"), false, "services_captiveportal_mac.php?zone={$cpzone}"); +$tab_array[] = array(gettext("Allowed IP Addresses"), true, "services_captiveportal_ip.php?zone={$cpzone}"); +$tab_array[] = array(gettext("Allowed Hostnames"), false, "services_captiveportal_hostname.php?zone={$cpzone}"); +$tab_array[] = array(gettext("Vouchers"), false, "services_captiveportal_vouchers.php?zone={$cpzone}"); +$tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_filemanager.php?zone={$cpzone}"); +display_top_tabs($tab_array, true); + ?> -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> -<?php include("fbegin.inc"); ?> -<form action="services_captiveportal_ip.php" method="post"> - <input type="hidden" name="zone" id="zone" value="<?=htmlspecialchars($cpzone);?>" /> - <?php if ($savemsg) print_info_box($savemsg); ?> - <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="captiveportal ip addresses"> - <tr> - <td class="tabnavtbl"> +<div class="table-responsive"> + <table class="table table-hover table-striped table-condensed"> + <thead> + <tr> + <th><?=gettext("IP Addresses"); ?></th> + <th><?=gettext("Description"); ?></th> + <th><!-- Buttons --></th> + </tr> + </thead> + <?php - $tab_array = array(); - $tab_array[] = array(gettext("Captive portal(s)"), false, "services_captiveportal.php?zone={$cpzone}"); - $tab_array[] = array(gettext("MAC"), false, "services_captiveportal_mac.php?zone={$cpzone}"); - $tab_array[] = array(gettext("Allowed IP addresses"), true, "services_captiveportal_ip.php?zone={$cpzone}"); - $tab_array[] = array(gettext("Allowed Hostnames"), false, "services_captiveportal_hostname.php?zone={$cpzone}"); - $tab_array[] = array(gettext("Vouchers"), false, "services_captiveportal_vouchers.php?zone={$cpzone}"); - $tab_array[] = array(gettext("File Manager"), false, "services_captiveportal_filemanager.php?zone={$cpzone}"); - display_top_tabs($tab_array, true); -?> - </td> - </tr> - <tr> - <td class="tabcont"> - <table width="100%" border="0" cellpadding="0" cellspacing="0" summary="main"> - <tr> - <td width="40%" class="listhdrr"><?=gettext("IP address"); ?></td> - <td width="50%" class="listhdr"><?=gettext("Description"); ?></td> - <td width="10%" class="list"> - <table border="0" cellspacing="0" cellpadding="1" summary="add"> - <tr> - <td width="17" height="17"></td> - <td> - <a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add address"); ?>" width="17" height="17" border="0" alt="add" /></a> - </td> - </tr> - </table> - </td> - </tr> +if (is_array($a_cp[$cpzone]['allowedip'])): ?> + <tbody> <?php - if (is_array($a_cp[$cpzone]['allowedip'])): - $i = 0; - foreach ($a_cp[$cpzone]['allowedip'] as $ip): -?> - <tr ondblclick="document.location='services_captiveportal_ip_edit.php?zone=<?=$cpzone;?>&id=<?=$i;?>'"> - <td class="listlr"> + $i = 0; + foreach ($a_cp[$cpzone]['allowedip'] as $ip): ?> + <tr> + <td> + <?=$directionicons[$ip['dir']]?> <?=$ip['ip']?> + <?=($ip['sn'] != "32" && is_numeric($ip['sn'])) ? '/' . $ip['sn'] : ''?> + </td> + <td > + <?=htmlspecialchars($ip['descr'])?> + </td> + <td> + <a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone?>&id=<?=$i?>" class="btn btn-xs btn-info">Edit</a> + <a href="services_captiveportal_ip.php?zone=<?=$cpzone?>&act=del&id=<?=$i?>" class="btn btn-xs btn-danger">Delete</a> + </td> + </tr> <?php - if ($ip['dir'] == "to") { - echo "any <img src=\"/themes/{$g['theme']}/images/icons/icon_in.gif\" width=\"11\" height=\"11\" align=\"middle\" alt=\"in\" /> "; - } - if ($ip['dir'] == "both") { - echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_pass.gif\" width=\"11\" height=\"11\" align=\"middle\" alt=\"pass\" /> "; - } - echo strtolower($ip['ip']); - if ($ip['sn'] != "32" && is_numeric($ip['sn'])) { - $sn = $ip['sn']; - echo "/$sn"; - } - if ($ip['dir'] == "from") { - echo "<img src=\"/themes/{$g['theme']}/images/icons/icon_in.gif\" width=\"11\" height=\"11\" align=\"middle\" alt=\"any\" /> any"; - } -?> - </td> - <td class="listbg"> - <?=htmlspecialchars($ip['descr']);?> - </td> - <td valign="middle" class="list nowrap"> - <a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone;?>&id=<?=$i;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_e.gif" title="<?=gettext("edit address"); ?>" width="17" height="17" border="0" alt="edit" /></a> - - <a href="services_captiveportal_ip.php?zone=<?=$cpzone;?>&act=del&id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this address?"); ?>')"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_x.gif" title="<?=gettext("delete address"); ?>" width="17" height="17" border="0" alt="delete" /></a> - </td> - </tr> + $i++; + endforeach; ?> + <tbody> + </table> + + <?=$directionicons['to'] . ' = ' . sprintf(gettext('All connections %sto%s the address are allowed'), '<u>','</u>') . ', '?> + <?=$directionicons['from'] . ' = ' . sprintf(gettext('All connections %sfrom%s the address are allowed'), '<u>','</u>') . ', '?> + <?=$directionicons['both'] . ' = ' . sprintf(gettext('All connections %sto or from%s are allowed'), '<u>','</u>')?> <?php - $i++; - endforeach; - endif; +else : ?> - <tr> - <td class="list" colspan="2"> </td> - <td class="list"> - <table border="0" cellspacing="0" cellpadding="1" summary="add"> - <tr> - <td width="17" height="17"></td> - <td> - <a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone;?>"><img src="/themes/<?php echo $g['theme']; ?>/images/icons/icon_plus.gif" title="<?=gettext("add address"); ?>" width="17" height="17" border="0" alt="add" /></a> - </td> - </tr> - </table> - </td> - </tr> - <tr> - <td colspan="2" class="list"> - <p class="vexpl"> - <span class="red"> - <strong> - <?=gettext("Note:"); ?><br /> - </strong> - </span> - <?=gettext("Adding allowed IP addresses will allow IP access to/from these addresses through the captive portal without being taken to the portal page. This can be used for a web server serving images for the portal page or a DNS server on another network, for example."); ?> - </p> - </td> - <td class="list"> </td> - </tr> - </table> - </td> - </tr> + </tbody> </table> -</form> -<?php include("fend.inc"); ?> -</body> -</html> +<?php +endif; +?> +</div> + +<nav class="action-buttons"> + <a href="services_captiveportal_ip_edit.php?zone=<?=$cpzone?>&act=add" class="btn btn-success">Add</a> +</nav> + +<?php +print_info_box(gettext('Adding allowed IP addresses will allow IP access to/from these addresses through the captive portal without being taken to the portal page. ' . + 'This can be used for a web server serving images for the portal page or a DNS server on another network, for example.')); + +include("foot.inc");
\ No newline at end of file |