Working on the first-round updates for the zone template editor.

This commit is contained in:
Matt Scott 2023-02-19 21:20:23 -05:00
parent fe49651e81
commit 4d64076dac

View File

@ -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>&nbsp;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>&nbsp;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>&nbsp;Edit
</button>
</td>
<td width="6%">
<button type="button" class="btn btn-danger button_delete">
<i class="fa-solid fa-trash"></i>&nbsp;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>&nbsp;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>&nbsp;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>&nbsp;Edit
</button>
<button type="button" class="btn btn-danger button_delete"
title="Delete Record">
<i class="fa-solid fa-trash"></i>&nbsp;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">&times;</span> <span aria-hidden="true">&times;</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">&times;</span>
<span aria-hidden="true">&times;</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">&times;</span>
<span aria-hidden="true">&times;</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 %}