diff --git a/DnsServerCore/www/css/main.css b/DnsServerCore/www/css/main.css
index b3d4c55a..d24c04b1 100644
--- a/DnsServerCore/www/css/main.css
+++ b/DnsServerCore/www/css/main.css
@@ -183,3 +183,22 @@ label {
.zone-viewer-pane .resource-record {
background-color: #f5f5f5;
}
+
+.log-list-pane {
+ float: left;
+ width: 15%;
+}
+
+.logs {
+ font-size: 12px;
+}
+
+ .logs .log {
+ padding: 2px;
+ }
+
+.log-viewer-pane {
+ float: right;
+ width: 84%;
+ display: none;
+}
diff --git a/DnsServerCore/www/index.html b/DnsServerCore/www/index.html
index 00da8627..27add454 100644
--- a/DnsServerCore/www/index.html
+++ b/DnsServerCore/www/index.html
@@ -88,6 +88,7 @@
\
\
diff --git a/DnsServerCore/www/js/main.js b/DnsServerCore/www/js/main.js
index 082ae3a9..ac17b768 100644
--- a/DnsServerCore/www/js/main.js
+++ b/DnsServerCore/www/js/main.js
@@ -465,7 +465,7 @@ function refreshZonesList(hideLoader) {
for (var i = 0; i < zones.length; i++) {
var zoneName = htmlEncode(zones[i].zoneName);
- list += "
"
+ list += "
"
}
lstZones.html(list);
@@ -1421,3 +1421,99 @@ function resolveQuery(importRecords) {
return false;
}
+
+function refreshLogFilesList() {
+
+ var lstLogFiles = $("#lstLogFiles");
+
+ HTTPRequest({
+ url: "/api/listLogs?token=" + token,
+ success: function (responseJSON) {
+ var logFiles = responseJSON.response.logFiles;
+
+ var list = "";
+
+ for (var i = 0; i < logFiles.length; i++) {
+ var logFile = logFiles[i];
+
+ list += "
"
+ }
+
+ lstLogFiles.html(list);
+ },
+ invalidToken: function () {
+ showPageLogin();
+ },
+ objLoaderPlaceholder: lstLogFiles
+ });
+
+ return false;
+}
+
+function viewLog(logFile) {
+
+ var divLogViewer = $("#divLogViewer");
+ var txtLogViewerTitle = $("#txtLogViewerTitle");
+ var divLogViewerLoader = $("#divLogViewerLoader");
+ var preLogViewerBody = $("#preLogViewerBody");
+
+ txtLogViewerTitle.text(logFile);
+
+ preLogViewerBody.hide();
+ divLogViewerLoader.show();
+ divLogViewer.show();
+
+ HTTPGetFileRequest({
+ url: "/log/" + logFile + "?token=" + token,
+ success: function (response) {
+
+ divLogViewerLoader.hide();
+
+ preLogViewerBody.text(response);
+ preLogViewerBody.show();
+ },
+ objLoaderPlaceholder: divLogViewerLoader
+ });
+
+ return false;
+}
+
+function downloadLog() {
+
+ var logFile = $("#txtLogViewerTitle").text();
+
+ window.open("/log/" + logFile + "?token=" + token, "_blank");
+
+ return false;
+}
+
+function deleteLog() {
+
+ var logFile = $("#txtLogViewerTitle").text();
+
+ if (!confirm("Are you sure you want to permanently delete the log file '" + logFile + "'?"))
+ return false;
+
+ var btn = $("#btnDeleteLog").button('loading');
+
+ HTTPRequest({
+ url: "/api/deleteLog?token=" + token + "&log=" + logFile,
+ success: function (responseJSON) {
+ refreshLogFilesList();
+
+ $("#divLogViewer").hide();
+ btn.button('reset');
+
+ showAlert("success", "Log Deleted!", "Log file was deleted successfully.");
+ },
+ error: function () {
+ btn.button('reset');
+ },
+ invalidToken: function () {
+ btn.button('reset');
+ showPageLogin();
+ }
+ });
+
+ return false;
+}
\ No newline at end of file