mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
DHCP static leases w/ optional comment
* Ability to add an optional Comment to DHCP static Leases * Sort DHCP static leases by IP (more human readable)
This commit is contained in:
parent
859b99fd60
commit
17597cd2cc
@ -54,16 +54,19 @@ $(document).on("click", ".js-add-dhcp-static-lease", function(e) {
|
|||||||
var container = $(".js-new-dhcp-static-lease");
|
var container = $(".js-new-dhcp-static-lease");
|
||||||
var mac = $("input[name=mac]", container).val().trim();
|
var mac = $("input[name=mac]", container).val().trim();
|
||||||
var ip = $("input[name=ip]", container).val().trim();
|
var ip = $("input[name=ip]", container).val().trim();
|
||||||
|
var comment = $("input[name=comment]", container).val().trim();
|
||||||
if (mac == "" || ip == "") {
|
if (mac == "" || ip == "") {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var row = $("#js-dhcp-static-lease-row").html()
|
var row = $("#js-dhcp-static-lease-row").html()
|
||||||
.replace("{{ mac }}", mac)
|
.replace("{{ mac }}", mac)
|
||||||
.replace("{{ ip }}", ip);
|
.replace("{{ ip }}", ip)
|
||||||
|
.replace("{{ comment }}", comment);
|
||||||
$(".js-dhcp-static-lease-container").append(row);
|
$(".js-dhcp-static-lease-container").append(row);
|
||||||
|
|
||||||
$("input[name=mac]", container).val("");
|
$("input[name=mac]", container).val("");
|
||||||
$("input[name=ip]", container).val("");
|
$("input[name=ip]", container).val("");
|
||||||
|
$("input[name=comment]", container).val("");
|
||||||
});
|
});
|
||||||
|
|
||||||
$(document).on("click", ".js-remove-dhcp-static-lease", function(e) {
|
$(document).on("click", ".js-remove-dhcp-static-lease", function(e) {
|
||||||
|
@ -154,6 +154,20 @@ function validateDHCPInput()
|
|||||||
return $errors;
|
return $errors;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Compares to string IPs
|
||||||
|
*
|
||||||
|
* @param string $ip1
|
||||||
|
* @param string $ip2
|
||||||
|
* @return boolean $result
|
||||||
|
*/
|
||||||
|
function compareIPs($ip1, $ip2)
|
||||||
|
{
|
||||||
|
$ipu1 = sprintf('%u', ip2long($ip1["ip"])) + 0;
|
||||||
|
$ipu2 = sprintf('%u', ip2long($ip2["ip"])) + 0;
|
||||||
|
return $ipu1 > $ipu2;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Updates a dnsmasq configuration
|
* Updates a dnsmasq configuration
|
||||||
*
|
*
|
||||||
@ -171,13 +185,25 @@ function updateDnsmasqConfig($iface,$status)
|
|||||||
$config .= $_POST['RangeLeaseTime'];
|
$config .= $_POST['RangeLeaseTime'];
|
||||||
}
|
}
|
||||||
$config .= $_POST['RangeLeaseTimeUnits'].PHP_EOL;
|
$config .= $_POST['RangeLeaseTimeUnits'].PHP_EOL;
|
||||||
|
// Static leases
|
||||||
|
$staticLeases = array();
|
||||||
for ($i=0; $i < count($_POST["static_leases"]["mac"]); $i++) {
|
for ($i=0; $i < count($_POST["static_leases"]["mac"]); $i++) {
|
||||||
$mac = trim($_POST["static_leases"]["mac"][$i]);
|
$mac = trim($_POST["static_leases"]["mac"][$i]);
|
||||||
$ip = trim($_POST["static_leases"]["ip"][$i]);
|
$ip = trim($_POST["static_leases"]["ip"][$i]);
|
||||||
|
$comment = trim($_POST["static_leases"]["comment"][$i]);
|
||||||
if ($mac != "" && $ip != "") {
|
if ($mac != "" && $ip != "") {
|
||||||
$config .= "dhcp-host=$mac,$ip".PHP_EOL;
|
$staticLeases[] = array('mac' => $mac, 'ip' => $ip, 'comment' => $comment);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Sort ascending by IPs
|
||||||
|
usort($staticLeases, "compareIPs");
|
||||||
|
// Update config
|
||||||
|
for ($i = 0; $i < count($staticLeases); $i++) {
|
||||||
|
$mac = $staticLeases[$i]['mac'];
|
||||||
|
$ip = $staticLeases[$i]['ip'];
|
||||||
|
$comment = $staticLeases[$i]['comment'];
|
||||||
|
$config .= "dhcp-host=$mac,$ip # $comment".PHP_EOL;
|
||||||
|
}
|
||||||
if ($_POST['no-resolv'] == "1") {
|
if ($_POST['no-resolv'] == "1") {
|
||||||
$config .= "no-resolv".PHP_EOL;
|
$config .= "no-resolv".PHP_EOL;
|
||||||
}
|
}
|
||||||
|
@ -4,14 +4,18 @@
|
|||||||
|
|
||||||
<div class="dhcp-static-leases js-dhcp-static-lease-container">
|
<div class="dhcp-static-leases js-dhcp-static-lease-container">
|
||||||
<?php foreach ($hosts as $host) : ?>
|
<?php foreach ($hosts as $host) : ?>
|
||||||
|
<?php list($host, $comment) = array_map("trim", explode("#", $host)); ?>
|
||||||
<?php list($mac, $ip) = array_map("trim", explode(",", $host)); ?>
|
<?php list($mac, $ip) = array_map("trim", explode(",", $host)); ?>
|
||||||
<div class="row dhcp-static-lease-row js-dhcp-static-lease-row">
|
<div class="row dhcp-static-lease-row js-dhcp-static-lease-row">
|
||||||
<div class="col-md-5 col-xs-5">
|
<div class="col-md-4 col-xs-3">
|
||||||
<input type="text" name="static_leases[mac][]" value="<?php echo htmlspecialchars($mac, ENT_QUOTES) ?>" placeholder="<?php echo _("MAC address") ?>" class="form-control">
|
<input type="text" name="static_leases[mac][]" value="<?php echo htmlspecialchars($mac, ENT_QUOTES) ?>" placeholder="<?php echo _("MAC address") ?>" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5 col-xs-4">
|
<div class="col-md-3 col-xs-3">
|
||||||
<input type="text" name="static_leases[ip][]" value="<?php echo htmlspecialchars($ip, ENT_QUOTES) ?>" placeholder="<?php echo _("IP address") ?>" class="form-control">
|
<input type="text" name="static_leases[ip][]" value="<?php echo htmlspecialchars($ip, ENT_QUOTES) ?>" placeholder="<?php echo _("IP address") ?>" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-3 col-xs-3">
|
||||||
|
<input type="text" name="static_leases[comment][]" value="<?php echo htmlspecialchars($comment, ENT_QUOTES) ?>" placeholder="<?php echo _("Optional Comment") ?>" class="form-control">
|
||||||
|
</div>
|
||||||
<div class="col-md-2 col-xs-3">
|
<div class="col-md-2 col-xs-3">
|
||||||
<button type="button" class="btn btn-danger js-remove-dhcp-static-lease"><?php echo _("Remove") ?></button>
|
<button type="button" class="btn btn-danger js-remove-dhcp-static-lease"><?php echo _("Remove") ?></button>
|
||||||
</div>
|
</div>
|
||||||
@ -21,12 +25,15 @@
|
|||||||
|
|
||||||
<h5 class="mt-3 mb-3"><?php echo _("Add static DHCP lease") ?></h5>
|
<h5 class="mt-3 mb-3"><?php echo _("Add static DHCP lease") ?></h5>
|
||||||
<div class="row dhcp-static-lease-row js-new-dhcp-static-lease">
|
<div class="row dhcp-static-lease-row js-new-dhcp-static-lease">
|
||||||
<div class="col-md-5 col-xs-5">
|
<div class="col-md-4 col-xs-3">
|
||||||
<input type="text" name="mac" value="" placeholder="<?php echo _("MAC address") ?>" class="form-control" autofocus="autofocus">
|
<input type="text" name="mac" value="" placeholder="<?php echo _("MAC address") ?>" class="form-control" autofocus="autofocus">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5 col-xs-4">
|
<div class="col-md-3 col-xs-3">
|
||||||
<input type="text" name="ip" value="" placeholder="<?php echo _("IP address") ?>" class="form-control">
|
<input type="text" name="ip" value="" placeholder="<?php echo _("IP address") ?>" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-3 col-xs-3">
|
||||||
|
<input type="text" name="comment" value="" placeholder="<?php echo _("Optional Comment") ?>" class="form-control">
|
||||||
|
</div>
|
||||||
<div class="col-md-2 col-xs-3">
|
<div class="col-md-2 col-xs-3">
|
||||||
<button type="button" class="btn btn-success js-add-dhcp-static-lease"><?php echo _("Add") ?></button>
|
<button type="button" class="btn btn-success js-add-dhcp-static-lease"><?php echo _("Add") ?></button>
|
||||||
</div>
|
</div>
|
||||||
@ -34,12 +41,15 @@
|
|||||||
|
|
||||||
<template id="js-dhcp-static-lease-row">
|
<template id="js-dhcp-static-lease-row">
|
||||||
<div class="row dhcp-static-lease-row js-dhcp-static-lease-row">
|
<div class="row dhcp-static-lease-row js-dhcp-static-lease-row">
|
||||||
<div class="col-md-5 col-xs-5">
|
<div class="col-md-4 col-xs-3">
|
||||||
<input type="text" name="static_leases[mac][]" value="{{ mac }}" placeholder="<?php echo _("MAC address") ?>" class="form-control">
|
<input type="text" name="static_leases[mac][]" value="{{ mac }}" placeholder="<?php echo _("MAC address") ?>" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-5 col-xs-4">
|
<div class="col-md-3 col-xs-3">
|
||||||
<input type="text" name="static_leases[ip][]" value="{{ ip }}" placeholder="<?php echo _("IP address") ?>" class="form-control">
|
<input type="text" name="static_leases[ip][]" value="{{ ip }}" placeholder="<?php echo _("IP address") ?>" class="form-control">
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-3 col-xs-3">
|
||||||
|
<input type="text" name="static_leases[comment][]" value="{{ comment }}" placeholder="<?php echo _("Optional Comment") ?>" class="form-control">
|
||||||
|
</div>
|
||||||
<div class="col-md-2 col-xs-3">
|
<div class="col-md-2 col-xs-3">
|
||||||
<button type="button" class="btn btn-warning js-remove-dhcp-static-lease"><?php echo _("Remove") ?></button>
|
<button type="button" class="btn btn-warning js-remove-dhcp-static-lease"><?php echo _("Remove") ?></button>
|
||||||
</div>
|
</div>
|
||||||
|
Loading…
Reference in New Issue
Block a user