mirror of
https://github.com/cwinfo/powerdns-admin.git
synced 2024-11-09 15:10:27 +00:00
Working on the first-round updates for the zone template editor.
This commit is contained in:
parent
fe49651e81
commit
4d64076dac
@ -1,234 +1,229 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
|
|
||||||
{% set active_page = "admin_domain_template" %}
|
{% set active_page = "admin_domain_template" %}
|
||||||
|
{% block title %}<title>Edit Zone Template - {{ SITE_NAME }}</title>{% endblock %}
|
||||||
{% block title %}
|
|
||||||
<title>
|
|
||||||
Edit Template - {{ 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">Edit Zone Template</h1>
|
||||||
Template Edit
|
|
||||||
<small>{{ template }}</small>
|
|
||||||
</h1>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<ol class="breadcrumb float-sm-right">
|
|
||||||
<li class="breadcrumb-item"><a href="{{ url_for('admin.templates') }}">Templates</a></li>
|
|
||||||
<li class="breadcrumb-item active">Template Edit: {{ template }}</li>
|
|
||||||
</ol>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
{% endblock %}
|
|
||||||
|
|
||||||
{% block content %}
|
|
||||||
<section class="content">
|
|
||||||
<div class="container-fluid">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="card">
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">Manage Template Records for {{ template }}</h3>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="col-sm-6">
|
||||||
<button type="button" class="btn btn-primary float-left button_add_record" id="{{ template }}">
|
<ol class="breadcrumb float-sm-right">
|
||||||
<i class="fa-solid fa-plus"></i> Add Record
|
<li class="breadcrumb-item"><a href="{{ url_for('admin.templates') }}">Templates</a></li>
|
||||||
</button>
|
<li class="breadcrumb-item active">Edit Zone Template</li>
|
||||||
<button type="button" class="btn btn-primary float-right button_apply_changes" id="{{ template }}">
|
</ol>
|
||||||
<i class="fa-solid fa-save"></i> Save Changes
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<table id="tbl_records" class="table table-bordered table-striped">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Type</th>
|
|
||||||
<th>Status</th>
|
|
||||||
<th>TTL</th>
|
|
||||||
<th>Data</th>
|
|
||||||
<th>Comment</th>
|
|
||||||
<th>Edit</th>
|
|
||||||
<th>Delete</th>
|
|
||||||
<th>ID</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
{% for record in records %}
|
|
||||||
<tr class="odd row_record">
|
|
||||||
<td>
|
|
||||||
{{ record.name }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ record.type }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ record.status }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ record.ttl }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ record.data }}
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ record.comment }}
|
|
||||||
</td>
|
|
||||||
<td width="6%">
|
|
||||||
<button type="button" class="btn btn-warning button_edit">
|
|
||||||
<i class="fa-solid fa-edit"></i> Edit
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
<td width="6%">
|
|
||||||
<button type="button" class="btn btn-danger button_delete">
|
|
||||||
<i class="fa-solid fa-trash"></i> Delete
|
|
||||||
</button>
|
|
||||||
</td>
|
|
||||||
<td>
|
|
||||||
{{ record.id }}
|
|
||||||
</td>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
|
{% block content %}
|
||||||
|
<section class="content">
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-12">
|
||||||
|
<div class="card card-outline card-primary shadow">
|
||||||
|
<div class="card-header">
|
||||||
|
<h3 class="card-title">Zone Template Editor</h3>
|
||||||
|
<div class="card-tools">
|
||||||
|
<button type="button" class="btn btn-primary float-left button_add_record"
|
||||||
|
title="Add Record" id="{{ template }}">
|
||||||
|
<i class="fa-solid fa-plus"></i> Add Record
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-primary float-right button_apply_changes ml-2"
|
||||||
|
title="Save Template" id="{{ template }}">
|
||||||
|
<i class="fa-solid fa-save"></i> Save Template
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-body table-responsive">
|
||||||
|
<table id="tbl_records"
|
||||||
|
class="table table-bordered table-striped table-hover table-sm records">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Type</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>TTL</th>
|
||||||
|
<th>Data</th>
|
||||||
|
<th>Comment</th>
|
||||||
|
<th>Actions</th>
|
||||||
|
<th>ID</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
{% for record in records %}
|
||||||
|
<tr class="odd row_record">
|
||||||
|
<td>
|
||||||
|
{{ record.name }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ record.type }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ record.status }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ record.ttl }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ record.data }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
{{ record.comment }}
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<button type="button" class="btn btn-warning button_edit"
|
||||||
|
title="Edit Record">
|
||||||
|
<i class="fa-solid fa-edit"></i> Edit
|
||||||
|
</button>
|
||||||
|
<button type="button" class="btn btn-danger button_delete"
|
||||||
|
title="Delete Record">
|
||||||
|
<i class="fa-solid fa-trash"></i> Delete
|
||||||
|
</button>
|
||||||
|
</td>
|
||||||
|
<td>{{ id }}</td>
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{% endblock %}
|
||||||
|
|
||||||
{% block extrascripts %}
|
{% block extrascripts %}
|
||||||
<script>
|
<script>
|
||||||
// superglobals
|
// superglobals
|
||||||
window.records_allow_edit = {{ editable_records | tojson }};
|
window.records_allow_edit = {{ editable_records | tojson }};
|
||||||
window.ttl_options = {{ ttl_options | tojson }};
|
window.ttl_options = {{ ttl_options | tojson }};
|
||||||
window.nEditing = null;
|
window.nEditing = null;
|
||||||
window.nNew = false;
|
window.nNew = false;
|
||||||
|
|
||||||
// set up user data table
|
// Initialize DataTables
|
||||||
$("#tbl_records").DataTable({
|
$("#tbl_records").DataTable({
|
||||||
"paging" : true,
|
"paging": true,
|
||||||
"lengthChange" : true,
|
"lengthChange": true,
|
||||||
"searching" : true,
|
"searching": true,
|
||||||
"ordering" : true,
|
"ordering": true,
|
||||||
"info" : true,
|
"info": true,
|
||||||
"autoWidth" : false,
|
"autoWidth": false,
|
||||||
{% if SETTING.get('default_record_table_size')|string in ['5','15','20'] %}
|
{% if SETTING.get('default_record_table_size')|string in ['5','15','20'] %}
|
||||||
"lengthMenu": [ [5, 15, 20, -1],
|
"lengthMenu": [[5, 15, 20, -1],
|
||||||
[5, 15, 20, "All"]],
|
[5, 15, 20, "All"]],
|
||||||
{% else %}
|
{% else %}
|
||||||
"lengthMenu": [ [5, 15, 20, {{ SETTING.get('default_record_table_size') }}, -1],
|
"lengthMenu": [[5, 15, 20, {{ SETTING.get('default_record_table_size') }}, -1],
|
||||||
[5, 15, 20, {{ SETTING.get('default_record_table_size') }}, "All"]],
|
[5, 15, 20, {{ SETTING.get('default_record_table_size') }}, "All"]],
|
||||||
{% endif %}
|
{% endif %}
|
||||||
"pageLength": {{ SETTING.get('default_record_table_size') }},
|
"pageLength": {{ SETTING.get('default_record_table_size') }},
|
||||||
"language": {
|
"language": {
|
||||||
"lengthMenu": " _MENU_ records"
|
"lengthMenu": " _MENU_ records"
|
||||||
},
|
|
||||||
"retrieve" : true,
|
|
||||||
"columnDefs": [
|
|
||||||
{
|
|
||||||
type: 'natural',
|
|
||||||
targets: [0, 4]
|
|
||||||
},
|
},
|
||||||
{
|
"retrieve": true,
|
||||||
// hidden column so that we can add new records on top
|
"columnDefs": [
|
||||||
// regardless of whatever sorting is done. See orderFixed
|
{
|
||||||
visible: false,
|
type: 'natural',
|
||||||
targets: [ 8 ]
|
targets: [0, 4]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
className: "length-break",
|
// hidden column so that we can add new records on top
|
||||||
targets: [ 4, 5 ]
|
// regardless of whatever sorting is done. See orderFixed
|
||||||
}
|
visible: false,
|
||||||
],
|
targets: [7]
|
||||||
"orderFixed": [[8, 'asc']]
|
},
|
||||||
});
|
{
|
||||||
|
className: "length-break",
|
||||||
// handle delete button
|
targets: [4, 5]
|
||||||
$(document.body).on("click", ".button_delete", function(e) {
|
}
|
||||||
e.stopPropagation();
|
],
|
||||||
var modal = $("#modal_delete");
|
"orderFixed": [[7, 'asc']]
|
||||||
var table = $("#tbl_records").DataTable();
|
|
||||||
var record = $(this).prop('id');
|
|
||||||
var nRow = $(this).parents('tr')[0];
|
|
||||||
var info = "Are you sure you want to delete " + record + "?";
|
|
||||||
modal.find('.modal-body p').text(info);
|
|
||||||
modal.modal('show');
|
|
||||||
|
|
||||||
$("#button_delete_confirm").unbind().one('click', function(e) {
|
|
||||||
table.row(nRow).remove().draw();
|
|
||||||
modal.modal('hide');
|
|
||||||
});
|
});
|
||||||
|
|
||||||
$("#button_delete_cancel").unbind().one('click', function(e) {
|
// handle delete button
|
||||||
modal.modal('hide');
|
$(document.body).on("click", ".button_delete", function (e) {
|
||||||
});
|
e.stopPropagation();
|
||||||
});
|
var modal = $("#modal_delete");
|
||||||
// handle edit button and record click
|
var table = $("#tbl_records").DataTable();
|
||||||
$(document.body).on("click", ".button_edit{% if quick_edit %}, .row_record{% endif %}", function(e) {
|
var record = $(this).prop('id');
|
||||||
e.stopPropagation();
|
|
||||||
if ($(this).is('tr')) {
|
|
||||||
var nRow = $(this)[0];
|
|
||||||
} else {
|
|
||||||
var nRow = $(this).parents('tr')[0];
|
var nRow = $(this).parents('tr')[0];
|
||||||
}
|
var info = "Are you sure you want to delete " + record + "?";
|
||||||
var table = $("#tbl_records").DataTable();
|
modal.find('.modal-body p').text(info);
|
||||||
|
modal.modal('show');
|
||||||
|
|
||||||
if (nEditing == nRow) {
|
$("#button_delete_confirm").unbind().one('click', function (e) {
|
||||||
/* click on row already being edited, do nothing */
|
table.row(nRow).remove().draw();
|
||||||
} else if (nEditing !== null && nEditing != nRow && nNew == false) {
|
modal.modal('hide');
|
||||||
/* Currently editing - but not this row - restore the old before continuing to edit mode */
|
});
|
||||||
restoreRow(table, nEditing);
|
|
||||||
editRow(table, nRow);
|
|
||||||
nEditing = nRow;
|
|
||||||
} else if (nNew == true) {
|
|
||||||
/* adding a new row, delete it and start editing */
|
|
||||||
table.row(nEditing).remove().draw();
|
|
||||||
nNew = false;
|
|
||||||
editRow(table, nRow);
|
|
||||||
nEditing = nRow;
|
|
||||||
} else {
|
|
||||||
/* No edit in progress - let's start one */
|
|
||||||
editRow(table, nRow);
|
|
||||||
nEditing = nRow;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// handle apply changes button
|
$("#button_delete_cancel").unbind().one('click', function (e) {
|
||||||
$(document.body).on("click",".button_apply_changes", function() {
|
modal.modal('hide');
|
||||||
if (nNew || nEditing) {
|
});
|
||||||
showErrorModal("Previous record not saved. Please save it before applying the changes.");
|
});
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var modal = $("#modal_apply_changes");
|
// handle edit button and record click
|
||||||
var table = $("#tbl_records").DataTable();
|
$(document.body).on("click", ".button_edit{% if quick_edit %}, .row_record{% endif %}", function (e) {
|
||||||
var template = $(this).prop('id');
|
e.stopPropagation();
|
||||||
var info = "Are you sure you want to apply your changes?";
|
if ($(this).is('tr')) {
|
||||||
modal.find('.modal-body p').text(info);
|
var nRow = $(this)[0];
|
||||||
|
} else {
|
||||||
|
var nRow = $(this).parents('tr')[0];
|
||||||
|
}
|
||||||
|
var table = $("#tbl_records").DataTable();
|
||||||
|
|
||||||
// following unbind("click") is to avoid multiple times execution
|
if (nEditing == nRow) {
|
||||||
modal.find('#button_apply_confirm').unbind("click").click(function() {
|
/* click on row already being edited, do nothing */
|
||||||
var data = getTableData(table);
|
} else if (nEditing !== null && nEditing != nRow && nNew == false) {
|
||||||
applyChanges( {'_csrf_token': '{{ csrf_token() }}', 'records': data}, $SCRIPT_ROOT + '/admin/template/' + template + '/apply', true);
|
/* Currently editing - but not this row - restore the old before continuing to edit mode */
|
||||||
modal.modal('hide');
|
restoreRow(table, nEditing);
|
||||||
})
|
editRow(table, nRow);
|
||||||
modal.modal('show');
|
nEditing = nRow;
|
||||||
|
} else if (nNew == true) {
|
||||||
|
/* adding a new row, delete it and start editing */
|
||||||
|
table.row(nEditing).remove().draw();
|
||||||
|
nNew = false;
|
||||||
|
editRow(table, nRow);
|
||||||
|
nEditing = nRow;
|
||||||
|
} else {
|
||||||
|
/* No edit in progress - let's start one */
|
||||||
|
editRow(table, nRow);
|
||||||
|
nEditing = nRow;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
});
|
// handle apply changes button
|
||||||
|
$(document.body).on("click", ".button_apply_changes", function () {
|
||||||
|
if (nNew || nEditing) {
|
||||||
|
showErrorModal("Previous record not saved. Please save it before applying the changes.");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
// handle add record button
|
var modal = $("#modal_apply_changes");
|
||||||
$(document.body).on("click", ".button_add_record", function (e) {
|
var table = $("#tbl_records").DataTable();
|
||||||
|
var template = $(this).prop('id');
|
||||||
|
var info = "Are you sure you want to apply your changes?";
|
||||||
|
modal.find('.modal-body p').text(info);
|
||||||
|
|
||||||
|
// following unbind("click") is to avoid multiple times execution
|
||||||
|
modal.find('#button_apply_confirm').unbind("click").click(function () {
|
||||||
|
var data = getTableData(table);
|
||||||
|
applyChanges({
|
||||||
|
'_csrf_token': '{{ csrf_token() }}',
|
||||||
|
'records': data
|
||||||
|
}, $SCRIPT_ROOT + '/admin/template/' + template + '/apply', true);
|
||||||
|
modal.modal('hide');
|
||||||
|
})
|
||||||
|
modal.modal('show');
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
// handle add record button
|
||||||
|
$(document.body).on("click", ".button_add_record", function (e) {
|
||||||
if (nNew || nEditing) {
|
if (nNew || nEditing) {
|
||||||
showErrorModal("Previous record not saved. Please save it before adding more record.");
|
showErrorModal("Previous record not saved. Please save it before adding more record.");
|
||||||
return;
|
return;
|
||||||
@ -245,8 +240,8 @@
|
|||||||
nNew = true;
|
nNew = true;
|
||||||
});
|
});
|
||||||
|
|
||||||
//handle cancel button
|
//handle cancel button
|
||||||
$(document.body).on("click", ".button_cancel", function (e) {
|
$(document.body).on("click", ".button_cancel", function (e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
var oTable = $("#tbl_records").DataTable();
|
var oTable = $("#tbl_records").DataTable();
|
||||||
if (nNew) {
|
if (nNew) {
|
||||||
@ -259,8 +254,8 @@
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//handle save button
|
//handle save button
|
||||||
$(document.body).on("click", ".button_save", function (e) {
|
$(document.body).on("click", ".button_save", function (e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
var table = $("#tbl_records").DataTable();
|
var table = $("#tbl_records").DataTable();
|
||||||
saveRow(table, nEditing);
|
saveRow(table, nEditing);
|
||||||
@ -268,73 +263,73 @@
|
|||||||
nNew = false;
|
nNew = false;
|
||||||
});
|
});
|
||||||
|
|
||||||
{% if SETTING.get('record_helper') %}
|
{% if SETTING.get('record_helper') %}
|
||||||
//handle wacky record types
|
//handle wacky record types
|
||||||
$(document.body).on("focus", "#current_edit_record_data", function (e) {
|
$(document.body).on("focus", "#current_edit_record_data", function (e) {
|
||||||
var record_type = $(this).parents("tr").find('#record_type').val();
|
var record_type = $(this).parents("tr").find('#record_type').val();
|
||||||
var record_data = $(this);
|
var record_data = $(this);
|
||||||
if (record_type == "CAA") {
|
if (record_type == "CAA") {
|
||||||
var modal = $("#modal_custom_record");
|
var modal = $("#modal_custom_record");
|
||||||
if (record_data.val() == "") {
|
if (record_data.val() == "") {
|
||||||
var form = " <label for=\"caa_flag\">CAA Flag</label> \
|
var form = " <label for=\"caa_flag\">CAA Flag</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"caa_flag\" id=\"caa_flag\" placeholder=\"0\"> \
|
<input type=\"text\" class=\"form-control\" name=\"caa_flag\" id=\"caa_flag\" placeholder=\"0\"> \
|
||||||
<label for=\"caa_tag\">CAA Tag</label> \
|
<label for=\"caa_tag\">CAA Tag</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"caa_tag\" id=\"caa_tag\" placeholder=\"issue\"> \
|
<input type=\"text\" class=\"form-control\" name=\"caa_tag\" id=\"caa_tag\" placeholder=\"issue\"> \
|
||||||
<label for=\"caa_value\">CAA Value</label> \
|
<label for=\"caa_value\">CAA Value</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"caa_value\" id=\"caa_value\" placeholder=\"eg. letsencrypt.org\"> \
|
<input type=\"text\" class=\"form-control\" name=\"caa_value\" id=\"caa_value\" placeholder=\"eg. letsencrypt.org\"> \
|
||||||
";
|
";
|
||||||
} else {
|
} else {
|
||||||
var parts = record_data.val().split(" ");
|
var parts = record_data.val().split(" ");
|
||||||
var form = " <label for=\"caa_flag\">CAA Flag</label> \
|
var form = " <label for=\"caa_flag\">CAA Flag</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"caa_flag\" id=\"caa_flag\" placeholder=\"0\" value=\"" + parts[0] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"caa_flag\" id=\"caa_flag\" placeholder=\"0\" value=\"" + parts[0] + "\"> \
|
||||||
<label for=\"caa_tag\">CAA Tag</label> \
|
<label for=\"caa_tag\">CAA Tag</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"caa_tag\" id=\"caa_tag\" placeholder=\"issue\" value=\"" + parts[1] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"caa_tag\" id=\"caa_tag\" placeholder=\"issue\" value=\"" + parts[1] + "\"> \
|
||||||
<label for=\"caa_value\">CAA Value</label> \
|
<label for=\"caa_value\">CAA Value</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"caa_value\" id=\"caa_value\" placeholder=\"eg. letsencrypt.org\" value=\"" + parts[2] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"caa_value\" id=\"caa_value\" placeholder=\"eg. letsencrypt.org\" value=\"" + parts[2] + "\"> \
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
modal.find('.modal-body p').html(form);
|
modal.find('.modal-body p').html(form);
|
||||||
modal.find('#button_save').click(function() {
|
modal.find('#button_save').click(function () {
|
||||||
caa_flag = modal.find('#caa_flag').val();
|
caa_flag = modal.find('#caa_flag').val();
|
||||||
caa_tag = modal.find('#caa_tag').val();
|
caa_tag = modal.find('#caa_tag').val();
|
||||||
caa_value = modal.find('#caa_value').val();
|
caa_value = modal.find('#caa_value').val();
|
||||||
data = caa_flag + " " + caa_tag + " " + '"' + caa_value + '"';
|
data = caa_flag + " " + caa_tag + " " + '"' + caa_value + '"';
|
||||||
record_data.val(data);
|
record_data.val(data);
|
||||||
modal.modal('hide');
|
modal.modal('hide');
|
||||||
})
|
})
|
||||||
modal.modal('show');
|
modal.modal('show');
|
||||||
} else if (record_type == "MX") {
|
} else if (record_type == "MX") {
|
||||||
var modal = $("#modal_custom_record");
|
var modal = $("#modal_custom_record");
|
||||||
if (record_data.val() == "") {
|
if (record_data.val() == "") {
|
||||||
var form = " <label for=\"mx_priority\">MX Priority</label> \
|
var form = " <label for=\"mx_priority\">MX Priority</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"mx_priority\" id=\"mx_priority\" placeholder=\"eg. 10\"> \
|
<input type=\"text\" class=\"form-control\" name=\"mx_priority\" id=\"mx_priority\" placeholder=\"eg. 10\"> \
|
||||||
<label for=\"mx_server\">MX Server</label> \
|
<label for=\"mx_server\">MX Server</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"mx_server\" id=\"mx_server\" placeholder=\"eg. postfix.example.com\"> \
|
<input type=\"text\" class=\"form-control\" name=\"mx_server\" id=\"mx_server\" placeholder=\"eg. postfix.example.com\"> \
|
||||||
";
|
";
|
||||||
} else {
|
} else {
|
||||||
var parts = record_data.val().split(" ");
|
var parts = record_data.val().split(" ");
|
||||||
var form = " <label for=\"mx_priority\">MX Priority</label> \
|
var form = " <label for=\"mx_priority\">MX Priority</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"mx_priority\" id=\"mx_priority\" placeholder=\"eg. 10\" value=\"" + parts[0] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"mx_priority\" id=\"mx_priority\" placeholder=\"eg. 10\" value=\"" + parts[0] + "\"> \
|
||||||
<label for=\"mx_server\">MX Server</label> \
|
<label for=\"mx_server\">MX Server</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"mx_server\" id=\"mx_server\" placeholder=\"eg. postfix.example.com\" value=\"" + parts[1] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"mx_server\" id=\"mx_server\" placeholder=\"eg. postfix.example.com\" value=\"" + parts[1] + "\"> \
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
modal.find('.modal-body p').html(form);
|
modal.find('.modal-body p').html(form);
|
||||||
modal.find('#button_save').click(function() {
|
modal.find('#button_save').click(function () {
|
||||||
mx_server = modal.find('#mx_server').val();
|
mx_server = modal.find('#mx_server').val();
|
||||||
mx_priority = modal.find('#mx_priority').val();
|
mx_priority = modal.find('#mx_priority').val();
|
||||||
data = mx_priority + " " + mx_server;
|
data = mx_priority + " " + mx_server;
|
||||||
if (data && !data.endsWith('.')) {
|
if (data && !data.endsWith('.')) {
|
||||||
data = data + '.'
|
data = data + '.'
|
||||||
}
|
}
|
||||||
record_data.val(data);
|
record_data.val(data);
|
||||||
modal.modal('hide');
|
modal.modal('hide');
|
||||||
})
|
})
|
||||||
modal.modal('show');
|
modal.modal('show');
|
||||||
} else if (record_type == "SRV") {
|
} else if (record_type == "SRV") {
|
||||||
var modal = $("#modal_custom_record");
|
var modal = $("#modal_custom_record");
|
||||||
if (record_data.val() == "") {
|
if (record_data.val() == "") {
|
||||||
var form = " <label for=\"srv_priority\">SRV Priority</label> \
|
var form = " <label for=\"srv_priority\">SRV Priority</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"srv_priority\" id=\"srv_priority\" placeholder=\"0\"> \
|
<input type=\"text\" class=\"form-control\" name=\"srv_priority\" id=\"srv_priority\" placeholder=\"0\"> \
|
||||||
<label for=\"srv_weight\">SRV Weight</label> \
|
<label for=\"srv_weight\">SRV Weight</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"srv_weight\" id=\"srv_weight\" placeholder=\"10\"> \
|
<input type=\"text\" class=\"form-control\" name=\"srv_weight\" id=\"srv_weight\" placeholder=\"10\"> \
|
||||||
@ -343,9 +338,9 @@
|
|||||||
<label for=\"srv_target\">SRV Target</label> \
|
<label for=\"srv_target\">SRV Target</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"srv_target\" id=\"srv_target\" placeholder=\"sip.example.com\"> \
|
<input type=\"text\" class=\"form-control\" name=\"srv_target\" id=\"srv_target\" placeholder=\"sip.example.com\"> \
|
||||||
";
|
";
|
||||||
} else {
|
} else {
|
||||||
var parts = record_data.val().split(" ");
|
var parts = record_data.val().split(" ");
|
||||||
var form = " <label for=\"srv_priority\">SRV Priority</label> \
|
var form = " <label for=\"srv_priority\">SRV Priority</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"srv_priority\" id=\"srv_priority\" placeholder=\"0\" value=\"" + parts[0] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"srv_priority\" id=\"srv_priority\" placeholder=\"0\" value=\"" + parts[0] + "\"> \
|
||||||
<label for=\"srv_weight\">SRV Weight</label> \
|
<label for=\"srv_weight\">SRV Weight</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"srv_weight\" id=\"srv_weight\" placeholder=\"10\" value=\"" + parts[1] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"srv_weight\" id=\"srv_weight\" placeholder=\"10\" value=\"" + parts[1] + "\"> \
|
||||||
@ -354,25 +349,25 @@
|
|||||||
<label for=\"srv_target\">SRV Target</label> \
|
<label for=\"srv_target\">SRV Target</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"srv_target\" id=\"srv_target\" placeholder=\"sip.example.com\" value=\"" + parts[3] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"srv_target\" id=\"srv_target\" placeholder=\"sip.example.com\" value=\"" + parts[3] + "\"> \
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
modal.find('.modal-body p').html(form);
|
modal.find('.modal-body p').html(form);
|
||||||
modal.find('#button_save').click(function() {
|
modal.find('#button_save').click(function () {
|
||||||
srv_priority = modal.find('#srv_priority').val();
|
srv_priority = modal.find('#srv_priority').val();
|
||||||
srv_weight = modal.find('#srv_weight').val();
|
srv_weight = modal.find('#srv_weight').val();
|
||||||
srv_port = modal.find('#srv_port').val();
|
srv_port = modal.find('#srv_port').val();
|
||||||
srv_target = modal.find('#srv_target').val();
|
srv_target = modal.find('#srv_target').val();
|
||||||
data = srv_priority + " " + srv_weight + " " + srv_port + " " + srv_target;
|
data = srv_priority + " " + srv_weight + " " + srv_port + " " + srv_target;
|
||||||
if (data && !data.endsWith('.')) {
|
if (data && !data.endsWith('.')) {
|
||||||
data = data + '.'
|
data = data + '.'
|
||||||
}
|
}
|
||||||
record_data.val(data);
|
record_data.val(data);
|
||||||
modal.modal('hide');
|
modal.modal('hide');
|
||||||
})
|
})
|
||||||
modal.modal('show');
|
modal.modal('show');
|
||||||
} else if (record_type == "SOA") {
|
} else if (record_type == "SOA") {
|
||||||
var modal = $("#modal_custom_record");
|
var modal = $("#modal_custom_record");
|
||||||
if (record_data.val() == "") {
|
if (record_data.val() == "") {
|
||||||
var form = " <label for=\"soa_primaryns\">Primary Name Server</label> \
|
var form = " <label for=\"soa_primaryns\">Primary Name Server</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"soa_primaryns\" id=\"soa_primaryns\" placeholder=\"ns1.example.com\"> \
|
<input type=\"text\" class=\"form-control\" name=\"soa_primaryns\" id=\"soa_primaryns\" placeholder=\"ns1.example.com\"> \
|
||||||
<label for=\"soa_adminemail\">Primary Contact</label> \
|
<label for=\"soa_adminemail\">Primary Contact</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"soa_adminemail\" id=\"soa_adminemail\" placeholder=\"admin.example.com\"> \
|
<input type=\"text\" class=\"form-control\" name=\"soa_adminemail\" id=\"soa_adminemail\" placeholder=\"admin.example.com\"> \
|
||||||
@ -387,9 +382,9 @@
|
|||||||
<label for=\"soa_minimumttl\">Minimum TTL</label> \
|
<label for=\"soa_minimumttl\">Minimum TTL</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"soa_minimumttl\" id=\"soa_minimumttl\" placeholder=\"300\"> \
|
<input type=\"text\" class=\"form-control\" name=\"soa_minimumttl\" id=\"soa_minimumttl\" placeholder=\"300\"> \
|
||||||
";
|
";
|
||||||
} else {
|
} else {
|
||||||
var parts = record_data.val().split(" ");
|
var parts = record_data.val().split(" ");
|
||||||
var form = " <label for=\"soa_primaryns\">Primary Name Server</label> \
|
var form = " <label for=\"soa_primaryns\">Primary Name Server</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"soa_primaryns\" id=\"soa_primaryns\" value=\"" + parts[0] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"soa_primaryns\" id=\"soa_primaryns\" value=\"" + parts[0] + "\"> \
|
||||||
<label for=\"soa_adminemail\">Primary Contact</label> \
|
<label for=\"soa_adminemail\">Primary Contact</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"soa_adminemail\" id=\"soa_adminemail\" value=\"" + parts[1] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"soa_adminemail\" id=\"soa_adminemail\" value=\"" + parts[1] + "\"> \
|
||||||
@ -404,93 +399,95 @@
|
|||||||
<label for=\"soa_minimumttl\">Minimum TTL</label> \
|
<label for=\"soa_minimumttl\">Minimum TTL</label> \
|
||||||
<input type=\"text\" class=\"form-control\" name=\"soa_minimumttl\" id=\"soa_minimumttl\" value=\"" + parts[6] + "\"> \
|
<input type=\"text\" class=\"form-control\" name=\"soa_minimumttl\" id=\"soa_minimumttl\" value=\"" + parts[6] + "\"> \
|
||||||
";
|
";
|
||||||
}
|
}
|
||||||
modal.find('.modal-body p').html(form);
|
modal.find('.modal-body p').html(form);
|
||||||
modal.find('#button_save').click(function() {
|
modal.find('#button_save').click(function () {
|
||||||
soa_primaryns = modal.find('#soa_primaryns').val();
|
soa_primaryns = modal.find('#soa_primaryns').val();
|
||||||
soa_adminemail = modal.find('#soa_adminemail').val();
|
soa_adminemail = modal.find('#soa_adminemail').val();
|
||||||
soa_serial = modal.find('#soa_serial').val();
|
soa_serial = modal.find('#soa_serial').val();
|
||||||
soa_zonerefresh = modal.find('#soa_zonerefresh').val();
|
soa_zonerefresh = modal.find('#soa_zonerefresh').val();
|
||||||
soa_failedzonerefresh = modal.find('#soa_failedzonerefresh').val();
|
soa_failedzonerefresh = modal.find('#soa_failedzonerefresh').val();
|
||||||
soa_zoneexpiry = modal.find('#soa_zoneexpiry').val();
|
soa_zoneexpiry = modal.find('#soa_zoneexpiry').val();
|
||||||
soa_minimumttl = modal.find('#soa_minimumttl').val();
|
soa_minimumttl = modal.find('#soa_minimumttl').val();
|
||||||
|
|
||||||
data = soa_primaryns + " " + soa_adminemail + " " + soa_serial + " " + soa_zonerefresh + " " + soa_failedzonerefresh + " " + soa_zoneexpiry + " " + soa_minimumttl;
|
data = soa_primaryns + " " + soa_adminemail + " " + soa_serial + " " + soa_zonerefresh + " " + soa_failedzonerefresh + " " + soa_zoneexpiry + " " + soa_minimumttl;
|
||||||
record_data.val(data);
|
record_data.val(data);
|
||||||
modal.modal('hide');
|
modal.modal('hide');
|
||||||
})
|
})
|
||||||
modal.modal('show');
|
modal.modal('show');
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</script>
|
</script>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block modals %}
|
{% block modals %}
|
||||||
<div class="modal fade modal-warning" id="modal_delete">
|
<div class="modal fade modal-warning" id="modal_delete">
|
||||||
<div class="modal-dialog">
|
<div class="modal-dialog">
|
||||||
<div class="modal-content">
|
<div class="modal-content">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h4 class="modal-title">Confirmation</h4>
|
<h4 class="modal-title">Confirmation</h4>
|
||||||
<button type="button" class="close" data-dismiss="modal"
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
aria-label="Close">
|
aria-label="Close">
|
||||||
<span aria-hidden="true">×</span>
|
<span aria-hidden="true">×</span>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<p></p>
|
<p></p>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary float-left" id="button_delete_cancel" data-dismiss="modal">
|
<button type="button" class="btn btn-secondary float-left" id="button_delete_cancel"
|
||||||
Close
|
data-dismiss="modal">
|
||||||
</button>
|
Close
|
||||||
<button type="button" class="btn btn-danger" id="button_delete_confirm">
|
</button>
|
||||||
Delete
|
<button type="button" class="btn btn-danger" id="button_delete_confirm">
|
||||||
</button>
|
Delete
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="modal fade modal-primary" id="modal_apply_changes">
|
||||||
<div class="modal fade modal-primary" id="modal_apply_changes">
|
<div class="modal-dialog">
|
||||||
<div class="modal-dialog">
|
<div class="modal-content">
|
||||||
<div class="modal-content">
|
<div class="modal-header">
|
||||||
<div class="modal-header">
|
<h4 class="modal-title">Confirmation</h4>
|
||||||
<h4 class="modal-title">Confirmation</h4>
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
<button type="button" class="close" data-dismiss="modal"
|
aria-label="Close">
|
||||||
aria-label="Close">
|
<span aria-hidden="true">×</span>
|
||||||
<span aria-hidden="true">×</span>
|
</button>
|
||||||
</button>
|
</div>
|
||||||
</div>
|
<div class="modal-body">
|
||||||
<div class="modal-body">
|
<p></p>
|
||||||
<p></p>
|
</div>
|
||||||
</div>
|
<div class="modal-footer">
|
||||||
<div class="modal-footer">
|
<button type="button" class="btn btn-secondary float-left" data-dismiss="modal">
|
||||||
<button type="button" class="btn btn-secondary float-left" data-dismiss="modal">
|
Close
|
||||||
Close
|
</button>
|
||||||
</button>
|
<button type="button" class="btn btn-primary" id="button_apply_confirm">
|
||||||
<button type="button" class="btn btn-primary" id="button_apply_confirm">
|
Apply
|
||||||
Apply
|
</button>
|
||||||
</button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="modal fade modal-primary" id="modal_custom_record">
|
||||||
<div class="modal fade modal-primary" id="modal_custom_record">
|
<div class="modal-dialog">
|
||||||
<div class="modal-dialog">
|
<div class="modal-content">
|
||||||
<div class="modal-content">
|
<div class="modal-header">
|
||||||
<div class="modal-header">
|
<h4 class="modal-title">Custom Record</h4>
|
||||||
<h4 class="modal-title">Custom Record</h4>
|
<button type="button" class="close" data-dismiss="modal"
|
||||||
<button type="button" class="close" data-dismiss="modal"
|
aria-label="Close">
|
||||||
aria-label="Close">
|
<span aria-hidden="true">×</span>
|
||||||
<span aria-hidden="true">×</span>
|
</button>
|
||||||
</button>
|
</div>
|
||||||
</div>
|
<div class="modal-body">
|
||||||
<div class="modal-body">
|
<p></p>
|
||||||
<p></p>
|
</div>
|
||||||
</div>
|
<div class="modal-footer">
|
||||||
<div class="modal-footer">
|
<button type="button" class="btn btn-primary" id="button_save">Save</button>
|
||||||
<button type="button" class="btn btn-primary" id="button_save">Save</button>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
Loading…
Reference in New Issue
Block a user