mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-01 10:56:23 +01:00
Initial commit for v2.4.3
This commit is contained in:
702
static/baseTemplate/custom-js/system-status.js
Normal file
702
static/baseTemplate/custom-js/system-status.js
Normal file
@@ -0,0 +1,702 @@
|
||||
/**
|
||||
* Created by usman on 7/24/17.
|
||||
*/
|
||||
|
||||
/* Utilities */
|
||||
|
||||
function getCookie(name) {
|
||||
var cookieValue = null;
|
||||
if (document.cookie && document.cookie !== '') {
|
||||
var cookies = document.cookie.split(';');
|
||||
for (var i = 0; i < cookies.length; i++) {
|
||||
var cookie = jQuery.trim(cookies[i]);
|
||||
// Does this cookie string begin with the name we want?
|
||||
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
|
||||
function randomPassword(length) {
|
||||
var chars = "abcdefghijklmnopqrstuvwxyz!@#%^*-+ABCDEFGHIJKLMNOP1234567890";
|
||||
var pass = "";
|
||||
for (var x = 0; x < length; x++) {
|
||||
var i = Math.floor(Math.random() * chars.length);
|
||||
pass += chars.charAt(i);
|
||||
}
|
||||
return pass;
|
||||
}
|
||||
|
||||
/* Utilities ends here */
|
||||
|
||||
/* Java script code to monitor system status */
|
||||
|
||||
var app = angular.module('CyberCP', []);
|
||||
|
||||
var globalScope;
|
||||
|
||||
function GlobalRespSuccess(response) {
|
||||
globalScope.cyberPanelLoading = true;
|
||||
if (response.data.status === 1) {
|
||||
new PNotify({
|
||||
title: 'Success',
|
||||
text: 'Successfully executed.',
|
||||
type: 'success'
|
||||
});
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
function GlobalRespFailed(response) {
|
||||
globalScope.cyberPanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
function GLobalAjaxCall(http, url, data, successCallBack, failureCallBack) {
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
http.post(url, data, config).then(successCallBack, failureCallBack);
|
||||
}
|
||||
|
||||
app.config(['$interpolateProvider', function ($interpolateProvider) {
|
||||
$interpolateProvider.startSymbol('{$');
|
||||
$interpolateProvider.endSymbol('$}');
|
||||
}]);
|
||||
|
||||
app.filter('getwebsitename', function () {
|
||||
return function (domain, uppercase) {
|
||||
|
||||
if (domain !== undefined) {
|
||||
|
||||
domain = domain.replace(/-/g, '');
|
||||
|
||||
var domainName = domain.split(".");
|
||||
|
||||
var finalDomainName = domainName[0];
|
||||
|
||||
if (finalDomainName.length > 5) {
|
||||
finalDomainName = finalDomainName.substring(0, 4);
|
||||
}
|
||||
|
||||
return finalDomainName;
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
function getWebsiteName(domain) {
|
||||
if (domain !== undefined) {
|
||||
|
||||
domain = domain.replace(/-/g, '');
|
||||
|
||||
var domainName = domain.split(".");
|
||||
|
||||
var finalDomainName = domainName[0];
|
||||
|
||||
if (finalDomainName.length > 5) {
|
||||
finalDomainName = finalDomainName.substring(0, 4);
|
||||
}
|
||||
|
||||
return finalDomainName;
|
||||
}
|
||||
}
|
||||
|
||||
app.controller('systemStatusInfo', function ($scope, $http, $timeout) {
|
||||
|
||||
//getStuff();
|
||||
|
||||
function getStuff() {
|
||||
|
||||
|
||||
url = "/base/getSystemStatus";
|
||||
|
||||
$http.get(url).then(ListInitialData, cantLoadInitialData);
|
||||
|
||||
|
||||
function ListInitialData(response) {
|
||||
|
||||
$scope.cpuUsage = response.data.cpuUsage;
|
||||
$scope.ramUsage = response.data.ramUsage;
|
||||
$scope.diskUsage = response.data.diskUsage;
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialData(response) {
|
||||
}
|
||||
|
||||
//$timeout(getStuff, 2000);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
/* Admin status */
|
||||
|
||||
app.controller('adminController', function ($scope, $http, $timeout) {
|
||||
|
||||
url = "/base/getAdminStatus";
|
||||
|
||||
$http.get(url).then(ListInitialData, cantLoadInitialData);
|
||||
|
||||
|
||||
function ListInitialData(response) {
|
||||
|
||||
|
||||
$scope.currentAdmin = response.data.adminName;
|
||||
$scope.admin_type = response.data.admin_type;
|
||||
|
||||
$("#serverIPAddress").text(response.data.serverIPAddress);
|
||||
|
||||
if (response.data.admin === 0) {
|
||||
$('.serverACL').hide();
|
||||
|
||||
|
||||
if (!Boolean(response.data.versionManagement)) {
|
||||
$('.versionManagement').hide();
|
||||
}
|
||||
// User Management
|
||||
if (!Boolean(response.data.createNewUser)) {
|
||||
$('.createNewUser').hide();
|
||||
}
|
||||
if (!Boolean(response.data.listUsers)) {
|
||||
$('.listUsers').hide();
|
||||
}
|
||||
if (!Boolean(response.data.resellerCenter)) {
|
||||
$('.resellerCenter').hide();
|
||||
}
|
||||
if (!Boolean(response.data.deleteUser)) {
|
||||
$('.deleteUser').hide();
|
||||
}
|
||||
if (!Boolean(response.data.changeUserACL)) {
|
||||
$('.changeUserACL').hide();
|
||||
}
|
||||
// Website Management
|
||||
if (!Boolean(response.data.createWebsite)) {
|
||||
$('.createWebsite').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.modifyWebsite)) {
|
||||
$('.modifyWebsite').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.suspendWebsite)) {
|
||||
$('.suspendWebsite').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.deleteWebsite)) {
|
||||
$('.deleteWebsite').hide();
|
||||
}
|
||||
|
||||
// Package Management
|
||||
|
||||
if (!Boolean(response.data.createPackage)) {
|
||||
$('.createPackage').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.listPackages)) {
|
||||
$('.listPackages').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.deletePackage)) {
|
||||
$('.deletePackage').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.modifyPackage)) {
|
||||
$('.modifyPackage').hide();
|
||||
}
|
||||
|
||||
// Database Management
|
||||
|
||||
if (!Boolean(response.data.createDatabase)) {
|
||||
$('.createDatabase').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.deleteDatabase)) {
|
||||
$('.deleteDatabase').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.listDatabases)) {
|
||||
$('.listDatabases').hide();
|
||||
}
|
||||
|
||||
// DNS Management
|
||||
|
||||
if (!Boolean(response.data.dnsAsWhole)) {
|
||||
$('.dnsAsWhole').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.createNameServer)) {
|
||||
$('.createNameServer').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.createDNSZone)) {
|
||||
$('.createDNSZone').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.deleteZone)) {
|
||||
$('.addDeleteRecords').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.addDeleteRecords)) {
|
||||
$('.deleteDatabase').hide();
|
||||
}
|
||||
|
||||
// Email Management
|
||||
|
||||
if (!Boolean(response.data.emailAsWhole)) {
|
||||
$('.emailAsWhole').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.listEmails)) {
|
||||
$('.listEmails').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.createEmail)) {
|
||||
$('.createEmail').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.deleteEmail)) {
|
||||
$('.deleteEmail').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.emailForwarding)) {
|
||||
$('.emailForwarding').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.changeEmailPassword)) {
|
||||
$('.changeEmailPassword').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.dkimManager)) {
|
||||
$('.dkimManager').hide();
|
||||
}
|
||||
|
||||
|
||||
// FTP Management
|
||||
|
||||
if (!Boolean(response.data.ftpAsWhole)) {
|
||||
$('.ftpAsWhole').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.createFTPAccount)) {
|
||||
$('.createFTPAccount').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.deleteFTPAccount)) {
|
||||
$('.deleteFTPAccount').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.listFTPAccounts)) {
|
||||
$('.listFTPAccounts').hide();
|
||||
}
|
||||
|
||||
// Backup Management
|
||||
|
||||
if (!Boolean(response.data.createBackup)) {
|
||||
$('.createBackup').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.restoreBackup)) {
|
||||
$('.restoreBackup').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.addDeleteDestinations)) {
|
||||
$('.addDeleteDestinations').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.scheduleBackups)) {
|
||||
$('.scheduleBackups').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.remoteBackups)) {
|
||||
$('.remoteBackups').hide();
|
||||
}
|
||||
|
||||
|
||||
// SSL Management
|
||||
|
||||
if (!Boolean(response.data.manageSSL)) {
|
||||
$('.manageSSL').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.hostnameSSL)) {
|
||||
$('.hostnameSSL').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.mailServerSSL)) {
|
||||
$('.mailServerSSL').hide();
|
||||
}
|
||||
|
||||
|
||||
} else {
|
||||
|
||||
if (!Boolean(response.data.emailAsWhole)) {
|
||||
$('.emailAsWhole').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.ftpAsWhole)) {
|
||||
$('.ftpAsWhole').hide();
|
||||
}
|
||||
|
||||
if (!Boolean(response.data.dnsAsWhole)) {
|
||||
$('.dnsAsWhole').hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function cantLoadInitialData(response) {
|
||||
}
|
||||
});
|
||||
|
||||
/* Load average */
|
||||
|
||||
app.controller('loadAvg', function ($scope, $http, $timeout) {
|
||||
|
||||
getLoadAvg();
|
||||
|
||||
function getLoadAvg() {
|
||||
|
||||
|
||||
url = "/base/getLoadAverage";
|
||||
|
||||
$http.get(url).then(ListLoadAvgData, cantGetLoadAvgData);
|
||||
|
||||
|
||||
function ListLoadAvgData(response) {
|
||||
|
||||
$scope.one = response.data.one;
|
||||
$scope.two = response.data.two;
|
||||
$scope.three = response.data.three;
|
||||
|
||||
}
|
||||
|
||||
function cantGetLoadAvgData(response) {
|
||||
console.log("Can't get load average data");
|
||||
}
|
||||
|
||||
//$timeout(getStuff, 2000);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
/// home page system status
|
||||
|
||||
app.controller('homePageStatus', function ($scope, $http, $timeout) {
|
||||
|
||||
getStuff();
|
||||
getLoadAvg();
|
||||
|
||||
function getStuff() {
|
||||
|
||||
|
||||
url = "/base/getSystemStatus";
|
||||
|
||||
$http.get(url).then(ListInitialData, cantLoadInitialData);
|
||||
|
||||
|
||||
function ListInitialData(response) {
|
||||
|
||||
console.log(response.data);
|
||||
|
||||
$("#redcircle").removeClass();
|
||||
$("#greencircle").removeClass();
|
||||
$("#pinkcircle").removeClass();
|
||||
|
||||
|
||||
$scope.cpuUsage = response.data.cpuUsage;
|
||||
$scope.ramUsage = response.data.ramUsage;
|
||||
$scope.diskUsage = response.data.diskUsage;
|
||||
|
||||
$scope.RequestProcessing = response.data.RequestProcessing;
|
||||
$scope.TotalRequests = response.data.TotalRequests;
|
||||
|
||||
$scope.MAXCONN = response.data.MAXCONN;
|
||||
$scope.MAXSSL = response.data.MAXSSL;
|
||||
$scope.Avail = response.data.Avail;
|
||||
$scope.AvailSSL = response.data.AvailSSL;
|
||||
|
||||
|
||||
$("#redcircle").addClass("c100");
|
||||
$("#redcircle").addClass("p" + $scope.cpuUsage);
|
||||
$("#redcircle").addClass("red");
|
||||
|
||||
$("#greencircle").addClass("c100");
|
||||
$("#greencircle").addClass("p" + $scope.ramUsage);
|
||||
$("#greencircle").addClass("green");
|
||||
|
||||
|
||||
$("#pinkcircle").addClass("c100");
|
||||
$("#pinkcircle").addClass("p" + $scope.diskUsage);
|
||||
$("#pinkcircle").addClass("red");
|
||||
|
||||
|
||||
// home page cpu,ram and disk update.
|
||||
var rotationMultiplier = 3.6;
|
||||
// For each div that its id ends with "circle", do the following.
|
||||
$("div[id$='circle']").each(function () {
|
||||
// Save all of its classes in an array.
|
||||
var classList = $(this).attr('class').split(/\s+/);
|
||||
// Iterate over the array
|
||||
for (var i = 0; i < classList.length; i++) {
|
||||
/* If there's about a percentage class, take the actual percentage and apply the
|
||||
css transformations in all occurences of the specified percentage class,
|
||||
even for the divs without an id ending with "circle" */
|
||||
if (classList[i].match("^p" + $scope.cpuUsage)) {
|
||||
var rotationPercentage = $scope.cpuUsage;
|
||||
var rotationDegrees = rotationMultiplier * rotationPercentage;
|
||||
$('.c100.p' + rotationPercentage + ' .bar').css({
|
||||
'-webkit-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-moz-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-ms-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-o-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'transform': 'rotate(' + rotationDegrees + 'deg)'
|
||||
});
|
||||
} else if (classList[i].match("^p" + $scope.ramUsage)) {
|
||||
var rotationPercentage = response.data.ramUsage;
|
||||
;
|
||||
var rotationDegrees = rotationMultiplier * rotationPercentage;
|
||||
$('.c100.p' + rotationPercentage + ' .bar').css({
|
||||
'-webkit-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-moz-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-ms-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-o-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'transform': 'rotate(' + rotationDegrees + 'deg)'
|
||||
});
|
||||
} else if (classList[i].match("^p" + $scope.diskUsage)) {
|
||||
var rotationPercentage = response.data.diskUsage;
|
||||
;
|
||||
var rotationDegrees = rotationMultiplier * rotationPercentage;
|
||||
$('.c100.p' + rotationPercentage + ' .bar').css({
|
||||
'-webkit-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-moz-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-ms-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'-o-transform': 'rotate(' + rotationDegrees + 'deg)',
|
||||
'transform': 'rotate(' + rotationDegrees + 'deg)'
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialData(response) {
|
||||
console.log("not good");
|
||||
}
|
||||
|
||||
$timeout(getStuff, 2000);
|
||||
|
||||
}
|
||||
|
||||
function getLoadAvg() {
|
||||
|
||||
url = "/base/getLoadAverage";
|
||||
|
||||
$http.get(url).then(ListLoadAvgData, cantGetLoadAvgData);
|
||||
|
||||
|
||||
function ListLoadAvgData(response) {
|
||||
|
||||
$scope.one = response.data.one;
|
||||
$scope.two = response.data.two;
|
||||
$scope.three = response.data.three;
|
||||
|
||||
//document.getElementById("load1").innerHTML = $scope.one;
|
||||
//document.getElementById("load2").innerHTML = $scope.two;
|
||||
//document.getElementById("load3").innerHTML = $scope.three;
|
||||
}
|
||||
|
||||
function cantGetLoadAvgData(response) {
|
||||
console.log("Can't get load average data");
|
||||
}
|
||||
|
||||
$timeout(getLoadAvg, 2000);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
////////////
|
||||
|
||||
function increment() {
|
||||
$('.box').hide();
|
||||
setTimeout(function () {
|
||||
$('.box').show();
|
||||
}, 100);
|
||||
|
||||
|
||||
}
|
||||
|
||||
increment();
|
||||
|
||||
////////////
|
||||
|
||||
app.controller('versionManagment', function ($scope, $http, $timeout) {
|
||||
|
||||
$scope.upgradeLoading = true;
|
||||
$scope.upgradelogBox = true;
|
||||
|
||||
$scope.updateError = true;
|
||||
$scope.updateStarted = true;
|
||||
$scope.updateFinish = true;
|
||||
$scope.couldNotConnect = true;
|
||||
|
||||
|
||||
$scope.upgrade = function () {
|
||||
|
||||
$scope.upgradeLoading = false;
|
||||
$scope.updateError = true;
|
||||
$scope.updateStarted = true;
|
||||
$scope.updateFinish = true;
|
||||
$scope.couldNotConnect = true;
|
||||
|
||||
|
||||
url = "/base/upgrade";
|
||||
|
||||
$http.get(url).then(ListInitialData, cantLoadInitialData);
|
||||
|
||||
|
||||
function ListInitialData(response) {
|
||||
|
||||
if (response.data.upgrade == 1) {
|
||||
$scope.upgradeLoading = true;
|
||||
$scope.updateError = true;
|
||||
$scope.updateStarted = false;
|
||||
$scope.updateFinish = true;
|
||||
$scope.couldNotConnect = true;
|
||||
getUpgradeStatus();
|
||||
} else {
|
||||
$scope.updateError = false;
|
||||
$scope.updateStarted = true;
|
||||
$scope.updateFinish = true;
|
||||
$scope.couldNotConnect = true;
|
||||
$scope.errorMessage = response.data.error_message;
|
||||
}
|
||||
}
|
||||
|
||||
function cantLoadInitialData(response) {
|
||||
|
||||
$scope.updateError = true;
|
||||
$scope.updateStarted = true;
|
||||
$scope.updateFinish = true;
|
||||
$scope.couldNotConnect = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
function getUpgradeStatus() {
|
||||
|
||||
$scope.upgradeLoading = false;
|
||||
|
||||
url = "/base/UpgradeStatus";
|
||||
|
||||
var data = {};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
|
||||
|
||||
if (response.data.upgradeStatus === 1) {
|
||||
|
||||
if (response.data.finished === 1) {
|
||||
$timeout.cancel();
|
||||
$scope.upgradelogBox = false;
|
||||
$scope.upgradeLog = response.data.upgradeLog;
|
||||
$scope.upgradeLoading = true;
|
||||
$scope.updateError = true;
|
||||
$scope.updateStarted = true;
|
||||
$scope.updateFinish = false;
|
||||
$scope.couldNotConnect = true;
|
||||
|
||||
} else {
|
||||
$scope.upgradelogBox = false;
|
||||
$scope.upgradeLog = response.data.upgradeLog;
|
||||
$timeout(getUpgradeStatus, 2000);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
|
||||
$scope.updateError = true;
|
||||
$scope.updateStarted = true;
|
||||
$scope.updateFinish = true;
|
||||
$scope.couldNotConnect = false;
|
||||
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
});
|
||||
|
||||
|
||||
app.controller('designtheme', function ($scope, $http, $timeout) {
|
||||
|
||||
$scope.themeloading = true;
|
||||
|
||||
|
||||
$scope.getthemedata = function () {
|
||||
$scope.themeloading = false;
|
||||
|
||||
url = "/base/getthemedata";
|
||||
|
||||
var data = {
|
||||
package: "helo world",
|
||||
Themename: $('#stheme').val(),
|
||||
};
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
};
|
||||
|
||||
$http.post(url, data, config).then(Listgetthemedata, cantgetthemedata);
|
||||
|
||||
|
||||
function Listgetthemedata(response) {
|
||||
$scope.themeloading = true;
|
||||
|
||||
if (response.data.status === 1) {
|
||||
document.getElementById('appendthemedata').innerHTML = "";
|
||||
$("#appendthemedata").val(response.data.csscontent)
|
||||
} else {
|
||||
alert(response.data.error_message)
|
||||
}
|
||||
}
|
||||
|
||||
function cantgetthemedata(response) {
|
||||
$scope.themeloading = true;
|
||||
console.log(response);
|
||||
}
|
||||
|
||||
//$timeout(getStuff, 2000);
|
||||
|
||||
};
|
||||
});
|
||||
Reference in New Issue
Block a user