Commit 43b8ef32 authored by Ad Schellevis's avatar Ad Schellevis

(legacy) refactor services_rfc2136.php

parent fc886e65
...@@ -38,97 +38,120 @@ if (!isset($config['dnsupdates']['dnsupdate'])) { ...@@ -38,97 +38,120 @@ if (!isset($config['dnsupdates']['dnsupdate'])) {
$a_rfc2136 = &$config['dnsupdates']['dnsupdate']; $a_rfc2136 = &$config['dnsupdates']['dnsupdate'];
if ($_GET['act'] == "del") { if ($_SERVER['REQUEST_METHOD'] === 'POST') {
unset($a_rfc2136[$_GET['id']]); if (isset($_POST['act']) && $_POST['act'] == "del" && isset($_POST['id'])) {
if (!empty($a_rfc2136[$_POST['id']])) {
unset($a_rfc2136[$_POST['id']]);
write_config(); write_config();
configd_run('dyndns reload', true);
header("Location: services_rfc2136.php"); }
exit; exit;
} elseif (isset($_POST['act']) && $_POST['act'] == "toggle" && isset($_POST['id'])) {
if (!empty($a_rfc2136[$_POST['id']])) {
if (!empty($a_rfc2136[$_POST['id']]['enable'])) {
$a_rfc2136[$_POST['id']]['enable'] = false;
} else {
$a_rfc2136[$_POST['id']]['enable'] = true;
}
write_config();
configd_run('dyndns reload', true);
}
exit;
}
} }
include("head.inc");
include("head.inc");
legacy_html_escape_form_data($a_rfc2136);
$main_buttons = array( $main_buttons = array(
array('label' => gettext('Add'), 'href' => 'services_rfc2136_edit.php'), array('label' => gettext('Add'), 'href' => 'services_rfc2136_edit.php'),
); );
?> ?>
<body> <body>
<?php include("fbegin.inc"); ?> <script type="text/javascript">
$( document ).ready(function() {
// delete service action
$(".act_delete_service").click(function(event){
event.preventDefault();
var id = $(this).data("id");
BootstrapDialog.show({
type:BootstrapDialog.TYPE_DANGER,
title: "<?= gettext("RFC 2136");?>",
message: "<?=gettext("Do you really want to delete this client?");?>",
buttons: [{
label: "<?= gettext("No");?>",
action: function(dialogRef) {
dialogRef.close();
}}, {
label: "<?= gettext("Yes");?>",
action: function(dialogRef) {
$.post(window.location, {act: 'del', id:id}, function(data) {
location.reload();
});
}
}]
});
});
// link toggle buttons
$(".act_toggle").click(function(){
$.post(window.location, {act: 'toggle', id:$(this).data("id")}, function(data) {
location.reload();
});
});
});
</script>
<section class="page-content-main"> <?php include("fbegin.inc"); ?>
<section class="page-content-main">
<div class="container-fluid"> <div class="container-fluid">
<div class="row"> <div class="row">
<?php if (isset($input_errors) && count($input_errors) > 0) print_input_errors($input_errors); ?> <?php if (isset($input_errors) && count($input_errors) > 0) print_input_errors($input_errors); ?>
<section class="col-xs-12"> <section class="col-xs-12">
<div class="tab-content content-box col-xs-12"> <div class="tab-content content-box col-xs-12">
<form method="post" name="iform" id="iform">
<form action="services_rfc2136.php" method="post" name="iform" id="iform">
<div class="table-responsive"> <div class="table-responsive">
<table class="table table-striped"> <table class="table table-striped">
<thead>
<tr> <tr>
<td width="5%" class="listhdrr"><?=gettext("If");?></td> <th><?=gettext("If");?></th>
<td width="15%" class="listhdrr"><?=gettext("Server");?></td> <th><?=gettext("Server");?></th>
<td width="20%" class="listhdrr"><?=gettext("Hostname");?></td> <th><?=gettext("Hostname");?></th>
<td width="25%" class="listhdrr"><?=gettext("Cached IP");?></td> <th><?=gettext("Cached IP");?></th>
<td width="25%" class="listhdr"><?=gettext("Description");?></td> <th><?=gettext("Description");?></th>
<td width="10%" class="list"></td> <th></th>
</tr> </tr>
<?php $i = 0; foreach ($a_rfc2136 as $rfc2136): ?> </thead>
<tr ondblclick="document.location='services_rfc2136_edit.php?id=<?=$i;?>'"> <tbody>
<td class="listlr"> <?php
<?php $i = 0;
$iflist = get_configured_interface_with_descr(); foreach ($a_rfc2136 as $rfc2136): ?>
foreach ($iflist as $if => $ifdesc) { <tr>
if ($rfc2136['interface'] == $if) { <td>
if (!isset($rfc2136['enable'])) <a href="#" class="act_toggle" data-id="<?=$i;?>" data-toggle="tooltip" title="<?=(!empty($rfc2136['enable'])) ? gettext("disable") : gettext("enable");?>">
echo "<span class=\"text-muted\">{$ifdesc}</span>"; <span class="glyphicon glyphicon-play <?=(!empty($rfc2136['enable'])) ? "text-success" : "text-muted";?>"></span>
else </a>
echo "{$ifdesc}"; <?=!empty($config['interfaces'][$rfc2136['interface']]['descr']) ? $config['interfaces'][$rfc2136['interface']]['descr'] : strtoupper($rfc2136['interface']);?>
break;
}
}
?>
</td>
<td class="listr">
<?php
if (!isset($rfc2136['enable']))
echo "<span class=\"text-muted\">" . htmlspecialchars($rfc2136['server']) . "</span>";
else
echo htmlspecialchars($rfc2136['server']);
?>
</td>
<td class="listr">
<?php
if (!isset($rfc2136['enable']))
echo "<span class=\"text-muted\">" . htmlspecialchars($rfc2136['host']) . "</span>";
else
echo htmlspecialchars($rfc2136['host']);
?>
</td> </td>
<td class="listr"> <td><?=$rfc2136['server'];?></td>
<?php <td><?=$rfc2136['host'];?></td>
<td>
<?php
$filename = "/conf/dyndns_{$rfc2136['interface']}_rfc2136_" . escapeshellarg($rfc2136['host']) . "_{$rfc2136['server']}.cache"; $filename = "/conf/dyndns_{$rfc2136['interface']}_rfc2136_" . escapeshellarg($rfc2136['host']) . "_{$rfc2136['server']}.cache";
if (file_exists($filename)) { if (file_exists($filename) && !empty($rfc2136['enable'])) {
echo "IPv4: "; echo "IPv4: ";
if (isset($rfc2136['usepublicip'])) if (isset($rfc2136['usepublicip'])) {
$ipaddr = dyndnsCheckIP($rfc2136['interface']); $ipaddr = dyndnsCheckIP($rfc2136['interface']);
else } else {
$ipaddr = get_interface_ip($rfc2136['interface']); $ipaddr = get_interface_ip($rfc2136['interface']);
}
$cached_ip_s = explode("|", file_get_contents($filename)); $cached_ip_s = explode("|", file_get_contents($filename));
$cached_ip = $cached_ip_s[0]; $cached_ip = $cached_ip_s[0];
if ($ipaddr <> $cached_ip) if ($ipaddr <> $cached_ip) {
echo "<font color='red'>"; echo "<font color='red'>";
else } else {
echo "<font color='green'>"; echo "<font color='green'>";
}
echo htmlspecialchars($cached_ip); echo htmlspecialchars($cached_ip);
echo "</font>"; echo "</font>";
} else { } else {
...@@ -140,45 +163,35 @@ $main_buttons = array( ...@@ -140,45 +163,35 @@ $main_buttons = array(
$ipaddr = get_interface_ipv6($rfc2136['interface']); $ipaddr = get_interface_ipv6($rfc2136['interface']);
$cached_ip_s = explode("|", file_get_contents("{$filename}.ipv6")); $cached_ip_s = explode("|", file_get_contents("{$filename}.ipv6"));
$cached_ip = $cached_ip_s[0]; $cached_ip = $cached_ip_s[0];
if ($ipaddr <> $cached_ip) if ($ipaddr <> $cached_ip) {
echo "<font color='red'>"; echo "<font color='red'>";
else } else {
echo "<font color='green'>"; echo "<font color='green'>";
}
echo htmlspecialchars($cached_ip); echo htmlspecialchars($cached_ip);
echo "</font>"; echo "</font>";
} else { } else {
echo "IPv6: N/A"; echo "IPv6: N/A";
} }?>
?>
</td>
<td class="listbg">
<?php
if (!isset($rfc2136['enable']))
echo "<span class=\"text-muted\">" . htmlspecialchars($rfc2136['descr']) . "</span>";
else
echo htmlspecialchars($rfc2136['descr']);
?>
</td> </td>
<td valign="middle" class="list nowrap"> <td><?=$rfc2136['descr'];?></td>
<td>
<a href="services_rfc2136_edit.php?id=<?=$i;?>"> <a href="services_rfc2136_edit.php?id=<?=$i;?>">
<button type="button" class="btn btn-xs btn-default"><span class="fa fa-pencil"></span></button> <button type="button" class="btn btn-xs btn-default"><span class="fa fa-pencil"></span></button>
</a> </a>
<a href="services_rfc2136.php?act=del&amp;id=<?=$i;?>" onclick="return confirm('<?=gettext("Do you really want to delete this client?");?>')"> <a href="#" data-id="<?=$i;?>" class="act_delete_service"><button type="button" class="btn btn-xs btn-default"><span class="fa fa-trash text-muted"></span></button></a>
<button type="button" class="btn btn-xs btn-default"><span class="fa fa-trash-o"></span></button>
</a>
</td> </td>
</tr> </tr>
<?php $i++; endforeach; ?> <?php
$i++;
endforeach; ?>
</tbody>
</table> </table>
</div> </div>
</form> </form>
</div> </div>
</section> </section>
</div> </div>
</div> </div>
</section> </section>
<?php include("foot.inc"); ?> <?php include("foot.inc"); ?>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment