234 lines
14 KiB
Plaintext
234 lines
14 KiB
Plaintext
<? --[[
|
|
* Pi-hole: A black hole for Internet advertisements
|
|
* (c) 2023 Pi-hole, LLC (https://pi-hole.net)
|
|
* Network-wide ad blocking via your own hardware.
|
|
*
|
|
* This file is copyright under the latest version of the EUPL.
|
|
* Please see LICENSE file for your rights under this license.
|
|
--]]
|
|
|
|
mg.include('scripts/lua/header_authenticated.lp','r')
|
|
|
|
-- Page title and level selector
|
|
PageTitle = i18n('settings.dhcp.title')
|
|
mg.include('scripts/lua/settings_header.lp','r')
|
|
?>
|
|
<div class="row">
|
|
<!-- DHCP Settings Box -->
|
|
<div class="col-md-6">
|
|
<div class="box box-warning">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title" data-configkeys="dhcp.active dhcp.start dhcp.end dhcp.router dhcp.ipv6"><?= i18n('settings.dhcp.settings_title') ?></h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div>
|
|
<input type="checkbox" id="dhcp.active" data-key="dhcp.active"><label for="dhcp.active"><strong><?= i18n('settings.dhcp.server_enabled') ?></strong></label>
|
|
<p class="help-block" id="dhcpnotice"><?= i18n('settings.dhcp.server_warning') ?></p>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<label style="margin-top: 10px"><?= i18n('settings.dhcp.range_label') ?></label>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-12 col-lg-6">
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-addon"><?= i18n('settings.dhcp.start') ?></div>
|
|
<input type="text" class="form-control DHCPgroup" id="dhcp.start" data-key="dhcp.start"
|
|
autocomplete="off" spellcheck="false" autocapitalize="none"
|
|
autocorrect="off" value="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-12 col-lg-6">
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-addon"><?= i18n('settings.dhcp.end') ?></div>
|
|
<input type="text" class="form-control DHCPgroup" id="dhcp.end" data-key="dhcp.end"
|
|
autocomplete="off" spellcheck="false" autocapitalize="none"
|
|
autocorrect="off" value="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-12 col-lg-6">
|
|
<label><?= i18n('settings.dhcp.router_label') ?></label>
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-addon"><?= i18n('settings.dhcp.router') ?></div>
|
|
<input type="text" class="form-control DHCPgroup" id="dhcp.router" data-key="dhcp.router"
|
|
autocomplete="off" spellcheck="false" autocapitalize="none"
|
|
autocorrect="off" value="">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-xs-12 col-sm-6 col-md-12 col-lg-6">
|
|
<label><?= i18n('settings.dhcp.netmask_label') ?></label>
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-addon"><?= i18n('settings.dhcp.netmask') ?></div>
|
|
<input type="text" class="form-control DHCPgroup" id="dhcp.netmask" data-key="dhcp.netmask"
|
|
autocomplete="off" spellcheck="false" autocapitalize="none"
|
|
autocorrect="off" value="" placeholder="automatic">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-12">
|
|
<p><?= i18n('settings.dhcp.netmask_note') ?></p>
|
|
</div>
|
|
<div class="col-md-12">
|
|
<div>
|
|
<input type="checkbox" id="dhcp.ipv6" data-key="dhcp.ipv6" class="DHCPgroup"> <label for="dhcp.ipv6"><strong><?= i18n('settings.dhcp.ipv6_support') ?></strong></label>
|
|
<p class="help-block"><?= i18n('settings.dhcp.ipv6_description') ?></p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-6 settings-level-expert d-none">
|
|
<div class="box box-warning">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title" data-configkeys="dhcp.leaseTime dhcp.rapidCommit dhcp.multiDNS"><?= i18n('settings.dhcp.advanced_settings_title') ?></h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<label><?= i18n('settings.dhcp.lease_time_label') ?></label>
|
|
<div class="form-group">
|
|
<div class="input-group">
|
|
<div class="input-group-addon"><?= i18n('settings.dhcp.lease_time') ?></div>
|
|
<input type="text" class="form-control DHCPgroup"
|
|
autocomplete="off" spellcheck="false" autocapitalize="none"
|
|
autocorrect="off" id="dhcp.leaseTime" data-key="dhcp.leaseTime" value="">
|
|
</div>
|
|
</div>
|
|
<p><?= i18n('settings.dhcp.lease_time_description') ?></p>
|
|
</div>
|
|
</div>
|
|
<div class="row">
|
|
<div class="col-sm-12">
|
|
<div>
|
|
<input type="checkbox" id="dhcp.rapidCommit" data-key="dhcp.rapidCommit" class="DHCPgroup"> <label for="dhcp.rapidCommit"><strong><?= i18n('settings.dhcp.rapid_commit') ?></strong></label>
|
|
<p class="help-block"><?= i18n('settings.dhcp.rapid_commit_description') ?></p>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<div>
|
|
<input type="checkbox" id="dhcp.multiDNS" data-key="dhcp.multiDNS" class="DHCPgroup"> <label for="dhcp.multiDNS"><strong><?= i18n('settings.dhcp.multi_dns') ?></strong></label>
|
|
<p class="help-block"><?= i18n('settings.dhcp.multi_dns_description') ?></p>
|
|
</div>
|
|
</div>
|
|
<div class="col-sm-12">
|
|
<div>
|
|
<input type="checkbox" id="dhcp.ignoreUnknownClients" data-key="dhcp.ignoreUnknownClients" class="DHCPgroup"> <label for="dhcp.ignoreUnknownClients"><strong><?= i18n('settings.dhcp.ignore_unknown_clients') ?></strong></label>
|
|
<p class="help-block">
|
|
<?= i18n('settings.dhcp.ignore_unknown_clients_description_1') ?><br>
|
|
<?= i18n('settings.dhcp.ignore_unknown_clients_description_2') ?><br>
|
|
<b><?= i18n('shared.note') ?>:</b> <?= i18n('settings.dhcp.ignore_unknown_clients_note') ?>
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- DHCP Leases Box -->
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<div class="box box-warning">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title"><?= i18n('settings.dhcp.current_leases_title') ?></h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<div class="row">
|
|
<div class="col-md-12">
|
|
<table id="DHCPLeasesTable" class="table table-striped table-bordered nowrap" width="100%">
|
|
<thead>
|
|
<tr>
|
|
<td></td>
|
|
<th><?= i18n('settings.dhcp.ip_address') ?></th>
|
|
<th><?= i18n('settings.dhcp.hostname') ?></th>
|
|
<th><?= i18n('settings.dhcp.mac_address') ?></th>
|
|
<th><?= i18n('settings.dhcp.expiration') ?></th>
|
|
<th><?= i18n('settings.dhcp.client_id') ?></th>
|
|
<td></td>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-12 settings-level-expert d-none">
|
|
<div class="box box-warning">
|
|
<div class="box-header with-border">
|
|
<h3 class="box-title" data-configkeys="dhcp.hosts"><?= i18n('settings.dhcp.static_configuration_title') ?></h3>
|
|
</div>
|
|
<div class="box-body">
|
|
<div class="row">
|
|
<div class="col-xs-12 col-md-6">
|
|
<p><?= i18n('settings.dhcp.static_configuration_description') ?></p>
|
|
<textarea class="form-control field-sizing-content" id="dhcp-hosts" data-key="dhcp.hosts" style="resize: vertical;"></textarea><br>
|
|
<p><?= i18n('settings.dhcp.static_configuration_entry_note') ?></p>
|
|
<pre>[<hwaddr>][,id:<client_id>|*][,set:<tag>][,tag:<tag>][,<ipaddr>][,<hostname>][,<lease_time>][,ignore]</pre>
|
|
<p><?= i18n('settings.dhcp.only_one_entry_per_mac') ?></p>
|
|
</div>
|
|
<div class="col-xs-12 col-md-6">
|
|
<p><?= i18n('settings.dhcp.static_examples_intro') ?>
|
|
<ul>
|
|
<li><pre>00:20:e0:3b:13:af,192.168.0.123</pre> <?= i18n('settings.dhcp.static_example_1') ?><br> </li>
|
|
<li><pre>00:20:e0:3b:13:af,laptop</pre> <?= i18n('settings.dhcp.static_example_2') ?><br> </li>
|
|
<li><pre>00:20:e0:3b:13:af,192.168.0.123,laptop,infinite</pre> <?= i18n('settings.dhcp.static_example_3') ?><br> </li>
|
|
</ul>
|
|
</p>
|
|
</div>
|
|
<div class="col-xs-12">
|
|
<div class="box box-success collapsed-box">
|
|
<div class="box-header with-border pointer no-user-select" data-widget="collapse">
|
|
<h3 class="box-title"><?= i18n('settings.dhcp.advanced_description_title') ?></h3>
|
|
<div class="box-tools pull-right">
|
|
<button type="button" class="btn btn-box-tool">
|
|
<i class="fa fa-plus"></i>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
<div class="box-body" style="display: none;">
|
|
<ul>
|
|
<li><?= i18n('settings.dhcp.advanced_description_1') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_2') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_3') ?></li>
|
|
<!--<li><?= i18n('settings.dhcp.advanced_description_4') ?></li>-->
|
|
<li><?= i18n('settings.dhcp.advanced_description_5') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_6') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_7') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_8') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_9') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_10') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_11') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_12') ?></li>
|
|
<li><?= i18n('settings.dhcp.advanced_description_13') ?></li>
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-lg-12 save-button-container">
|
|
<button type="button" class="btn btn-primary save-button"><i class="fa-solid fa-fw fa-floppy-disk"></i> <?= i18n('settings.save_apply') ?></button>
|
|
</div>
|
|
</div>
|
|
<script src="<?=pihole.fileversion('vendor/bootstrap-toggle/bootstrap-toggle.min.js')?>"></script>
|
|
<script src="<?=pihole.fileversion('scripts/js/settings-dhcp.js')?>"></script>
|
|
<script src="<?=pihole.fileversion('scripts/js/ip-address-sorting.js')?>"></script>
|
|
<script src="<?=pihole.fileversion('scripts/js/settings.js')?>"></script>
|
|
|
|
<? mg.include('scripts/lua/footer.lp','r')?>
|