mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-08 14:40:27 +00:00
Completed first-found updates of the zone add view.
This commit is contained in:
parent
9548cbce1c
commit
75e262e7e9
@ -1,238 +1,276 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% set active_page = "new_domain" %}
|
{% set active_page = "new_domain" %}
|
||||||
{% block title %}<title>Add Domain - {{ SITE_NAME }}</title>{% endblock %}
|
{% block title %}<title>Create Zone - {{ SITE_NAME }}</title>{% endblock %}
|
||||||
|
|
||||||
{% block dashboard_stat %}
|
{% block dashboard_stat %}
|
||||||
<div class="content-header">
|
<div class="content-header">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<h1 class="m-0 text-dark">
|
<h1 class="m-0 text-dark">
|
||||||
Domain
|
Create New Zone
|
||||||
<small>New Domain</small>
|
</h1>
|
||||||
</h1>
|
</div>
|
||||||
|
<div class="col-sm-6">
|
||||||
|
<ol class="breadcrumb float-sm-right">
|
||||||
|
<li class="breadcrumb-item"><a href="{{ url_for('dashboard.dashboard') }}">Dashboard</a></li>
|
||||||
|
<li class="breadcrumb-item active">New Zone</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
|
||||||
<ol class="breadcrumb float-sm-right">
|
|
||||||
<li class="breadcrumb-item"><a href="{{ url_for('dashboard.dashboard') }}">Dashboard</a></li>
|
|
||||||
<li class="breadcrumb-item active">Domain - New Domain</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<section class="content">
|
<section class="content">
|
||||||
<div class="container-fluid">
|
<div class="container-fluid">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-4">
|
<div class="col-12 col-sm-6 col-lg-4">
|
||||||
<div class="card">
|
<form role="form" method="post" action="{{ url_for('domain.add') }}">
|
||||||
<div class="card-header">
|
<input type="hidden" name="_csrf_token" value="{{ csrf_token() }}">
|
||||||
<h3 class="card-title">Create new domain</h3>
|
<div class="card">
|
||||||
</div>
|
<div class="card-header">
|
||||||
<form role="form" method="post" action="{{ url_for('domain.add') }}">
|
<h3 class="card-title">Zone Editor</h3>
|
||||||
<input type="hidden" name="_csrf_token" value="{{ csrf_token() }}">
|
</div>
|
||||||
<div class="card-body">
|
<!-- /.card-header -->
|
||||||
<div class="form-group">
|
<div class="card-body">
|
||||||
<input type="text" class="form-control" name="domain_name" id="domain_name" placeholder="Enter a valid domain name (required)">
|
<div class="form-group">
|
||||||
</div>
|
<label for="domain_name">Zone Name</label>
|
||||||
{% if domain_override_toggle == True %}
|
<input type="text" class="form-control" name="domain_name" id="domain_name"
|
||||||
<div class="form-group">
|
placeholder="Enter a valid zone name (required)">
|
||||||
<label>Domain Override Record</label>
|
</div>
|
||||||
<input type="checkbox" id="domain_override" name="domain_override" class="checkbox">
|
{% if domain_override_toggle == True %}
|
||||||
|
<div class="form-group">
|
||||||
|
<input type="checkbox" id="domain_override" name="domain_override"
|
||||||
|
class="checkbox">
|
||||||
|
|
||||||
|
<label for="domain_override">Zone Override Record</label>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="selAccount">Account</label>
|
||||||
|
<select name="accountid" id="selAccount" class="form-control">
|
||||||
|
<option value="0">- No Account -</option>
|
||||||
|
{% for account in accounts %}
|
||||||
|
<option value="{{ account.id }}">{{ account.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>Zone Type</label>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type" id="radio_type_native" value="native"
|
||||||
|
checked>
|
||||||
|
Native
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type" id="radio_type_primary"
|
||||||
|
value="primary">
|
||||||
|
Primary
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type" id="radio_type_secondary"
|
||||||
|
value="secondary">
|
||||||
|
Secondary
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="domain_template">Zone Template</label>
|
||||||
|
<select class="form-control" id="domain_template" name="domain_template">
|
||||||
|
<option value="0">No template</option>
|
||||||
|
{% for template in templates %}
|
||||||
|
<option value="{{ template.id }}">{{ template.name }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group" style="display: none;" id="domain_primary_address_div">
|
||||||
|
<input type="text" class="form-control" name="domain_primary_address"
|
||||||
|
id="domain_primary_address"
|
||||||
|
placeholder="Enter valid Primary Server IP addresses (separated by commas)">
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label>SOA-EDIT-API</label>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type_soa_edit_api" id="radio_default"
|
||||||
|
value="DEFAULT" checked>
|
||||||
|
DEFAULT
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type_soa_edit_api" id="radio_increase"
|
||||||
|
value="INCREASE">
|
||||||
|
INCREASE
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type_soa_edit_api" id="radio_epoch"
|
||||||
|
value="EPOCH">
|
||||||
|
EPOCH
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio">
|
||||||
|
<label>
|
||||||
|
<input type="radio" name="radio_type_soa_edit_api" id="radio_off"
|
||||||
|
value="OFF"> OFF
|
||||||
|
</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
<div class="card-footer">
|
||||||
|
<button type="button" title="Cancel" class="btn btn-danger"
|
||||||
|
onclick="window.location.href='{{ url_for('dashboard.dashboard') }}'">
|
||||||
|
<i class="fa-solid fa-window-close"></i> Cancel
|
||||||
|
</button>
|
||||||
|
<button type="submit" title="Create Zone" class="btn btn-primary float-right">
|
||||||
|
<i class="fa-solid fa-save"></i> Create Zone
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-footer -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card -->
|
||||||
|
</form>
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
<!-- /.col -->
|
||||||
<select name="accountid" class="form-control" style="width:15em;">
|
<div class="col-12 col-sm-6 col-lg-8">
|
||||||
<option value="0">- No Account -</option>
|
<div class="card">
|
||||||
{% for account in accounts %}
|
<div class="card-header">
|
||||||
<option value="{{ account.id }}">{{ account.name }}</option>
|
<h3 class="card-title">Zone Field Details</h3>
|
||||||
{% endfor %}
|
</div>
|
||||||
</select>
|
<!-- /.card-header -->
|
||||||
<br />
|
<div class="card-body">
|
||||||
<div class="form-group">
|
<dl class="dl-horizontal">
|
||||||
<label>Type</label>
|
<dt>Zone Name</dt>
|
||||||
<div class="radio">
|
<dd>Enter your zone name in the format of name.tld (eg. powerdns-admin.com). You can
|
||||||
<label>
|
also enter sublevel zones to create delegate zones (eg. sub.powerdns-admin.com)
|
||||||
<input type="radio" name="radio_type" id="radio_type_native" value="native" checked>
|
which can be useful for delegating control to other users.
|
||||||
Native
|
</dd>
|
||||||
</label>
|
<dt>Zone Override Record</dt>
|
||||||
|
<dd>When enabled, this will allow the user to by-pass validation errors if the user
|
||||||
|
doesn't have administration rights to a parent zone.
|
||||||
|
</dd>
|
||||||
|
<dt>Account</dt>
|
||||||
|
<dd>Specifies the PowerDNS account value to use for the zone.</dd>
|
||||||
|
<dt>Zone Type</dt>
|
||||||
|
<dd>The type decides how the domain will be replicated across multiple DNS servers.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<strong>Native</strong> - The server will not perform any Primary or Secondary
|
||||||
|
zone functions.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Primary</strong> - The server will serve as the Primary and will send
|
||||||
|
zone transfers (AXFRs) to other servers configured as secondaries.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>Secondary</strong> - The server will serve as the Secondary and will
|
||||||
|
request and receive zone transfers (AXFRs) from other servers configured as
|
||||||
|
Primaries.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
<dt>Zone Template</dt>
|
||||||
|
<dd>Specifies the existing zone template which this zone should initially be replicated
|
||||||
|
from.
|
||||||
|
</dd>
|
||||||
|
<dt>SOA-EDIT-API</dt>
|
||||||
|
<dd>The SOA-EDIT-API setting defines how the SOA serial number will be updated after a
|
||||||
|
change is
|
||||||
|
made to the domain.
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
<strong>DEFAULT</strong> - Generate a soa serial of YYYYMMDD01. If the current serial
|
||||||
|
is lower than
|
||||||
|
the generated serial, use the generated serial. If the current serial is
|
||||||
|
higher or
|
||||||
|
equal to the generated serial, increase the current serial by 1.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>INCREASE</strong> - Increase the current serial by 1.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>EPOCH</strong> - Change the serial to the number of seconds since the EPOCH,
|
||||||
|
AKA UNIX timestamps
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<strong>OFF</strong> - Disable automatic updates of the SOA serial.
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</dd>
|
||||||
|
</dl>
|
||||||
|
<p>
|
||||||
|
Find more details at <a href="https://docs.powerdns.com/md/" target="_blank">https://docs.powerdns.com/md/</a>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
<!-- /.card-body -->
|
||||||
|
</div>
|
||||||
|
<!-- /.card -->
|
||||||
</div>
|
</div>
|
||||||
<div class="radio">
|
<!-- /.col -->
|
||||||
<label>
|
|
||||||
<input type="radio" name="radio_type" id="radio_type_primary" value="primary">
|
|
||||||
Primary
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="radio">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="radio_type" id="radio_type_secondary" value="secondary">
|
|
||||||
Secondary
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label>Select a template</label>
|
|
||||||
<select class="form-control" id="domain_template" name="domain_template">
|
|
||||||
<option value="0">No template</option>
|
|
||||||
{% for template in templates %}
|
|
||||||
<option value="{{ template.id }}">{{ template.name }}</option>
|
|
||||||
{% endfor %}
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="form-group" style="display: none;" id="domain_primary_address_div">
|
|
||||||
<input type="text" class="form-control" name="domain_primary_address" id="domain_primary_address" placeholder="Enter valid Primary Server IP addresses (separated by commas)">
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label>SOA-EDIT-API</label>
|
|
||||||
<div class="radio">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_default" value="DEFAULT" checked>
|
|
||||||
DEFAULT
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="radio">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_increase" value="INCREASE">
|
|
||||||
INCREASE
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="radio">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_epoch" value="EPOCH">
|
|
||||||
EPOCH
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
<div class="radio">
|
|
||||||
<label>
|
|
||||||
<input type="radio" name="radio_type_soa_edit_api" id="radio_off" value="OFF"> OFF
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<!-- /.row -->
|
||||||
<button type="button" class="btn btn-secondary" onclick="window.location.href='{{ url_for('dashboard.dashboard') }}'">
|
|
||||||
<i class="fa-solid fa-window-close"></i> Cancel
|
|
||||||
</button>
|
|
||||||
<button type="submit" class="btn btn-primary float-right">
|
|
||||||
<i class="fa-solid fa-save"></i> Create
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<!-- /.container-fluid -->
|
||||||
<div class="col-8">
|
</section>
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">Help with creating a new domain</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<dl class="dl-horizontal">
|
|
||||||
<dt>Domain name</dt>
|
|
||||||
<dd>Enter your domain name in the format of name.tld (eg. powerdns-admin.com). You can also
|
|
||||||
enter sub-domains to create a sub-root zone (eg. sub.powerdns-admin.com) in case you want to
|
|
||||||
delegate sub-domain management to specific users.
|
|
||||||
</dd>
|
|
||||||
<dt>Type</dt>
|
|
||||||
<dd>The type decides how the domain will be replicated across multiple DNS servers.
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<b>Native - </b>{{ SITE_NAME }} will not perform any Primary or Secondary zone functions.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>Primary - </b>{{ SITE_NAME }} will serve as the Primary and will send zone transfers
|
|
||||||
(AXFRs) to other servers configured as secondaries.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>Secondary - </b>{{ SITE_NAME }} will serve as the Secondary and will request and receive
|
|
||||||
zone transfers (AXFRs) from other servers configured as Primaries.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
<dt>SOA-EDIT-API</dt>
|
|
||||||
<dd>The SOA-EDIT-API setting defines how the SOA serial number will be updated after a change is
|
|
||||||
made to the domain.
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<b>DEFAULT - </b>Generate a soa serial of YYYYMMDD01. If the current serial is lower than
|
|
||||||
the generated serial, use the generated serial. If the current serial is higher or
|
|
||||||
equal to the generated serial, increase the current serial by 1.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>INCREASE - </b>Increase the current serial by 1.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>EPOCH - </b>Change the serial to the number of seconds since the EPOCH, aka unixtime.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<b>OFF - </b>Disable automatic updates of the SOA serial.
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</dd>
|
|
||||||
</dl>
|
|
||||||
<p>
|
|
||||||
Find more details at <a href="https://docs.powerdns.com/md/">https://docs.powerdns.com/md/</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block head_styles %}
|
|
||||||
<style>
|
|
||||||
/* Page Specific Overrides */
|
|
||||||
</style>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block extrascripts %}
|
{% block extrascripts %}
|
||||||
<script>
|
<script>
|
||||||
$("input[name=radio_type]").change(function () {
|
$("input[name=radio_type]").change(function () {
|
||||||
var type = $(this).val();
|
var type = $(this).val();
|
||||||
if (type == "secondary") {
|
if (type == "secondary") {
|
||||||
$("#domain_primary_address_div").show();
|
$("#domain_primary_address_div").show();
|
||||||
} else {
|
} else {
|
||||||
$("#domain_primary_address_div").hide();
|
$("#domain_primary_address_div").hide();
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block modals %}
|
{% block modals %}
|
||||||
<script>
|
<script>
|
||||||
{% if domain_override_message %}
|
{% if domain_override_message %}
|
||||||
$(document.body).ready(function () {
|
$(document.body).ready(function () {
|
||||||
var modal = $("#modal_warning");
|
var modal = $("#modal_warning");
|
||||||
var info = "{{ domain_override_message }}";
|
var info = "{{ domain_override_message }}";
|
||||||
modal.find('.modal-body p').text(info);
|
modal.find('.modal-body p').text(info);
|
||||||
modal.modal('show');
|
modal.modal('show');
|
||||||
});
|
});
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<div class="modal fade" id="modal_warning">
|
<div class="modal fade" id="modal_warning">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content modal-sm">
|
<div class="modal-content modal-sm">
|
||||||
<div class="modal-header alert-danger">
|
<div class="modal-header alert-danger">
|
||||||
<h4 class="modal-title">
|
<h4 class="modal-title">
|
||||||
WARNING
|
WARNING
|
||||||
</h4>
|
</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal" aria-label="Close" id="button_close_warn_modal">
|
<button type="button" class="close" data-dismiss="modal" aria-label="Close"
|
||||||
<span aria-hidden="true">×</span>
|
id="button_close_warn_modal">
|
||||||
</button>
|
<span aria-hidden="true">×</span>
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<p></p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary center-block" data-dismiss="modal"
|
||||||
|
id="button_confirm_warn_modal">
|
||||||
|
CLOSE
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
|
||||||
<p></p>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<button type="button" class="btn btn-primary center-block" data-dismiss="modal" id="button_confirm_warn_modal">
|
|
||||||
CLOSE
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
Loading…
Reference in New Issue
Block a user