webapp main.js: using moment js to format date time. Moved code to new js files.

This commit is contained in:
Shreyas Zare
2021-09-11 16:13:53 +05:30
parent 35034fc214
commit 3b0edd5bcd

View File

@@ -57,6 +57,8 @@ function showPageMain(username) {
$("#settingsTabPaneGeneral").addClass("active");
$("#dhcpTabListLeases").addClass("active");
$("#dhcpTabPaneLeases").addClass("active");
$("#logsTabListLogViewer").addClass("active");
$("#logsTabPaneLogViewer").addClass("active");
$("#divDhcpViewScopes").show();
$("#divDhcpEditScope").hide();
@@ -909,7 +911,7 @@ function loadDnsSettings() {
if (responseJSON.response.temporaryDisableBlockingTill == null)
$("#lblTemporaryDisableBlockingTill").text("Not Set");
else
$("#lblTemporaryDisableBlockingTill").text(responseJSON.response.temporaryDisableBlockingTill);
$("#lblTemporaryDisableBlockingTill").text(moment(responseJSON.response.temporaryDisableBlockingTill).local().format("YYYY-MM-DD HH:mm:ss"));
$("#txtTemporaryDisableBlockingMinutes").val("");
@@ -967,10 +969,17 @@ function loadDnsSettings() {
$("#txtBlockListUpdateIntervalHours").val(responseJSON.response.blockListUpdateIntervalHours);
if (responseJSON.response.blockListNextUpdatedOn == null)
if (responseJSON.response.blockListNextUpdatedOn == null) {
$("#lblBlockListNextUpdatedOn").text("Not Scheduled");
else
$("#lblBlockListNextUpdatedOn").text(responseJSON.response.blockListNextUpdatedOn);
}
else {
var blockListNextUpdatedOn = moment(responseJSON.response.blockListNextUpdatedOn);
if (moment().utc().isBefore(blockListNextUpdatedOn))
$("#lblBlockListNextUpdatedOn").text(blockListNextUpdatedOn.local().format("YYYY-MM-DD HH:mm:ss"));
else
$("#lblBlockListNextUpdatedOn").text("Updating Now");
}
divDnsSettingsLoader.hide();
divDnsSettings.show();
@@ -1393,7 +1402,7 @@ function temporaryDisableBlockingNow() {
btn.button('reset');
$("#chkEnableBlocking").prop("checked", false);
$("#lblTemporaryDisableBlockingTill").text(responseJSON.response.temporaryDisableBlockingTill);
$("#lblTemporaryDisableBlockingTill").text(moment(responseJSON.response.temporaryDisableBlockingTill).local().format("YYYY-MM-DD HH:mm:ss"));
showAlert("success", "Blocking Disabled!", "Blocking was successfully disabled temporarily for " + htmlEncode(minutes) + " minute(s).");
},
@@ -1409,22 +1418,6 @@ function temporaryDisableBlockingNow() {
return false;
}
function cleanTextList(text) {
text = text.replace(/\n/g, ",");
while (text.indexOf(",,") !== -1) {
text = text.replace(/,,/g, ",");
}
if (text.startsWith(","))
text = text.substr(1);
if (text.endsWith(","))
text = text.substr(0, text.length - 1);
return text;
}
function updateChart(chart, data) {
chart.data = data;
chart.update();
@@ -1849,392 +1842,6 @@ function showTopStats(statsType, limit) {
return false;
}
function flushDnsCache() {
if (!confirm("Are you sure to flush the DNS Server cache?"))
return false;
var btn = $("#btnFlushDnsCache").button('loading');
HTTPRequest({
url: "/api/flushDnsCache?token=" + token,
success: function (responseJSON) {
btn.button('reset');
showAlert("success", "Cache Flushed!", "DNS Server cache was flushed successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
}
});
return false;
}
function deleteCachedZone() {
var domain = $("#txtCachedZoneViewerTitle").text();
if (!confirm("Are you sure you want to delete the cached zone '" + domain + "' and all its records?"))
return false;
var btn = $("#btnDeleteCachedZone").button('loading');
HTTPRequest({
url: "/api/deleteCachedZone?token=" + token + "&domain=" + domain,
success: function (responseJSON) {
refreshCachedZonesList(getParentDomain(domain), "up");
btn.button('reset');
showAlert("success", "Cached Zone Deleted!", "Cached zone was deleted successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
}
});
return false;
}
function getParentDomain(domain) {
if ((domain != null) && (domain != "")) {
var parentDomain;
var i = domain.indexOf(".");
if (i == -1)
parentDomain = "";
else
parentDomain = domain.substr(i + 1);
return parentDomain;
}
return null;
}
function refreshCachedZonesList(domain, direction) {
if (domain == null)
domain = "";
domain.toLowerCase();
var lstCachedZones = $("#lstCachedZones");
var divCachedZoneViewer = $("#divCachedZoneViewer");
var preCachedZoneViewerBody = $("#preCachedZoneViewerBody");
divCachedZoneViewer.hide();
preCachedZoneViewerBody.hide();
HTTPRequest({
url: "/api/listCachedZones?token=" + token + "&domain=" + domain + ((direction == null) ? "" : "&direction=" + direction),
success: function (responseJSON) {
var newDomain = responseJSON.response.domain;
var zones = responseJSON.response.zones;
var list = "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshCachedZonesList('" + newDomain + "');\"><b>[refresh]</b></a></div>"
var parentDomain = getParentDomain(newDomain);
if (parentDomain != null)
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshCachedZonesList('" + parentDomain + "', 'up');\"><b>[up]</b></a></div>"
for (var i = 0; i < zones.length; i++) {
var zoneName = htmlEncode(zones[i]);
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshCachedZonesList('" + zoneName + "');\">" + zoneName + "</a></div>"
}
lstCachedZones.html(list);
if (newDomain == "") {
$("#txtCachedZoneViewerTitle").text("<ROOT>");
$("#btnDeleteCachedZone").hide();
}
else {
$("#txtCachedZoneViewerTitle").text(newDomain);
$("#btnDeleteCachedZone").show();
}
if (responseJSON.response.records.length > 0) {
preCachedZoneViewerBody.text(JSON.stringify(responseJSON.response.records, null, 2));
preCachedZoneViewerBody.show();
}
divCachedZoneViewer.show();
},
invalidToken: function () {
showPageLogin();
},
error: function () {
lstCachedZones.html("<div class=\"zone\"><a href=\"#\" onclick=\"return refreshCachedZonesList('" + domain + "');\"><b>[refresh]</b></a></div>");
},
objLoaderPlaceholder: lstCachedZones
});
return false;
}
function allowZone() {
var domain = $("#txtAllowZone").val();
if ((domain === null) || (domain === "")) {
showAlert("warning", "Missing!", "Please enter a domain name to allow.");
$("#txtAllowZone").focus();
return false;
}
var btn = $("#btnAllowZone").button('loading');
HTTPRequest({
url: "/api/allowZone?token=" + token + "&domain=" + domain,
success: function (responseJSON) {
refreshAllowedZonesList(domain);
$("#txtAllowZone").val("");
btn.button('reset');
showAlert("success", "Zone Allowed!", "Zone was allowed successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
}
});
return false;
}
function deleteAllowedZone() {
var domain = $("#txtAllowedZoneViewerTitle").text();
if (!confirm("Are you sure you want to delete the allowed zone '" + domain + "'?"))
return false;
var btn = $("#btnDeleteAllowedZone").button('loading');
HTTPRequest({
url: "/api/deleteAllowedZone?token=" + token + "&domain=" + domain,
success: function (responseJSON) {
refreshAllowedZonesList(getParentDomain(domain), "up");
btn.button('reset');
showAlert("success", "Allowed Zone Deleted!", "Allowed zone was deleted successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
}
});
return false;
}
function refreshAllowedZonesList(domain, direction) {
if (domain == null)
domain = "";
domain.toLowerCase();
var lstAllowedZones = $("#lstAllowedZones");
var divAllowedZoneViewer = $("#divAllowedZoneViewer");
var preAllowedZoneViewerBody = $("#preAllowedZoneViewerBody");
divAllowedZoneViewer.hide();
preAllowedZoneViewerBody.hide();
HTTPRequest({
url: "/api/listAllowedZones?token=" + token + "&domain=" + domain + ((direction == null) ? "" : "&direction=" + direction),
success: function (responseJSON) {
var newDomain = responseJSON.response.domain;
var zones = responseJSON.response.zones;
var list = "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshAllowedZonesList('" + newDomain + "');\"><b>[refresh]</b></a></div>"
var parentDomain = getParentDomain(newDomain);
if (parentDomain != null)
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshAllowedZonesList('" + parentDomain + "', 'up');\"><b>[up]</b></a></div>"
for (var i = 0; i < zones.length; i++) {
var zoneName = htmlEncode(zones[i]);
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshAllowedZonesList('" + zoneName + "');\">" + zoneName + "</a></div>"
}
lstAllowedZones.html(list);
if (newDomain == "") {
$("#txtAllowedZoneViewerTitle").text("<ROOT>");
$("#btnDeleteAllowedZone").hide();
}
else {
$("#txtAllowedZoneViewerTitle").text(newDomain);
$("#btnDeleteAllowedZone").show();
}
if (responseJSON.response.records.length > 0) {
preAllowedZoneViewerBody.text(JSON.stringify(responseJSON.response.records, null, 2));
preAllowedZoneViewerBody.show();
}
divAllowedZoneViewer.show();
},
invalidToken: function () {
showPageLogin();
},
error: function () {
lstAllowedZones.html("<div class=\"zone\"><a href=\"#\" onclick=\"return refreshAllowedZonesList('" + domain + "');\"><b>[refresh]</b></a></div>");
},
objLoaderPlaceholder: lstAllowedZones
});
return false;
}
function blockZone() {
var domain = $("#txtBlockZone").val();
if ((domain === null) || (domain === "")) {
showAlert("warning", "Missing!", "Please enter a domain name to block.");
$("#txtBlockZone").focus();
return false;
}
var btn = $("#btnBlockZone").button('loading');
HTTPRequest({
url: "/api/blockZone?token=" + token + "&domain=" + domain,
success: function (responseJSON) {
refreshBlockedZonesList(domain);
$("#txtBlockZone").val("");
btn.button('reset');
showAlert("success", "Zone Blocked!", "Domain was added to Blocked Zone successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
}
});
return false;
}
function deleteBlockedZone() {
var domain = $("#txtBlockedZoneViewerTitle").text();
if (!confirm("Are you sure you want to delete the blocked zone '" + domain + "'?"))
return false;
var btn = $("#btnDeleteBlockedZone").button('loading');
HTTPRequest({
url: "/api/deleteBlockedZone?token=" + token + "&domain=" + domain,
success: function (responseJSON) {
refreshBlockedZonesList(getParentDomain(domain), "up");
btn.button('reset');
showAlert("success", "Blocked Zone Deleted!", "Blocked zone was deleted successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
}
});
return false;
}
function refreshBlockedZonesList(domain, direction) {
if (domain == null)
domain = "";
domain.toLowerCase();
var lstBlockedZones = $("#lstBlockedZones");
var divBlockedZoneViewer = $("#divBlockedZoneViewer");
var preBlockedZoneViewerBody = $("#preBlockedZoneViewerBody");
divBlockedZoneViewer.hide();
preBlockedZoneViewerBody.hide();
HTTPRequest({
url: "/api/listBlockedZones?token=" + token + "&domain=" + domain + ((direction == null) ? "" : "&direction=" + direction),
success: function (responseJSON) {
var newDomain = responseJSON.response.domain;
var zones = responseJSON.response.zones;
var list = "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshBlockedZonesList('" + newDomain + "');\"><b>[refresh]</b></a></div>"
var parentDomain = getParentDomain(newDomain);
if (parentDomain != null)
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshBlockedZonesList('" + parentDomain + "', 'up');\"><b>[up]</b></a></div>"
for (var i = 0; i < zones.length; i++) {
var zoneName = htmlEncode(zones[i]);
list += "<div class=\"zone\"><a href=\"#\" onclick=\"return refreshBlockedZonesList('" + zoneName + "');\">" + zoneName + "</a></div>"
}
lstBlockedZones.html(list);
if (newDomain == "") {
$("#txtBlockedZoneViewerTitle").text("<ROOT>");
$("#btnDeleteBlockedZone").hide();
}
else {
$("#txtBlockedZoneViewerTitle").text(newDomain);
$("#btnDeleteBlockedZone").show();
}
if (responseJSON.response.records.length > 0) {
preBlockedZoneViewerBody.text(JSON.stringify(responseJSON.response.records, null, 2));
preBlockedZoneViewerBody.show();
}
divBlockedZoneViewer.show();
},
invalidToken: function () {
showPageLogin();
},
error: function () {
lstBlockedZones.html("<div class=\"zone\"><a href=\"#\" onclick=\"return refreshBlockedZonesList('" + domain + "');\"><b>[refresh]</b></a></div>");
},
objLoaderPlaceholder: lstBlockedZones
});
return false;
}
function resolveQuery(importRecords) {
if (importRecords == null)
@@ -2347,259 +1954,6 @@ 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 = "<div class=\"log\" style=\"font-size: 14px; padding-bottom: 6px;\"><a href=\"#\" onclick=\"return deleteAllStats();\"><b>[delete all stats]</b></a></div>";
if (logFiles.length == 0) {
list += "<div class=\"log\">No Log Was Found</div>";
}
else {
list += "<div class=\"log\" style=\"font-size: 14px; padding-bottom: 6px;\"><a href=\"#\" onclick=\"return deleteAllLogs();\"><b>[delete all logs]</b></a></div>";
for (var i = 0; i < logFiles.length; i++) {
var logFile = logFiles[i];
list += "<div class=\"log\"><a href=\"#\" onclick=\"return viewLog('" + logFile.fileName + "');\">" + logFile.fileName + " [" + logFile.size + "]</a></div>"
}
}
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 + "?limit=2&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 + "&ts=" + (new Date().getTime()), "_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;
}
function deleteAllLogs() {
if (!confirm("Are you sure you want to permanently delete all log files?"))
return false;
HTTPRequest({
url: "/api/deleteAllLogs?token=" + token,
success: function (responseJSON) {
refreshLogFilesList();
$("#divLogViewer").hide();
showAlert("success", "Logs Deleted!", "All log files were deleted successfully.");
},
invalidToken: function () {
showPageLogin();
}
});
return false;
}
function deleteAllStats() {
if (!confirm("Are you sure you want to permanently delete all stats files?"))
return false;
HTTPRequest({
url: "/api/deleteAllStats?token=" + token,
success: function (responseJSON) {
showAlert("success", "Stats Deleted!", "All stats files were deleted successfully.");
},
invalidToken: function () {
showPageLogin();
}
});
return false;
}
function resetImportAllowedZonesModal() {
$("#divImportAllowedZonesAlert").html("");
$("#txtImportAllowedZones").val("");
setTimeout(function () {
$("#txtImportAllowedZones").focus();
}, 1000);
return false;
}
function importAllowedZones() {
var divImportAllowedZonesAlert = $("#divImportAllowedZonesAlert");
var allowedZones = cleanTextList($("#txtImportAllowedZones").val());
if ((allowedZones.length === 0) || (allowedZones === ",")) {
showAlert("warning", "Missing!", "Please enter allowed zones to import.", divImportAllowedZonesAlert);
$("#txtImportAllowedZones").focus();
return false;
}
var btn = $("#btnImportAllowedZones").button('loading');
HTTPRequest({
url: "/api/importAllowedZones?token=" + token,
data: "allowedZones=" + allowedZones,
success: function (responseJSON) {
$("#modalImportAllowedZones").modal("hide");
btn.button('reset');
showAlert("success", "Imported!", "Domain names were imported to allowed zone successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
},
objAlertPlaceholder: divImportAllowedZonesAlert
});
return false;
}
function exportAllowedZones() {
window.open("/api/exportAllowedZones?token=" + token, "_blank");
showAlert("success", "Exported!", "Allowed zones were exported successfully.");
return false;
}
function resetImportBlockedZonesModal() {
$("#divImportBlockedZonesAlert").html("");
$("#txtImportBlockedZones").val("");
setTimeout(function () {
$("#txtImportBlockedZones").focus();
}, 1000);
return false;
}
function importBlockedZones() {
var divImportBlockedZonesAlert = $("#divImportBlockedZonesAlert");
var blockedZones = cleanTextList($("#txtImportBlockedZones").val());
if ((blockedZones.length === 0) || (blockedZones === ",")) {
showAlert("warning", "Missing!", "Please enter blocked zones to import.", divImportBlockedZonesAlert);
$("#txtImportBlockedZones").focus();
return false;
}
var btn = $("#btnImportBlockedZones").button('loading');
HTTPRequest({
url: "/api/importBlockedZones?token=" + token,
data: "blockedZones=" + blockedZones,
success: function (responseJSON) {
$("#modalImportBlockedZones").modal("hide");
btn.button('reset');
showAlert("success", "Imported!", "Domain names were imported to blocked zone successfully.");
},
error: function () {
btn.button('reset');
},
invalidToken: function () {
btn.button('reset');
showPageLogin();
},
objAlertPlaceholder: divImportBlockedZonesAlert
});
return false;
}
function exportBlockedZones() {
window.open("/api/exportBlockedZones?token=" + token, "_blank");
showAlert("success", "Exported!", "Blocked zones were exported successfully.");
return false;
}
function resetBackupSettingsModal() {
$("#divBackupSettingsAlert").html("");