netzbeere-web/settings-dhcp.lp

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">&nbsp;<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">&nbsp;<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">&nbsp;<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">&nbsp;<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>&nbsp;
<p><?= i18n('settings.dhcp.static_configuration_entry_note') ?></p>
<pre>[&lt;hwaddr&gt;][,id:&lt;client_id&gt;|*][,set:&lt;tag&gt;][,tag:&lt;tag&gt;][,&lt;ipaddr&gt;][,&lt;hostname&gt;][,&lt;lease_time&gt;][,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>&nbsp;</li>
<li><pre>00:20:e0:3b:13:af,laptop</pre> <?= i18n('settings.dhcp.static_example_2') ?><br>&nbsp;</li>
<li><pre>00:20:e0:3b:13:af,192.168.0.123,laptop,infinite</pre> <?= i18n('settings.dhcp.static_example_3') ?><br>&nbsp;</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>&nbsp;<?= 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')?>