mirror of
https://github.com/billz/raspap-webgui.git
synced 2023-10-10 13:37:24 +02:00
Merge branch 'feature/dhcp-eth0' of https://github.com/billz/raspap-webgui into feature/dhcp-eth0
This commit is contained in:
commit
01aedfbcf7
41
ajax/networking/get_netcfg.php
Normal file
41
ajax/networking/get_netcfg.php
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
require '../../includes/csrf.php';
|
||||||
|
require_once '../../includes/config.php';
|
||||||
|
|
||||||
|
$interface = $_GET['iface'];
|
||||||
|
|
||||||
|
if (isset($interface)) {
|
||||||
|
exec('cat '. RASPI_DNSMASQ_PREFIX.$interface.'.conf', $return);
|
||||||
|
$conf = ParseConfig($return);
|
||||||
|
|
||||||
|
// populate data
|
||||||
|
$dhcpdata['DHCPEnabled'] = empty($conf) ? false : true;
|
||||||
|
$arrRange = explode(",", $conf['dhcp-range']);
|
||||||
|
$dhcpdata['RangeStart'] = $arrRange[0];
|
||||||
|
$dhcpdata['RangeEnd'] = $arrRange[1];
|
||||||
|
$dhcpdata['RangeMask'] = $arrRange[2];
|
||||||
|
$dhcpdata['leaseTime'] = $arrRange[3];
|
||||||
|
$dhcpHost = $conf["dhcp-host"];
|
||||||
|
$dhcpHost = empty($dhcpHost) ? [] : $dhcpHost;
|
||||||
|
$dhcpdata['dhcpHost'] = is_array($dhcpHost) ? $dhcpHost : [ $dhcpHost ];
|
||||||
|
$upstreamServers = is_array($conf['server']) ? $conf['server'] : [ $conf['server'] ];
|
||||||
|
$dhcpdata['upstreamServers'] = array_filter($upstreamServers);
|
||||||
|
|
||||||
|
preg_match('/([0-9]*)([a-z])/i', $dhcpdata['leaseTime'], $arrRangeLeaseTime);
|
||||||
|
$dhcpdata['leaseTime'] = $arrRangeLeaseTime[1];
|
||||||
|
$dhcpdata['leaseTimeInterval'] = $arrRangeLeaseTime[2];
|
||||||
|
|
||||||
|
if (isset($conf['dhcp-option'])) {
|
||||||
|
$arrDns = explode(",", $conf['dhcp-option']);
|
||||||
|
if ($arrDns[0] == '6') {
|
||||||
|
if (count($arrDns) > 1) {
|
||||||
|
$dhcpdata['DNS1'] = $arrDns[1];
|
||||||
|
}
|
||||||
|
if (count($arrDns) > 2) {
|
||||||
|
$dhcpdata['DNS2'] = $arrDns[2];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
echo json_encode($dhcpdata);
|
||||||
|
}
|
@ -236,9 +236,28 @@ function loadWifiStations(refresh) {
|
|||||||
.load('ajax/networking/wifi_stations.php'+qs, complete);
|
.load('ajax/networking/wifi_stations.php'+qs, complete);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
$(".js-reload-wifi-stations").on("click", loadWifiStations(true));
|
$(".js-reload-wifi-stations").on("click", loadWifiStations(true));
|
||||||
|
|
||||||
|
|
||||||
|
function loadInterfaceDHCP(selected) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function loadInterfaceDHCPSelect() {
|
||||||
|
var interface = $('#cbxdhcpiface').val();
|
||||||
|
console.log(interface);
|
||||||
|
$.get('ajax/networking/get_netcfg.php?iface='+interface,function(data){
|
||||||
|
jsonData = JSON.parse(data);
|
||||||
|
$('#dhcp-iface')[0].checked = jsonData.DHCPEnabled;
|
||||||
|
$('#txtrangestart').val(jsonData.RangeStart);
|
||||||
|
$('#txtrangeend').val(jsonData.RangeEnd);
|
||||||
|
$('#txtrangeleasetime').val(jsonData.leaseTime);
|
||||||
|
$('#txtdns1').val(jsonData.DNS1);
|
||||||
|
$('#txtdns2').val(jsonData.DNS2);
|
||||||
|
$('#cbxrangeleasetimeunits').val(jsonData.leaseTimeInterval);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
function loadChannel() {
|
function loadChannel() {
|
||||||
$.get('ajax/networking/get_channel.php',function(data){
|
$.get('ajax/networking/get_channel.php',function(data){
|
||||||
jsonData = JSON.parse(data);
|
jsonData = JSON.parse(data);
|
||||||
|
@ -11,6 +11,7 @@ define('RASPI_CACHE_PATH', sys_get_temp_dir() . '/raspap');
|
|||||||
// These are typical for default RPi installs. Modify if needed.
|
// These are typical for default RPi installs. Modify if needed.
|
||||||
define('RASPI_DNSMASQ_CONFIG', '/etc/dnsmasq.d/090_raspap.conf');
|
define('RASPI_DNSMASQ_CONFIG', '/etc/dnsmasq.d/090_raspap.conf');
|
||||||
define('RASPI_DNSMASQ_LEASES', '/var/lib/misc/dnsmasq.leases');
|
define('RASPI_DNSMASQ_LEASES', '/var/lib/misc/dnsmasq.leases');
|
||||||
|
define('RASPI_DNSMASQ_PREFIX', '/etc/dnsmasq.d/090_');
|
||||||
define('RASPI_ADBLOCK_LISTPATH', '/etc/raspap/adblock/');
|
define('RASPI_ADBLOCK_LISTPATH', '/etc/raspap/adblock/');
|
||||||
define('RASPI_ADBLOCK_CONFIG', '/etc/dnsmasq.d/090_adblock.conf');
|
define('RASPI_ADBLOCK_CONFIG', '/etc/dnsmasq.d/090_adblock.conf');
|
||||||
define('RASPI_HOSTAPD_CONFIG', '/etc/hostapd/hostapd.conf');
|
define('RASPI_HOSTAPD_CONFIG', '/etc/hostapd/hostapd.conf');
|
||||||
|
@ -16,6 +16,7 @@ $defaults = [
|
|||||||
// These are typical for default RPi installs. Modify if needed.
|
// These are typical for default RPi installs. Modify if needed.
|
||||||
'RASPI_DNSMASQ_CONFIG' => '/etc/dnsmasq.d/090_raspap.conf',
|
'RASPI_DNSMASQ_CONFIG' => '/etc/dnsmasq.d/090_raspap.conf',
|
||||||
'RASPI_DNSMASQ_LEASES' => '/var/lib/misc/dnsmasq.leases',
|
'RASPI_DNSMASQ_LEASES' => '/var/lib/misc/dnsmasq.leases',
|
||||||
|
'RASPI_DNSMASQ_PREFIX' => '/etc/dnsmasq.d/090_',
|
||||||
'RASPI_ADBLOCK_LISTPATH' => '/etc/raspap/adblock/',
|
'RASPI_ADBLOCK_LISTPATH' => '/etc/raspap/adblock/',
|
||||||
'RASPI_ADBLOCK_CONFIG' => '/etc/dnsmasq.d/090_adblock.conf',
|
'RASPI_ADBLOCK_CONFIG' => '/etc/dnsmasq.d/090_adblock.conf',
|
||||||
'RASPI_HOSTAPD_CONFIG' => '/etc/hostapd/hostapd.conf',
|
'RASPI_HOSTAPD_CONFIG' => '/etc/hostapd/hostapd.conf',
|
||||||
|
@ -81,15 +81,63 @@ function DisplayDHCPConfig()
|
|||||||
|
|
||||||
$config .= "log-facility=/tmp/dnsmasq.log".PHP_EOL;
|
$config .= "log-facility=/tmp/dnsmasq.log".PHP_EOL;
|
||||||
$config .= "conf-dir=/etc/dnsmasq.d".PHP_EOL;
|
$config .= "conf-dir=/etc/dnsmasq.d".PHP_EOL;
|
||||||
|
|
||||||
file_put_contents("/tmp/dnsmasqdata", $config);
|
file_put_contents("/tmp/dnsmasqdata", $config);
|
||||||
|
|
||||||
|
$iface = $_POST['interface'];
|
||||||
|
// handle DHCP for selected interface option
|
||||||
|
if ($_POST['dhcp-iface'] == "1") {
|
||||||
|
$net_cfg = RASPI_CONFIG_NETWORKING.'/'.$iface.'.ini';
|
||||||
|
if (!file_exists($net_cfg) || filesize($net_cfg) ==0 ) {
|
||||||
|
$status->addMessage('Static IP address for '.$iface.' not found.', 'danger');
|
||||||
|
$status->addMessage('Configure this interface in Networking > '.$iface.'.', 'danger');
|
||||||
|
$return = 1;
|
||||||
|
} else {
|
||||||
|
$dhcp_cfg = file_get_contents(RASPI_DHCPCD_CONFIG);
|
||||||
|
if (!preg_match('/^interface\s'.$iface.'$/m', $dhcp_cfg)) {
|
||||||
|
// set dhcp values from ini
|
||||||
|
$iface_cfg = parse_ini_file($net_cfg, false, INI_SCANNER_RAW);
|
||||||
|
$ip_address = $iface_cfg['ip_address'];
|
||||||
|
$domain_name_server = ($iface_cfg['domain_name_server'] =='') ? '1.1.1.1 8.8.8.8' : $iface_cfg['domain_name_server'];
|
||||||
|
|
||||||
|
// append interface config to dhcpcd.conf
|
||||||
|
$cfg = $dhcp_conf;
|
||||||
|
$cfg[] = '# RaspAP '.$_POST['interface'].' configuration';
|
||||||
|
$cfg[] = 'interface '.$_POST['interface'];
|
||||||
|
$cfg[] = 'static ip_address='.$ip_address;
|
||||||
|
$cfg[] = 'static domain_name_server='.$domain_name_server;
|
||||||
|
$cfg[] = PHP_EOL;
|
||||||
|
$cfg = join(PHP_EOL, $cfg);
|
||||||
|
$dhcp_cfg .= $cfg;
|
||||||
|
file_put_contents("/tmp/dhcpddata", $dhcp_cfg);
|
||||||
|
system('sudo cp /tmp/dhcpddata '.RASPI_DHCPCD_CONFIG, $return);
|
||||||
|
$status->addMessage('DHCP configuration for '.$iface.' added.', 'success');
|
||||||
|
system('sudo cp /tmp/dnsmasqdata '.RASPI_DNSMASQ_PREFIX.$iface.'.conf', $return);
|
||||||
|
$status->addMessage('Dnsmasq configuration for '.$iface.' added.', 'success');
|
||||||
|
} else {
|
||||||
|
$status->addMessage('DHCP for '.$iface.' already enabled.', 'danger');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} elseif (($_POST['dhcp-iface'] == "0") && file_exists(RASPI_DNSMASQ_PREFIX.$iface.'.conf')) {
|
||||||
|
// remove dhcp conf for selected interface
|
||||||
|
$dhcp_cfg = file_get_contents(RASPI_DHCPCD_CONFIG);
|
||||||
|
// todo: improve by removing extra blank lines
|
||||||
|
$dhcp_cfg = preg_replace('/^#\sRaspAP\s'.$iface.'.*\n(.*\n){3}/m', '', $dhcp_cfg);
|
||||||
|
file_put_contents("/tmp/dhcpddata", $dhcp_cfg);
|
||||||
|
system('sudo cp /tmp/dhcpddata '.RASPI_DHCPCD_CONFIG, $return);
|
||||||
|
$status->addMessage('DHCP configuration for '.$iface.' removed.', 'success');
|
||||||
|
// remove dnsmasq eth0 conf
|
||||||
|
system('sudo rm '.RASPI_DNSMASQ_PREFIX.$iface.'.conf', $return);
|
||||||
|
$status->addMessage('Dnsmasq configuration for '.$iface.' removed.', 'success');
|
||||||
|
} else {
|
||||||
system('sudo cp /tmp/dnsmasqdata '.RASPI_DNSMASQ_CONFIG, $return);
|
system('sudo cp /tmp/dnsmasqdata '.RASPI_DNSMASQ_CONFIG, $return);
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
$status->addMessage($errors, 'danger');
|
$status->addMessage($errors, 'danger');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($return == 0) {
|
if ($return == 0) {
|
||||||
$status->addMessage('Dnsmasq configuration updated successfully', 'success');
|
$status->addMessage('Dnsmasq configuration updated successfully.', 'success');
|
||||||
} else {
|
} else {
|
||||||
$status->addMessage('Dnsmasq configuration failed to be updated.', 'danger');
|
$status->addMessage('Dnsmasq configuration failed to be updated.', 'danger');
|
||||||
}
|
}
|
||||||
@ -128,55 +176,6 @@ function DisplayDHCPConfig()
|
|||||||
}
|
}
|
||||||
|
|
||||||
$serviceStatus = $dnsmasq_state ? "up" : "down";
|
$serviceStatus = $dnsmasq_state ? "up" : "down";
|
||||||
|
|
||||||
exec('cat '. RASPI_DNSMASQ_CONFIG, $return);
|
|
||||||
$conf = ParseConfig($return);
|
|
||||||
$arrRange = explode(",", $conf['dhcp-range']);
|
|
||||||
$RangeStart = $arrRange[0];
|
|
||||||
$RangeEnd = $arrRange[1];
|
|
||||||
$RangeMask = $arrRange[2];
|
|
||||||
$leaseTime = $arrRange[3];
|
|
||||||
$dhcpHost = $conf["dhcp-host"];
|
|
||||||
$dhcpHost = empty($dhcpHost) ? [] : $dhcpHost;
|
|
||||||
$dhcpHost = is_array($dhcpHost) ? $dhcpHost : [ $dhcpHost ];
|
|
||||||
$upstreamServers = is_array($conf['server']) ? $conf['server'] : [ $conf['server'] ];
|
|
||||||
$upstreamServers = array_filter($upstreamServers);
|
|
||||||
|
|
||||||
$DNS1 = '';
|
|
||||||
$DNS2 = '';
|
|
||||||
if (isset($conf['dhcp-option'])) {
|
|
||||||
$arrDns = explode(",", $conf['dhcp-option']);
|
|
||||||
if ($arrDns[0] == '6') {
|
|
||||||
if (count($arrDns) > 1) {
|
|
||||||
$DNS1 = $arrDns[1];
|
|
||||||
}
|
|
||||||
if (count($arrDns) > 2) {
|
|
||||||
$DNS2 = $arrDns[2];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$hselected = '';
|
|
||||||
$mselected = '';
|
|
||||||
$dselected = '';
|
|
||||||
$infiniteselected = '';
|
|
||||||
preg_match('/([0-9]*)([a-z])/i', $leaseTime, $arrRangeLeaseTime);
|
|
||||||
if ($leaseTime === 'infinite') {
|
|
||||||
$infiniteselected = ' selected="selected"';
|
|
||||||
} else {
|
|
||||||
switch ($arrRangeLeaseTime[2]) {
|
|
||||||
case 'h':
|
|
||||||
$hselected = ' selected="selected"';
|
|
||||||
break;
|
|
||||||
case 'm':
|
|
||||||
$mselected = ' selected="selected"';
|
|
||||||
break;
|
|
||||||
case 'd':
|
|
||||||
$dselected = ' selected="selected"';
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
exec("ip -o link show | awk -F': ' '{print $2}'", $interfaces);
|
exec("ip -o link show | awk -F': ' '{print $2}'", $interfaces);
|
||||||
exec('cat ' . RASPI_DNSMASQ_LEASES, $leases);
|
exec('cat ' . RASPI_DNSMASQ_LEASES, $leases);
|
||||||
|
|
||||||
@ -184,16 +183,6 @@ function DisplayDHCPConfig()
|
|||||||
"dhcp", compact(
|
"dhcp", compact(
|
||||||
"status",
|
"status",
|
||||||
"serviceStatus",
|
"serviceStatus",
|
||||||
"RangeStart",
|
|
||||||
"RangeEnd",
|
|
||||||
"DNS1",
|
|
||||||
"DNS2",
|
|
||||||
"upstreamServers",
|
|
||||||
"arrRangeLeaseTime",
|
|
||||||
"mselected",
|
|
||||||
"hselected",
|
|
||||||
"dselected",
|
|
||||||
"infiniteselected",
|
|
||||||
"dnsmasq_state",
|
"dnsmasq_state",
|
||||||
"conf",
|
"conf",
|
||||||
"dhcpHost",
|
"dhcpHost",
|
||||||
|
@ -266,7 +266,7 @@ function _prompt_install_openvpn() {
|
|||||||
function _install_openvpn() {
|
function _install_openvpn() {
|
||||||
_install_log "Installing OpenVPN and enabling client configuration"
|
_install_log "Installing OpenVPN and enabling client configuration"
|
||||||
echo "Adding packages via apt-get"
|
echo "Adding packages via apt-get"
|
||||||
sudo apt-get install $apt_option openvpn || _install_status 1 "Unable to install openvpn"
|
sudo apt-get install -y openvpn || _install_status 1 "Unable to install openvpn"
|
||||||
sudo sed -i "s/\('RASPI_OPENVPN_ENABLED', \)false/\1true/g" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php"
|
sudo sed -i "s/\('RASPI_OPENVPN_ENABLED', \)false/\1true/g" "$webroot_dir/includes/config.php" || _install_status 1 "Unable to modify config.php"
|
||||||
echo "Enabling openvpn-client service on boot"
|
echo "Enabling openvpn-client service on boot"
|
||||||
sudo systemctl enable openvpn-client@client || _install_status 1 "Unable to enable openvpn-client daemon"
|
sudo systemctl enable openvpn-client@client || _install_status 1 "Unable to enable openvpn-client daemon"
|
||||||
|
@ -21,6 +21,8 @@ www-data ALL=(ALL) NOPASSWD:/bin/systemctl disable openvpn-client@client
|
|||||||
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/ovpnclient.ovpn /etc/openvpn/client/client.conf
|
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/ovpnclient.ovpn /etc/openvpn/client/client.conf
|
||||||
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/authdata /etc/openvpn/client/login.conf
|
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/authdata /etc/openvpn/client/login.conf
|
||||||
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasqdata /etc/dnsmasq.d/090_raspap.conf
|
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasqdata /etc/dnsmasq.d/090_raspap.conf
|
||||||
|
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dnsmasqdata /etc/dnsmasq.d/090_*.conf
|
||||||
|
www-data ALL=(ALL) NOPASSWD:/bin/rm /etc/dnsmasq.d/090_*.conf
|
||||||
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dhcpddata /etc/dhcpcd.conf
|
www-data ALL=(ALL) NOPASSWD:/bin/cp /tmp/dhcpddata /etc/dhcpcd.conf
|
||||||
www-data ALL=(ALL) NOPASSWD:/sbin/shutdown -h now
|
www-data ALL=(ALL) NOPASSWD:/sbin/shutdown -h now
|
||||||
www-data ALL=(ALL) NOPASSWD:/sbin/reboot
|
www-data ALL=(ALL) NOPASSWD:/sbin/reboot
|
||||||
|
@ -4,7 +4,6 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-md-6">
|
<div class="col-md-6">
|
||||||
<h5><?php echo _("Upstream DNS servers") ?></h5>
|
<h5><?php echo _("Upstream DNS servers") ?></h5>
|
||||||
|
|
||||||
<div class="input-group">
|
<div class="input-group">
|
||||||
<input type="hidden" name="no-resolv" value="0">
|
<input type="hidden" name="no-resolv" value="0">
|
||||||
<div class="custom-control custom-switch">
|
<div class="custom-control custom-switch">
|
||||||
|
@ -3,41 +3,51 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="code">Interface</label>
|
<label for="code">Interface</label>
|
||||||
<select class="form-control" name="interface">
|
<?php SelectorOptions('interface', $interfaces, $conf['interface'], 'cbxdhcpiface', 'loadInterfaceDHCPSelect', $DHCPDisabled); ?>
|
||||||
<?php foreach ($interfaces as $if) : ?>
|
|
||||||
<?php $if_quoted = htmlspecialchars($if, ENT_QUOTES) ?>
|
|
||||||
<?php $selected = $if === $conf['interface'] ? ' selected="selected"' : '' ?>
|
|
||||||
<option value="<?php echo $if_quoted ?>"<?php echo $selected ?>><?php echo $if_quoted ?></option>
|
|
||||||
<?php endforeach ?>
|
|
||||||
</select>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div class="row">
|
||||||
|
<div class="form-group col-md-6">
|
||||||
|
<div class="input-group">
|
||||||
|
<input type="hidden" name="dhcp-iface" value="0">
|
||||||
|
<div class="custom-control custom-switch">
|
||||||
|
<input class="custom-control-input" id="dhcp-iface" type="checkbox" name="dhcp-iface" value="1" <?php echo $dhcp_iface_enable ? ' checked="checked"' : "" ?> aria-describedby="dhcp-iface-description">
|
||||||
|
<label class="custom-control-label" for="dhcp-iface"><?php echo _("Enable DHCP for this interface") ?></label>
|
||||||
|
</div>
|
||||||
|
<p id="dhcp-iface-description">
|
||||||
|
<small><?php echo _("Enable this option if you want RaspAP to assign IP addresses on the selected interface.") ?></small>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="code"><?php echo _("Starting IP Address"); ?></label>
|
<label for="code"><?php echo _("Starting IP Address"); ?></label>
|
||||||
<input type="text" class="form-control"name="RangeStart" value="<?php echo htmlspecialchars($RangeStart, ENT_QUOTES); ?>" />
|
<input type="text" class="form-control" id="txtrangestart" name="RangeStart" value="<?php echo htmlspecialchars($RangeStart, ENT_QUOTES); ?>" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="code"><?php echo _("Ending IP Address"); ?></label>
|
<label for="code"><?php echo _("Ending IP Address"); ?></label>
|
||||||
<input type="text" class="form-control" name="RangeEnd" value="<?php echo htmlspecialchars($RangeEnd, ENT_QUOTES); ?>" />
|
<input type="text" class="form-control" id="txtrangeend" name="RangeEnd" value="<?php echo htmlspecialchars($RangeEnd, ENT_QUOTES); ?>" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-xs-3 col-sm-3">
|
<div class="form-group col-xs-3 col-sm-3">
|
||||||
<label for="code"><?php echo _("Lease Time"); ?></label>
|
<label for="code"><?php echo _("Lease Time"); ?></label>
|
||||||
<input type="text" class="form-control" name="RangeLeaseTime" value="<?php echo htmlspecialchars($arrRangeLeaseTime[1], ENT_QUOTES); ?>" />
|
<input type="text" class="form-control" id="txtrangeleasetime" name="RangeLeaseTime" value="<?php echo htmlspecialchars($arrRangeLeaseTime[1], ENT_QUOTES); ?>" />
|
||||||
</div>
|
</div>
|
||||||
<div class="col-xs-3 col-sm-3">
|
<div class="col-xs-3 col-sm-3">
|
||||||
<label for="code"><?php echo _("Interval"); ?></label>
|
<label for="code"><?php echo _("Interval"); ?></label>
|
||||||
<select name="RangeLeaseTimeUnits" class="form-control" >
|
<select id="cbxrangeleasetimeunits" name="RangeLeaseTimeUnits" class="form-control" >
|
||||||
<option value="m"<?php echo $mselected; ?>><?php echo _("Minute(s)"); ?></option>
|
<option value="m"><?php echo _("Minute(s)"); ?></option>
|
||||||
<option value="h"<?php echo $hselected; ?>><?php echo _("Hour(s)"); ?></option>
|
<option value="h"><?php echo _("Hour(s)"); ?></option>
|
||||||
<option value="d"<?php echo $dselected; ?>><?php echo _("Day(s)"); ?></option>
|
<option value="d"><?php echo _("Day(s)"); ?></option>
|
||||||
<option value="infinite"<?php echo $infiniteselected; ?>><?php echo _("Infinite"); ?></option>
|
<option value="infinite"><?php echo _("Infinite"); ?></option>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
@ -45,14 +55,14 @@
|
|||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="code"><?php echo _("DNS Server"); ?> 1</label>
|
<label for="code"><?php echo _("DNS Server"); ?> 1</label>
|
||||||
<input type="text" class="form-control"name="DNS1" value="<?php echo htmlspecialchars($DNS1, ENT_QUOTES); ?>" />
|
<input type="text" class="form-control" id="txtdns1" name="DNS1" value="<?php echo htmlspecialchars($DNS1, ENT_QUOTES); ?>" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label for="code"><?php echo _("DNS Server"); ?> 2</label>
|
<label for="code"><?php echo _("DNS Server"); ?> 2</label>
|
||||||
<input type="text" class="form-control" name="DNS2" value="<?php echo htmlspecialchars($DNS2, ENT_QUOTES); ?>" />
|
<input type="text" class="form-control" id="txtdns2" name="DNS2" value="<?php echo htmlspecialchars($DNS2, ENT_QUOTES); ?>" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user