diff --git a/DnsServerCore/www/js/zone.js b/DnsServerCore/www/js/zone.js
index 8553824e..0e1f458a 100644
--- a/DnsServerCore/www/js/zone.js
+++ b/DnsServerCore/www/js/zone.js
@@ -250,7 +250,10 @@ function showAddZoneModal() {
$("#txtAddZone").val("");
$("#rdAddZoneTypePrimary").prop("checked", true);
$("#txtAddZonePrimaryNameServerAddresses").val("");
+ $("input[name=rdAddZoneForwarderProtocol]:radio").attr("disabled", false);
$("#rdAddZoneForwarderProtocolUdp").prop("checked", true);
+ $("#chkAddZoneForwarderThisServer").prop('checked', false);
+ $("#txtAddZoneForwarder").prop("disabled", false);
$("#txtAddZoneForwarder").attr("placeholder", "8.8.8.8 or [2620:fe::10]")
$("#txtAddZoneForwarder").val("");
@@ -263,6 +266,25 @@ function showAddZoneModal() {
$("#modalAddZone").modal("show");
}
+function updateAddZoneFormForwarderThisServer() {
+ var useThisServer = $("#chkAddZoneForwarderThisServer").prop('checked');
+
+ if (useThisServer) {
+ $("input[name=rdAddZoneForwarderProtocol]:radio").attr("disabled", true);
+ $("#rdAddZoneForwarderProtocolUdp").prop("checked", true);
+ $("#txtAddZoneForwarder").attr("placeholder", "8.8.8.8 or [2620:fe::10]")
+
+ $("#txtAddZoneForwarder").prop("disabled", true);
+ $("#txtAddZoneForwarder").val("this-server");
+ }
+ else {
+ $("input[name=rdAddZoneForwarderProtocol]:radio").attr("disabled", false);
+
+ $("#txtAddZoneForwarder").prop("disabled", false);
+ $("#txtAddZoneForwarder").val("");
+ }
+}
+
function addZone() {
var divAddZoneAlert = $("#divAddZoneAlert");
var domain = $("#txtAddZone").val();
@@ -462,17 +484,17 @@ function showEditZone(domain) {
"
Expire: " + htmlEncode(records[i].rData.expire) +
"
Minimum: " + htmlEncode(records[i].rData.minimum);
- if (records[i].rData.glue != null) {
- tableHtmlRows += "
Glue Addresses: " + records[i].rData.glue;
+ if (records[i].rData.primaryAddresses != null) {
+ tableHtmlRows += "
Primary Name Server Addresses: " + records[i].rData.primaryAddresses;
- additionalDataAttributes = "data-record-glue=\"" + htmlEncode(records[i].rData.glue) + "\" ";
+ additionalDataAttributes = "data-record-paddresses=\"" + htmlEncode(records[i].rData.primaryAddresses) + "\" ";
} else {
- additionalDataAttributes = "data-record-glue=\"\" ";
+ additionalDataAttributes = "data-record-paddresses=\"\" ";
}
tableHtmlRows += "";
- additionalDataAttributes += "data-record-mname=\"" + htmlEncode(records[i].rData.primaryNameServer) + "\" " +
+ additionalDataAttributes += "data-record-pname=\"" + htmlEncode(records[i].rData.primaryNameServer) + "\" " +
"data-record-rperson=\"" + htmlEncode(records[i].rData.responsiblePerson) + "\" " +
"data-record-serial=\"" + htmlEncode(records[i].rData.serial) + "\" " +
"data-record-refresh=\"" + htmlEncode(records[i].rData.refresh) + "\" " +
@@ -606,6 +628,7 @@ function clearAddEditForm() {
$("#txtAddEditRecordName").prop("disabled", false);
$("#optAddEditRecordType").prop("disabled", false);
$("#txtAddEditRecordTtl").prop("disabled", false);
+ $("#divAddEditRecordTtl").show();
$("#txtAddEditRecordName").val("");
$("#optAddEditRecordType").val("A");
@@ -657,6 +680,9 @@ function clearAddEditForm() {
$("#divAddEditRecordDataForwarder").hide();
$("#rdAddEditRecordDataForwarderProtocolUdp").prop("checked", true);
$("input[name=rdAddEditRecordDataForwarderProtocol]:radio").attr('disabled', false);
+ $("#chkAddEditRecordDataForwarderThisServer").prop("disabled", false);
+ $("#chkAddEditRecordDataForwarderThisServer").prop("checked", false);
+ $('#txtAddEditRecordDataForwarder').prop('disabled', false);
$("#txtAddEditRecordDataForwarder").attr("placeholder", "8.8.8.8 or [2620:fe::10]")
$("#txtAddEditRecordDataForwarder").val("");
@@ -677,6 +703,7 @@ function modifyAddRecordForm() {
$("#divAddEditRecordAlert").html("");
$("#txtAddEditRecordName").prop("placeholder", "@");
+ $("#divAddEditRecordTtl").show();
var type = $("#optAddEditRecordType").val();
@@ -722,7 +749,7 @@ function modifyAddRecordForm() {
$("#txtEditRecordDataSoaRetry").val("");
$("#txtEditRecordDataSoaExpire").val("");
$("#txtEditRecordDataSoaMinimum").val("");
- $("#txtEditRecordDataSoaGlue").val("");
+ $("#txtEditRecordDataSoaPrimaryAddresses").val("");
$("#divEditRecordDataSoa").show();
break;
@@ -763,7 +790,12 @@ function modifyAddRecordForm() {
break;
case "FWD":
+ $("#divAddEditRecordTtl").hide();
+ $("input[name=rdAddEditRecordDataForwarderProtocol]:radio").attr("disabled", false);
$("#rdAddEditRecordDataForwarderProtocolUdp").prop("checked", true);
+ $("#chkAddEditRecordDataForwarderThisServer").prop("disabled", false);
+ $("#chkAddEditRecordDataForwarderThisServer").prop("checked", false);
+ $('#txtAddEditRecordDataForwarder').prop('disabled', false);
$("#txtAddEditRecordDataForwarder").val("");
$("#divAddEditRecordDataForwarder").show();
break;
@@ -977,6 +1009,29 @@ function updateAddEditFormForwarderPlaceholder() {
}
}
+function updateAddEditFormForwarderThisServer() {
+ var useThisServer = $("#chkAddEditRecordDataForwarderThisServer").prop('checked');
+ var isEditMode = $("#optAddEditRecordType").prop("disabled");
+
+ if (useThisServer) {
+ if (!isEditMode) {
+ $("input[name=rdAddEditRecordDataForwarderProtocol]:radio").attr("disabled", true);
+ $("#rdAddEditRecordDataForwarderProtocolUdp").prop("checked", true);
+ $("#txtAddEditRecordDataForwarder").attr("placeholder", "8.8.8.8 or [2620:fe::10]")
+ }
+
+ $("#txtAddEditRecordDataForwarder").prop("disabled", true);
+ $("#txtAddEditRecordDataForwarder").val("this-server");
+ }
+ else {
+ if (!isEditMode)
+ $("input[name=rdAddEditRecordDataForwarderProtocol]:radio").attr("disabled", false);
+
+ $("#txtAddEditRecordDataForwarder").prop("disabled", false);
+ $("#txtAddEditRecordDataForwarder").val("");
+ }
+}
+
function showEditRecordModal(objBtn) {
var btn = $(objBtn);
var id = btn.attr("data-id");
@@ -1002,14 +1057,14 @@ function showEditRecordModal(objBtn) {
$("#txtAddEditRecordTtl").val(ttl)
var disableEditRecordModalFields = false;
- var hideEditRecordGlueField = false;
+ var hideSoaRecordPrimaryAddressesField = false;
var zoneType = $("#titleEditZoneType").text();
switch (zoneType) {
case "Primary":
switch (type) {
case "SOA":
- hideEditRecordGlueField = true;
+ hideSoaRecordPrimaryAddressesField = true;
break;
}
break;
@@ -1059,14 +1114,14 @@ function showEditRecordModal(objBtn) {
break;
case "SOA":
- $("#txtEditRecordDataSoaPrimaryNameServer").val(divData.attr("data-record-mname"));
+ $("#txtEditRecordDataSoaPrimaryNameServer").val(divData.attr("data-record-pname"));
$("#txtEditRecordDataSoaResponsiblePerson").val(divData.attr("data-record-rperson"));
$("#txtEditRecordDataSoaSerial").val(divData.attr("data-record-serial"));
$("#txtEditRecordDataSoaRefresh").val(divData.attr("data-record-refresh"));
$("#txtEditRecordDataSoaRetry").val(divData.attr("data-record-retry"));
$("#txtEditRecordDataSoaExpire").val(divData.attr("data-record-expire"));
$("#txtEditRecordDataSoaMinimum").val(divData.attr("data-record-minimum"));
- $("#txtEditRecordDataSoaGlue").val(divData.attr("data-record-glue").replace(/, /g, "\n"));
+ $("#txtEditRecordDataSoaPrimaryAddresses").val(divData.attr("data-record-paddresses").replace(/, /g, "\n"));
$("#txtAddEditRecordName").prop("disabled", true);
@@ -1082,10 +1137,10 @@ function showEditRecordModal(objBtn) {
$("#txtEditRecordDataSoaMinimum").prop("disabled", true);
}
- if (hideEditRecordGlueField) {
- $("#divEditRecordDataSoaGlue").hide();
+ if (hideSoaRecordPrimaryAddressesField) {
+ $("#divEditRecordDataSoaPrimaryAddresses").hide();
} else {
- $("#divEditRecordDataSoaGlue").show();
+ $("#divEditRecordDataSoaPrimaryAddresses").show();
}
break;
@@ -1109,9 +1164,17 @@ function showEditRecordModal(objBtn) {
break;
case "FWD":
+ $("#divAddEditRecordTtl").hide();
$("input[name=rdAddEditRecordDataForwarderProtocol]:radio").attr('disabled', true);
$("#rdAddEditRecordDataForwarderProtocol" + divData.attr("data-record-protocol")).prop("checked", true);
- $("#txtAddEditRecordDataForwarder").val(divData.attr("data-record-value"));
+
+ var forwarder = divData.attr("data-record-value");
+
+ $("#chkAddEditRecordDataForwarderThisServer").prop("disabled", !$("#rdAddEditRecordDataForwarderProtocolUdp").prop("checked"));
+ $("#chkAddEditRecordDataForwarderThisServer").prop("checked", (forwarder == "this-server"));
+ $("#txtAddEditRecordDataForwarder").prop("disabled", (forwarder == "this-server"));
+ $("#txtAddEditRecordDataForwarder").val(forwarder);
+
updateAddEditFormForwarderPlaceholder();
break;
@@ -1272,7 +1335,7 @@ function updateRecord() {
return;
}
- var glue = cleanTextList($("#txtEditRecordDataSoaGlue").val());
+ var primaryAddresses = cleanTextList($("#txtEditRecordDataSoaPrimaryAddresses").val());
apiUrl += "&primaryNameServer=" + encodeURIComponent(primaryNameServer) +
"&responsiblePerson=" + encodeURIComponent(responsiblePerson) +
@@ -1281,7 +1344,7 @@ function updateRecord() {
"&retry=" + encodeURIComponent(retry) +
"&expire=" + encodeURIComponent(expire) +
"&minimum=" + encodeURIComponent(minimum) +
- "&glue=" + encodeURIComponent(glue);
+ "&primaryAddresses=" + encodeURIComponent(primaryAddresses);
break;
case "MX":