diff --git a/DnsServerCore/www/js/zone.js b/DnsServerCore/www/js/zone.js
index 576d80f8..06348c38 100644
--- a/DnsServerCore/www/js/zone.js
+++ b/DnsServerCore/www/js/zone.js
@@ -272,7 +272,7 @@ function refreshZones(checkDisplay) {
divViewZonesLoader.show();
HTTPRequest({
- url: "/api/zone/list?token=" + token,
+ url: "/api/zones/list?token=" + sessionData.token,
success: function (responseJSON) {
var zones = responseJSON.response.zones;
var tableHtmlRows = "";
@@ -320,29 +320,47 @@ function refreshZones(checkDisplay) {
var isReadOnlyZone = zones[i].internal;
- var disableOptions;
+ var hideOptionsMenu;
switch (zones[i].type) {
case "Primary":
case "Secondary":
- disableOptions = zones[i].internal;
+ hideOptionsMenu = zones[i].internal;
break;
default:
- disableOptions = true;
+ hideOptionsMenu = true;
break;
}
- tableHtmlRows += "
| " + htmlEncode(name) + " | ";
+ tableHtmlRows += "
| " + htmlEncode(name === "." ? "" : name) + " | ";
tableHtmlRows += "" + type + " | ";
tableHtmlRows += "" + dnssecStatus + " | ";
tableHtmlRows += "" + status + " | ";
tableHtmlRows += "" + expiry + " | ";
- tableHtmlRows += "";
- tableHtmlRows += "";
- tableHtmlRows += "";
- tableHtmlRows += "";
- tableHtmlRows += " |
";
+
+ tableHtmlRows += " | ";
}
$("#tableZonesBody").html(tableHtmlRows);
@@ -366,30 +384,55 @@ function refreshZones(checkDisplay) {
});
}
-function enableZone(objBtn, zone, editZone) {
- var btn = $(objBtn);
+function enableZoneMenu(objMenuItem) {
+ var mnuItem = $(objMenuItem);
+ var id = mnuItem.attr("data-id");
+ var zone = mnuItem.attr("data-zone");
+
+ var btn = $("#btnZoneRowOption" + id);
+ var originalBtnHtml = btn.html();
+ btn.prop("disabled", true);
+ btn.html("
");
+
+ HTTPRequest({
+ url: "/api/zones/enable?token=" + sessionData.token + "&zone=" + zone,
+ success: function (responseJSON) {
+ btn.prop("disabled", false);
+ btn.html(originalBtnHtml);
+
+ $("#mnuEnableZone" + id).hide();
+ $("#mnuDisableZone" + id).show();
+ $("#tdZoneStatus" + id).attr("class", "label label-success");
+ $("#tdZoneStatus" + id).html("Enabled");
+
+ showAlert("success", "Zone Enabled!", "Zone '" + zone + "' was enabled successfully.");
+ },
+ error: function () {
+ btn.prop("disabled", false);
+ btn.html(originalBtnHtml);
+ },
+ invalidToken: function () {
+ showPageLogin();
+ }
+ });
+}
+
+function enableZone(objBtn) {
+ var zone = $("#titleEditZone").attr("data-zone");
+
+ var btn = $(objBtn);
btn.button('loading');
HTTPRequest({
- url: "/api/zone/enable?token=" + token + "&zone=" + zone,
+ url: "/api/zones/enable?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
btn.button('reset');
- if (editZone) {
- $("#btnEnableZoneEditZone").hide();
- $("#btnDisableZoneEditZone").show();
- $("#titleStatusEditZone").attr("class", "label label-success");
- $("#titleStatusEditZone").html("Enabled");
- }
- else {
- var id = btn.attr("data-id");
-
- $("#btnEnableZone" + id).hide();
- $("#btnDisableZone" + id).show();
- $("#tdZoneStatus" + id).attr("class", "label label-success");
- $("#tdZoneStatus" + id).html("Enabled");
- }
+ $("#btnEnableZoneEditZone").hide();
+ $("#btnDisableZoneEditZone").show();
+ $("#titleStatusEditZone").attr("class", "label label-success");
+ $("#titleStatusEditZone").html("Enabled");
showAlert("success", "Zone Enabled!", "Zone '" + zone + "' was enabled successfully.");
},
@@ -402,33 +445,61 @@ function enableZone(objBtn, zone, editZone) {
});
}
-function disableZone(objBtn, zone, editZone) {
+function disableZoneMenu(objMenuItem) {
+ var mnuItem = $(objMenuItem);
+
+ var id = mnuItem.attr("data-id");
+ var zone = mnuItem.attr("data-zone");
+
+ if (!confirm("Are you sure you want to disable the zone '" + zone + "'?"))
+ return;
+
+ var btn = $("#btnZoneRowOption" + id);
+ var originalBtnHtml = btn.html();
+ btn.prop("disabled", true);
+ btn.html("
");
+
+ HTTPRequest({
+ url: "/api/zones/disable?token=" + sessionData.token + "&zone=" + zone,
+ success: function (responseJSON) {
+ btn.prop("disabled", false);
+ btn.html(originalBtnHtml);
+
+ $("#mnuEnableZone" + id).show();
+ $("#mnuDisableZone" + id).hide();
+ $("#tdZoneStatus" + id).attr("class", "label label-warning");
+ $("#tdZoneStatus" + id).html("Disabled");
+
+ showAlert("success", "Zone Disabled!", "Zone '" + zone + "' was disabled successfully.");
+ },
+ error: function () {
+ btn.prop("disabled", false);
+ btn.html(originalBtnHtml);
+ },
+ invalidToken: function () {
+ showPageLogin();
+ }
+ });
+}
+
+function disableZone(objBtn) {
+ var zone = $("#titleEditZone").attr("data-zone");
+
if (!confirm("Are you sure you want to disable the zone '" + zone + "'?"))
return;
var btn = $(objBtn);
-
btn.button('loading');
HTTPRequest({
- url: "/api/zone/disable?token=" + token + "&zone=" + zone,
+ url: "/api/zones/disable?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
btn.button('reset');
- if (editZone) {
- $("#btnEnableZoneEditZone").show();
- $("#btnDisableZoneEditZone").hide();
- $("#titleStatusEditZone").attr("class", "label label-warning");
- $("#titleStatusEditZone").html("Disabled");
- }
- else {
- var id = btn.attr("data-id");
-
- $("#btnEnableZone" + id).show();
- $("#btnDisableZone" + id).hide();
- $("#tdZoneStatus" + id).attr("class", "label label-warning");
- $("#tdZoneStatus" + id).html("Disabled");
- }
+ $("#btnEnableZoneEditZone").show();
+ $("#btnDisableZoneEditZone").hide();
+ $("#titleStatusEditZone").attr("class", "label label-warning");
+ $("#titleStatusEditZone").html("Disabled");
showAlert("success", "Zone Disabled!", "Zone '" + zone + "' was disabled successfully.");
},
@@ -441,35 +512,58 @@ function disableZone(objBtn, zone, editZone) {
});
}
-function deleteZone(objBtn, zone, editZone) {
+function deleteZoneMenu(objMenuItem) {
+ var mnuItem = $(objMenuItem);
+
+ var id = mnuItem.attr("data-id");
+ var zone = mnuItem.attr("data-zone");
+
if (!confirm("Are you sure you want to permanently delete the zone '" + zone + "' and all its records?"))
return;
- if (editZone == null)
- editZone = false;
+ var btn = $("#btnZoneRowOption" + id);
+ var originalBtnHtml = btn.html();
+ btn.prop("disabled", true);
+ btn.html("
");
+
+ HTTPRequest({
+ url: "/api/zones/delete?token=" + sessionData.token + "&zone=" + zone,
+ success: function (responseJSON) {
+ $("#trZone" + id).remove();
+
+ var totalZones = $('#tableZones >tbody >tr').length;
+
+ if (totalZones > 0)
+ $("#tableZonesFooter").html("| Total Zones: " + totalZones + " |
");
+ else
+ $("#tableZonesFooter").html("| No Zones Found |
");
+
+ showAlert("success", "Zone Deleted!", "Zone '" + zone + "' was deleted successfully.");
+ },
+ error: function () {
+ btn.prop("disabled", false);
+ btn.html(originalBtnHtml);
+ },
+ invalidToken: function () {
+ showPageLogin();
+ }
+ });
+}
+
+function deleteZone(objBtn) {
+ var zone = $("#titleEditZone").attr("data-zone");
+
+ if (!confirm("Are you sure you want to permanently delete the zone '" + zone + "' and all its records?"))
+ return;
var btn = $(objBtn);
- var id = btn.attr("data-id");
-
btn.button('loading');
HTTPRequest({
- url: "/api/zone/delete?token=" + token + "&zone=" + zone,
+ url: "/api/zones/delete?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
- if (editZone) {
- btn.button('reset');
- refreshZones();
- }
- else {
- $("#trZone" + id).remove();
-
- var totalZones = $('#tableZones >tbody >tr').length;
-
- if (totalZones > 0)
- $("#tableZonesFooter").html("| Total Zones: " + totalZones + " |
");
- else
- $("#tableZonesFooter").html("| No Zones Found |
");
- }
+ btn.button('reset');
+ refreshZones();
showAlert("success", "Zone Deleted!", "Zone '" + zone + "' was deleted successfully.");
},
@@ -487,14 +581,15 @@ function showZoneOptionsModal(zone) {
var divZoneOptionsLoader = $("#divZoneOptionsLoader");
var divZoneOptions = $("#divZoneOptions");
- $("#lblZoneOptionsZoneName").text(zone);
+ $("#lblZoneOptionsZoneName").text(zone === "." ? "" : zone);
+ $("#lblZoneOptionsZoneName").attr("data-zone", zone);
divZoneOptionsLoader.show();
divZoneOptions.hide();
$("#modalZoneOptions").modal("show");
HTTPRequest({
- url: "/api/zone/options/get?token=" + token + "&zone=" + zone,
+ url: "/api/zones/options/get?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
$("#txtZoneTransferNameServers").prop("disabled", true);
$("#txtZoneNotifyNameServers").prop("disabled", true);
@@ -605,7 +700,7 @@ function showZoneOptionsModal(zone) {
function saveZoneOptions() {
var divZoneOptionsAlert = $("#divZoneOptionsAlert");
var divZoneOptionsLoader = $("#divZoneOptionsLoader");
- var zone = $("#lblZoneOptionsZoneName").text();
+ var zone = $("#lblZoneOptionsZoneName").attr("data-zone");
var zoneTransfer = $("input[name=rdZoneTransfer]:checked").val();
@@ -636,7 +731,7 @@ function saveZoneOptions() {
btn.button('loading');
HTTPRequest({
- url: "/api/zone/options/set?token=" + token + "&zone=" + zone
+ url: "/api/zones/options/set?token=" + sessionData.token + "&zone=" + zone
+ "&zoneTransfer=" + zoneTransfer + "&zoneTransferNameServers=" + encodeURIComponent(zoneTransferNameServers)
+ "¬ify=" + notify + "¬ifyNameServers=" + encodeURIComponent(notifyNameServers)
+ "&zoneTransferTsigKeyNames=" + encodeURIComponent(zoneTransferTsigKeyNames),
@@ -660,13 +755,115 @@ function saveZoneOptions() {
});
}
-function resyncZone(objBtn, domain) {
+function showZonePermissionsModal(zone) {
+ var divEditPermissionsAlert = $("#divEditPermissionsAlert");
+ var divEditPermissionsLoader = $("#divEditPermissionsLoader");
+ var divEditPermissionsViewer = $("#divEditPermissionsViewer");
+
+ $("#lblEditPermissionsName").text("Zones / " + (zone === "." ? "" : zone));
+ $("#tbodyEditPermissionsUser").html("");
+ $("#tbodyEditPermissionsGroup").html("");
+
+ divEditPermissionsLoader.show();
+ divEditPermissionsViewer.hide();
+
+ var btnEditPermissionsSave = $("#btnEditPermissionsSave");
+ btnEditPermissionsSave.attr("onclick", "saveZonePermissions(this); return false;");
+ btnEditPermissionsSave.show();
+
+ var modalEditPermissions = $("#modalEditPermissions");
+ modalEditPermissions.modal("show");
+
+ HTTPRequest({
+ url: "/api/zones/permissions/get?token=" + sessionData.token + "&zone=" + htmlEncode(zone) + "&includeUsersAndGroups=true",
+ success: function (responseJSON) {
+ $("#lblEditPermissionsName").text(responseJSON.response.section + " / " + (responseJSON.response.subItem == "." ? "" : responseJSON.response.subItem));
+
+ //user permissions
+ for (var i = 0; i < responseJSON.response.userPermissions.length; i++) {
+ addEditPermissionUserRow(i, responseJSON.response.userPermissions[i].username, responseJSON.response.userPermissions[i].canView, responseJSON.response.userPermissions[i].canModify, responseJSON.response.userPermissions[i].canDelete);
+ }
+
+ //load users list
+ var userListHtml = "";
+
+ for (var i = 0; i < responseJSON.response.users.length; i++) {
+ userListHtml += "";
+ }
+
+ $("#optEditPermissionsUserList").html(userListHtml);
+
+ //group permissions
+ for (var i = 0; i < responseJSON.response.groupPermissions.length; i++) {
+ addEditPermissionGroupRow(i, responseJSON.response.groupPermissions[i].name, responseJSON.response.groupPermissions[i].canView, responseJSON.response.groupPermissions[i].canModify, responseJSON.response.groupPermissions[i].canDelete);
+ }
+
+ //load groups list
+ var groupListHtml = "";
+
+ for (var i = 0; i < responseJSON.response.groups.length; i++) {
+ groupListHtml += "";
+ }
+
+ $("#optEditPermissionsGroupList").html(groupListHtml);
+
+ btnEditPermissionsSave.attr("data-zone", responseJSON.response.subItem);
+
+ divEditPermissionsLoader.hide();
+ divEditPermissionsViewer.show();
+ },
+ error: function () {
+ divEditPermissionsLoader.hide();
+ },
+ invalidToken: function () {
+ modalEditPermissions.modal("hide");
+ showPageLogin();
+ },
+ objAlertPlaceholder: divEditPermissionsAlert,
+ objLoaderPlaceholder: divEditPermissionsLoader
+ });
+}
+
+function saveZonePermissions(objBtn) {
+ var btn = $(objBtn);
+ var divEditPermissionsAlert = $("#divEditPermissionsAlert");
+
+ var zone = btn.attr("data-zone");
+
+ var userPermissions = serializeTableData($("#tableEditPermissionsUser"), 4);
+ var groupPermissions = serializeTableData($("#tableEditPermissionsGroup"), 4);
+
+ var apiUrl = "/api/zones/permissions/set?token=" + sessionData.token + "&zone=" + encodeURIComponent(zone) + "&userPermissions=" + encodeURIComponent(userPermissions) + "&groupPermissions=" + encodeURIComponent(groupPermissions);
+
+ btn.button('loading');
+
+ HTTPRequest({
+ url: apiUrl,
+ success: function (responseJSON) {
+ btn.button('reset');
+ $("#modalEditPermissions").modal("hide");
+
+ showAlert("success", "Permissions Saved!", "Zone permissions were saved successfully.");
+ },
+ error: function () {
+ btn.button('reset');
+ },
+ invalidToken: function () {
+ btn.button('reset');
+ $("#modalEditPermissions").modal("hide");
+ showPageLogin();
+ },
+ objAlertPlaceholder: divEditPermissionsAlert
+ });
+}
+
+function resyncZone(objBtn, zone) {
if ($("#titleEditZoneType").text() == "Secondary") {
- if (!confirm("The resync action will perform a full zone transfer (AXFR). You will need to check the logs to confirm if the resync action was successful.\r\n\r\nAre you sure you want to resync the '" + domain + "' zone?"))
+ if (!confirm("The resync action will perform a full zone transfer (AXFR). You will need to check the logs to confirm if the resync action was successful.\r\n\r\nAre you sure you want to resync the '" + zone + "' zone?"))
return;
}
else {
- if (!confirm("The resync action will perform a full zone refresh. You will need to check the logs to confirm if the resync action was successful.\r\n\r\nAre you sure you want to resync the '" + domain + "' zone?"))
+ if (!confirm("The resync action will perform a full zone refresh. You will need to check the logs to confirm if the resync action was successful.\r\n\r\nAre you sure you want to resync the '" + zone + "' zone?"))
return;
}
@@ -674,10 +871,10 @@ function resyncZone(objBtn, domain) {
btn.button('loading');
HTTPRequest({
- url: "/api/zone/resync?token=" + token + "&domain=" + domain,
+ url: "/api/zones/resync?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
btn.button('reset');
- showAlert("success", "Resync Triggered!", "Zone '" + domain + "' resync was triggered successfully. Please check the Logs for confirmation.");
+ showAlert("success", "Resync Triggered!", "Zone '" + zone + "' resync was triggered successfully. Please check the Logs for confirmation.");
},
error: function () {
btn.button('reset');
@@ -829,7 +1026,7 @@ function addZone() {
var btn = $("#btnAddZone").button('loading');
HTTPRequest({
- url: "/api/zone/create?token=" + token + "&zone=" + zone + "&type=" + type + parameters,
+ url: "/api/zones/create?token=" + sessionData.token + "&zone=" + zone + "&type=" + type + parameters,
success: function (responseJSON) {
$("#modalAddZone").modal("hide");
showEditZone(responseJSON.response.domain);
@@ -849,7 +1046,7 @@ function addZone() {
function toggleHideDnssecRecords(hideDnssecRecords) {
localStorage.setItem("zoneHideDnssecRecords", hideDnssecRecords);
- showEditZone($("#titleEditZone").text());
+ showEditZone($("#titleEditZone").attr("data-zone"));
}
function showEditZone(zone) {
@@ -862,7 +1059,7 @@ function showEditZone(zone) {
divViewZonesLoader.show();
HTTPRequest({
- url: "/api/zone/getRecords?token=" + token + "&domain=" + zone,
+ url: "/api/zones/records/get?token=" + sessionData.token + "&domain=" + zone,
success: function (responseJSON) {
var zoneType;
if (responseJSON.response.zone.internal)
@@ -936,7 +1133,7 @@ function showEditZone(zone) {
$("#optAddEditRecordTypeDs").hide();
$("#optAddEditRecordTypeAName").show();
$("#optAddEditRecordTypeFwd").show();
- $("#optAddEditRecordTypeApp").hide();
+ $("#optAddEditRecordTypeApp").show();
break;
case "Primary":
@@ -998,6 +1195,19 @@ function showEditZone(zone) {
break;
}
+ switch (zoneType) {
+ case "Primary":
+ case "Secondary":
+ case "Stub":
+ case "Forwarder":
+ $("#btnZonePermissions").show();
+ break;
+
+ default:
+ $("#btnZonePermissions").hide();
+ break;
+ }
+
var zoneHideDnssecRecords = (localStorage.getItem("zoneHideDnssecRecords") == "true");
switch (zoneType) {
@@ -1084,7 +1294,8 @@ function showEditZone(zone) {
tableHtmlRows += getZoneRecordRowHtml(i, zone, zoneType, records[i]);
}
- $("#titleEditZone").text(zone);
+ $("#titleEditZone").text(zone === "." ? "" : zone);
+ $("#titleEditZone").attr("data-zone", zone);
$("#tableEditZoneBody").html(tableHtmlRows);
if (recordCount > 0)
@@ -1694,13 +1905,13 @@ function clearAddEditForm() {
function showAddRecordModal(objBtn) {
var zoneType = $("#titleEditZoneType").text();
- if (zoneType === "Primary") {
+ if ((zoneType === "Primary") || (zoneType === "Forwarder")) {
var btn = $(objBtn);
btn.button('loading');
HTTPRequest({
- url: "/api/apps/list?token=" + token,
+ url: "/api/apps/list?token=" + sessionData.token,
success: function (responseJSON) {
btn.button('reset');
@@ -1722,7 +1933,7 @@ function showAddRecordModal(objBtn) {
var appsList;
function showAddRecordModalNow(apps) {
- var zone = $("#titleEditZone").text();
+ var zone = $("#titleEditZone").attr("data-zone");
clearAddEditForm();
@@ -1898,7 +2109,7 @@ function addRecord() {
var btn = $("#btnAddEditRecord");
var divAddEditRecordAlert = $("#divAddEditRecordAlert");
- var zone = $("#titleEditZone").text();
+ var zone = $("#titleEditZone").attr("data-zone");
var domain;
{
@@ -1920,7 +2131,7 @@ function addRecord() {
var overwrite = $("#chkAddEditRecordOverwrite").prop("checked");
var comments = $("#txtAddEditRecordComments").val();
- var apiUrl = "/api/zone/addRecord?token=" + token + "&zone=" + encodeURIComponent(zone) + "&domain=" + encodeURIComponent(domain) + "&type=" + type + "&ttl=" + ttl + "&overwrite=" + overwrite + "&comments=" + encodeURIComponent(comments);
+ var apiUrl = "/api/zones/records/add?token=" + sessionData.token + "&zone=" + encodeURIComponent(zone) + "&domain=" + encodeURIComponent(domain) + "&type=" + type + "&ttl=" + ttl + "&overwrite=" + overwrite + "&comments=" + encodeURIComponent(comments);
switch (type) {
case "A":
@@ -2271,7 +2482,7 @@ function showEditRecordModal(objBtn) {
var id = btn.attr("data-id");
var divData = $("#data" + id);
- var zone = $("#titleEditZone").text();
+ var zone = $("#titleEditZone").attr("data-zone");
var name = divData.attr("data-record-name");
var type = divData.attr("data-record-type");
var ttl = divData.attr("data-record-ttl");
@@ -2512,7 +2723,7 @@ function updateRecord() {
var id = btn.attr("data-id");
var divData = $("#data" + id);
- var zone = $("#titleEditZone").text();
+ var zone = $("#titleEditZone").attr("data-zone");
var type = divData.attr("data-record-type");
var domain = divData.attr("data-record-name");
@@ -2537,7 +2748,7 @@ function updateRecord() {
var disable = (divData.attr("data-record-disabled") === "true");
var comments = $("#txtAddEditRecordComments").val();
- var apiUrl = "/api/zone/updateRecord?token=" + token + "&zone=" + encodeURIComponent(zone) + "&type=" + type + "&domain=" + encodeURIComponent(domain) + "&newDomain=" + encodeURIComponent(newDomain) + "&ttl=" + ttl + "&disable=" + disable + "&comments=" + encodeURIComponent(comments);
+ var apiUrl = "/api/zones/records/update?token=" + sessionData.token + "&zone=" + encodeURIComponent(zone) + "&type=" + type + "&domain=" + encodeURIComponent(domain) + "&newDomain=" + encodeURIComponent(newDomain) + "&ttl=" + ttl + "&disable=" + disable + "&comments=" + encodeURIComponent(comments);
switch (type) {
case "A":
@@ -2933,7 +3144,7 @@ function updateRecordState(objBtn, disable) {
if (disable && !confirm("Are you sure to disable the " + type + " record '" + domain + "'?"))
return;
- var apiUrl = "/api/zone/updateRecord?token=" + token + "&type=" + type + "&domain=" + encodeURIComponent(domain) + "&ttl=" + ttl + "&disable=" + disable + "&comments=" + encodeURIComponent(comments);
+ var apiUrl = "/api/zones/records/update?token=" + sessionData.token + "&type=" + type + "&domain=" + encodeURIComponent(domain) + "&ttl=" + ttl + "&disable=" + disable + "&comments=" + encodeURIComponent(comments);
switch (type) {
case "A":
@@ -3035,7 +3246,7 @@ function deleteRecord(objBtn) {
var id = btn.attr("data-id");
var divData = $("#data" + id);
- var zone = $("#titleEditZone").text();
+ var zone = $("#titleEditZone").attr("data-zone");
var domain = divData.attr("data-record-name");
var type = divData.attr("data-record-type");
@@ -3045,7 +3256,7 @@ function deleteRecord(objBtn) {
if (!confirm("Are you sure to permanently delete the " + type + " record '" + domain + "'?"))
return;
- var apiUrl = "/api/zone/deleteRecord?token=" + token + "&zone=" + encodeURIComponent(zone) + "&domain=" + domain + "&type=" + type;
+ var apiUrl = "/api/zones/records/delete?token=" + sessionData.token + "&zone=" + encodeURIComponent(zone) + "&domain=" + domain + "&type=" + type;
switch (type) {
case "A":
@@ -3116,7 +3327,8 @@ function deleteRecord(objBtn) {
function showSignZoneModal(zoneName) {
$("#divDnssecSignZoneAlert").html("");
- $("#lblDnssecSignZoneZoneName").text(zoneName);
+ $("#lblDnssecSignZoneZoneName").text(zoneName === "." ? "" : zoneName);
+ $("#lblDnssecSignZoneZoneName").attr("data-zone", zoneName);
$("#rdDnssecSignZoneAlgorithmEcdsa").prop("checked", true);
$("#divDnssecSignZoneRsaParameters").hide();
@@ -3141,7 +3353,7 @@ function showSignZoneModal(zoneName) {
function signPrimaryZone() {
var divDnssecSignZoneAlert = $("#divDnssecSignZoneAlert");
- var zone = $("#lblDnssecSignZoneZoneName").text();
+ var zone = $("#lblDnssecSignZoneZoneName").attr("data-zone");
var algorithm = $("input[name=rdDnssecSignZoneAlgorithm]:checked").val();
var dnsKeyTtl = $("#txtDnssecSignZoneDnsKeyTtl").val();
var zskRolloverDays = $("#txtDnssecSignZoneZskAutoRollover").val();
@@ -3176,7 +3388,7 @@ function signPrimaryZone() {
btn.button("loading");
HTTPRequest({
- url: "/api/zone/dnssec/sign?token=" + token + "&zone=" + encodeURIComponent(zone) + "&algorithm=" + algorithm + "&dnsKeyTtl=" + dnsKeyTtl + "&zskRolloverDays=" + zskRolloverDays + "&nxProof=" + nxProof + additionalParameters,
+ url: "/api/zones/dnssec/sign?token=" + sessionData.token + "&zone=" + encodeURIComponent(zone) + "&algorithm=" + algorithm + "&dnsKeyTtl=" + dnsKeyTtl + "&zskRolloverDays=" + zskRolloverDays + "&nxProof=" + nxProof + additionalParameters,
success: function (responseJSON) {
btn.button('reset');
$("#modalDnssecSignZone").modal("hide");
@@ -3213,20 +3425,21 @@ function signPrimaryZone() {
function showUnsignZoneModal(zoneName) {
$("#divDnssecUnsignZoneAlert").html("");
- $("#lblDnssecUnsignZoneZoneName").text(zoneName);
+ $("#lblDnssecUnsignZoneZoneName").text(zoneName === "." ? "" : zoneName);
+ $("#lblDnssecUnsignZoneZoneName").attr("data-zone", zoneName);
$("#modalDnssecUnsignZone").modal("show");
}
function unsignPrimaryZone() {
var divDnssecUnsignZoneAlert = $("#divDnssecUnsignZoneAlert");
- var zone = $("#lblDnssecUnsignZoneZoneName").text();
+ var zone = $("#lblDnssecUnsignZoneZoneName").attr("data-zone");
var btn = $("#btnDnssecUnsignZone");
btn.button("loading");
HTTPRequest({
- url: "/api/zone/dnssec/unsign?token=" + token + "&zone=" + encodeURIComponent(zone),
+ url: "/api/zones/dnssec/unsign?token=" + sessionData.token + "&zone=" + encodeURIComponent(zone),
success: function (responseJSON) {
btn.button('reset');
$("#modalDnssecUnsignZone").modal("hide");
@@ -3266,7 +3479,8 @@ function showDnssecPropertiesModal(zoneName) {
var divDnssecProperties = $("#divDnssecProperties");
$("#divDnssecPropertiesAlert").html("");
- $("#lblDnssecPropertiesZoneName").text(zoneName);
+ $("#lblDnssecPropertiesZoneName").text(zoneName === "." ? "" : zoneName);
+ $("#lblDnssecPropertiesZoneName").attr("data-zone", zoneName);
$("#divDnssecPropertiesGenerateKey").collapse("hide");
$("#optDnssecPropertiesGenerateKeyKeyType").val("KeySigningKey");
@@ -3288,12 +3502,13 @@ function showDnssecPropertiesModal(zoneName) {
function refreshDnssecProperties(divDnssecPropertiesLoader) {
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
HTTPRequest({
- url: "/api/zone/dnssec/getProperties?token=" + token + "&zone=" + zone,
+ url: "/api/zones/dnssec/properties/get?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
var tableHtmlRows = "";
+ var foundGeneratedKey = false;
for (var i = 0; i < responseJSON.response.dnssecPrivateKeys.length; i++) {
var id = Math.floor(Math.random() * 10000);
@@ -3336,6 +3551,7 @@ function refreshDnssecProperties(divDnssecPropertiesLoader) {
switch (responseJSON.response.dnssecPrivateKeys[i].state) {
case "Generated":
tableHtmlRows += "";
+ foundGeneratedKey = true;
break;
case "Ready":
@@ -3351,6 +3567,7 @@ function refreshDnssecProperties(divDnssecPropertiesLoader) {
}
$("#tableDnssecPropertiesPrivateKeysBody").html(tableHtmlRows);
+ $("#btnDnssecPropertiesPublishKeys").prop("disabled", !foundGeneratedKey);
switch (responseJSON.response.dnssecStatus) {
case "SignedWithNSEC":
@@ -3400,13 +3617,13 @@ function updateDnssecPrivateKey(keyTag, objBtn) {
var btn = $(objBtn);
var id = btn.attr("data-id");
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
var rolloverDays = $("#txtDnssecPropertiesPrivateKeyAutomaticRollover" + id).val();
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/updatePrivateKey?token=" + token + "&zone=" + zone + "&keyTag=" + keyTag + "&rolloverDays=" + rolloverDays,
+ url: "/api/zones/dnssec/properties/updatePrivateKey?token=" + sessionData.token + "&zone=" + zone + "&keyTag=" + keyTag + "&rolloverDays=" + rolloverDays,
success: function (responseJSON) {
btn.button('reset');
showAlert("success", "Updated!", "The DNSKEY automatic rollover config was updated successfully.", divDnssecPropertiesAlert);
@@ -3430,12 +3647,12 @@ function deleteDnssecPrivateKey(keyTag, objBtn) {
var btn = $(objBtn);
var id = btn.attr("data-id");
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/deletePrivateKey?token=" + token + "&zone=" + zone + "&keyTag=" + keyTag,
+ url: "/api/zones/dnssec/properties/deletePrivateKey?token=" + sessionData.token + "&zone=" + zone + "&keyTag=" + keyTag,
success: function (responseJSON) {
$("#trDnssecPropertiesPrivateKey" + id).remove();
showAlert("success", "Private Key Deleted!", "The DNSSEC private key was deleted successfully.", divDnssecPropertiesAlert);
@@ -3457,12 +3674,12 @@ function rolloverDnssecDnsKey(keyTag, objBtn) {
var btn = $(objBtn);
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/rolloverDnsKey?token=" + token + "&zone=" + zone + "&keyTag=" + keyTag,
+ url: "/api/zones/dnssec/properties/rolloverDnsKey?token=" + sessionData.token + "&zone=" + zone + "&keyTag=" + keyTag,
success: function (responseJSON) {
refreshDnssecProperties();
showAlert("success", "Rollover Done!", "The DNS Key was rolled over successfully.", divDnssecPropertiesAlert);
@@ -3484,12 +3701,12 @@ function retireDnssecDnsKey(keyTag, objBtn) {
var btn = $(objBtn);
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/retireDnsKey?token=" + token + "&zone=" + zone + "&keyTag=" + keyTag,
+ url: "/api/zones/dnssec/properties/retireDnsKey?token=" + sessionData.token + "&zone=" + zone + "&keyTag=" + keyTag,
success: function (responseJSON) {
refreshDnssecProperties();
showAlert("success", "DNS Key Retired!", "The DNS Key was retired successfully.", divDnssecPropertiesAlert);
@@ -3511,12 +3728,12 @@ function publishAllDnssecPrivateKeys(objBtn) {
var btn = $(objBtn);
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/publishAllPrivateKeys?token=" + token + "&zone=" + zone,
+ url: "/api/zones/dnssec/properties/publishAllPrivateKeys?token=" + sessionData.token + "&zone=" + zone,
success: function (responseJSON) {
refreshDnssecProperties();
btn.button('reset');
@@ -3537,7 +3754,7 @@ function publishAllDnssecPrivateKeys(objBtn) {
function generateAndAddDnssecPrivateKey(objBtn) {
var btn = $(objBtn);
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
var keyType = $("#optDnssecPropertiesGenerateKeyKeyType").val();
var algorithm = $("#optDnssecPropertiesGenerateKeyAlgorithm").val();
var rolloverDays = $("#txtDnssecPropertiesGenerateKeyAutomaticRollover").val();
@@ -3562,7 +3779,7 @@ function generateAndAddDnssecPrivateKey(objBtn) {
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/generatePrivateKey?token=" + token + "&zone=" + zone + "&keyType=" + keyType + "&rolloverDays=" + rolloverDays + "&algorithm=" + algorithm + additionalParameters,
+ url: "/api/zones/dnssec/properties/generatePrivateKey?token=" + sessionData.token + "&zone=" + zone + "&keyType=" + keyType + "&rolloverDays=" + rolloverDays + "&algorithm=" + algorithm + additionalParameters,
success: function (responseJSON) {
$("#divDnssecPropertiesGenerateKey").collapse("hide");
refreshDnssecProperties();
@@ -3593,7 +3810,7 @@ function changeDnssecNxProof(objBtn) {
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
var apiUrl;
switch (currentNxProof) {
@@ -3606,7 +3823,7 @@ function changeDnssecNxProof(objBtn) {
var iterations = $("#txtDnssecPropertiesNSEC3Iterations").val();
var saltLength = $("#txtDnssecPropertiesNSEC3SaltLength").val();
- apiUrl = "/api/zone/dnssec/convertToNSEC3?token=" + token + "&zone=" + zone + "&iterations=" + iterations + "&saltLength=" + saltLength;
+ apiUrl = "/api/zones/dnssec/properties/convertToNSEC3?token=" + sessionData.token + "&zone=" + zone + "&iterations=" + iterations + "&saltLength=" + saltLength;
}
break;
@@ -3620,10 +3837,10 @@ function changeDnssecNxProof(objBtn) {
return;
}
else {
- apiUrl = "/api/zone/dnssec/updateNSEC3Params?token=" + token + "&zone=" + zone + "&iterations=" + iterations + "&saltLength=" + saltLength;
+ apiUrl = "/api/zones/dnssec/properties/updateNSEC3Params?token=" + sessionData.token + "&zone=" + zone + "&iterations=" + iterations + "&saltLength=" + saltLength;
}
} else {
- apiUrl = "/api/zone/dnssec/convertToNSEC?token=" + token + "&zone=" + zone;
+ apiUrl = "/api/zones/dnssec/properties/convertToNSEC?token=" + sessionData.token + "&zone=" + zone;
}
break;
@@ -3670,13 +3887,13 @@ function changeDnssecNxProof(objBtn) {
function updateDnssecDnsKeyTtl(objBtn) {
var btn = $(objBtn);
var divDnssecPropertiesAlert = $("#divDnssecPropertiesAlert");
- var zone = $("#lblDnssecPropertiesZoneName").text();
+ var zone = $("#lblDnssecPropertiesZoneName").attr("data-zone");
var ttl = $("#txtDnssecPropertiesDnsKeyTtl").val();
btn.button('loading');
HTTPRequest({
- url: "/api/zone/dnssec/updateDnsKeyTtl?token=" + token + "&zone=" + zone + "&ttl=" + ttl,
+ url: "/api/zones/dnssec/properties/updateDnsKeyTtl?token=" + sessionData.token + "&zone=" + zone + "&ttl=" + ttl,
success: function (responseJSON) {
btn.button('reset');
showAlert("success", "TTL Updated!", "The DNSKEY TTL was updated successfully.", divDnssecPropertiesAlert);