Dns WebApp: implemented new update check feature. Implemented log queries ui setting option.

This commit is contained in:
Shreyas Zare
2017-12-16 20:31:59 +05:30
parent d959b2fcdf
commit ec593ed928
2 changed files with 64 additions and 38 deletions

View File

@@ -111,7 +111,7 @@
<div id="divZoneViewer" class="zone-viewer-pane">
<div class="panel panel-default">
<div class="panel-heading" style="height: 36px; padding: 4px 6px;">
<div id="txtZoneViewerTitle" style="float: left; padding: 4px;">technitium.com</div>
<div style="float: left; padding: 4px;"><span id="spanZoneViewerTitle">technitium.com</span> <span id="spanZoneViewerTitleLink"><a href="" target="_blank"><span class="glyphicon glyphicon-new-window" aria-hidden="true"></span></a></span></div>
<div style="float: right;">
<button id="btnDisableZone" type="button" class="btn btn-warning" data-loading-text="Disable" onclick="return disableZone();" style="font-size: 12px; padding: 4px 6px;">Disable</button>
<button id="btnEnableZone" type="button" class="btn btn-default" data-loading-text="Enable" onclick="return enableZone();" style="font-size: 12px; padding: 4px 6px;">Enable</button>
@@ -340,31 +340,33 @@
<div class="input-group dropdown">
<input type="text" class="form-control dropdown-toggle" style="width: 180px;" id="txtDnsClientNameServer" value="This Server (this-server)">
<ul class="dropdown-menu" id="optDnsClientNameServers">
<li><a href="#" onclick="return false;">This Server (this-server)</a></li>
<li><a href="#" onclick="return false;">Google (8.8.8.8)</a></li>
<li><a href="#" onclick="return false;">Google (8.8.4.4)</a></li>
<li><a href="#" onclick="return false;">OpenDNS (208.67.222.222)</a></li>
<li><a href="#" onclick="return false;">OpenDNS (208.67.220.220)</a></li>
<li><a href="#" onclick="return false;">Level3 (4.2.2.1)</a></li>
<li><a href="#" onclick="return false;">Level3 (4.2.2.2)</a></li>
<li><a href="#" onclick="return false;">Ultra (156.154.70.1)</a></li>
<li><a href="#" onclick="return false;">Ultra (156.154.71.1)</a></li>
<li><a href="#" onclick="return false;">Dyn (216.146.35.35)</a></li>
<li><a href="#" onclick="return false;">Dyn (216.146.36.36)</a></li>
<li><a href="#" onclick="return false;">Recursive Query Via Root Servers (root-servers)</a></li>
<li><a href="#" onclick="return false;">a.root-servers.net</a></li>
<li><a href="#" onclick="return false;">b.root-servers.net</a></li>
<li><a href="#" onclick="return false;">c.root-servers.net</a></li>
<li><a href="#" onclick="return false;">d.root-servers.net</a></li>
<li><a href="#" onclick="return false;">e.root-servers.net</a></li>
<li><a href="#" onclick="return false;">f.root-servers.net</a></li>
<li><a href="#" onclick="return false;">g.root-servers.net</a></li>
<li><a href="#" onclick="return false;">h.root-servers.net</a></li>
<li><a href="#" onclick="return false;">i.root-servers.net</a></li>
<li><a href="#" onclick="return false;">j.root-servers.net</a></li>
<li><a href="#" onclick="return false;">k.root-servers.net</a></li>
<li><a href="#" onclick="return false;">l.root-servers.net</a></li>
<li><a href="#" onclick="return false;">m.root-servers.net</a></li>
<li><a href="#">This Server (this-server)</a></li>
<li><a href="#">Google (8.8.8.8)</a></li>
<li><a href="#">Google (8.8.4.4)</a></li>
<li><a href="#">IBM Quad9 Secure (9.9.9.9)</a></li>
<li><a href="#">IBM Quad9 Unsecure (9.9.9.10)</a></li>
<li><a href="#">OpenDNS (208.67.222.222)</a></li>
<li><a href="#">OpenDNS (208.67.220.220)</a></li>
<li><a href="#">Level3 (4.2.2.1)</a></li>
<li><a href="#">Level3 (4.2.2.2)</a></li>
<li><a href="#">Ultra (156.154.70.1)</a></li>
<li><a href="#">Ultra (156.154.71.1)</a></li>
<li><a href="#">Dyn (216.146.35.35)</a></li>
<li><a href="#">Dyn (216.146.36.36)</a></li>
<li><a href="#">Recursive Query Via Root Servers (root-servers)</a></li>
<li><a href="#">a.root-servers.net</a></li>
<li><a href="#">b.root-servers.net</a></li>
<li><a href="#">c.root-servers.net</a></li>
<li><a href="#">d.root-servers.net</a></li>
<li><a href="#">e.root-servers.net</a></li>
<li><a href="#">f.root-servers.net</a></li>
<li><a href="#">g.root-servers.net</a></li>
<li><a href="#">h.root-servers.net</a></li>
<li><a href="#">i.root-servers.net</a></li>
<li><a href="#">j.root-servers.net</a></li>
<li><a href="#">k.root-servers.net</a></li>
<li><a href="#">l.root-servers.net</a></li>
<li><a href="#">m.root-servers.net</a></li>
</ul>
<span role="button" class="input-group-addon dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"><span class="caret"></span></span>
</div>
@@ -450,6 +452,18 @@
</div>
</div>
<div class="well well-sm">
<div class="form-group">
<div class="checkbox">
<label>
<input id="chkLogQueries" type="checkbox"> Log All Queries
</label>
</div>
<div>Use this option to log every query received by this Dns Server and the corresponding response answers into the log file. Enabling this option will significantly increase the log file size. Error and audit logs are enabled by default.</div>
</div>
</div>
<div class="well well-sm">
<div class="form-group">
<div class="checkbox">

View File

@@ -60,7 +60,8 @@ $(function () {
$("#footer").html("<div class=\"content\"><a href=\"https://technitium.com\" target=\"_blank\">Technitium</a> | <a href=\"http://blog.technitium.com\" target=\"_blank\">Blog</a> | <a href=\"http://dnsclient.net/\" target=\"_blank\">DNS Client</a> | <a href=\"https://github.com/TechnitiumSoftware/DnsServer\" target=\"_blank\"><i class=\"fa fa-github\"></i>&nbsp;GitHub</a> | <a href=\"https://technitium.com/aboutus.html\" target=\"_blank\">About</a></div>");
//dropdown list box support
$('.dropdown').on('click', 'a', function () {
$('.dropdown').on('click', 'a', function (e) {
e.preventDefault();
$(this).closest('.dropdown').find('input').val($(this).text());
});
@@ -189,7 +190,12 @@ function checkForUpdate() {
var lnkNewVersionAvailable = $("#lnkNewVersionAvailable");
if (responseJSON.response.updateAvailable) {
lnkNewVersionAvailable.attr("href", responseJSON.response.landingPage);
if (responseJSON.response.displayText == null)
responseJSON.response.displayText = "New Version Available!";
lnkNewVersionAvailable.text(responseJSON.response.displayText);
lnkNewVersionAvailable.attr("href", responseJSON.response.downloadLink);
lnkNewVersionAvailable.show();
}
else {
@@ -215,6 +221,7 @@ function loadDnsSettings() {
HTTPRequest({
url: "/api/getDnsSettings?token=" + token,
success: function (responseJSON) {
document.title = "Technitium DNS Server " + responseJSON.response.version + " - " + responseJSON.response.serverDomain;
$("#txtServerDomain").val(responseJSON.response.serverDomain);
$("#lblServerDomain").text(" - " + responseJSON.response.serverDomain);
@@ -222,6 +229,7 @@ function loadDnsSettings() {
$("#txtWebServicePort").val(responseJSON.response.webServicePort);
$("#chkPreferIPv6").prop("checked", responseJSON.response.preferIPv6);
$("#chkLogQueries").prop("checked", responseJSON.response.logQueries);
$("#chkAllowRecursion").prop("checked", responseJSON.response.allowRecursion);
var forwarders = responseJSON.response.forwarders;
@@ -266,6 +274,7 @@ function saveDnsSettings() {
}
var preferIPv6 = $("#chkPreferIPv6").prop('checked');
var logQueries = $("#chkLogQueries").prop('checked');
var allowRecursion = $("#chkAllowRecursion").prop('checked');
var forwarders = $("#txtForwarders").val().replace(/\n/g, ",");
@@ -287,9 +296,11 @@ function saveDnsSettings() {
var btn = $("#btnSaveDnsSettings").button('loading');
HTTPRequest({
url: "/api/setDnsSettings?token=" + token + "&serverDomain=" + serverDomain + "&webServicePort=" + webServicePort + "&preferIPv6=" + preferIPv6 + "&allowRecursion=" + allowRecursion + "&forwarders=" + forwarders,
url: "/api/setDnsSettings?token=" + token + "&serverDomain=" + serverDomain + "&webServicePort=" + webServicePort + "&preferIPv6=" + preferIPv6 + "&logQueries=" + logQueries + "&allowRecursion=" + allowRecursion + "&forwarders=" + forwarders,
success: function (responseJSON) {
$("#lblServerDomain").text(" - " + serverDomain);
document.title = "Technitium DNS Server " + responseJSON.response.version + " - " + responseJSON.response.serverDomain;
$("#lblServerDomain").text(" - " + responseJSON.response.serverDomain);
$("#txtServerDomain").val(responseJSON.response.serverDomain)
btn.button('reset');
showAlert("success", "Settings Saved!", "Dns server settings were saved successfully.");
@@ -465,7 +476,7 @@ function refreshZonesList(hideLoader) {
for (var i = 0; i < zones.length; i++) {
var zoneName = htmlEncode(zones[i].zoneName);
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return viewZone('" + zoneName + "', " + zones[i].disabled + ");\"" + (zones[i].disabled ? "style=\"color: #ff0000 !important\"" : "") + ">" + zoneName + "</a></div>"
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return viewZone('" + zoneName + "', " + zones[i].disabled + ");\"" + (zones[i].disabled ? "style=\"color: #ffa500 !important\"" : "") + ">" + zoneName + "</a></div>"
}
lstZones.html(list);
@@ -515,7 +526,7 @@ function addZone() {
function deleteZone() {
var domain = $("#txtZoneViewerTitle").text();
var domain = $("#spanZoneViewerTitle").text();
if (!confirm("Are you sure you want to permanently delete the zone '" + domain + "' and all its records?"))
return false;
@@ -546,7 +557,7 @@ function deleteZone() {
function enableZone() {
var domain = $("#txtZoneViewerTitle").text();
var domain = $("#spanZoneViewerTitle").text();
if (!confirm("Are you sure you want to enable the zone '" + domain + "'?"))
return false;
@@ -579,7 +590,7 @@ function enableZone() {
function disableZone() {
var domain = $("#txtZoneViewerTitle").text();
var domain = $("#spanZoneViewerTitle").text();
if (!confirm("Are you sure you want to disable the zone '" + domain + "'?"))
return false;
@@ -613,11 +624,10 @@ function disableZone() {
function viewZone(domain, disabled) {
var divZoneViewer = $("#divZoneViewer");
var txtZoneViewerTitle = $("#txtZoneViewerTitle");
var divZoneViewerBody = $("#divZoneViewerBody");
var divZoneViewerLoader = $("#divZoneViewerLoader");
txtZoneViewerTitle.text(domain);
$("#spanZoneViewerTitle").text(domain);
if (disabled) {
$("#btnEnableZone").show();
@@ -628,6 +638,8 @@ function viewZone(domain, disabled) {
$("#btnDisableZone").show();
}
$("#spanZoneViewerTitleLink").html("<a href=\"http://" + domain + "/\" target=\"_blank\"><span class=\"glyphicon glyphicon-new-window\" aria-hidden=\"true\"></span></a>");
divZoneViewerLoader.show();
divZoneViewerBody.hide();
divZoneViewer.show();
@@ -1042,7 +1054,7 @@ function modifyAddRecordForm() {
function addResourceRecord() {
var domain = $("#txtZoneViewerTitle").text();
var domain = $("#spanZoneViewerTitle").text();
var type = $("#optAddRecordType").val();
var subDomain = $("#txtAddRecordName").val();
@@ -1165,7 +1177,7 @@ function updateResourceRecord(objBtn) {
var id = btnUpdate.attr("data-id");
var divData = $("#data" + id);
var domain = $("#txtZoneViewerTitle").text();
var domain = $("#spanZoneViewerTitle").text();
var type = $("#optType" + id).val();
var oldName;