File: //proc/676643/root/usr/local/CyberCP/websiteFunctions/static/js/websiteFunctions.js
/**
* Created by usman on 7/26/17.
*/
function getCookie(name) {
var cookieValue = null;
var t = document.cookie;
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;
}
var arry = []
function selectpluginJs(val) {
$('#mysearch').hide()
arry.push(val)
// console.log(arry)
document.getElementById('selJS').innerHTML = "";
for (var i = 0; i < arry.length; i++) {
$('#selJS').show()
var mlm = '<span style="background-color: #12207a; color: #FFFFFF; padding: 5px; border-radius: 30px"> ' + arry[i] + ' </span>   '
$('#selJS').append(mlm)
}
}
var DeletePluginURL;
function DeletePluginBuucket(url) {
DeletePluginURL = url;
}
function FinalDeletePluginBuucket() {
window.location.href = DeletePluginURL;
}
var SPVal;
app.controller('WPAddNewPlugin', function ($scope, $http, $timeout, $window, $compile) {
$scope.webSiteCreationLoading = true;
$scope.SearchPluginName = function (val) {
$scope.webSiteCreationLoading = false;
SPVal = val;
url = "/websites/SearchOnkeyupPlugin";
var searchcontent = $scope.searchcontent;
var data = {
pluginname: searchcontent
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.webSiteCreationLoading = true;
if (response.data.status === 1) {
if (SPVal == 'add') {
$('#mysearch').show()
document.getElementById('mysearch').innerHTML = "";
var res = response.data.plugns.plugins
// console.log(res);
for (i = 0; i <= res.length; i++) {
//
var tml = '<option onclick="selectpluginJs(\'' + res[i].slug + '\')" style=" border-bottom: 1px solid rgba(90, 91, 92, 0.5); padding: 5px; " value="' + res[i].slug + '">' + res[i].name + '</option> <br>';
$('#mysearch').append(tml);
}
} else if (SPVal == 'eidt') {
$('#mysearch').show()
document.getElementById('mysearch').innerHTML = "";
var res = response.data.plugns.plugins
// console.log(res);
for (i = 0; i <= res.length; i++) {
//
var tml = '<option ng-click="Addplugin(\'' + res[i].slug + '\')" style=" border-bottom: 1px solid rgba(90, 91, 92, 0.5); padding: 5px; " value="' + res[i].slug + '">' + res[i].name + '</option> <br>';
var temp = $compile(tml)($scope)
angular.element(document.getElementById('mysearch')).append(temp);
}
}
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.AddNewplugin = function () {
url = "/websites/AddNewpluginAjax";
var bucketname = $scope.PluginbucketName
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
config: arry,
Name: bucketname
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Bucket created.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.deletesPlgin = function (val) {
url = "/websites/deletesPlgin";
var data = {
pluginname: val,
pluginbBucketID: $('#pluginbID').html()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
location.reload();
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.Addplugin = function (slug) {
$('#mysearch').hide()
url = "/websites/Addplugineidt";
var data = {
pluginname: slug,
pluginbBucketID: $('#pluginbID').html()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
location.reload();
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
});
var domain_check = 0;
function checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
domain_check = 0;
document.getElementById('Test_Domain').style.display = "block";
document.getElementById('Own_Domain').style.display = "none";
} else {
document.getElementById('Test_Domain').style.display = "none";
document.getElementById('Own_Domain').style.display = "block";
domain_check = 1;
}
// alert(domain_check);
}
app.controller('createWordpress', function ($scope, $http, $timeout, $compile, $window) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var statusFile;
$scope.createWordPresssite = function () {
$scope.webSiteCreationLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
var apacheBackend = 0;
if ($scope.apacheBackend === true) {
apacheBackend = 1;
} else {
apacheBackend = 0
}
var package = $scope.packageForWebsite;
var websiteOwner = $scope.websiteOwner;
var WPtitle = $scope.WPtitle;
// if (domain_check == 0) {
// var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
// var domainNameCreate = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
// }
// if (domain_check == 1) {
//
// var domainNameCreate = $scope.own_domainNameCreate;
// }
var domainNameCreate = $scope.domainNameCreate;
var WPUsername = $scope.WPUsername;
var adminEmail = $scope.adminEmail;
var WPPassword = $scope.WPPassword;
var WPVersions = $scope.WPVersions;
var pluginbucket = $scope.pluginbucket;
var autoupdates = $scope.autoupdates;
var pluginupdates = $scope.pluginupdates;
var themeupdates = $scope.themeupdates;
if (domain_check == 0) {
var path = "";
}
if (domain_check = 1) {
var path = $scope.installPath;
}
var home = "1";
if (typeof path != 'undefined') {
home = "0";
}
//alert(domainNameCreate);
var data = {
title: WPtitle,
domain: domainNameCreate,
WPVersion: WPVersions,
pluginbucket: pluginbucket,
adminUser: WPUsername,
Email: adminEmail,
PasswordByPass: WPPassword,
AutomaticUpdates: autoupdates,
Plugins: pluginupdates,
Themes: themeupdates,
websiteOwner: websiteOwner,
package: package,
home: home,
path: path,
apacheBackend: apacheBackend
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var url = "/websites/submitWorpressCreation";
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.webSiteCreationLoading = true;
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.goBackDisable = false;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
};
$scope.goBack = function () {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$scope.webSiteCreationLoading = false;
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
});
//........... delete wp list
var FurlDeleteWP;
function DeleteWPNow(url) {
FurlDeleteWP = url;
}
function FinalDeleteWPNow() {
window.location.href = FurlDeleteWP;
}
var DeploytoProductionID;
function DeployToProductionInitial(vall) {
DeploytoProductionID = vall;
}
var create_staging_domain_check = 0;
function create_staging_checkbox_function() {
try {
var checkBox = document.getElementById("Create_Staging_Check");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
create_staging_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
create_staging_domain_check = 1;
}
} catch (e) {
}
// alert(domain_check);
}
create_staging_checkbox_function();
app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $window) {
var CheckBoxpasssword = 0;
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.searchIndex = 0;
$(document).ready(function () {
var checkstatus = document.getElementById("wordpresshome");
if (checkstatus !== null) {
$scope.LoadWPdata();
}
});
$scope.LoadWPdata = function () {
$scope.wordpresshomeloading = false;
$('#wordpresshomeloading').show();
var url = "/websites/FetchWPdata";
var data = {
WPid: $('#WPid').html(),
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(function(response) {
$scope.wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#WPVersion').text(response.data.ret_data.version);
if (response.data.ret_data.lscache === 1) {
$('#lscache').prop('checked', true);
}
if (response.data.ret_data.debugging === 1) {
$('#debugging').prop('checked', true);
}
// Set search index state
$scope.searchIndex = response.data.ret_data.searchIndex;
if (response.data.ret_data.maintenanceMode === 1) {
$('#maintenanceMode').prop('checked', true);
}
if (response.data.ret_data.wpcron === 1) {
$('#wpcron').prop('checked', true);
}
if (response.data.ret_data.passwordprotection == 1) {
var dc = '<input type="checkbox" checked ng-click="UpdateWPSettings(\'PasswordProtection\')" class="custom-control-input" id="passwdprotection"><label class="custom-control-label" for="passwdprotection"></label>';
var mp = $compile(dc)($scope);
angular.element(document.getElementById('prsswdprodata')).append(mp);
CheckBoxpasssword = 1;
} else {
var dc = '<input type="checkbox" data-toggle="modal" data-target="#Passwordprotection" class="custom-control-input" id="passwdprotection"><label class="custom-control-label" for="passwdprotection"></label>';
$('#prsswdprodata').append(dc);
CheckBoxpasssword = 0;
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}, function(error) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
console.error('Failed to load WP data:', error);
});
};
$scope.UpdateWPSettings = function (setting) {
$scope.wordpresshomeloading = false;
$('#wordpresshomeloading').show();
var url = "/websites/UpdateWPSettings";
var data;
if (setting === "PasswordProtection") {
data = {
WPid: $('#WPid').html(),
setting: setting,
PPUsername: CheckBoxpasssword == 0 ? $scope.PPUsername : '',
PPPassword: CheckBoxpasssword == 0 ? $scope.PPPassword : ''
};
} else {
var settingValue;
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
settingValue = $scope.searchIndex;
} else {
settingValue = $('#' + setting).is(":checked") ? 1 : 0;
}
data = {
WPid: $('#WPid').html(),
setting: setting,
settingValue: settingValue
};
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(function(response) {
$scope.wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!',
type: 'success'
});
if (setting === "PasswordProtection") {
location.reload();
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
// Revert the change on error
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
}
if (setting === "PasswordProtection") {
location.reload();
}
}
}, function(error) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
// Revert the change on error
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
}
console.error('Failed to update setting:', error);
});
};
$scope.GetCurrentPlugins = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/GetCurrentPlugins";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#PluginBody').html('');
var plugins = JSON.parse(response.data.plugins);
plugins.forEach(AddPlugins);
} else {
alert("Error:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.GetCurrentThemes = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/GetCurrentThemes";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#ThemeBody').html('');
var themes = JSON.parse(response.data.themes);
themes.forEach(AddThemes);
} else {
alert("Error:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.UpdatePlugins = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
pluginarray: PluginsList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/UpdatePlugins";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Updating Plugins in Background!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.DeletePlugins = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
pluginarray: PluginsList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/DeletePlugins";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deleting Plugin in Background!',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
}
$scope.ChangeStatus = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/ChangeStatus";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Changed Plugin state Successfully !.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
}
function AddPlugins(value, index, array) {
var FinalMarkup = '<tr>'
FinalMarkup = FinalMarkup + '<td><input onclick="AddPluginToArray(this,\'' + value.name + '\')" type="checkbox" id="' + value.name + '"><label for="' + value.name + '"></label></td>';
for (let x in value) {
if (x === 'status') {
if (value[x] === 'inactive') {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatus(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State"><label for="' + value.name + 'State"></label></div></td>';
} else {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatus(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State" checked=""><label for="' + value.name + 'State"></label></div></td>';
}
} else if (x === 'update') {
if (value[x] === 'none') {
FinalMarkup = FinalMarkup + '<td><span class="label label-success">Upto Date</span></td>';
} else {
FinalMarkup = FinalMarkup + '<td><button ng-click="UpdatePlugins(\'' + value.name + '\')" aria-label="" type="button" class="btn btn-outline-danger">Update</button></td>';
}
} else {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button ng-click="DeletePlugins(\'' + value.name + '\')" aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></td>'
FinalMarkup = FinalMarkup + '</tr>'
var temp = $compile(FinalMarkup)($scope)
AppendToTable('#PluginBody', temp)
}
$scope.UpdateThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
Theme: theme,
Themearray: ThemesList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/UpdateThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Updating Theme in background !.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.DeleteThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
Theme: theme,
Themearray: ThemesList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/DeleteThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deleting Theme in Background!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.ChangeStatusThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
theme: theme,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/StatusThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Change Theme state in Bsckground!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
function AddThemes(value, index, array) {
var FinalMarkup = '<tr>'
FinalMarkup = FinalMarkup + '<td><input onclick="AddThemeToArray(this,\'' + value.name + '\')" type="checkbox" id="' + value.name + '"><label for="' + value.name + '"></label></td>';
for (let x in value) {
if (x === 'status') {
if (value[x] === 'inactive') {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatusThemes(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State"><label for="' + value.name + 'State"></label></div></td>';
} else {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatusThemes(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State" checked=""><label for="' + value.name + 'State"></label></div></td>';
}
} else if (x === 'update') {
if (value[x] === 'none') {
FinalMarkup = FinalMarkup + '<td><span class="label label-success">Upto Date</span></td>';
} else {
FinalMarkup = FinalMarkup + '<td><button ng-click="UpdateThemes(\'' + value.name + '\')" aria-label="" type="button" class="btn btn-outline-danger">Update</button></td>';
}
} else {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button ng-click="DeleteThemes(\'' + value.name + '\')" aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></td>'
FinalMarkup = FinalMarkup + '</tr>'
var temp = $compile(FinalMarkup)($scope)
AppendToTable('#ThemeBody', temp)
}
$scope.CreateStagingNow = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation Staging..";
//here enter domain name
if (create_staging_domain_check == 0) {
var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
var domainNameCreate = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
}
if (create_staging_domain_check == 1) {
var domainNameCreate = $scope.own_domainNameCreate;
}
var data = {
StagingName: $('#stagingName').val(),
StagingDomain: domainNameCreate,
WPid: $('#WPid').html(),
}
var url = "/websites/CreateStagingNow";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
function getCreationStatus() {
$('#wordpresshomeloading').show();
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
//$('#wordpresshomeloading').hide();
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$("#installProgressbackup").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$("#installProgressbackup").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$("#installProgressbackup").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
//$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.goBack = function () {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
$scope.fetchstaging = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/fetchstaging";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
// $('#ThemeBody').html('');
// var themes = JSON.parse(response.data.themes);
// themes.forEach(AddThemes);
$('#StagingBody').html('');
var staging = JSON.parse(response.data.wpsites);
staging.forEach(AddStagings);
} else {
alert("Error data.error_message:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert("Error" + response)
}
};
$scope.fetchDatabase = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/fetchDatabase";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#DB_Name').html(response.data.DataBaseName);
$('#DB_User').html(response.data.DataBaseUser);
$('#tableprefix').html(response.data.tableprefix);
} else {
alert("Error data.error_message:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert("Error" + response)
}
};
$scope.SaveUpdateConfig = function () {
$('#wordpresshomeloading').show();
var data = {
AutomaticUpdates: $('#AutomaticUpdates').find(":selected").text(),
Plugins: $('#Plugins').find(":selected").text(),
Themes: $('#Themes').find(":selected").text(),
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/SaveUpdateConfig";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Update Configurations Sucessfully!.',
type: 'success'
});
$("#autoUpdateConfig").modal('hide');
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response,
type: 'error'
});
}
};
function AddStagings(value, index, array) {
var FinalMarkup = '<tr>'
for (let x in value) {
if (x === 'name') {
FinalMarkup = FinalMarkup + '<td><a href=/websites/WPHome?ID=' + value.id + '>' + value[x] + '</a></td>';
} else if (x !== 'url' && x !== 'deleteURL' && x !== 'id') {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button onclick="DeployToProductionInitial(' + value.id + ')" data-toggle="modal" data-target="#DeployToProduction" style="margin-bottom: 2%; display: block" aria-label="" type="button" class="btn btn-outline-primary">Deploy to Production</button>' +
'<a href="' + value.deleteURL + '"> <button aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></a></td>'
FinalMarkup = FinalMarkup + '</tr>'
AppendToTable('#StagingBody', FinalMarkup);
}
$scope.FinalDeployToProduction = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var data = {
WPid: $('#WPid').html(),
StagingID: DeploytoProductionID
}
var url = "/websites/DeploytoProduction";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deploy To Production start!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response,
type: 'error'
});
}
};
$scope.CreateBackup = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation Backups..";
var data = {
WPid: $('#WPid').html(),
Backuptype: $('#backuptype').val()
}
var url = "/websites/WPCreateBackup";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('createbackupbutton').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Creating Backups!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert(response)
}
};
$scope.installwpcore = function () {
$('#wordpresshomeloading').show();
$('#wordpresshomeloadingsec').show();
var data = {
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/installwpcore";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Results fetched..',
type: 'success'
});
$('#SecurityResult').html(response.data.result);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.dataintegrity = function () {
$('#wordpresshomeloading').show();
$('#wordpresshomeloadingsec').show();
var data = {
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/dataintegrity";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Results fetched',
type: 'success'
});
$('#SecurityResult').html(response.data.result);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.updateSetting = function(site, setting) {
var settingMap = {
'search-indexing': 'searchIndex',
'debugging': 'debugging',
'password-protection': 'passwordProtection',
'maintenance-mode': 'maintenanceMode'
};
// Toggle the state before sending request
site[settingMap[setting]] = site[settingMap[setting]] === 1 ? 0 : 1;
var data = {
siteId: site.id,
setting: setting,
value: site[settingMap[setting]]
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Setting updated successfully.',
type: 'success'
});
if (setting === 'password-protection' && site[settingMap[setting]] === 1) {
// Show password protection modal if enabling
site.PPUsername = "";
site.PPPassword = "";
$scope.currentWP = site;
$('#passwordProtectionModal').modal('show');
}
} else {
// Revert the change if update failed
site[settingMap[setting]] = site[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: response.data.error_message || 'Failed to update setting.',
type: 'error'
});
}
}).catch(function(error) {
// Revert the change on error
site[settingMap[setting]] = site[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: 'Connection failed while updating setting.',
type: 'error'
});
});
};
$scope.submitPasswordProtection = function() {
console.log('submitPasswordProtection called');
console.log('Current WP:', $scope.currentWP);
if (!$scope.currentWP) {
console.error('No WordPress site selected');
new PNotify({
title: 'Error!',
text: 'No WordPress site selected.',
type: 'error'
});
return;
}
if (!$scope.currentWP.PPUsername || !$scope.currentWP.PPPassword) {
console.error('Missing username or password');
new PNotify({
title: 'Error!',
text: 'Please provide both username and password',
type: 'error'
});
return;
}
var data = {
siteId: $scope.currentWP.id,
setting: 'password-protection',
value: 1,
username: $scope.currentWP.PPUsername,
password: $scope.currentWP.PPPassword
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$('#passwordProtectionModal').modal('hide');
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (response.data.status) {
new PNotify({
title: 'Success!',
text: 'Password protection enabled successfully!',
type: 'success'
});
} else {
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to enable password protection',
type: 'error'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: 'Could not connect to server',
type: 'error'
});
});
};
});
var PluginsList = [];
function AddPluginToArray(cBox, name) {
if (cBox.checked) {
PluginsList.push(name);
// alert(PluginsList);
} else {
const index = PluginsList.indexOf(name);
if (index > -1) {
PluginsList.splice(index, 1);
}
// alert(PluginsList);
}
}
var ThemesList = [];
function AddThemeToArray(cBox, name) {
if (cBox.checked) {
ThemesList.push(name);
// alert(ThemesList);
} else {
const index = ThemesList.indexOf(name);
if (index > -1) {
ThemesList.splice(index, 1);
}
// alert(ThemesList);
}
}
function AppendToTable(table, markup) {
$(table).append(markup);
}
//..................Restore Backup Home
app.controller('RestoreWPBackup', function ($scope, $http, $timeout, $window) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.checkmethode = function () {
var val = $('#RestoreMethode').children("option:selected").val();
if (val == 1) {
$('#Newsitediv').show();
$('#exinstingsitediv').hide();
} else if (val == 0) {
$('#exinstingsitediv').show();
$('#Newsitediv').hide();
} else {
}
};
$scope.RestoreWPbackupNow = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Start Restoring WordPress..";
var Domain = $('#wprestoresubdirdomain').val()
var path = $('#wprestoresubdirpath').val();
var home = "1";
if (typeof path != 'undefined' || path != '') {
home = "0";
}
if (typeof path == 'undefined') {
path = "";
}
var backuptype = $('#backuptype').html();
var data;
if (backuptype == "DataBase Backup") {
data = {
backupid: $('#backupid').html(),
DesSite: $('#DesSite').children("option:selected").val(),
Domain: '',
path: path,
home: home,
}
} else {
data = {
backupid: $('#backupid').html(),
DesSite: $('#DesSite').children("option:selected").val(),
Domain: Domain,
path: path,
home: home,
}
}
var url = "/websites/RestoreWPbackupNow";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
// console.log(data)
var d = $('#DesSite').children("option:selected").val();
var c = $("input[name=Newdomain]").val();
// if (d == -1 || c == "") {
// alert("Please Select Method of Backup Restore");
// } else {
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
// }
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Restoring process starts!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function getCreationStatus() {
$('#wordpresshomeloading').show();
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
//$('#wordpresshomeloading').hide();
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$("#installProgressbackup").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$("#installProgressbackup").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$("#installProgressbackup").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
//$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.goBack = function () {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
});
//.......................................Remote Backup
//........... delete DeleteBackupConfigNow
function DeleteBackupConfigNow(url) {
window.location.href = url;
}
function DeleteRemoteBackupsiteNow(url) {
window.location.href = url;
}
function DeleteBackupfileConfigNow(url) {
window.location.href = url;
}
app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
$scope.SelectRemoteBackuptype = function () {
var val = $scope.RemoteBackuptype;
if (val == "SFTP") {
$scope.SFTPBackUpdiv = false;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
} else if (val == "S3") {
$scope.EndpointURLdiv = true;
$scope.Selectprovider = false;
$scope.S3keyNamediv = false;
$scope.Accesskeydiv = false;
$scope.SecretKeydiv = false;
$scope.SFTPBackUpdiv = true;
} else {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
}
}
$scope.SelectProvidertype = function () {
$scope.EndpointURLdiv = true;
var provider = $scope.Providervalue
if (provider == 'Backblaze') {
$scope.EndpointURLdiv = false;
} else {
$scope.EndpointURLdiv = true;
}
}
$scope.SaveBackupConfig = function () {
$scope.RemoteBackupLoading = false;
var Hname = $scope.Hostname;
var Uname = $scope.Username;
var Passwd = $scope.Password;
var path = $scope.path;
var type = $scope.RemoteBackuptype;
var Providervalue = $scope.Providervalue;
var data;
if (type == "SFTP") {
data = {
Hname: Hname,
Uname: Uname,
Passwd: Passwd,
path: path,
type: type
}
} else if (type == "S3") {
if (Providervalue == "Backblaze") {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
EndUrl: $scope.EndpointURL,
type: type
}
} else {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
type: type
}
}
}
var url = "/websites/SaveBackupConfig";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
});
var UpdatescheduleID;
app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
$scope.BackupScheduleLoading = true;
$scope.SaveBackupSchedule = function () {
$scope.RemoteBackupLoading = false;
var FileRetention = $scope.Fretention;
var Backfrequency = $scope.Bfrequency;
var data = {
FileRetention: FileRetention,
Backfrequency: Backfrequency,
ScheduleName: $scope.ScheduleName,
RemoteConfigID: $('#RemoteConfigID').html(),
BackupType: $scope.BackupType
}
var url = "/websites/SaveBackupSchedule";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.getupdateid = function (ID) {
UpdatescheduleID = ID;
}
$scope.UpdateRemoteschedules = function () {
$scope.RemoteBackupLoading = false;
var Frequency = $scope.RemoteFrequency;
var fretention = $scope.RemoteFileretention;
var data = {
ScheduleID: UpdatescheduleID,
Frequency: Frequency,
FileRetention: fretention
}
var url = "/websites/UpdateRemoteschedules";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.AddWPsiteforRemoteBackup = function () {
$scope.RemoteBackupLoading = false;
var data = {
WpsiteID: $('#Wpsite').val(),
RemoteScheduleID: $('#RemoteScheduleID').html()
}
var url = "/websites/AddWPsiteforRemoteBackup";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
});
/* Java script code to create account */
var website_create_domain_check = 0;
function website_create_checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
website_create_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
website_create_domain_check = 1;
}
// alert(domain_check);
}
/* Java script code to create account ends here */
/* Java script code to list accounts */
$("#listFail").hide();
app.controller('listWebsites', function ($scope, $http, $window) {
$scope.web = {};
$scope.WebSitesList = [];
$scope.loading = true; // Add loading state
$scope.expandedSites = {}; // Track which sites are expanded
$scope.currentPage = 1;
$scope.recordsToShow = 10;
// Function to toggle site expansion
$scope.toggleSite = function(site) {
if (!$scope.expandedSites[site.domain]) {
$scope.expandedSites[site.domain] = true;
site.loading = true;
// You can add any data fetching logic here if needed
setTimeout(function() {
site.loading = false;
$scope.$apply();
}, 500);
} else {
$scope.expandedSites[site.domain] = false;
}
};
// Function to check if site is expanded
$scope.isExpanded = function(siteId) {
return $scope.expandedSites[siteId];
};
// Function to check if site data is loaded
$scope.isDataLoaded = function(site) {
return site.version !== undefined;
};
// Initial fetch of websites
$scope.getFurtherWebsitesFromDB = function () {
$scope.loading = true; // Set loading to true when starting fetch
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
var dataurl = "/websites/fetchWebsitesList";
$http.post(dataurl, data, config).then(function(response) {
if (response.data.listWebSiteStatus === 1) {
$scope.WebSitesList = JSON.parse(response.data.data);
$scope.pagination = response.data.pagination;
$("#listFail").hide();
// Expand the first site by default
if ($scope.WebSitesList.length > 0) {
$scope.expandedSites[$scope.WebSitesList[0].domain] = true;
}
} else {
$("#listFail").fadeIn();
$scope.errorMessage = response.data.error_message;
}
$scope.loading = false; // Set loading to false when done
}).catch(function(error) {
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching websites';
$scope.loading = false; // Set loading to false on error
});
};
// Call it immediately
$scope.getFurtherWebsitesFromDB();
$scope.showWPSites = function(domain) {
console.log('showWPSites called for domain:', domain);
// Make sure domain is defined
if (!domain) {
console.error('Domain is undefined');
return;
}
// Find the website in the list
var site = $scope.WebSitesList.find(function(website) {
return website.domain === domain;
});
if (!site) {
console.error('Website not found:', domain);
return;
}
// Set loading state
site.loadingWPSites = true;
// Toggle visibility
site.showWPSites = !site.showWPSites;
// If we're hiding, just return
if (!site.showWPSites) {
site.loadingWPSites = false;
return;
}
var config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = $.param({
domain: domain
});
$http.post('/websites/fetchWPDetails', data, config)
.then(function(response) {
console.log('Response received:', response);
if (response.data.status === 1 && response.data.fetchStatus === 1) {
site.wp_sites = response.data.sites || [];
// Initialize loading states for each WP site
site.wp_sites.forEach(function(wp) {
wp.loading = false;
wp.loadingPlugins = false;
wp.loadingTheme = false;
});
$("#listFail").hide();
} else {
$("#listFail").fadeIn();
site.showWPSites = false;
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
console.error('Error in response:', response.data.error_message);
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to fetch WordPress sites',
type: 'error'
});
}
})
.catch(function(error) {
console.error('Request failed:', error);
site.showWPSites = false;
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
new PNotify({
title: 'Error!',
text: error.message || 'Could not connect to server',
type: 'error'
});
})
.finally(function() {
site.loadingWPSites = false;
});
};
$scope.visitSite = function(wp) {
var url = wp.url || wp.domain;
if (!url) return;
if (!url.startsWith('http://') && !url.startsWith('https://')) {
url = 'https://' + url;
}
window.open(url, '_blank');
};
$scope.wpLogin = function(wpId) {
window.open('/websites/AutoLogin?id=' + wpId, '_blank');
};
$scope.manageWP = function(wpId) {
window.location.href = '/websites/WPHome?ID=' + wpId;
};
$scope.deleteWPSite = function(wp) {
if (confirm('Are you sure you want to delete this WordPress site? This action cannot be undone.')) {
window.location.href = '/websites/ListWPSites?DeleteID=' + wp.id;
}
};
$scope.getFullUrl = function(url) {
console.log('getFullUrl called with:', url);
if (!url) {
// If no URL is provided, try to use the domain
if (this.wp && this.wp.domain) {
url = this.wp.domain;
} else {
return '';
}
}
if (url.startsWith('http://') || url.startsWith('https://')) {
return url;
}
return 'https://' + url;
};
$scope.updateSetting = function(wp, setting) {
var settingMap = {
'search-indexing': 'searchIndex',
'debugging': 'debugging',
'password-protection': 'passwordProtection',
'maintenance-mode': 'maintenanceMode'
};
// Toggle the state before sending request
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
var data = {
siteId: wp.id,
setting: setting,
value: wp[settingMap[setting]]
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Setting updated successfully.',
type: 'success'
});
if (setting === 'password-protection' && wp[settingMap[setting]] === 1) {
// Show password protection modal if enabling
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
$('#passwordProtectionModal').modal('show');
}
} else {
// Revert the change if update failed
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: response.data.error_message || 'Failed to update setting.',
type: 'error'
});
}
}).catch(function(error) {
// Revert the change on error
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: 'Connection failed while updating setting.',
type: 'error'
});
});
};
$scope.UpdateWPSettings = function(wp) {
$('#wordpresshomeloading').show();
var url = "/websites/UpdateWPSettings";
var data = {};
if (wp.setting === "PasswordProtection") {
data = {
wpID: wp.id,
setting: wp.setting,
PPUsername: wp.PPUsername,
PPPassword: wp.PPPassword
};
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken'),
'Content-Type': 'application/x-www-form-urlencoded'
},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
};
$http.post(url, data, config).then(function(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!',
type: 'success'
});
if (wp.setting === "PasswordProtection") {
location.reload();
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
if (wp.setting === "PasswordProtection") {
location.reload();
}
}
}, function(error) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
});
};
$scope.togglePasswordProtection = function(wp) {
console.log('togglePasswordProtection called for:', wp);
console.log('Current password protection state:', wp.passwordProtection);
if (wp.passwordProtection) {
// Show modal for credentials
console.log('Showing modal for credentials');
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
console.log('Current WP set to:', $scope.currentWP);
$('#passwordProtectionModal').modal('show');
} else {
// Disable password protection
console.log('Disabling password protection');
var data = {
siteId: wp.id,
setting: 'password-protection',
value: 0
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (!response.data.status) {
wp.passwordProtection = !wp.passwordProtection;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message || 'Failed to disable password protection',
type: 'error'
});
} else {
new PNotify({
title: 'Success!',
text: 'Password protection disabled successfully.',
type: 'success'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
wp.passwordProtection = !wp.passwordProtection;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server.',
type: 'error'
});
});
}
};
$scope.submitPasswordProtection = function() {
console.log('submitPasswordProtection called');
console.log('Current WP:', $scope.currentWP);
if (!$scope.currentWP) {
console.error('No WordPress site selected');
new PNotify({
title: 'Error!',
text: 'No WordPress site selected.',
type: 'error'
});
return;
}
if (!$scope.currentWP.PPUsername || !$scope.currentWP.PPPassword) {
console.error('Missing username or password');
new PNotify({
title: 'Error!',
text: 'Please provide both username and password',
type: 'error'
});
return;
}
var data = {
siteId: $scope.currentWP.id,
setting: 'password-protection',
value: 1,
username: $scope.currentWP.PPUsername,
password: $scope.currentWP.PPPassword
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$('#passwordProtectionModal').modal('hide');
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (response.data.status) {
new PNotify({
title: 'Success!',
text: 'Password protection enabled successfully!',
type: 'success'
});
} else {
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to enable password protection',
type: 'error'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: 'Could not connect to server',
type: 'error'
});
});
};
$scope.cyberPanelLoading = true;
$scope.issueSSL = function (virtualHost) {
$scope.cyberPanelLoading = false;
var url = "/manageSSL/issueSSL";
var data = {
virtualHost: virtualHost
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.SSL === 1) {
new PNotify({
title: 'Success!',
text: 'SSL successfully issued.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
$scope.cyberPanelLoading = true;
$scope.searchWebsites = function () {
$scope.loading = true; // Set loading to true when starting search
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
patternAdded: $scope.patternAdded
};
dataurl = "/websites/searchWebsites";
$http.post(dataurl, data, config).then(function(response) {
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$("#listFail").hide();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
$scope.loading = false; // Set loading to false when done
}).catch(function(error) {
new PNotify({
title: 'Operation Failed!',
text: 'Connect disrupted, refresh the page.',
type: 'error'
});
$scope.loading = false; // Set loading to false on error
});
};
$scope.ScanWordpressSite = function () {
$('#cyberPanelLoading').show();
var url = "/websites/ScanWordpressSite";
var data = {}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#cyberPanelLoading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#cyberPanelLoading').hide();
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.goToManage = function($event, domain) {
$event.stopPropagation();
window.location = '/websites/' + domain;
};
$scope.goToFileManager = function($event, domain) {
$event.stopPropagation();
window.location = '/filemanager/' + domain;
};
});
/**
* Created by usman on 7/26/17.
*/
function getCookie(name) {
var cookieValue = null;
var t = document.cookie;
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;
}
var arry = []
function selectpluginJs(val) {
$('#mysearch').hide()
arry.push(val)
// console.log(arry)
document.getElementById('selJS').innerHTML = "";
for (var i = 0; i < arry.length; i++) {
$('#selJS').show()
var mlm = '<span style="background-color: #12207a; color: #FFFFFF; padding: 5px; border-radius: 30px"> ' + arry[i] + ' </span>   '
$('#selJS').append(mlm)
}
}
var DeletePluginURL;
function DeletePluginBuucket(url) {
DeletePluginURL = url;
}
function FinalDeletePluginBuucket() {
window.location.href = DeletePluginURL;
}
var SPVal;
app.controller('WPAddNewPlugin', function ($scope, $http, $timeout, $window, $compile) {
$scope.webSiteCreationLoading = true;
$scope.SearchPluginName = function (val) {
$scope.webSiteCreationLoading = false;
SPVal = val;
url = "/websites/SearchOnkeyupPlugin";
var searchcontent = $scope.searchcontent;
var data = {
pluginname: searchcontent
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.webSiteCreationLoading = true;
if (response.data.status === 1) {
if (SPVal == 'add') {
$('#mysearch').show()
document.getElementById('mysearch').innerHTML = "";
var res = response.data.plugns.plugins
// console.log(res);
for (i = 0; i <= res.length; i++) {
//
var tml = '<option onclick="selectpluginJs(\'' + res[i].slug + '\')" style=" border-bottom: 1px solid rgba(90, 91, 92, 0.5); padding: 5px; " value="' + res[i].slug + '">' + res[i].name + '</option> <br>';
$('#mysearch').append(tml);
}
} else if (SPVal == 'eidt') {
$('#mysearch').show()
document.getElementById('mysearch').innerHTML = "";
var res = response.data.plugns.plugins
// console.log(res);
for (i = 0; i <= res.length; i++) {
//
var tml = '<option ng-click="Addplugin(\'' + res[i].slug + '\')" style=" border-bottom: 1px solid rgba(90, 91, 92, 0.5); padding: 5px; " value="' + res[i].slug + '">' + res[i].name + '</option> <br>';
var temp = $compile(tml)($scope)
angular.element(document.getElementById('mysearch')).append(temp);
}
}
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.AddNewplugin = function () {
url = "/websites/AddNewpluginAjax";
var bucketname = $scope.PluginbucketName
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
config: arry,
Name: bucketname
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Bucket created.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.deletesPlgin = function (val) {
url = "/websites/deletesPlgin";
var data = {
pluginname: val,
pluginbBucketID: $('#pluginbID').html()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
location.reload();
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.Addplugin = function (slug) {
$('#mysearch').hide()
url = "/websites/Addplugineidt";
var data = {
pluginname: slug,
pluginbBucketID: $('#pluginbID').html()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
location.reload();
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
});
var domain_check = 0;
function checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
domain_check = 0;
document.getElementById('Test_Domain').style.display = "block";
document.getElementById('Own_Domain').style.display = "none";
} else {
document.getElementById('Test_Domain').style.display = "none";
document.getElementById('Own_Domain').style.display = "block";
domain_check = 1;
}
// alert(domain_check);
}
app.controller('createWordpress', function ($scope, $http, $timeout, $compile, $window) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var statusFile;
$scope.createWordPresssite = function () {
$scope.webSiteCreationLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
var apacheBackend = 0;
if ($scope.apacheBackend === true) {
apacheBackend = 1;
} else {
apacheBackend = 0
}
var package = $scope.packageForWebsite;
var websiteOwner = $scope.websiteOwner;
var WPtitle = $scope.WPtitle;
// if (domain_check == 0) {
// var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
// var domainNameCreate = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
// }
// if (domain_check == 1) {
//
// var domainNameCreate = $scope.own_domainNameCreate;
// }
var domainNameCreate = $scope.domainNameCreate;
var WPUsername = $scope.WPUsername;
var adminEmail = $scope.adminEmail;
var WPPassword = $scope.WPPassword;
var WPVersions = $scope.WPVersions;
var pluginbucket = $scope.pluginbucket;
var autoupdates = $scope.autoupdates;
var pluginupdates = $scope.pluginupdates;
var themeupdates = $scope.themeupdates;
if (domain_check == 0) {
var path = "";
}
if (domain_check = 1) {
var path = $scope.installPath;
}
var home = "1";
if (typeof path != 'undefined') {
home = "0";
}
//alert(domainNameCreate);
var data = {
title: WPtitle,
domain: domainNameCreate,
WPVersion: WPVersions,
pluginbucket: pluginbucket,
adminUser: WPUsername,
Email: adminEmail,
PasswordByPass: WPPassword,
AutomaticUpdates: autoupdates,
Plugins: pluginupdates,
Themes: themeupdates,
websiteOwner: websiteOwner,
package: package,
home: home,
path: path,
apacheBackend: apacheBackend
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var url = "/websites/submitWorpressCreation";
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.webSiteCreationLoading = true;
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.goBackDisable = false;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
};
$scope.goBack = function () {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$scope.webSiteCreationLoading = false;
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
});
//........... delete wp list
var FurlDeleteWP;
function DeleteWPNow(url) {
FurlDeleteWP = url;
}
function FinalDeleteWPNow() {
window.location.href = FurlDeleteWP;
}
var DeploytoProductionID;
function DeployToProductionInitial(vall) {
DeploytoProductionID = vall;
}
var create_staging_domain_check = 0;
function create_staging_checkbox_function() {
try {
var checkBox = document.getElementById("Create_Staging_Check");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
create_staging_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
create_staging_domain_check = 1;
}
} catch (e) {
}
// alert(domain_check);
}
create_staging_checkbox_function();
app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $window) {
var CheckBoxpasssword = 0;
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.searchIndex = 0;
$(document).ready(function () {
var checkstatus = document.getElementById("wordpresshome");
if (checkstatus !== null) {
$scope.LoadWPdata();
}
});
$scope.LoadWPdata = function () {
$scope.wordpresshomeloading = false;
$('#wordpresshomeloading').show();
var url = "/websites/FetchWPdata";
var data = {
WPid: $('#WPid').html(),
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(function(response) {
$scope.wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#WPVersion').text(response.data.ret_data.version);
if (response.data.ret_data.lscache === 1) {
$('#lscache').prop('checked', true);
}
if (response.data.ret_data.debugging === 1) {
$('#debugging').prop('checked', true);
}
// Set search index state
$scope.searchIndex = response.data.ret_data.searchIndex;
if (response.data.ret_data.maintenanceMode === 1) {
$('#maintenanceMode').prop('checked', true);
}
if (response.data.ret_data.wpcron === 1) {
$('#wpcron').prop('checked', true);
}
if (response.data.ret_data.passwordprotection == 1) {
var dc = '<input type="checkbox" checked ng-click="UpdateWPSettings(\'PasswordProtection\')" class="custom-control-input" id="passwdprotection"><label class="custom-control-label" for="passwdprotection"></label>';
var mp = $compile(dc)($scope);
angular.element(document.getElementById('prsswdprodata')).append(mp);
CheckBoxpasssword = 1;
} else {
var dc = '<input type="checkbox" data-toggle="modal" data-target="#Passwordprotection" class="custom-control-input" id="passwdprotection"><label class="custom-control-label" for="passwdprotection"></label>';
$('#prsswdprodata').append(dc);
CheckBoxpasssword = 0;
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}, function(error) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
console.error('Failed to load WP data:', error);
});
};
$scope.UpdateWPSettings = function (setting) {
$scope.wordpresshomeloading = false;
$('#wordpresshomeloading').show();
var url = "/websites/UpdateWPSettings";
var data;
if (setting === "PasswordProtection") {
data = {
WPid: $('#WPid').html(),
setting: setting,
PPUsername: CheckBoxpasssword == 0 ? $scope.PPUsername : '',
PPPassword: CheckBoxpasssword == 0 ? $scope.PPPassword : ''
};
} else {
var settingValue;
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
settingValue = $scope.searchIndex;
} else {
settingValue = $('#' + setting).is(":checked") ? 1 : 0;
}
data = {
WPid: $('#WPid').html(),
setting: setting,
settingValue: settingValue
};
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(function(response) {
$scope.wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!',
type: 'success'
});
if (setting === "PasswordProtection") {
location.reload();
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
// Revert the change on error
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
}
if (setting === "PasswordProtection") {
location.reload();
}
}
}, function(error) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
// Revert the change on error
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
}
console.error('Failed to update setting:', error);
});
};
$scope.GetCurrentPlugins = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/GetCurrentPlugins";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#PluginBody').html('');
var plugins = JSON.parse(response.data.plugins);
plugins.forEach(AddPlugins);
} else {
alert("Error:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.GetCurrentThemes = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/GetCurrentThemes";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#ThemeBody').html('');
var themes = JSON.parse(response.data.themes);
themes.forEach(AddThemes);
} else {
alert("Error:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.UpdatePlugins = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
pluginarray: PluginsList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/UpdatePlugins";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Updating Plugins in Background!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.DeletePlugins = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
pluginarray: PluginsList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/DeletePlugins";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deleting Plugin in Background!',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
}
$scope.ChangeStatus = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/ChangeStatus";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Changed Plugin state Successfully !.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
}
function AddPlugins(value, index, array) {
var FinalMarkup = '<tr>'
FinalMarkup = FinalMarkup + '<td><input onclick="AddPluginToArray(this,\'' + value.name + '\')" type="checkbox" id="' + value.name + '"><label for="' + value.name + '"></label></td>';
for (let x in value) {
if (x === 'status') {
if (value[x] === 'inactive') {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatus(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State"><label for="' + value.name + 'State"></label></div></td>';
} else {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatus(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State" checked=""><label for="' + value.name + 'State"></label></div></td>';
}
} else if (x === 'update') {
if (value[x] === 'none') {
FinalMarkup = FinalMarkup + '<td><span class="label label-success">Upto Date</span></td>';
} else {
FinalMarkup = FinalMarkup + '<td><button ng-click="UpdatePlugins(\'' + value.name + '\')" aria-label="" type="button" class="btn btn-outline-danger">Update</button></td>';
}
} else {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button ng-click="DeletePlugins(\'' + value.name + '\')" aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></td>'
FinalMarkup = FinalMarkup + '</tr>'
var temp = $compile(FinalMarkup)($scope)
AppendToTable('#PluginBody', temp)
}
$scope.UpdateThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
Theme: theme,
Themearray: ThemesList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/UpdateThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Updating Theme in background !.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.DeleteThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
Theme: theme,
Themearray: ThemesList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/DeleteThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deleting Theme in Background!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.ChangeStatusThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
theme: theme,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/StatusThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Change Theme state in Bsckground!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
function AddThemes(value, index, array) {
var FinalMarkup = '<tr>'
FinalMarkup = FinalMarkup + '<td><input onclick="AddThemeToArray(this,\'' + value.name + '\')" type="checkbox" id="' + value.name + '"><label for="' + value.name + '"></label></td>';
for (let x in value) {
if (x === 'status') {
if (value[x] === 'inactive') {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatusThemes(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State"><label for="' + value.name + 'State"></label></div></td>';
} else {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatusThemes(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State" checked=""><label for="' + value.name + 'State"></label></div></td>';
}
} else if (x === 'update') {
if (value[x] === 'none') {
FinalMarkup = FinalMarkup + '<td><span class="label label-success">Upto Date</span></td>';
} else {
FinalMarkup = FinalMarkup + '<td><button ng-click="UpdateThemes(\'' + value.name + '\')" aria-label="" type="button" class="btn btn-outline-danger">Update</button></td>';
}
} else {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button ng-click="DeleteThemes(\'' + value.name + '\')" aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></td>'
FinalMarkup = FinalMarkup + '</tr>'
var temp = $compile(FinalMarkup)($scope)
AppendToTable('#ThemeBody', temp)
}
$scope.CreateStagingNow = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation Staging..";
//here enter domain name
if (create_staging_domain_check == 0) {
var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
var domainNameCreate = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
}
if (create_staging_domain_check == 1) {
var domainNameCreate = $scope.own_domainNameCreate;
}
var data = {
StagingName: $('#stagingName').val(),
StagingDomain: domainNameCreate,
WPid: $('#WPid').html(),
}
var url = "/websites/CreateStagingNow";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
function getCreationStatus() {
$('#wordpresshomeloading').show();
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
//$('#wordpresshomeloading').hide();
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$("#installProgressbackup").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$("#installProgressbackup").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$("#installProgressbackup").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
//$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.goBack = function () {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
$scope.fetchstaging = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/fetchstaging";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
// $('#ThemeBody').html('');
// var themes = JSON.parse(response.data.themes);
// themes.forEach(AddThemes);
$('#StagingBody').html('');
var staging = JSON.parse(response.data.wpsites);
staging.forEach(AddStagings);
} else {
alert("Error data.error_message:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert("Error" + response)
}
};
$scope.fetchDatabase = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/fetchDatabase";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#DB_Name').html(response.data.DataBaseName);
$('#DB_User').html(response.data.DataBaseUser);
$('#tableprefix').html(response.data.tableprefix);
} else {
alert("Error data.error_message:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert("Error" + response)
}
};
$scope.SaveUpdateConfig = function () {
$('#wordpresshomeloading').show();
var data = {
AutomaticUpdates: $('#AutomaticUpdates').find(":selected").text(),
Plugins: $('#Plugins').find(":selected").text(),
Themes: $('#Themes').find(":selected").text(),
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/SaveUpdateConfig";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Update Configurations Sucessfully!.',
type: 'success'
});
$("#autoUpdateConfig").modal('hide');
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response,
type: 'error'
});
}
};
function AddStagings(value, index, array) {
var FinalMarkup = '<tr>'
for (let x in value) {
if (x === 'name') {
FinalMarkup = FinalMarkup + '<td><a href=/websites/WPHome?ID=' + value.id + '>' + value[x] + '</a></td>';
} else if (x !== 'url' && x !== 'deleteURL' && x !== 'id') {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button onclick="DeployToProductionInitial(' + value.id + ')" data-toggle="modal" data-target="#DeployToProduction" style="margin-bottom: 2%; display: block" aria-label="" type="button" class="btn btn-outline-primary">Deploy to Production</button>' +
'<a href="' + value.deleteURL + '"> <button aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></a></td>'
FinalMarkup = FinalMarkup + '</tr>'
AppendToTable('#StagingBody', FinalMarkup);
}
$scope.FinalDeployToProduction = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var data = {
WPid: $('#WPid').html(),
StagingID: DeploytoProductionID
}
var url = "/websites/DeploytoProduction";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deploy To Production start!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response,
type: 'error'
});
}
};
$scope.CreateBackup = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation Backups..";
var data = {
WPid: $('#WPid').html(),
Backuptype: $('#backuptype').val()
}
var url = "/websites/WPCreateBackup";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('createbackupbutton').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Creating Backups!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert(response)
}
};
$scope.installwpcore = function () {
$('#wordpresshomeloading').show();
$('#wordpresshomeloadingsec').show();
var data = {
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/installwpcore";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Results fetched..',
type: 'success'
});
$('#SecurityResult').html(response.data.result);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.dataintegrity = function () {
$('#wordpresshomeloading').show();
$('#wordpresshomeloadingsec').show();
var data = {
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/dataintegrity";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Results fetched',
type: 'success'
});
$('#SecurityResult').html(response.data.result);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
});
var PluginsList = [];
function AddPluginToArray(cBox, name) {
if (cBox.checked) {
PluginsList.push(name);
// alert(PluginsList);
} else {
const index = PluginsList.indexOf(name);
if (index > -1) {
PluginsList.splice(index, 1);
}
// alert(PluginsList);
}
}
var ThemesList = [];
function AddThemeToArray(cBox, name) {
if (cBox.checked) {
ThemesList.push(name);
// alert(ThemesList);
} else {
const index = ThemesList.indexOf(name);
if (index > -1) {
ThemesList.splice(index, 1);
}
// alert(ThemesList);
}
}
function AppendToTable(table, markup) {
$(table).append(markup);
}
//..................Restore Backup Home
app.controller('RestoreWPBackup', function ($scope, $http, $timeout, $window) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.checkmethode = function () {
var val = $('#RestoreMethode').children("option:selected").val();
if (val == 1) {
$('#Newsitediv').show();
$('#exinstingsitediv').hide();
} else if (val == 0) {
$('#exinstingsitediv').show();
$('#Newsitediv').hide();
} else {
}
};
$scope.RestoreWPbackupNow = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Start Restoring WordPress..";
var Domain = $('#wprestoresubdirdomain').val()
var path = $('#wprestoresubdirpath').val();
var home = "1";
if (typeof path != 'undefined' || path != '') {
home = "0";
}
if (typeof path == 'undefined') {
path = "";
}
var backuptype = $('#backuptype').html();
var data;
if (backuptype == "DataBase Backup") {
data = {
backupid: $('#backupid').html(),
DesSite: $('#DesSite').children("option:selected").val(),
Domain: '',
path: path,
home: home,
}
} else {
data = {
backupid: $('#backupid').html(),
DesSite: $('#DesSite').children("option:selected").val(),
Domain: Domain,
path: path,
home: home,
}
}
var url = "/websites/RestoreWPbackupNow";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
// console.log(data)
var d = $('#DesSite').children("option:selected").val();
var c = $("input[name=Newdomain]").val();
// if (d == -1 || c == "") {
// alert("Please Select Method of Backup Restore");
// } else {
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
// }
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Restoring process starts!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function getCreationStatus() {
$('#wordpresshomeloading').show();
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
//$('#wordpresshomeloading').hide();
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$("#installProgressbackup").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$("#installProgressbackup").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$("#installProgressbackup").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
//$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.goBack = function () {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
});
//.......................................Remote Backup
//........... delete DeleteBackupConfigNow
function DeleteBackupConfigNow(url) {
window.location.href = url;
}
function DeleteRemoteBackupsiteNow(url) {
window.location.href = url;
}
function DeleteBackupfileConfigNow(url) {
window.location.href = url;
}
app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
$scope.SelectRemoteBackuptype = function () {
var val = $scope.RemoteBackuptype;
if (val == "SFTP") {
$scope.SFTPBackUpdiv = false;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
} else if (val == "S3") {
$scope.EndpointURLdiv = true;
$scope.Selectprovider = false;
$scope.S3keyNamediv = false;
$scope.Accesskeydiv = false;
$scope.SecretKeydiv = false;
$scope.SFTPBackUpdiv = true;
} else {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
}
}
$scope.SelectProvidertype = function () {
$scope.EndpointURLdiv = true;
var provider = $scope.Providervalue
if (provider == 'Backblaze') {
$scope.EndpointURLdiv = false;
} else {
$scope.EndpointURLdiv = true;
}
}
$scope.SaveBackupConfig = function () {
$scope.RemoteBackupLoading = false;
var Hname = $scope.Hostname;
var Uname = $scope.Username;
var Passwd = $scope.Password;
var path = $scope.path;
var type = $scope.RemoteBackuptype;
var Providervalue = $scope.Providervalue;
var data;
if (type == "SFTP") {
data = {
Hname: Hname,
Uname: Uname,
Passwd: Passwd,
path: path,
type: type
}
} else if (type == "S3") {
if (Providervalue == "Backblaze") {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
EndUrl: $scope.EndpointURL,
type: type
}
} else {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
type: type
}
}
}
var url = "/websites/SaveBackupConfig";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
});
var UpdatescheduleID;
app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
$scope.BackupScheduleLoading = true;
$scope.SaveBackupSchedule = function () {
$scope.RemoteBackupLoading = false;
var FileRetention = $scope.Fretention;
var Backfrequency = $scope.Bfrequency;
var data = {
FileRetention: FileRetention,
Backfrequency: Backfrequency,
ScheduleName: $scope.ScheduleName,
RemoteConfigID: $('#RemoteConfigID').html(),
BackupType: $scope.BackupType
}
var url = "/websites/SaveBackupSchedule";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.getupdateid = function (ID) {
UpdatescheduleID = ID;
}
$scope.UpdateRemoteschedules = function () {
$scope.RemoteBackupLoading = false;
var Frequency = $scope.RemoteFrequency;
var fretention = $scope.RemoteFileretention;
var data = {
ScheduleID: UpdatescheduleID,
Frequency: Frequency,
FileRetention: fretention
}
var url = "/websites/UpdateRemoteschedules";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.AddWPsiteforRemoteBackup = function () {
$scope.RemoteBackupLoading = false;
var data = {
WpsiteID: $('#Wpsite').val(),
RemoteScheduleID: $('#RemoteScheduleID').html()
}
var url = "/websites/AddWPsiteforRemoteBackup";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
});
/* Java script code to create account */
var website_create_domain_check = 0;
function website_create_checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
website_create_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
website_create_domain_check = 1;
}
// alert(domain_check);
}
app.controller('createWebsite', function ($scope, $http, $timeout, $window) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var statusFile;
$scope.createWebsite = function () {
$scope.webSiteCreationLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
var ssl, dkimCheck, openBasedir, mailDomain, apacheBackend;
if ($scope.sslCheck === true) {
ssl = 1;
} else {
ssl = 0
}
if ($scope.apacheBackend === true) {
apacheBackend = 1;
} else {
apacheBackend = 0
}
if ($scope.dkimCheck === true) {
dkimCheck = 1;
} else {
dkimCheck = 0
}
if ($scope.openBasedir === true) {
openBasedir = 1;
} else {
openBasedir = 0
}
if ($scope.mailDomain === true) {
mailDomain = 1;
} else {
mailDomain = 0
}
url = "/websites/submitWebsiteCreation";
var package = $scope.packageForWebsite;
// if (website_create_domain_check == 0) {
// var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
// var domainName = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
// }
// if (website_create_domain_check == 1) {
// var domainName = $scope.domainNameCreate;
// }
var domainName = $scope.domainNameCreate;
var adminEmail = $scope.adminEmail;
var phpSelection = $scope.phpSelection;
var websiteOwner = $scope.websiteOwner;
var data = {
package: package,
domainName: domainName,
adminEmail: adminEmail,
phpSelection: phpSelection,
ssl: ssl,
websiteOwner: websiteOwner,
dkimCheck: dkimCheck,
openBasedir: openBasedir,
mailDomain: mailDomain,
apacheBackend: apacheBackend
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.createWebSiteStatus === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
});
/* Java script code to create account ends here */
/* Java script code to list accounts */
$("#listFail").hide();
app.controller('listWebsites', function ($scope, $http, $window) {
$scope.web = {};
$scope.WebSitesList = [];
$scope.loading = true; // Add loading state
$scope.expandedSites = {}; // Track which sites are expanded
$scope.currentPage = 1;
$scope.recordsToShow = 10;
// Function to toggle site expansion
$scope.toggleSite = function(site) {
if (!$scope.expandedSites[site.domain]) {
$scope.expandedSites[site.domain] = true;
site.loading = true;
// You can add any data fetching logic here if needed
setTimeout(function() {
site.loading = false;
$scope.$apply();
}, 500);
} else {
$scope.expandedSites[site.domain] = false;
}
};
// Function to check if site is expanded
$scope.isExpanded = function(siteId) {
return $scope.expandedSites[siteId];
};
// Function to check if site data is loaded
$scope.isDataLoaded = function(site) {
return site.version !== undefined;
};
// Initial fetch of websites
$scope.getFurtherWebsitesFromDB = function () {
$scope.loading = true; // Set loading to true when starting fetch
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
var dataurl = "/websites/fetchWebsitesList";
$http.post(dataurl, data, config).then(function(response) {
if (response.data.listWebSiteStatus === 1) {
$scope.WebSitesList = JSON.parse(response.data.data);
$scope.pagination = response.data.pagination;
$("#listFail").hide();
// Expand the first site by default
if ($scope.WebSitesList.length > 0) {
$scope.expandedSites[$scope.WebSitesList[0].domain] = true;
}
} else {
$("#listFail").fadeIn();
$scope.errorMessage = response.data.error_message;
}
$scope.loading = false; // Set loading to false when done
}).catch(function(error) {
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching websites';
$scope.loading = false; // Set loading to false on error
});
};
// Call it immediately
$scope.getFurtherWebsitesFromDB();
$scope.showWPSites = function(domain) {
console.log('showWPSites called for domain:', domain);
// Make sure domain is defined
if (!domain) {
console.error('Domain is undefined');
return;
}
// Find the website in the list
var site = $scope.WebSitesList.find(function(website) {
return website.domain === domain;
});
if (!site) {
console.error('Website not found:', domain);
return;
}
// Set loading state
site.loadingWPSites = true;
// Toggle visibility
site.showWPSites = !site.showWPSites;
// If we're hiding, just return
if (!site.showWPSites) {
site.loadingWPSites = false;
return;
}
var config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = $.param({
domain: domain
});
$http.post('/websites/fetchWPDetails', data, config)
.then(function(response) {
console.log('Response received:', response);
if (response.data.status === 1 && response.data.fetchStatus === 1) {
site.wp_sites = response.data.sites || [];
// Initialize loading states for each WP site
site.wp_sites.forEach(function(wp) {
wp.loading = false;
wp.loadingPlugins = false;
wp.loadingTheme = false;
});
$("#listFail").hide();
} else {
$("#listFail").fadeIn();
site.showWPSites = false;
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
console.error('Error in response:', response.data.error_message);
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to fetch WordPress sites',
type: 'error'
});
}
})
.catch(function(error) {
console.error('Request failed:', error);
site.showWPSites = false;
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
new PNotify({
title: 'Error!',
text: error.message || 'Could not connect to server',
type: 'error'
});
})
.finally(function() {
site.loadingWPSites = false;
});
};
$scope.visitSite = function(wp) {
var url = wp.url || wp.domain;
if (!url) return;
if (!url.startsWith('http://') && !url.startsWith('https://')) {
url = 'https://' + url;
}
window.open(url, '_blank');
};
$scope.wpLogin = function(wpId) {
window.open('/websites/wpLogin?wpID=' + wpId, '_blank');
};
$scope.manageWP = function(wpId) {
window.location.href = '/websites/WPHome?ID=' + wpId;
};
$scope.deleteWPSite = function(wp) {
if (confirm('Are you sure you want to delete this WordPress site? This action cannot be undone.')) {
window.location.href = '/websites/ListWPSites?DeleteID=' + wp.id;
}
};
$scope.getFullUrl = function(url) {
console.log('getFullUrl called with:', url);
if (!url) {
// If no URL is provided, try to use the domain
if (this.wp && this.wp.domain) {
url = this.wp.domain;
} else {
return '';
}
}
if (url.startsWith('http://') || url.startsWith('https://')) {
return url;
}
return 'https://' + url;
};
$scope.updateSetting = function(wp, setting) {
var settingMap = {
'search-indexing': 'searchIndex',
'debugging': 'debugging',
'password-protection': 'passwordProtection',
'maintenance-mode': 'maintenanceMode'
};
// Toggle the state before sending request
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
var data = {
siteId: wp.id,
setting: setting,
value: wp[settingMap[setting]]
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Setting updated successfully.',
type: 'success'
});
if (setting === 'password-protection' && wp[settingMap[setting]] === 1) {
// Show password protection modal if enabling
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
$('#passwordProtectionModal').modal('show');
}
} else {
// Revert the change if update failed
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: response.data.error_message || 'Failed to update setting.',
type: 'error'
});
}
}).catch(function(error) {
// Revert the change on error
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: 'Connection failed while updating setting.',
type: 'error'
});
});
};
$scope.UpdateWPSettings = function(wp) {
$('#wordpresshomeloading').show();
var url = "/websites/UpdateWPSettings";
var data = {};
if (wp.setting === "PasswordProtection") {
data = {
wpID: wp.id,
setting: wp.setting,
PPUsername: wp.PPUsername,
PPPassword: wp.PPPassword
};
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken'),
'Content-Type': 'application/x-www-form-urlencoded'
},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
}
};
$http.post(url, data, config).then(function(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!',
type: 'success'
});
if (wp.setting === "PasswordProtection") {
location.reload();
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
if (wp.setting === "PasswordProtection") {
location.reload();
}
}
}, function(error) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
});
};
$scope.togglePasswordProtection = function(wp) {
console.log('togglePasswordProtection called for:', wp);
console.log('Current password protection state:', wp.passwordProtection);
if (wp.passwordProtection) {
// Show modal for credentials
console.log('Showing modal for credentials');
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
console.log('Current WP set to:', $scope.currentWP);
$('#passwordProtectionModal').modal('show');
} else {
// Disable password protection
console.log('Disabling password protection');
var data = {
siteId: wp.id,
setting: 'password-protection',
value: 0
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (!response.data.status) {
wp.passwordProtection = !wp.passwordProtection;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message || 'Failed to disable password protection',
type: 'error'
});
} else {
new PNotify({
title: 'Success!',
text: 'Password protection disabled successfully.',
type: 'success'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
wp.passwordProtection = !wp.passwordProtection;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server.',
type: 'error'
});
});
}
};
$scope.submitPasswordProtection = function() {
console.log('submitPasswordProtection called');
console.log('Current WP:', $scope.currentWP);
if (!$scope.currentWP) {
console.error('No WordPress site selected');
new PNotify({
title: 'Error!',
text: 'No WordPress site selected.',
type: 'error'
});
return;
}
if (!$scope.currentWP.PPUsername || !$scope.currentWP.PPPassword) {
console.error('Missing username or password');
new PNotify({
title: 'Error!',
text: 'Please provide both username and password',
type: 'error'
});
return;
}
var data = {
siteId: $scope.currentWP.id,
setting: 'password-protection',
value: 1,
username: $scope.currentWP.PPUsername,
password: $scope.currentWP.PPPassword
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$('#passwordProtectionModal').modal('hide');
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (response.data.status) {
new PNotify({
title: 'Success!',
text: 'Password protection enabled successfully!',
type: 'success'
});
} else {
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to enable password protection',
type: 'error'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: 'Could not connect to server',
type: 'error'
});
});
};
$scope.cyberPanelLoading = true;
$scope.issueSSL = function (virtualHost) {
$scope.cyberPanelLoading = false;
var url = "/manageSSL/issueSSL";
var data = {
virtualHost: virtualHost
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.SSL === 1) {
new PNotify({
title: 'Success!',
text: 'SSL successfully issued.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
$scope.cyberPanelLoading = true;
$scope.searchWebsites = function () {
$scope.loading = true; // Set loading to true when starting search
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
patternAdded: $scope.patternAdded
};
dataurl = "/websites/searchWebsites";
$http.post(dataurl, data, config).then(function(response) {
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$("#listFail").hide();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
$scope.loading = false; // Set loading to false when done
}).catch(function(error) {
new PNotify({
title: 'Operation Failed!',
text: 'Connect disrupted, refresh the page.',
type: 'error'
});
$scope.loading = false; // Set loading to false on error
});
};
$scope.ScanWordpressSite = function () {
$('#cyberPanelLoading').show();
var url = "/websites/ScanWordpressSite";
var data = {}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#cyberPanelLoading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#cyberPanelLoading').hide();
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
});
app.controller('listChildDomainsMain', function ($scope, $http, $timeout) {
$scope.currentPage = 1;
$scope.recordsToShow = 10;
$scope.getFurtherWebsitesFromDB = function () {
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
dataurl = "/websites/fetchChildDomainsMain";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
if (response.data.listWebSiteStatus === 1) {
$scope.WebSitesList = JSON.parse(response.data.data);
$scope.pagination = response.data.pagination;
$scope.clients = JSON.parse(response.data.data);
$("#listFail").hide();
} else {
$("#listFail").fadeIn();
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialData(response) {
}
};
$scope.getFurtherWebsitesFromDB();
$scope.cyberPanelLoading = true;
$scope.issueSSL = function (virtualHost) {
$scope.cyberPanelLoading = false;
var url = "/manageSSL/issueSSL";
var data = {
virtualHost: virtualHost
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.SSL === 1) {
new PNotify({
title: 'Success!',
text: 'SSL successfully issued.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
$scope.cyberPanelLoading = true;
$scope.searchWebsites = function () {
$scope.cyberPanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
patternAdded: $scope.patternAdded
};
dataurl = "/websites/searchChilds";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
$scope.cyberPanelLoading = true;
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$("#listFail").hide();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Connect disrupted, refresh the page.',
type: 'error'
});
}
};
$scope.initConvert = function (virtualHost) {
$scope.domainName = virtualHost;
};
var statusFile;
$scope.installationProgress = true;
$scope.convert = function () {
$scope.cyberPanelLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
var ssl, dkimCheck, openBasedir;
if ($scope.sslCheck === true) {
ssl = 1;
} else {
ssl = 0
}
if ($scope.dkimCheck === true) {
dkimCheck = 1;
} else {
dkimCheck = 0
}
if ($scope.openBasedir === true) {
openBasedir = 1;
} else {
openBasedir = 0
}
url = "/websites/convertDomainToSite";
var data = {
package: $scope.packageForWebsite,
domainName: $scope.domainName,
adminEmail: $scope.adminEmail,
phpSelection: $scope.phpSelection,
websiteOwner: $scope.websiteOwner,
ssl: ssl,
dkimCheck: dkimCheck,
openBasedir: openBasedir
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.createWebSiteStatus === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$scope.currentStatus = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$scope.currentStatus = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
}
}
var DeleteDomain;
$scope.deleteDomainInit = function (childDomainForDeletion) {
DeleteDomain = childDomainForDeletion;
};
$scope.deleteChildDomain = function () {
$scope.cyberPanelLoading = false;
url = "/websites/submitDomainDeletion";
var data = {
websiteName: DeleteDomain,
DeleteDocRoot: $scope.DeleteDocRoot
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.websiteDeleteStatus === 1) {
new PNotify({
title: 'Success!',
text: 'Child Domain successfully deleted.',
type: 'success'
});
$scope.getFurtherWebsitesFromDB();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
});
/* Java script code to list accounts ends here */
/* Java script code to delete Website */
$("#websiteDeleteFailure").hide();
$("#websiteDeleteSuccess").hide();
$("#deleteWebsiteButton").hide();
$("#deleteLoading").hide();
app.controller('deleteWebsiteControl', function ($scope, $http) {
$scope.deleteWebsite = function () {
$("#deleteWebsiteButton").fadeIn();
};
$scope.deleteWebsiteFinal = function () {
$("#deleteLoading").show();
var websiteName = $scope.websiteToBeDeleted;
url = "/websites/submitWebsiteDeletion";
var data = {
websiteName: websiteName
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.websiteDeleteStatus === 0) {
$scope.errorMessage = response.data.error_message;
$("#websiteDeleteFailure").fadeIn();
$("#websiteDeleteSuccess").hide();
$("#deleteWebsiteButton").hide();
$("#deleteLoading").hide();
} else {
$("#websiteDeleteFailure").hide();
$("#websiteDeleteSuccess").fadeIn();
$("#deleteWebsiteButton").hide();
$scope.deletedWebsite = websiteName;
$("#deleteLoading").hide();
}
}
function cantLoadInitialDatas(response) {
}
};
});
/**
* Created by usman on 7/26/17.
*/
function getCookie(name) {
var cookieValue = null;
var t = document.cookie;
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;
}
var arry = []
function selectpluginJs(val) {
$('#mysearch').hide()
arry.push(val)
// console.log(arry)
document.getElementById('selJS').innerHTML = "";
for (var i = 0; i < arry.length; i++) {
$('#selJS').show()
var mlm = '<span style="background-color: #12207a; color: #FFFFFF; padding: 5px; border-radius: 30px"> ' + arry[i] + ' </span>   '
$('#selJS').append(mlm)
}
}
var DeletePluginURL;
function DeletePluginBuucket(url) {
DeletePluginURL = url;
}
function FinalDeletePluginBuucket() {
window.location.href = DeletePluginURL;
}
var SPVal;
app.controller('WPAddNewPlugin', function ($scope, $http, $timeout, $window, $compile) {
$scope.webSiteCreationLoading = true;
$scope.SearchPluginName = function (val) {
$scope.webSiteCreationLoading = false;
SPVal = val;
url = "/websites/SearchOnkeyupPlugin";
var searchcontent = $scope.searchcontent;
var data = {
pluginname: searchcontent
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.webSiteCreationLoading = true;
if (response.data.status === 1) {
if (SPVal == 'add') {
$('#mysearch').show()
document.getElementById('mysearch').innerHTML = "";
var res = response.data.plugns.plugins
// console.log(res);
for (i = 0; i <= res.length; i++) {
//
var tml = '<option onclick="selectpluginJs(\'' + res[i].slug + '\')" style=" border-bottom: 1px solid rgba(90, 91, 92, 0.5); padding: 5px; " value="' + res[i].slug + '">' + res[i].name + '</option> <br>';
$('#mysearch').append(tml);
}
} else if (SPVal == 'eidt') {
$('#mysearch').show()
document.getElementById('mysearch').innerHTML = "";
var res = response.data.plugns.plugins
// console.log(res);
for (i = 0; i <= res.length; i++) {
//
var tml = '<option ng-click="Addplugin(\'' + res[i].slug + '\')" style=" border-bottom: 1px solid rgba(90, 91, 92, 0.5); padding: 5px; " value="' + res[i].slug + '">' + res[i].name + '</option> <br>';
var temp = $compile(tml)($scope)
angular.element(document.getElementById('mysearch')).append(temp);
}
}
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.AddNewplugin = function () {
url = "/websites/AddNewpluginAjax";
var bucketname = $scope.PluginbucketName
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
config: arry,
Name: bucketname
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Bucket created.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.deletesPlgin = function (val) {
url = "/websites/deletesPlgin";
var data = {
pluginname: val,
pluginbBucketID: $('#pluginbID').html()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
location.reload();
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
$scope.Addplugin = function (slug) {
$('#mysearch').hide()
url = "/websites/Addplugineidt";
var data = {
pluginname: slug,
pluginbBucketID: $('#pluginbID').html()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
location.reload();
} else {
// $scope.errorMessage = response.data.error_message;
alert("Status not = 1: Error..." + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
}
});
var domain_check = 0;
function checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
domain_check = 0;
document.getElementById('Test_Domain').style.display = "block";
document.getElementById('Own_Domain').style.display = "none";
} else {
document.getElementById('Test_Domain').style.display = "none";
document.getElementById('Own_Domain').style.display = "block";
domain_check = 1;
}
// alert(domain_check);
}
app.controller('createWordpress', function ($scope, $http, $timeout, $compile, $window) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var statusFile;
$scope.createWordPresssite = function () {
$scope.webSiteCreationLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
var apacheBackend = 0;
if ($scope.apacheBackend === true) {
apacheBackend = 1;
} else {
apacheBackend = 0
}
var package = $scope.packageForWebsite;
var websiteOwner = $scope.websiteOwner;
var WPtitle = $scope.WPtitle;
// if (domain_check == 0) {
// var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
// var domainNameCreate = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
// }
// if (domain_check == 1) {
//
// var domainNameCreate = $scope.own_domainNameCreate;
// }
var domainNameCreate = $scope.domainNameCreate;
var WPUsername = $scope.WPUsername;
var adminEmail = $scope.adminEmail;
var WPPassword = $scope.WPPassword;
var WPVersions = $scope.WPVersions;
var pluginbucket = $scope.pluginbucket;
var autoupdates = $scope.autoupdates;
var pluginupdates = $scope.pluginupdates;
var themeupdates = $scope.themeupdates;
if (domain_check == 0) {
var path = "";
}
if (domain_check = 1) {
var path = $scope.installPath;
}
var home = "1";
if (typeof path != 'undefined') {
home = "0";
}
//alert(domainNameCreate);
var data = {
title: WPtitle,
domain: domainNameCreate,
WPVersion: WPVersions,
pluginbucket: pluginbucket,
adminUser: WPUsername,
Email: adminEmail,
PasswordByPass: WPPassword,
AutomaticUpdates: autoupdates,
Plugins: pluginupdates,
Themes: themeupdates,
websiteOwner: websiteOwner,
package: package,
home: home,
path: path,
apacheBackend: apacheBackend
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var url = "/websites/submitWorpressCreation";
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.webSiteCreationLoading = true;
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.goBackDisable = false;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
alert("Error..." + response)
}
};
$scope.goBack = function () {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$scope.webSiteCreationLoading = false;
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
});
//........... delete wp list
var FurlDeleteWP;
function DeleteWPNow(url) {
FurlDeleteWP = url;
}
function FinalDeleteWPNow() {
window.location.href = FurlDeleteWP;
}
var DeploytoProductionID;
function DeployToProductionInitial(vall) {
DeploytoProductionID = vall;
}
var create_staging_domain_check = 0;
function create_staging_checkbox_function() {
try {
var checkBox = document.getElementById("Create_Staging_Check");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
create_staging_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
create_staging_domain_check = 1;
}
} catch (e) {
}
// alert(domain_check);
}
create_staging_checkbox_function();
app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $window) {
var CheckBoxpasssword = 0;
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.searchIndex = 0;
$(document).ready(function () {
var checkstatus = document.getElementById("wordpresshome");
if (checkstatus !== null) {
$scope.LoadWPdata();
}
});
$scope.LoadWPdata = function () {
$scope.wordpresshomeloading = false;
$('#wordpresshomeloading').show();
var url = "/websites/FetchWPdata";
var data = {
WPid: $('#WPid').html(),
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(function(response) {
$scope.wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#WPVersion').text(response.data.ret_data.version);
if (response.data.ret_data.lscache === 1) {
$('#lscache').prop('checked', true);
}
if (response.data.ret_data.debugging === 1) {
$('#debugging').prop('checked', true);
}
// Set search index state
$scope.searchIndex = response.data.ret_data.searchIndex;
if (response.data.ret_data.maintenanceMode === 1) {
$('#maintenanceMode').prop('checked', true);
}
if (response.data.ret_data.wpcron === 1) {
$('#wpcron').prop('checked', true);
}
if (response.data.ret_data.passwordprotection == 1) {
var dc = '<input type="checkbox" checked ng-click="UpdateWPSettings(\'PasswordProtection\')" class="custom-control-input" id="passwdprotection"><label class="custom-control-label" for="passwdprotection"></label>';
var mp = $compile(dc)($scope);
angular.element(document.getElementById('prsswdprodata')).append(mp);
CheckBoxpasssword = 1;
} else {
var dc = '<input type="checkbox" data-toggle="modal" data-target="#Passwordprotection" class="custom-control-input" id="passwdprotection"><label class="custom-control-label" for="passwdprotection"></label>';
$('#prsswdprodata').append(dc);
CheckBoxpasssword = 0;
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}, function(error) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
console.error('Failed to load WP data:', error);
});
};
$scope.UpdateWPSettings = function (setting) {
$scope.wordpresshomeloading = false;
$('#wordpresshomeloading').show();
var url = "/websites/UpdateWPSettings";
var data;
if (setting === "PasswordProtection") {
data = {
WPid: $('#WPid').html(),
setting: setting,
PPUsername: CheckBoxpasssword == 0 ? $scope.PPUsername : '',
PPPassword: CheckBoxpasssword == 0 ? $scope.PPPassword : ''
};
} else {
var settingValue;
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
settingValue = $scope.searchIndex;
} else {
settingValue = $('#' + setting).is(":checked") ? 1 : 0;
}
data = {
WPid: $('#WPid').html(),
setting: setting,
settingValue: settingValue
};
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(function(response) {
$scope.wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!',
type: 'success'
});
if (setting === "PasswordProtection") {
location.reload();
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
// Revert the change on error
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
}
if (setting === "PasswordProtection") {
location.reload();
}
}
}, function(error) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
// Revert the change on error
if (setting === 'searchIndex') {
$scope.searchIndex = $scope.searchIndex === 1 ? 0 : 1;
}
console.error('Failed to update setting:', error);
});
};
$scope.GetCurrentPlugins = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/GetCurrentPlugins";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#PluginBody').html('');
var plugins = JSON.parse(response.data.plugins);
plugins.forEach(AddPlugins);
} else {
alert("Error:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.GetCurrentThemes = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/GetCurrentThemes";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#ThemeBody').html('');
var themes = JSON.parse(response.data.themes);
themes.forEach(AddThemes);
} else {
alert("Error:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.webSiteCreationLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.UpdatePlugins = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
pluginarray: PluginsList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/UpdatePlugins";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Updating Plugins in Background!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.DeletePlugins = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
pluginarray: PluginsList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/DeletePlugins";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deleting Plugin in Background!',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
}
$scope.ChangeStatus = function (plugin) {
$('#wordpresshomeloading').show();
var data = {
plugin: plugin,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/ChangeStatus";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Changed Plugin state Successfully !.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
}
function AddPlugins(value, index, array) {
var FinalMarkup = '<tr>'
FinalMarkup = FinalMarkup + '<td><input onclick="AddPluginToArray(this,\'' + value.name + '\')" type="checkbox" id="' + value.name + '"><label for="' + value.name + '"></label></td>';
for (let x in value) {
if (x === 'status') {
if (value[x] === 'inactive') {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatus(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State"><label for="' + value.name + 'State"></label></div></td>';
} else {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatus(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State" checked=""><label for="' + value.name + 'State"></label></div></td>';
}
} else if (x === 'update') {
if (value[x] === 'none') {
FinalMarkup = FinalMarkup + '<td><span class="label label-success">Upto Date</span></td>';
} else {
FinalMarkup = FinalMarkup + '<td><button ng-click="UpdatePlugins(\'' + value.name + '\')" aria-label="" type="button" class="btn btn-outline-danger">Update</button></td>';
}
} else {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button ng-click="DeletePlugins(\'' + value.name + '\')" aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></td>'
FinalMarkup = FinalMarkup + '</tr>'
var temp = $compile(FinalMarkup)($scope)
AppendToTable('#PluginBody', temp)
}
$scope.UpdateThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
Theme: theme,
Themearray: ThemesList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/UpdateThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Updating Theme in background !.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.DeleteThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
Theme: theme,
Themearray: ThemesList,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/DeleteThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deleting Theme in Background!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.ChangeStatusThemes = function (theme) {
$('#wordpresshomeloading').show();
var data = {
theme: theme,
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/StatusThemes";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Change Theme state in Bsckground!.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
function AddThemes(value, index, array) {
var FinalMarkup = '<tr>'
FinalMarkup = FinalMarkup + '<td><input onclick="AddThemeToArray(this,\'' + value.name + '\')" type="checkbox" id="' + value.name + '"><label for="' + value.name + '"></label></td>';
for (let x in value) {
if (x === 'status') {
if (value[x] === 'inactive') {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatusThemes(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State"><label for="' + value.name + 'State"></label></div></td>';
} else {
FinalMarkup = FinalMarkup + '<td><div ng-click="ChangeStatusThemes(\'' + value.name + '\')" class="form-check form-check-inline switch"><input type="checkbox" id="' + value.name + 'State" checked=""><label for="' + value.name + 'State"></label></div></td>';
}
} else if (x === 'update') {
if (value[x] === 'none') {
FinalMarkup = FinalMarkup + '<td><span class="label label-success">Upto Date</span></td>';
} else {
FinalMarkup = FinalMarkup + '<td><button ng-click="UpdateThemes(\'' + value.name + '\')" aria-label="" type="button" class="btn btn-outline-danger">Update</button></td>';
}
} else {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button ng-click="DeleteThemes(\'' + value.name + '\')" aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></td>'
FinalMarkup = FinalMarkup + '</tr>'
var temp = $compile(FinalMarkup)($scope)
AppendToTable('#ThemeBody', temp)
}
$scope.CreateStagingNow = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation Staging..";
//here enter domain name
if (create_staging_domain_check == 0) {
var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
var domainNameCreate = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
}
if (create_staging_domain_check == 1) {
var domainNameCreate = $scope.own_domainNameCreate;
}
var data = {
StagingName: $('#stagingName').val(),
StagingDomain: domainNameCreate,
WPid: $('#WPid').html(),
}
var url = "/websites/CreateStagingNow";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
function getCreationStatus() {
$('#wordpresshomeloading').show();
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
//$('#wordpresshomeloading').hide();
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$("#installProgressbackup").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$("#installProgressbackup").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$("#installProgressbackup").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
//$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.goBack = function () {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
$scope.fetchstaging = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/fetchstaging";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
// $('#ThemeBody').html('');
// var themes = JSON.parse(response.data.themes);
// themes.forEach(AddThemes);
$('#StagingBody').html('');
var staging = JSON.parse(response.data.wpsites);
staging.forEach(AddStagings);
} else {
alert("Error data.error_message:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert("Error" + response)
}
};
$scope.fetchDatabase = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
var url = "/websites/fetchDatabase";
var data = {
WPid: $('#WPid').html(),
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
$('#DB_Name').html(response.data.DataBaseName);
$('#DB_User').html(response.data.DataBaseUser);
$('#tableprefix').html(response.data.tableprefix);
} else {
alert("Error data.error_message:" + response.data.error_message)
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert("Error" + response)
}
};
$scope.SaveUpdateConfig = function () {
$('#wordpresshomeloading').show();
var data = {
AutomaticUpdates: $('#AutomaticUpdates').find(":selected").text(),
Plugins: $('#Plugins').find(":selected").text(),
Themes: $('#Themes').find(":selected").text(),
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/SaveUpdateConfig";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Update Configurations Sucessfully!.',
type: 'success'
});
$("#autoUpdateConfig").modal('hide');
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response,
type: 'error'
});
}
};
function AddStagings(value, index, array) {
var FinalMarkup = '<tr>'
for (let x in value) {
if (x === 'name') {
FinalMarkup = FinalMarkup + '<td><a href=/websites/WPHome?ID=' + value.id + '>' + value[x] + '</a></td>';
} else if (x !== 'url' && x !== 'deleteURL' && x !== 'id') {
FinalMarkup = FinalMarkup + '<td>' + value[x] + "</td>";
}
}
FinalMarkup = FinalMarkup + '<td><button onclick="DeployToProductionInitial(' + value.id + ')" data-toggle="modal" data-target="#DeployToProduction" style="margin-bottom: 2%; display: block" aria-label="" type="button" class="btn btn-outline-primary">Deploy to Production</button>' +
'<a href="' + value.deleteURL + '"> <button aria-label="" class="btn btn-danger btn-icon-left m-b-10" type="button">Delete</button></a></td>'
FinalMarkup = FinalMarkup + '</tr>'
AppendToTable('#StagingBody', FinalMarkup);
}
$scope.FinalDeployToProduction = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var data = {
WPid: $('#WPid').html(),
StagingID: DeploytoProductionID
}
var url = "/websites/DeploytoProduction";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Deploy To Production start!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response,
type: 'error'
});
}
};
$scope.CreateBackup = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation Backups..";
var data = {
WPid: $('#WPid').html(),
Backuptype: $('#backuptype').val()
}
var url = "/websites/WPCreateBackup";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('createbackupbutton').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Creating Backups!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
alert(response)
}
};
$scope.installwpcore = function () {
$('#wordpresshomeloading').show();
$('#wordpresshomeloadingsec').show();
var data = {
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/installwpcore";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Results fetched..',
type: 'success'
});
$('#SecurityResult').html(response.data.result);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.dataintegrity = function () {
$('#wordpresshomeloading').show();
$('#wordpresshomeloadingsec').show();
var data = {
WPid: $('#WPid').html(),
}
$scope.wordpresshomeloading = false;
var url = "/websites/dataintegrity";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Results fetched',
type: 'success'
});
$('#SecurityResult').html(response.data.result);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
$('#wordpresshomeloadingsec').hide();
$scope.wordpresshomeloading = true;
alert(response)
}
};
$scope.updateSetting = function(site, setting) {
var settingMap = {
'search-indexing': 'searchIndex',
'debugging': 'debugging',
'password-protection': 'passwordProtection',
'maintenance-mode': 'maintenanceMode'
};
// Toggle the state before sending request
site[settingMap[setting]] = site[settingMap[setting]] === 1 ? 0 : 1;
var data = {
siteId: site.id,
setting: setting,
value: site[settingMap[setting]]
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Setting updated successfully.',
type: 'success'
});
if (setting === 'password-protection' && site[settingMap[setting]] === 1) {
// Show password protection modal if enabling
site.PPUsername = "";
site.PPPassword = "";
$scope.currentWP = site;
$('#passwordProtectionModal').modal('show');
}
} else {
// Revert the change if update failed
site[settingMap[setting]] = site[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: response.data.error_message || 'Failed to update setting.',
type: 'error'
});
}
}).catch(function(error) {
// Revert the change on error
site[settingMap[setting]] = site[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: 'Connection failed while updating setting.',
type: 'error'
});
});
};
$scope.submitPasswordProtection = function() {
console.log('submitPasswordProtection called');
console.log('Current WP:', $scope.currentWP);
if (!$scope.currentWP) {
console.error('No WordPress site selected');
new PNotify({
title: 'Error!',
text: 'No WordPress site selected.',
type: 'error'
});
return;
}
if (!$scope.currentWP.PPUsername || !$scope.currentWP.PPPassword) {
console.error('Missing username or password');
new PNotify({
title: 'Error!',
text: 'Please provide both username and password',
type: 'error'
});
return;
}
var data = {
siteId: $scope.currentWP.id,
setting: 'password-protection',
value: 1,
username: $scope.currentWP.PPUsername,
password: $scope.currentWP.PPPassword
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$('#passwordProtectionModal').modal('hide');
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (response.data.status) {
new PNotify({
title: 'Success!',
text: 'Password protection enabled successfully!',
type: 'success'
});
} else {
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to enable password protection',
type: 'error'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: 'Could not connect to server',
type: 'error'
});
});
};
});
var PluginsList = [];
function AddPluginToArray(cBox, name) {
if (cBox.checked) {
PluginsList.push(name);
// alert(PluginsList);
} else {
const index = PluginsList.indexOf(name);
if (index > -1) {
PluginsList.splice(index, 1);
}
// alert(PluginsList);
}
}
var ThemesList = [];
function AddThemeToArray(cBox, name) {
if (cBox.checked) {
ThemesList.push(name);
// alert(ThemesList);
} else {
const index = ThemesList.indexOf(name);
if (index > -1) {
ThemesList.splice(index, 1);
}
// alert(ThemesList);
}
}
function AppendToTable(table, markup) {
$(table).append(markup);
}
//..................Restore Backup Home
app.controller('RestoreWPBackup', function ($scope, $http, $timeout, $window) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.checkmethode = function () {
var val = $('#RestoreMethode').children("option:selected").val();
if (val == 1) {
$('#Newsitediv').show();
$('#exinstingsitediv').hide();
} else if (val == 0) {
$('#exinstingsitediv').show();
$('#Newsitediv').hide();
} else {
}
};
$scope.RestoreWPbackupNow = function () {
$('#wordpresshomeloading').show();
$scope.wordpresshomeloading = false;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Start Restoring WordPress..";
var Domain = $('#wprestoresubdirdomain').val()
var path = $('#wprestoresubdirpath').val();
var home = "1";
if (typeof path != 'undefined' || path != '') {
home = "0";
}
if (typeof path == 'undefined') {
path = "";
}
var backuptype = $('#backuptype').html();
var data;
if (backuptype == "DataBase Backup") {
data = {
backupid: $('#backupid').html(),
DesSite: $('#DesSite').children("option:selected").val(),
Domain: '',
path: path,
home: home,
}
} else {
data = {
backupid: $('#backupid').html(),
DesSite: $('#DesSite').children("option:selected").val(),
Domain: Domain,
path: path,
home: home,
}
}
var url = "/websites/RestoreWPbackupNow";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
// console.log(data)
var d = $('#DesSite').children("option:selected").val();
var c = $("input[name=Newdomain]").val();
// if (d == -1 || c == "") {
// alert("Please Select Method of Backup Restore");
// } else {
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
// }
function ListInitialDatas(response) {
wordpresshomeloading = true;
$('#wordpresshomeloading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Restoring process starts!.',
type: 'success'
});
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$('#wordpresshomeloading').hide();
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function getCreationStatus() {
$('#wordpresshomeloading').show();
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
//$('#wordpresshomeloading').hide();
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$("#installProgressbackup").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$("#installProgressbackup").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$("#installProgressbackup").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
//$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.goBack = function () {
$('#wordpresshomeloading').hide();
$scope.wordpresshomeloading = true;
$scope.stagingDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
});
//.......................................Remote Backup
//........... delete DeleteBackupConfigNow
function DeleteBackupConfigNow(url) {
window.location.href = url;
}
function DeleteRemoteBackupsiteNow(url) {
window.location.href = url;
}
function DeleteBackupfileConfigNow(url) {
window.location.href = url;
}
app.controller('RemoteBackupConfig', function ($scope, $http, $timeout, $window) {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
$scope.SelectRemoteBackuptype = function () {
var val = $scope.RemoteBackuptype;
if (val == "SFTP") {
$scope.SFTPBackUpdiv = false;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
} else if (val == "S3") {
$scope.EndpointURLdiv = true;
$scope.Selectprovider = false;
$scope.S3keyNamediv = false;
$scope.Accesskeydiv = false;
$scope.SecretKeydiv = false;
$scope.SFTPBackUpdiv = true;
} else {
$scope.RemoteBackupLoading = true;
$scope.SFTPBackUpdiv = true;
$scope.EndpointURLdiv = true;
$scope.Selectprovider = true;
$scope.S3keyNamediv = true;
$scope.Accesskeydiv = true;
$scope.SecretKeydiv = true;
}
}
$scope.SelectProvidertype = function () {
$scope.EndpointURLdiv = true;
var provider = $scope.Providervalue
if (provider == 'Backblaze') {
$scope.EndpointURLdiv = false;
} else {
$scope.EndpointURLdiv = true;
}
}
$scope.SaveBackupConfig = function () {
$scope.RemoteBackupLoading = false;
var Hname = $scope.Hostname;
var Uname = $scope.Username;
var Passwd = $scope.Password;
var path = $scope.path;
var type = $scope.RemoteBackuptype;
var Providervalue = $scope.Providervalue;
var data;
if (type == "SFTP") {
data = {
Hname: Hname,
Uname: Uname,
Passwd: Passwd,
path: path,
type: type
}
} else if (type == "S3") {
if (Providervalue == "Backblaze") {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
EndUrl: $scope.EndpointURL,
type: type
}
} else {
data = {
S3keyname: $scope.S3keyName,
Provider: Providervalue,
AccessKey: $scope.Accesskey,
SecertKey: $scope.SecretKey,
type: type
}
}
}
var url = "/websites/SaveBackupConfig";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
});
var UpdatescheduleID;
app.controller('BackupSchedule', function ($scope, $http, $timeout, $window) {
$scope.BackupScheduleLoading = true;
$scope.SaveBackupSchedule = function () {
$scope.RemoteBackupLoading = false;
var FileRetention = $scope.Fretention;
var Backfrequency = $scope.Bfrequency;
var data = {
FileRetention: FileRetention,
Backfrequency: Backfrequency,
ScheduleName: $scope.ScheduleName,
RemoteConfigID: $('#RemoteConfigID').html(),
BackupType: $scope.BackupType
}
var url = "/websites/SaveBackupSchedule";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.getupdateid = function (ID) {
UpdatescheduleID = ID;
}
$scope.UpdateRemoteschedules = function () {
$scope.RemoteBackupLoading = false;
var Frequency = $scope.RemoteFrequency;
var fretention = $scope.RemoteFileretention;
var data = {
ScheduleID: UpdatescheduleID,
Frequency: Frequency,
FileRetention: fretention
}
var url = "/websites/UpdateRemoteschedules";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Updated!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.AddWPsiteforRemoteBackup = function () {
$scope.RemoteBackupLoading = false;
var data = {
WpsiteID: $('#Wpsite').val(),
RemoteScheduleID: $('#RemoteScheduleID').html()
}
var url = "/websites/AddWPsiteforRemoteBackup";
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.RemoteBackupLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.RemoteBackupLoading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
});
/* Java script code to create account */
var website_create_domain_check = 0;
function website_create_checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
website_create_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
website_create_domain_check = 1;
}
// alert(domain_check);
}
/* Java script code to create account ends here */
/* Java script code to list accounts */
$("#listFail").hide();
app.controller('listWebsites', function ($scope, $http, $window) {
$scope.web = {};
$scope.WebSitesList = [];
$scope.loading = true; // Add loading state
$scope.expandedSites = {}; // Track which sites are expanded
$scope.currentPage = 1;
$scope.recordsToShow = 10;
// Function to toggle site expansion
$scope.toggleSite = function(site) {
if (!$scope.expandedSites[site.domain]) {
$scope.expandedSites[site.domain] = true;
site.loading = true;
// You can add any data fetching logic here if needed
setTimeout(function() {
site.loading = false;
$scope.$apply();
}, 500);
} else {
$scope.expandedSites[site.domain] = false;
}
};
// Function to check if site is expanded
$scope.isExpanded = function(siteId) {
return $scope.expandedSites[siteId];
};
// Function to check if site data is loaded
$scope.isDataLoaded = function(site) {
return site.version !== undefined;
};
// Initial fetch of websites
$scope.getFurtherWebsitesFromDB = function () {
$scope.loading = true; // Set loading to true when starting fetch
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
var dataurl = "/websites/fetchWebsitesList";
$http.post(dataurl, data, config).then(function(response) {
if (response.data.listWebSiteStatus === 1) {
$scope.WebSitesList = JSON.parse(response.data.data);
$scope.pagination = response.data.pagination;
$("#listFail").hide();
// Expand the first site by default
if ($scope.WebSitesList.length > 0) {
$scope.expandedSites[$scope.WebSitesList[0].domain] = true;
}
} else {
$("#listFail").fadeIn();
$scope.errorMessage = response.data.error_message;
}
$scope.loading = false; // Set loading to false when done
}).catch(function(error) {
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching websites';
$scope.loading = false; // Set loading to false on error
});
};
// Call it immediately
$scope.getFurtherWebsitesFromDB();
$scope.showWPSites = function(domain) {
console.log('showWPSites called for domain:', domain);
// Make sure domain is defined
if (!domain) {
console.error('Domain is undefined');
return;
}
// Find the website in the list
var site = $scope.WebSitesList.find(function(website) {
return website.domain === domain;
});
if (!site) {
console.error('Website not found:', domain);
return;
}
// Set loading state
site.loadingWPSites = true;
// Toggle visibility
site.showWPSites = !site.showWPSites;
// If we're hiding, just return
if (!site.showWPSites) {
site.loadingWPSites = false;
return;
}
var config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = $.param({
domain: domain
});
$http.post('/websites/fetchWPDetails', data, config)
.then(function(response) {
console.log('Response received:', response);
if (response.data.status === 1 && response.data.fetchStatus === 1) {
site.wp_sites = response.data.sites || [];
// Initialize loading states for each WP site
site.wp_sites.forEach(function(wp) {
wp.loading = false;
wp.loadingPlugins = false;
wp.loadingTheme = false;
});
$("#listFail").hide();
} else {
$("#listFail").fadeIn();
site.showWPSites = false;
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
console.error('Error in response:', response.data.error_message);
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to fetch WordPress sites',
type: 'error'
});
}
})
.catch(function(error) {
console.error('Request failed:', error);
site.showWPSites = false;
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
new PNotify({
title: 'Error!',
text: error.message || 'Could not connect to server',
type: 'error'
});
})
.finally(function() {
site.loadingWPSites = false;
});
};
$scope.visitSite = function(wp) {
var url = wp.url || wp.domain;
if (!url) return;
if (!url.startsWith('http://') && !url.startsWith('https://')) {
url = 'https://' + url;
}
window.open(url, '_blank');
};
$scope.wpLogin = function(wpId) {
window.open('/websites/wpLogin?wpID=' + wpId, '_blank');
};
$scope.manageWP = function(wpId) {
window.location.href = '/websites/WPHome?ID=' + wpId;
};
$scope.updateSetting = function(wp, setting) {
var settingMap = {
'search-indexing': 'searchIndex',
'debugging': 'debugging',
'password-protection': 'passwordProtection',
'maintenance-mode': 'maintenanceMode'
};
// Toggle the state before sending request
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
var data = {
siteId: wp.id,
setting: setting,
value: wp[settingMap[setting]]
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Setting updated successfully.',
type: 'success'
});
if (setting === 'password-protection' && wp[settingMap[setting]] === 1) {
// Show password protection modal if enabling
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
$('#passwordProtectionModal').modal('show');
}
} else {
// Revert the change if update failed
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: response.data.error_message || 'Failed to update setting.',
type: 'error'
});
}
}).catch(function(error) {
// Revert the change on error
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: 'Connection failed while updating setting.',
type: 'error'
});
});
};
$scope.cyberPanelLoading = true;
$scope.issueSSL = function (virtualHost) {
$scope.cyberPanelLoading = false;
var url = "/manageSSL/issueSSL";
var data = {
virtualHost: virtualHost
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.SSL === 1) {
new PNotify({
title: 'Success!',
text: 'SSL successfully issued.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
$scope.cyberPanelLoading = true;
$scope.searchWebsites = function () {
$scope.loading = true; // Set loading to true when starting search
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
patternAdded: $scope.patternAdded
};
dataurl = "/websites/searchWebsites";
$http.post(dataurl, data, config).then(function(response) {
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$("#listFail").hide();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
$scope.loading = false; // Set loading to false when done
}).catch(function(error) {
new PNotify({
title: 'Operation Failed!',
text: 'Connect disrupted, refresh the page.',
type: 'error'
});
$scope.loading = false; // Set loading to false on error
});
};
$scope.ScanWordpressSite = function () {
$('#cyberPanelLoading').show();
var url = "/websites/ScanWordpressSite";
var data = {}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$('#cyberPanelLoading').hide();
if (response.data.status === 1) {
new PNotify({
title: 'Success!',
text: 'Successfully Saved!.',
type: 'success'
});
location.reload();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$('#cyberPanelLoading').hide();
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
};
$scope.deleteWPSite = function(wp) {
if (confirm('Are you sure you want to delete this WordPress site? This action cannot be undone.')) {
window.location.href = '/websites/ListWPSites?DeleteID=' + wp.id;
}
};
$scope.togglePasswordProtection = function(wp) {
console.log('togglePasswordProtection called for:', wp);
console.log('Current password protection state:', wp.passwordProtection);
if (wp.passwordProtection) {
// Show modal for credentials
console.log('Showing modal for credentials');
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
console.log('Current WP set to:', $scope.currentWP);
$('#passwordProtectionModal').modal('show');
} else {
// Disable password protection
console.log('Disabling password protection');
var data = {
siteId: wp.id,
setting: 'password-protection',
value: 0
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (!response.data.status) {
wp.passwordProtection = !wp.passwordProtection;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message || 'Failed to disable password protection',
type: 'error'
});
} else {
new PNotify({
title: 'Success!',
text: 'Password protection disabled successfully.',
type: 'success'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
wp.passwordProtection = !wp.passwordProtection;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server.',
type: 'error'
});
});
}
};
$scope.submitPasswordProtection = function() {
console.log('submitPasswordProtection called');
console.log('Current WP:', $scope.currentWP);
if (!$scope.currentWP) {
console.error('No WordPress site selected');
new PNotify({
title: 'Error!',
text: 'No WordPress site selected.',
type: 'error'
});
return;
}
if (!$scope.currentWP.PPUsername || !$scope.currentWP.PPPassword) {
console.error('Missing username or password');
new PNotify({
title: 'Error!',
text: 'Please provide both username and password',
type: 'error'
});
return;
}
var data = {
siteId: $scope.currentWP.id,
setting: 'password-protection',
value: 1,
username: $scope.currentWP.PPUsername,
password: $scope.currentWP.PPPassword
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
console.log('Sending request with data:', data);
$('#passwordProtectionModal').modal('hide');
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
console.log('Received response:', response);
if (response.data.status) {
new PNotify({
title: 'Success!',
text: 'Password protection enabled successfully!',
type: 'success'
});
} else {
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to enable password protection',
type: 'error'
});
}
}).catch(function(error) {
console.error('Request failed:', error);
$scope.currentWP.passwordProtection = false;
new PNotify({
title: 'Error!',
text: 'Could not connect to server',
type: 'error'
});
});
};
$scope.goToManage = function($event, domain) {
$event.stopPropagation();
window.location = '/websites/' + domain;
};
$scope.goToFileManager = function($event, domain) {
$event.stopPropagation();
window.location = '/filemanager/' + domain;
};
});
app.controller('listChildDomainsMain', function ($scope, $http, $timeout) {
$scope.currentPage = 1;
$scope.recordsToShow = 10;
$scope.getFurtherWebsitesFromDB = function () {
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
dataurl = "/websites/fetchChildDomainsMain";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
if (response.data.listWebSiteStatus === 1) {
$scope.WebSitesList = JSON.parse(response.data.data);
$scope.pagination = response.data.pagination;
$scope.clients = JSON.parse(response.data.data);
$("#listFail").hide();
// Expand the first site by default
if ($scope.WebSitesList.length > 0) {
$scope.expandedSites[$scope.WebSitesList[0].domain] = true;
}
} else {
$("#listFail").fadeIn();
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialData(response) {
}
};
$scope.getFurtherWebsitesFromDB();
$scope.cyberPanelLoading = true;
$scope.issueSSL = function (virtualHost) {
$scope.cyberPanelLoading = false;
var url = "/manageSSL/issueSSL";
var data = {
virtualHost: virtualHost
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.SSL === 1) {
new PNotify({
title: 'Success!',
text: 'SSL successfully issued.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
$scope.cyberPanelLoading = true;
$scope.searchWebsites = function () {
$scope.cyberPanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
patternAdded: $scope.patternAdded
};
dataurl = "/websites/searchChilds";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
$scope.cyberPanelLoading = true;
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$("#listFail").hide();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Connect disrupted, refresh the page.',
type: 'error'
});
}
};
$scope.initConvert = function (virtualHost) {
$scope.domainName = virtualHost;
};
var statusFile;
$scope.installationProgress = true;
$scope.convert = function () {
$scope.cyberPanelLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
var ssl, dkimCheck, openBasedir;
if ($scope.sslCheck === true) {
ssl = 1;
} else {
ssl = 0
}
if ($scope.dkimCheck === true) {
dkimCheck = 1;
} else {
dkimCheck = 0
}
if ($scope.openBasedir === true) {
openBasedir = 1;
} else {
openBasedir = 0
}
url = "/websites/convertDomainToSite";
var data = {
package: $scope.packageForWebsite,
domainName: $scope.domainName,
adminEmail: $scope.adminEmail,
phpSelection: $scope.phpSelection,
websiteOwner: $scope.websiteOwner,
ssl: ssl,
dkimCheck: dkimCheck,
openBasedir: openBasedir
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.createWebSiteStatus === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$scope.currentStatus = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$scope.currentStatus = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
}
}
var DeleteDomain;
$scope.deleteDomainInit = function (childDomainForDeletion) {
DeleteDomain = childDomainForDeletion;
};
$scope.deleteChildDomain = function () {
$scope.cyberPanelLoading = false;
url = "/websites/submitDomainDeletion";
var data = {
websiteName: DeleteDomain,
DeleteDocRoot: $scope.DeleteDocRoot
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberPanelLoading = true;
if (response.data.websiteDeleteStatus === 1) {
new PNotify({
title: 'Success!',
text: 'Child Domain successfully deleted.',
type: 'success'
});
$scope.getFurtherWebsitesFromDB();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page',
type: 'error'
});
}
};
});
/* Java script code to list accounts ends here */
/* Java script code to delete Website */
$("#websiteDeleteFailure").hide();
$("#websiteDeleteSuccess").hide();
$("#deleteWebsiteButton").hide();
$("#deleteLoading").hide();
app.controller('deleteWebsiteControl', function ($scope, $http) {
$scope.deleteWebsite = function () {
$("#deleteWebsiteButton").fadeIn();
};
$scope.deleteWebsiteFinal = function () {
$("#deleteLoading").show();
var websiteName = $scope.websiteToBeDeleted;
url = "/websites/submitWebsiteDeletion";
var data = {
websiteName: websiteName
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.websiteDeleteStatus === 0) {
$scope.errorMessage = response.data.error_message;
$("#websiteDeleteFailure").fadeIn();
$("#websiteDeleteSuccess").hide();
$("#deleteWebsiteButton").hide();
$("#deleteLoading").hide();
} else {
$("#websiteDeleteFailure").hide();
$("#websiteDeleteSuccess").fadeIn();
$("#deleteWebsiteButton").hide();
$scope.deletedWebsite = websiteName;
$("#deleteLoading").hide();
}
}
function cantLoadInitialDatas(response) {
}
};
});
/* Java script code to delete website ends here */
/* Java script code to modify package ends here */
$("#canNotModify").hide();
$("#webSiteDetailsToBeModified").hide();
$("#websiteModifyFailure").hide();
$("#websiteModifySuccess").hide();
$("#websiteSuccessfullyModified").hide();
$("#modifyWebsiteLoading").hide();
$("#modifyWebsiteButton").hide();
app.controller('modifyWebsitesController', function ($scope, $http) {
$scope.fetchWebsites = function () {
$("#modifyWebsiteLoading").show();
var websiteToBeModified = $scope.websiteToBeModified;
url = "/websites/getWebsiteDetails";
var data = {
websiteToBeModified: websiteToBeModified,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.modifyStatus === 0) {
console.log(response.data);
$scope.errorMessage = response.data.error_message;
$("#websiteModifyFailure").fadeIn();
$("#websiteModifySuccess").hide();
$("#modifyWebsiteButton").hide();
$("#modifyWebsiteLoading").hide();
$("#canNotModify").hide();
} else {
console.log(response.data);
$("#modifyWebsiteButton").fadeIn();
$scope.adminEmail = response.data.adminEmail;
$scope.currentPack = response.data.current_pack;
$scope.webpacks = JSON.parse(response.data.packages);
$scope.adminNames = JSON.parse(response.data.adminNames);
$scope.currentAdmin = response.data.currentAdmin;
$("#webSiteDetailsToBeModified").fadeIn();
$("#websiteModifySuccess").fadeIn();
$("#modifyWebsiteButton").fadeIn();
$("#modifyWebsiteLoading").hide();
$("#canNotModify").hide();
}
}
function cantLoadInitialDatas(response) {
$("#websiteModifyFailure").fadeIn();
}
};
$scope.modifyWebsiteFunc = function () {
var domain = $scope.websiteToBeModified;
var packForWeb = $scope.selectedPack;
var email = $scope.adminEmail;
var phpVersion = $scope.phpSelection;
var admin = $scope.selectedAdmin;
$("#websiteModifyFailure").hide();
$("#websiteModifySuccess").hide();
$("#websiteSuccessfullyModified").hide();
$("#canNotModify").hide();
$("#modifyWebsiteLoading").fadeIn();
url = "/websites/saveWebsiteChanges";
var data = {
domain: domain,
packForWeb: packForWeb,
email: email,
phpVersion: phpVersion,
admin: admin
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.saveStatus === 0) {
$scope.errMessage = response.data.error_message;
$("#canNotModify").fadeIn();
$("#websiteModifyFailure").hide();
$("#websiteModifySuccess").hide();
$("#websiteSuccessfullyModified").hide();
$("#modifyWebsiteLoading").hide();
} else {
$("#modifyWebsiteButton").hide();
$("#canNotModify").hide();
$("#websiteModifyFailure").hide();
$("#websiteModifySuccess").hide();
$("#websiteSuccessfullyModified").fadeIn();
$("#modifyWebsiteLoading").hide();
$scope.websiteModified = domain;
}
}
function cantLoadInitialDatas(response) {
$scope.errMessage = response.data.error_message;
$("#canNotModify").fadeIn();
}
};
});
/* Java script code to Modify Pacakge ends here */
/* Java script code to create account */
var website_child_domain_check = 0;
function website_child_domain_checkbox_function() {
var checkBox = document.getElementById("myCheck");
// Get the output text
// If the checkbox is checked, display the output text
if (checkBox.checked == true) {
website_child_domain_check = 0;
document.getElementById('Website_Create_Test_Domain').style.display = "block";
document.getElementById('Website_Create_Own_Domain').style.display = "none";
} else {
document.getElementById('Website_Create_Test_Domain').style.display = "none";
document.getElementById('Website_Create_Own_Domain').style.display = "block";
website_child_domain_check = 1;
}
// alert(domain_check);
}
app.controller('websitePages', function ($scope, $http, $timeout, $window) {
$scope.openWebTerminal = function() {
console.log('[DEBUG] openWebTerminal called');
$('#web-terminal-modal').modal('show');
console.log('[DEBUG] Modal should now be visible');
if ($scope.term) {
console.log('[DEBUG] Disposing previous terminal instance');
$scope.term.dispose();
}
var term = new Terminal({
cursorBlink: true,
fontFamily: 'monospace',
fontSize: 14,
theme: { background: '#000' }
});
$scope.term = term;
term.open(document.getElementById('xterm-container'));
term.focus();
console.log('[DEBUG] Terminal initialized and opened');
// Fetch JWT from backend with CSRF token
var domain = $("#domainNamePage").text();
var csrftoken = getCookie('csrftoken');
console.log('[DEBUG] Fetching JWT for domain:', domain);
$http.post('/websites/getTerminalJWT', { domain: domain }, {
headers: { 'X-CSRFToken': csrftoken }
})
.then(function(response) {
console.log('[DEBUG] JWT fetch response:', response);
if (response.data.status === 1 && response.data.token) {
var token = response.data.token;
var ssh_user = response.data.ssh_user;
var wsProto = location.protocol === 'https:' ? 'wss' : 'ws';
var wsUrl = wsProto + '://' + window.location.hostname + ':8888/ws?token=' + encodeURIComponent(token) + '&ssh_user=' + encodeURIComponent(ssh_user);
console.log('[DEBUG] Connecting to WebSocket:', wsUrl);
var socket = new WebSocket(wsUrl);
socket.binaryType = 'arraybuffer';
$scope.terminalSocket = socket;
socket.onopen = function() {
console.log('[DEBUG] WebSocket connection opened');
term.write('\x1b[32mConnected.\x1b[0m\r\n');
};
socket.onclose = function(event) {
console.log('[DEBUG] WebSocket connection closed', event);
term.write('\r\n\x1b[31mConnection closed.\x1b[0m\r\n');
// Optionally, log modal state
console.log('[DEBUG] Modal state on close:', $('#web-terminal-modal').is(':visible'));
};
socket.onerror = function(e) {
console.log('[DEBUG] WebSocket error', e);
term.write('\r\n\x1b[31mWebSocket error.\x1b[0m\r\n');
};
socket.onmessage = function(event) {
if (event.data instanceof ArrayBuffer) {
var text = new Uint8Array(event.data);
term.write(new TextDecoder().decode(text));
} else if (typeof event.data === 'string') {
term.write(event.data);
}
};
term.onData(function(data) {
if (socket.readyState === WebSocket.OPEN) {
var encoder = new TextEncoder();
socket.send(encoder.encode(data));
}
});
term.onResize(function(size) {
if (socket.readyState === WebSocket.OPEN) {
var msg = JSON.stringify({resize: {cols: size.cols, rows: size.rows}});
socket.send(msg);
}
});
$('#web-terminal-modal').on('hidden.bs.modal', function() {
console.log('[DEBUG] Modal hidden event triggered');
if ($scope.term) {
$scope.term.dispose();
$scope.term = null;
}
if ($scope.terminalSocket) {
$scope.terminalSocket.close();
$scope.terminalSocket = null;
}
});
} else {
console.log('[DEBUG] Failed to get terminal token', response);
term.write('\x1b[31mFailed to get terminal token.\x1b[0m\r\n');
}
}, function(error) {
console.log('[DEBUG] Failed to contact backend', error);
term.write('\x1b[31mFailed to contact backend.\x1b[0m\r\n');
});
};
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = true;
$scope.hideErrorLogs = true;
$scope.hidelogsbtn = function () {
$scope.hideLogs = true;
};
$scope.hideErrorLogsbtn = function () {
$scope.hideLogs = true;
};
$scope.fileManagerURL = "/filemanager/" + $("#domainNamePage").text();
$scope.wordPressInstallURL = $("#domainNamePage").text() + "/wordpressInstall";
$scope.joomlaInstallURL = $("#domainNamePage").text() + "/joomlaInstall";
$scope.setupGit = $("#domainNamePage").text() + "/setupGit";
$scope.installPrestaURL = $("#domainNamePage").text() + "/installPrestaShop";
$scope.installMagentoURL = $("#domainNamePage").text() + "/installMagento";
$scope.installMauticURL = $("#domainNamePage").text() + "/installMautic";
$scope.domainAliasURL = "/websites/" + $("#domainNamePage").text() + "/domainAlias";
$scope.previewUrl = "/preview/" + $("#domainNamePage").text() + "/";
var logType = 0;
$scope.pageNumber = 1;
$scope.fetchLogs = function (type) {
var pageNumber = $scope.pageNumber;
if (type == 3) {
pageNumber = $scope.pageNumber + 1;
$scope.pageNumber = pageNumber;
} else if (type == 4) {
pageNumber = $scope.pageNumber - 1;
$scope.pageNumber = pageNumber;
} else {
logType = type;
}
$scope.logFileLoading = false;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = false;
$scope.hideErrorLogs = true;
url = "/websites/getDataFromLogFile";
var domainNamePage = $("#domainNamePage").text();
var data = {
logType: logType,
virtualHost: domainNamePage,
page: pageNumber,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.logstatus == 1) {
$scope.logFileLoading = true;
$scope.logsFeteched = false;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = false;
$scope.hideLogs = false;
$scope.records = JSON.parse(response.data.data);
} else {
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = false;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = false;
$scope.errorMessage = response.data.error_message;
console.log(domainNamePage)
}
}
function cantLoadInitialDatas(response) {
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = false;
$scope.fetchedData = true;
$scope.hideLogs = false;
}
};
$scope.errorPageNumber = 1;
$scope.fetchErrorLogs = function (type) {
var errorPageNumber = $scope.errorPageNumber;
if (type == 3) {
errorPageNumber = $scope.errorPageNumber + 1;
$scope.errorPageNumber = errorPageNumber;
} else if (type == 4) {
errorPageNumber = $scope.errorPageNumber - 1;
$scope.errorPageNumber = errorPageNumber;
} else {
logType = type;
}
// notifications
$scope.logFileLoading = false;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideErrorLogs = true;
$scope.hideLogs = false;
url = "/websites/fetchErrorLogs";
var domainNamePage = $("#domainNamePage").text();
var data = {
virtualHost: domainNamePage,
page: errorPageNumber,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.logstatus === 1) {
// notifications
$scope.logFileLoading = true;
$scope.logsFeteched = false;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = false;
$scope.hideErrorLogs = false;
$scope.errorLogsData = response.data.data;
} else {
// notifications
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = false;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = true;
$scope.hideErrorLogs = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
// notifications
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = false;
$scope.fetchedData = true;
$scope.hideLogs = true;
$scope.hideErrorLogs = true;
}
};
///////// Configurations Part
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.hideconfigbtn = function () {
$scope.configurationsBox = true;
};
$scope.fetchConfigurations = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = true;
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configFileLoading = false;
url = "/websites/getDataFromConfigFile";
var virtualHost = $("#domainNamePage").text();
var data = {
virtualHost: virtualHost,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.configstatus === 1) {
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configurationsBox = false;
$scope.configsFetched = false;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = false;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = false;
$scope.configData = response.data.configData;
} else {
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = false;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = false;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
}
};
$scope.saveCongiruations = function () {
$scope.configFileLoading = false;
url = "/websites/saveConfigsToFile";
var virtualHost = $("#domainNamePage").text();
var configData = $scope.configData;
var data = {
virtualHost: virtualHost,
configData: configData,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.configstatus === 1) {
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = false;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
} else {
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = false;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = false;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
}
};
///////// Rewrite Rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.hideRewriteRulesbtn = function () {
$scope.configurationsBoxRewrite = true;
};
$scope.fetchRewriteFules = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBox = true;
$scope.changePHPView = true;
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
$scope.configFileLoading = false;
url = "/websites/getRewriteRules";
var virtualHost = $("#domainNamePage").text();
var data = {
virtualHost: virtualHost,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.rewriteStatus == 1) {
// from main
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.fetchedConfigsData = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
// main ends
$scope.configFileLoading = true;
//
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = false;
$scope.saveRewriteRulesBTN = false;
$scope.couldNotConnect = true;
$scope.rewriteRules = response.data.rewriteRules;
} else {
// from main
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
// from main
$scope.configFileLoading = true;
///
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = false;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
// from main
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
// from main
$scope.configFileLoading = true;
///
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.couldNotConnect = false;
}
};
$scope.saveRewriteRules = function () {
$scope.configFileLoading = false;
url = "/websites/saveRewriteRules";
var virtualHost = $("#domainNamePage").text();
var rewriteRules = $scope.rewriteRules;
var data = {
virtualHost: virtualHost,
rewriteRules: rewriteRules,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.rewriteStatus == 1) {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = false;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.configFileLoading = true;
} else {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = false;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = false;
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = false;
$scope.configFileLoading = true;
$scope.couldNotConnect = false;
}
};
//////// Application Installation part
$scope.installationDetailsForm = true;
$scope.installationDetailsFormJoomla = true;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.installationDetails = function () {
$scope.installationDetailsForm = !$scope.installationDetailsForm;
$scope.installationDetailsFormJoomla = true;
};
$scope.installationDetailsJoomla = function () {
$scope.installationDetailsFormJoomla = !$scope.installationDetailsFormJoomla;
$scope.installationDetailsForm = true;
};
$scope.installWordpress = function () {
$scope.installationDetailsForm = false;
$scope.applicationInstallerLoading = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
var domain = $("#domainNamePage").text();
var path = $scope.installPath;
url = "/websites/installWordpress";
var home = "1";
if (typeof path != 'undefined') {
home = "0";
}
var data = {
domain: domain,
home: home,
path: path,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
if (typeof path != 'undefined') {
$scope.installationURL = "http://" + domain + "/" + path;
} else {
$scope.installationURL = domain;
}
$scope.installationDetailsForm = false;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
} else {
$scope.installationDetailsForm = false;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.installationDetailsForm = false;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = false;
}
};
$scope.installJoomla = function () {
$scope.installationDetailsFormJoomla = false;
$scope.applicationInstallerLoading = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
var domain = $("#domainNamePage").text();
var path = $scope.installPath;
var username = 'admin';
var password = $scope.password;
var prefix = $scope.prefix;
url = "/websites/installJoomla";
var home = "1";
if (typeof path != 'undefined') {
home = "0";
}
var data = {
domain: domain,
siteName: $scope.siteName,
home: home,
path: path,
password: password,
prefix: prefix,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
if (typeof path != 'undefined') {
$scope.installationURL = "http://" + domain + "/" + path;
} else {
$scope.installationURL = domain;
}
$scope.installationDetailsFormJoomla = false;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
} else {
$scope.installationDetailsFormJoomla = false;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.installationDetailsFormJoomla = false;
$scope.applicationInstallerLoading = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = false;
}
};
//////// SSL Part
$scope.sslSaved = true;
$scope.couldNotSaveSSL = true;
$scope.hidsslconfigs = true;
$scope.couldNotConnect = true;
$scope.hidesslbtn = function () {
$scope.hidsslconfigs = true;
};
$scope.addSSL = function () {
$scope.hidsslconfigs = false;
$scope.configurationsBox = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = true;
};
$scope.saveSSL = function () {
$scope.configFileLoading = false;
url = "/websites/saveSSL";
var virtualHost = $("#domainNamePage").text();
var cert = $scope.cert;
var key = $scope.key;
var data = {
virtualHost: virtualHost,
cert: cert,
key: key
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.sslStatus === 1) {
$scope.sslSaved = false;
$scope.couldNotSaveSSL = true;
$scope.couldNotConnect = true;
$scope.configFileLoading = true;
} else {
$scope.sslSaved = true;
$scope.couldNotSaveSSL = false;
$scope.couldNotConnect = true;
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.sslSaved = true;
$scope.couldNotSaveSSL = true;
$scope.couldNotConnect = false;
$scope.configFileLoading = true;
}
};
//// Change PHP Master
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = true;
$scope.changePHPView = true;
$scope.hideChangePHPMaster = function () {
$scope.changePHPView = true;
};
$scope.changePHPMaster = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBox = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = false;
};
$scope.changePHPVersionMaster = function (childDomain, phpSelection) {
// notifcations
$scope.configFileLoading = false;
var url = "/websites/changePHP";
var data = {
childDomain: $("#domainNamePage").text(),
phpSelection: $scope.phpSelectionMaster,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changePHP === 1) {
$scope.configFileLoading = true;
$scope.websiteDomain = $("#domainNamePage").text();
// notifcations
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = false;
$scope.couldNotConnect = true;
} else {
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
// notifcations
$scope.failedToChangePHPMaster = false;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = true;
}
}
function cantLoadInitialDatas(response) {
$scope.configFileLoading = true;
// notifcations
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = false;
}
};
////// create domain part
$("#domainCreationForm").hide();
$scope.showCreateDomainForm = function () {
$("#domainCreationForm").fadeIn();
};
$scope.hideDomainCreationForm = function () {
$("#domainCreationForm").fadeOut();
};
$scope.masterDomain = $("#domainNamePage").text();
// notifcations settings
$scope.domainLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.DomainCreateForm = true;
var statusFile;
$scope.webselection = true;
$scope.WebsiteType = function () {
var type = $scope.websitetype;
if (type == 'Sub Domain') {
$scope.webselection = false;
$scope.DomainCreateForm = true;
} else if (type == 'Addon Domain') {
$scope.DomainCreateForm = false;
$scope.webselection = true;
$scope.masterDomain = $('#defaultSite').html()
}
};
$scope.WebsiteSelection = function () {
$scope.DomainCreateForm = false;
};
$scope.createDomain = function () {
$scope.domainLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
$scope.DomainCreateForm = true;
var ssl, dkimCheck, openBasedir, apacheBackend;
if ($scope.sslCheck === true) {
ssl = 1;
} else {
ssl = 0
}
if ($scope.dkimCheck === true) {
dkimCheck = 1;
} else {
dkimCheck = 0
}
if ($scope.openBasedir === true) {
openBasedir = 1;
} else {
openBasedir = 0
}
if ($scope.apacheBackend === true) {
apacheBackend = 1;
} else {
apacheBackend = 0
}
url = "/websites/submitDomainCreation";
var domainName = $scope.domainNameCreate;
var phpSelection = $scope.phpSelection;
var path = $scope.docRootPath;
if (typeof path === 'undefined') {
path = "";
}
var package = $scope.packageForWebsite;
// if (website_child_domain_check == 0) {
// var Part2_domainNameCreate = document.getElementById('Part2_domainNameCreate').value;
// var domainName = document.getElementById('TestDomainNameCreate').value + Part2_domainNameCreate;
// }
// if (website_child_domain_check == 1) {
//
// var domainName = $scope.own_domainNameCreate;
// }
var type = $scope.websitetype;
var domainName = $scope.domainNameCreate;
var data = {
domainName: domainName,
phpSelection: phpSelection,
ssl: ssl,
path: path,
masterDomain: $scope.masterDomain,
dkimCheck: dkimCheck,
openBasedir: openBasedir,
apacheBackend: apacheBackend
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
// console.log(data)
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.createWebSiteStatus === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.domainLoading = true;
$scope.installationDetailsForm = false;
$scope.DomainCreateForm = true;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.DomainCreateForm = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
////// List Domains Part
////////////////////////
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
$("#listDomains").hide();
$scope.showListDomains = function () {
fetchDomains();
$("#listDomains").fadeIn();
};
$scope.hideListDomains = function () {
$("#listDomains").fadeOut();
};
function fetchDomains() {
$scope.domainLoading = false;
var url = "/websites/fetchDomains";
var data = {
masterDomain: $("#domainNamePage").text(),
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.fetchStatus === 1) {
$scope.childDomains = JSON.parse(response.data.data);
$scope.domainLoading = true;
} else {
$scope.domainError = false;
$scope.errorMessage = response.data.error_message;
$scope.domainLoading = true;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
}
$scope.changePHP = function (childDomain, phpSelection) {
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = false;
$scope.childBaseDirChanged = true;
var url = "/websites/changePHP";
var data = {
childDomain: childDomain,
phpSelection: phpSelection,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changePHP === 1) {
$scope.domainLoading = true;
$scope.changedPHPVersion = phpSelection;
// notifcations
$scope.phpChanged = false;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
} else {
$scope.errorMessage = response.data.error_message;
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
}
};
$scope.changeChildBaseDir = function (childDomain, openBasedirValue) {
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = false;
$scope.childBaseDirChanged = true;
var url = "/websites/changeOpenBasedir";
var data = {
domainName: childDomain,
openBasedirValue: openBasedirValue
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changeOpenBasedir === 1) {
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = true;
$scope.childBaseDirChanged = false;
} else {
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = true;
$scope.childBaseDirChanged = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = false;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = true;
$scope.childBaseDirChanged = true;
}
}
$scope.deleteChildDomain = function (childDomain) {
$scope.domainLoading = false;
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
url = "/websites/submitDomainDeletion";
var data = {
websiteName: childDomain,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.websiteDeleteStatus === 1) {
$scope.domainLoading = true;
$scope.deletedDomain = childDomain;
fetchDomains();
// notifications
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = false;
$scope.sslIssued = true;
} else {
$scope.errorMessage = response.data.error_message;
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = false;
$scope.domainDeleted = true;
$scope.sslIssued = true;
}
};
$scope.issueSSL = function (childDomain, path) {
$scope.domainLoading = false;
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
var url = "/manageSSL/issueSSL";
var data = {
virtualHost: childDomain,
path: path,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.SSL === 1) {
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = false;
$scope.childBaseDirChanged = true;
$scope.sslDomainIssued = childDomain;
} else {
$scope.domainLoading = true;
$scope.errorMessage = response.data.error_message;
// notifcations
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
}
}
function cantLoadInitialDatas(response) {
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = false;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
}
};
/// Open_basedir protection
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = true;
$scope.openBaseDirView = function () {
$scope.openBaseDirBox = false;
};
$scope.hideOpenBasedir = function () {
$scope.openBaseDirBox = true;
};
$scope.applyOpenBasedirChanges = function (childDomain, phpSelection) {
// notifcations
$scope.baseDirLoading = false;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
var url = "/websites/changeOpenBasedir";
var data = {
domainName: $("#domainNamePage").text(),
openBasedirValue: $scope.openBasedirValue
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changeOpenBasedir === 1) {
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
} else {
$scope.baseDirLoading = true;
$scope.operationFailed = false;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirChanged = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = false;
$scope.openBaseDirBox = false;
}
}
// REWRITE Template
const httpToHTTPS = `### Rewrite Rules Added by CyberPanel Rewrite Rule Generator
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]
### End CyberPanel Generated Rules.
`;
const WWWToNonWWW = `### Rewrite Rules Added by CyberPanel Rewrite Rule Generator
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www\.(.*)$
RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
### End CyberPanel Generated Rules.
`;
const nonWWWToWWW = `### Rewrite Rules Added by CyberPanel Rewrite Rule Generator
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
### End CyberPanel Generated Rules.
`;
const WordpressProtect = `### Rewrite Rules Added by CyberPanel Rewrite Rule Generator
RewriteEngine On
RewriteRule ^/(xmlrpc|wp-trackback)\.php - [F,L,NC]
### End CyberPanel Generated Rules.
`;
$scope.applyRewriteTemplate = function () {
if ($scope.rewriteTemplate === "Force HTTP -> HTTPS") {
$scope.rewriteRules = httpToHTTPS + $scope.rewriteRules;
} else if ($scope.rewriteTemplate === "Force NON-WWW -> WWW") {
$scope.rewriteRules = nonWWWToWWW + $scope.rewriteRules;
} else if ($scope.rewriteTemplate === "Force WWW -> NON-WWW") {
$scope.rewriteRules = WWWToNonWWW + $scope.rewriteRules;
} else if ($scope.rewriteTemplate === "Disable Wordpress XMLRPC & Trackback") {
$scope.rewriteRules = WordpressProtect + $scope.rewriteRules;
}
};
});
/* Java script code to create account ends here */
/* Java script code to suspend/un-suspend Website */
app.controller('suspendWebsiteControl', function ($scope, $http) {
$scope.suspendLoading = true;
$scope.stateView = true;
$scope.websiteSuspendFailure = true;
$scope.websiteUnsuspendFailure = true;
$scope.websiteSuccess = true;
$scope.couldNotConnect = true;
$scope.showSuspendUnsuspend = function () {
$scope.stateView = false;
};
$scope.save = function () {
$scope.suspendLoading = false;
var websiteName = $scope.websiteToBeSuspended
var state = $scope.state;
url = "/websites/submitWebsiteStatus";
var data = {
websiteName: websiteName,
state: state,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.websiteStatus === 1) {
if (state == "Suspend") {
$scope.suspendLoading = true;
$scope.stateView = false;
$scope.websiteSuspendFailure = true;
$scope.websiteUnsuspendFailure = true;
$scope.websiteSuccess = false;
$scope.couldNotConnect = true;
$scope.websiteStatus = websiteName;
$scope.finalStatus = "Suspended";
} else {
$scope.suspendLoading = true;
$scope.stateView = false;
$scope.websiteSuspendFailure = true;
$scope.websiteUnsuspendFailure = true;
$scope.websiteSuccess = false;
$scope.couldNotConnect = true;
$scope.websiteStatus = websiteName;
$scope.finalStatus = "Un-suspended";
}
} else {
if (state == "Suspend") {
$scope.suspendLoading = true;
$scope.stateView = false;
$scope.websiteSuspendFailure = false;
$scope.websiteUnsuspendFailure = true;
$scope.websiteSuccess = true;
$scope.couldNotConnect = true;
} else {
$scope.suspendLoading = true;
$scope.stateView = false;
$scope.websiteSuspendFailure = true;
$scope.websiteUnsuspendFailure = false;
$scope.websiteSuccess = true;
$scope.couldNotConnect = true;
}
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
$scope.suspendLoading = true;
$scope.stateView = true;
$scope.websiteSuspendFailure = true;
$scope.websiteUnsuspendFailure = true;
$scope.websiteSuccess = true;
}
};
});
/* Java script code to suspend/un-suspend ends here */
/* Java script code to manage cron */
app.controller('manageCronController', function ($scope, $http) {
$("#manageCronLoading").hide();
$("#modifyCronForm").hide();
$("#cronTable").hide();
$("#saveCronButton").hide();
$("#addCronButton").hide();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
$scope.websiteToBeModified = $("#domain").text();
$scope.fetchWebsites = function () {
$("#manageCronLoading").show();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
var websiteToBeModified = $scope.websiteToBeModified;
url = "/websites/getWebsiteCron";
var data = {
domain: websiteToBeModified,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.getWebsiteCron === 0) {
console.log(response.data);
$scope.errorMessage = response.data.error_message;
$("#cronTable").hide();
$("#manageCronLoading").hide();
$("#modifyCronForm").hide();
$("#saveCronButton").hide();
$("#addCronButton").hide();
} else {
console.log(response.data);
var finalData = response.data.crons;
$scope.cronList = finalData;
$("#cronTable").show();
$("#manageCronLoading").hide();
$("#modifyCronForm").hide();
$("#saveCronButton").hide();
$("#addCronButton").hide();
}
}
function cantLoadInitialDatas(response) {
$("#manageCronLoading").hide();
$("#cronTable").hide();
$("#fetchCronFailure").show();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
}
};
$scope.fetchWebsites();
$scope.fetchCron = function (cronLine) {
$("#cronTable").show();
$("#manageCronLoading").show();
$("#modifyCronForm").show();
$("#saveCronButton").show();
$("#addCronButton").hide();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
$scope.line = cronLine;
console.log($scope.line);
var websiteToBeModified = $scope.websiteToBeModified;
url = "/websites/getCronbyLine";
var data = {
domain: websiteToBeModified,
line: cronLine
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
console.log(response);
if (response.data.getWebsiteCron === 0) {
console.log(response.data);
$scope.errorMessage = response.data.error_message;
$("#cronTable").show();
$("#manageCronLoading").hide();
$("#modifyCronForm").hide();
$("#saveCronButton").hide();
$("#addCronButton").hide();
} else {
console.log(response.data);
$scope.minute = response.data.cron.minute
$scope.hour = response.data.cron.hour
$scope.monthday = response.data.cron.monthday
$scope.month = response.data.cron.month
$scope.weekday = response.data.cron.weekday
$scope.command = response.data.cron.command
$scope.line = response.data.line
$("#cronTable").show();
$("#manageCronLoading").hide();
$("#modifyCronForm").fadeIn();
$("#addCronButton").hide();
$("#saveCronButton").show();
}
}
function cantLoadInitialDatas(response) {
$("#manageCronLoading").hide();
$("#fetchCronFailure").show();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
}
};
$scope.populate = function () {
splitTime = $scope.defined.split(" ");
$scope.minute = splitTime[0];
$scope.hour = splitTime[1];
$scope.monthday = splitTime[2];
$scope.month = splitTime[3];
$scope.weekday = splitTime[4];
}
$scope.addCronForm = function () {
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
$("#manageCronLoading").hide();
if (!$scope.websiteToBeModified) {
alert("Please select a domain first");
} else {
$scope.minute = $scope.hour = $scope.monthday = $scope.month = $scope.weekday = $scope.command = $scope.line = "";
$("#cronTable").hide();
$("#manageCronLoading").hide();
$("#modifyCronForm").show();
$("#saveCronButton").hide()
$("#addCronButton").show();
}
};
$scope.addCronFunc = function () {
$("#manageCronLoading").show();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
var websiteToBeModified = $scope.websiteToBeModified;
url = "/websites/addNewCron";
var data = {
domain: websiteToBeModified,
minute: $scope.minute,
hour: $scope.hour,
monthday: $scope.monthday,
month: $scope.month,
weekday: $scope.weekday,
cronCommand: $scope.command
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
console.log(response);
if (response.data.addNewCron === 0) {
$scope.errorMessage = response.data.error_message
$("#manageCronLoading").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
$("#addCronFailure").show();
} else {
$("#cronTable").hide();
$("#manageCronLoading").hide();
$("#cronEditSuccess").show();
$("#fetchCronFailure").hide();
$("#addCronFailure").hide();
}
}
function cantLoadInitialDatas(response) {
$("#manageCronLoading").hide();
$("#addCronFailure").show();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
}
};
$scope.removeCron = function (line) {
$("#manageCronLoading").show();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
url = "/websites/remCronbyLine";
var data = {
domain: $scope.websiteToBeModified,
line: line
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
console.log(response);
if (response.data.remCronbyLine === 0) {
$scope.errorMessage = response.data.error_message;
$("#manageCronLoading").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
$("#addCronFailure").show();
} else {
$("#cronTable").hide();
$("#manageCronLoading").hide();
$("#cronEditSuccess").show();
$("#fetchCronFailure").hide();
$("#addCronFailure").hide();
}
}
function cantLoadInitialDatas(response) {
$("#manageCronLoading").hide();
$("#addCronFailure").show();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
}
};
$scope.modifyCronFunc = function () {
$("#manageCronLoading").show();
$("#addCronFailure").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
var websiteToBeModified = $scope.websiteToBeModified;
url = "/websites/saveCronChanges";
var data = {
domain: websiteToBeModified,
line: $scope.line,
minute: $scope.minute,
hour: $scope.hour,
monthday: $scope.monthday,
month: $scope.month,
weekday: $scope.weekday,
cronCommand: $scope.command
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.addNewCron === 0) {
$scope.errorMessage = response.data.error_message;
$("#manageCronLoading").hide();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
$("#addCronFailure").show();
} else {
console.log(response.data);
$("#cronTable").hide();
$("#manageCronLoading").hide();
$("#cronEditSuccess").show();
$("#fetchCronFailure").hide();
$("#addCronFailure").hide();
}
}
function cantLoadInitialDatas(response) {
$("#manageCronLoading").hide();
$("#addCronFailure").show();
$("#cronEditSuccess").hide();
$("#fetchCronFailure").hide();
}
};
});
/* Java script code to manage cron ends here */
/* Java script code to manage cron */
app.controller('manageAliasController', function ($scope, $http, $timeout, $window) {
$('form').submit(function (e) {
e.preventDefault();
});
var masterDomain = "";
$scope.aliasTable = false;
$scope.addAliasButton = false;
$scope.domainAliasForm = true;
$scope.aliasError = true;
$scope.couldNotConnect = true;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
$scope.createAliasEnter = function ($event) {
var keyCode = $event.which || $event.keyCode;
if (keyCode === 13) {
$scope.manageAliasLoading = false;
$scope.addAliasFunc();
}
};
$scope.showAliasForm = function (domainName) {
//$scope.domainAliasForm = false;
//$scope.aliasTable = true;
//$scope.addAliasButton = true;
masterDomain = domainName;
$scope.showCreateDomainForm();
$scope.masterDomain = domainName;
};
$scope.addAliasFunc = function () {
$scope.manageAliasLoading = false;
var ssl;
if ($scope.sslCheck === true) {
ssl = 1;
} else {
ssl = 0
}
url = "/websites/submitAliasCreation";
var data = {
masterDomain: masterDomain,
aliasDomain: $scope.aliasDomain,
ssl: ssl
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.createAliasStatus === 1) {
$scope.aliasTable = true;
$scope.addAliasButton = true;
$scope.domainAliasForm = false;
$scope.aliasError = true;
$scope.couldNotConnect = true;
$scope.aliasCreated = false;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
$timeout(function () {
$window.location.reload();
}, 3000);
} else {
$scope.aliasTable = true;
$scope.addAliasButton = true;
$scope.domainAliasForm = false;
$scope.aliasError = false;
$scope.couldNotConnect = true;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.aliasTable = true;
$scope.addAliasButton = true;
$scope.domainAliasForm = false;
$scope.aliasError = true;
$scope.couldNotConnect = false;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
}
};
$scope.issueSSL = function (masterDomain, aliasDomain) {
$scope.manageAliasLoading = false;
url = "/websites/issueAliasSSL";
var data = {
masterDomain: masterDomain,
aliasDomain: aliasDomain,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.sslStatus === 1) {
$scope.aliasTable = false;
$scope.addAliasButton = true;
$scope.domainAliasForm = true;
$scope.aliasError = true;
$scope.couldNotConnect = true;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = false;
} else {
$scope.aliasTable = false;
$scope.addAliasButton = true;
$scope.domainAliasForm = true;
$scope.aliasError = false;
$scope.couldNotConnect = true;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.aliasTable = false;
$scope.addAliasButton = true;
$scope.domainAliasForm = true;
$scope.aliasError = true;
$scope.couldNotConnect = false;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
}
};
$scope.removeAlias = function (masterDomain, aliasDomain) {
$scope.manageAliasLoading = false;
url = "/websites/delateAlias";
var data = {
masterDomain: masterDomain,
aliasDomain: aliasDomain,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.deleteAlias === 1) {
$scope.aliasTable = false;
$scope.addAliasButton = true;
$scope.domainAliasForm = true;
$scope.aliasError = true;
$scope.couldNotConnect = true;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = false;
$timeout(function () {
$window.location.reload();
}, 3000);
} else {
$scope.aliasTable = false;
$scope.addAliasButton = true;
$scope.domainAliasForm = true;
$scope.aliasError = false;
$scope.couldNotConnect = true;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.aliasTable = false;
$scope.addAliasButton = true;
$scope.domainAliasForm = true;
$scope.aliasError = true;
$scope.couldNotConnect = false;
$scope.aliasCreated = true;
$scope.manageAliasLoading = true;
$scope.operationSuccess = true;
}
};
////// create domain part
$("#domainCreationForm").hide();
$scope.showCreateDomainForm = function () {
$("#domainCreationForm").fadeIn();
};
$scope.hideDomainCreationForm = function () {
$("#domainCreationForm").fadeOut();
};
$scope.masterDomain = $("#domainNamePage").text();
// notifcations settings
$scope.domainLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.DomainCreateForm = true;
var statusFile;
$scope.webselection = true;
$scope.WebsiteType = function () {
var type = $scope.websitetype;
if (type == 'Sub Domain') {
$scope.webselection = false;
$scope.DomainCreateForm = true;
} else if (type == 'Addon Domain') {
$scope.DomainCreateForm = false;
$scope.webselection = true;
$scope.masterDomain = $('#defaultSite').html()
}
};
$scope.WebsiteSelection = function () {
$scope.DomainCreateForm = false;
};
$scope.createDomain = function () {
$scope.domainLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
$scope.DomainCreateForm = true;
var ssl, dkimCheck, openBasedir, apacheBackend;
if ($scope.sslCheck === true) {
ssl = 1;
} else {
ssl = 0
}
if ($scope.dkimCheck === true) {
dkimCheck = 1;
} else {
dkimCheck = 0
}
openBasedir = 0;
apacheBackend = 0
url = "/websites/submitDomainCreation";
var domainName = $scope.domainNameCreate;
var path = $scope.docRootPath;
if (typeof path === 'undefined') {
path = "";
}
var domainName = $scope.domainNameCreate;
var data = {
domainName: domainName,
ssl: ssl,
path: path,
masterDomain: $scope.masterDomain,
dkimCheck: 1,
openBasedir: 0,
alias: 1
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
// console.log(data)
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.createWebSiteStatus === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.domainLoading = true;
$scope.installationDetailsForm = false;
$scope.DomainCreateForm = true;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.DomainCreateForm = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
fetchDomains();
} else {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
$scope.installationDetailsForm = true;
$scope.DomainCreateForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
////// List Domains Part
////////////////////////
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
fetchDomains();
$scope.showListDomains = function () {
fetchDomains();
$("#listDomains").fadeIn();
};
$scope.hideListDomains = function () {
$("#listDomains").fadeOut();
};
function fetchDomains() {
$scope.domainLoading = false;
var url = "/websites/fetchDomains";
var data = {
masterDomain: $("#domainNamePage").text(),
alias: 1
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.fetchStatus === 1) {
$scope.childDomains = JSON.parse(response.data.data);
$scope.domainLoading = true;
} else {
$scope.domainError = false;
$scope.errorMessage = response.data.error_message;
$scope.domainLoading = true;
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
}
$scope.changePHP = function (childDomain, phpSelection) {
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = false;
$scope.childBaseDirChanged = true;
var url = "/websites/changePHP";
var data = {
childDomain: childDomain,
phpSelection: phpSelection,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changePHP === 1) {
$scope.domainLoading = true;
$scope.changedPHPVersion = phpSelection;
// notifcations
$scope.phpChanged = false;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
} else {
$scope.errorMessage = response.data.error_message;
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
}
}
function cantLoadInitialDatas(response) {
$scope.domainLoading = true;
// notifcations
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.childBaseDirChanged = true;
}
};
$scope.changeChildBaseDir = function (childDomain, openBasedirValue) {
// notifcations
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = false;
$scope.childBaseDirChanged = true;
var url = "/websites/changeOpenBasedir";
var data = {
domainName: childDomain,
openBasedirValue: openBasedirValue
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changeOpenBasedir === 1) {
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = true;
$scope.childBaseDirChanged = false;
} else {
$scope.phpChanged = true;
$scope.domainError = false;
$scope.couldNotConnect = true;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = true;
$scope.childBaseDirChanged = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.phpChanged = true;
$scope.domainError = true;
$scope.couldNotConnect = false;
$scope.domainDeleted = true;
$scope.sslIssued = true;
$scope.domainLoading = true;
$scope.childBaseDirChanged = true;
}
}
$scope.showWPSites = function(domain) {
console.log('showWPSites called for domain:', domain);
// Make sure domain is defined
if (!domain) {
console.error('Domain is undefined');
return;
}
// Find the website in the list
var site = $scope.WebSitesList.find(function(website) {
return website.domain === domain;
});
if (!site) {
console.error('Website not found:', domain);
return;
}
// Set loading state
site.loadingWPSites = true;
// Toggle visibility
site.showWPSites = !site.showWPSites;
// If we're hiding, just return
if (!site.showWPSites) {
site.loadingWPSites = false;
return;
}
var config = {
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = $.param({
domain: domain
});
$http.post('/websites/fetchWPDetails', data, config)
.then(function(response) {
console.log('Response received:', response);
if (response.data.status === 1 && response.data.fetchStatus === 1) {
site.wp_sites = response.data.sites || [];
// Initialize loading states for each WP site
site.wp_sites.forEach(function(wp) {
wp.loading = false;
wp.loadingPlugins = false;
wp.loadingTheme = false;
});
$("#listFail").hide();
} else {
$("#listFail").fadeIn();
site.showWPSites = false;
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
console.error('Error in response:', response.data.error_message);
new PNotify({
title: 'Error!',
text: response.data.error_message || 'Failed to fetch WordPress sites',
type: 'error'
});
}
})
.catch(function(error) {
console.error('Request failed:', error);
site.showWPSites = false;
$("#listFail").fadeIn();
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
new PNotify({
title: 'Error!',
text: error.message || 'Could not connect to server',
type: 'error'
});
})
.finally(function() {
site.loadingWPSites = false;
});
};
$scope.updateSetting = function(wp, setting) {
var settingMap = {
'search-indexing': 'searchIndex',
'debugging': 'debugging',
'password-protection': 'passwordProtection',
'maintenance-mode': 'maintenanceMode'
};
// Toggle the state before sending request
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
var data = {
siteId: wp.id,
setting: setting,
value: wp[settingMap[setting]]
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post('/websites/UpdateWPSettings', data, config).then(function(response) {
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Setting updated successfully.',
type: 'success'
});
if (setting === 'password-protection' && wp[settingMap[setting]] === 1) {
// Show password protection modal if enabling
wp.PPUsername = "";
wp.PPPassword = "";
$scope.currentWP = wp;
$('#passwordProtectionModal').modal('show');
}
} else {
// Revert the change if update failed
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: response.data.error_message || 'Failed to update setting.',
type: 'error'
});
}
}).catch(function(error) {
// Revert the change on error
wp[settingMap[setting]] = wp[settingMap[setting]] === 1 ? 0 : 1;
new PNotify({
title: 'Error',
text: 'Connection failed while updating setting.',
type: 'error'
});
});
};
$scope.visitSite = function(wp) {
var url = wp.url || wp.domain;
if (!url) return;
if (!url.startsWith('http://') && !url.startsWith('https://')) {
url = 'https://' + url;
}
window.open(url, '_blank');
};
$scope.wpLogin = function(wpId) {
window.open('/websites/wpLogin?wpID=' + wpId, '_blank');
};
$scope.manageWP = function(wpId) {
window.location.href = '/websites/listWPsites?wpID=' + wpId;
};
$scope.saveRewriteRules = function () {
$scope.configFileLoading = false;
url = "/websites/saveRewriteRules";
var virtualHost = $("#childDomain").text();
var rewriteRules = $scope.rewriteRules;
var data = {
virtualHost: virtualHost,
rewriteRules: rewriteRules,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.rewriteStatus == 1) {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = false;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.configFileLoading = true;
} else {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = false;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = false;
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = false;
$scope.configFileLoading = true;
$scope.couldNotConnect = false;
}
};
//////// SSL Part
$scope.sslSaved = true;
$scope.couldNotSaveSSL = true;
$scope.hidsslconfigs = true;
$scope.couldNotConnect = true;
$scope.hidesslbtn = function () {
$scope.hidsslconfigs = true;
};
$scope.addSSL = function () {
$scope.hidsslconfigs = false;
$scope.configurationsBox = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = true;
};
$scope.saveSSL = function () {
$scope.configFileLoading = false;
url = "/websites/saveSSL";
var virtualHost = $("#childDomain").text();
var cert = $scope.cert;
var key = $scope.key;
var data = {
virtualHost: virtualHost,
cert: cert,
key: key,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.sslStatus === 1) {
$scope.sslSaved = false;
$scope.couldNotSaveSSL = true;
$scope.couldNotConnect = true;
$scope.configFileLoading = true;
} else {
$scope.sslSaved = true;
$scope.couldNotSaveSSL = false;
$scope.couldNotConnect = true;
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.sslSaved = true;
$scope.couldNotSaveSSL = true;
$scope.couldNotConnect = false;
$scope.configFileLoading = true;
}
};
//// Change PHP Master
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = true;
$scope.changePHPView = true;
$scope.hideChangePHPMaster = function () {
$scope.changePHPView = true;
};
$scope.changePHPMaster = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBox = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = false;
};
$scope.changePHPVersionMaster = function (childDomain, phpSelection) {
// notifcations
$scope.configFileLoading = false;
var url = "/websites/changePHP";
var data = {
childDomain: $("#childDomain").text(),
phpSelection: $scope.phpSelectionMaster,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changePHP === 1) {
$scope.configFileLoading = true;
$scope.websiteDomain = $("#childDomain").text();
// notifcations
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = false;
$scope.couldNotConnect = true;
} else {
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
// notifcations
$scope.failedToChangePHPMaster = false;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = true;
}
}
function cantLoadInitialDatas(response) {
$scope.configFileLoading = true;
// notifcations
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = false;
}
};
/// Open_basedir protection
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = true;
$scope.openBaseDirView = function () {
$scope.openBaseDirBox = false;
};
$scope.hideOpenBasedir = function () {
$scope.openBaseDirBox = true;
};
$scope.applyOpenBasedirChanges = function (childDomain, phpSelection) {
// notifcations
$scope.baseDirLoading = false;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
var url = "/websites/changeOpenBasedir";
var data = {
domainName: $("#childDomain").text(),
openBasedirValue: $scope.openBasedirValue
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changeOpenBasedir === 1) {
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
} else {
$scope.baseDirLoading = true;
$scope.operationFailed = false;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = false;
$scope.openBaseDirBox = false;
}
}
});
/* Application Installer */
app.controller('installWordPressCTRL', function ($scope, $http, $timeout) {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
var statusFile;
var domain = $("#domainNamePage").text();
var path;
$scope.goBack = function () {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
$scope.installWordPress = function () {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting installation..";
path = $scope.installPath;
url = "/websites/installWordpress";
var home = "1";
if (typeof path !== 'undefined') {
home = "0";
}
var data = {
domain: domain,
home: home,
path: path,
blogTitle: $scope.blogTitle,
adminUser: $scope.adminUser,
passwordByPass: $scope.adminPassword,
adminEmail: $scope.adminEmail
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
statusFile = response.data.tempStatusPath;
getInstallStatus();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
}
};
function getInstallStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile,
domainName: domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
if (typeof path !== 'undefined') {
$scope.installationURL = "http://" + domain + "/" + path;
} else {
$scope.installationURL = domain;
}
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getInstallStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.canNotFetch = true;
$scope.couldNotConnect = false;
}
}
});
app.controller('installJoomlaCTRL', function ($scope, $http, $timeout) {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$scope.databasePrefix = 'jm_';
var statusFile;
var domain = $("#domainNamePage").text();
var path;
$scope.goBack = function () {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getInstallStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile,
domainName: domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
if (typeof path !== 'undefined') {
$scope.installationURL = "http://" + domain + "/" + path;
} else {
$scope.installationURL = domain;
}
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getInstallStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.canNotFetch = true;
$scope.couldNotConnect = false;
}
}
$scope.installJoomla = function () {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting installation..";
path = $scope.installPath;
url = "/websites/installJoomla";
var home = "1";
if (typeof path !== 'undefined') {
home = "0";
}
var data = {
domain: domain,
home: home,
path: path,
siteName: $scope.siteName,
username: $scope.adminUser,
passwordByPass: $scope.adminPassword,
prefix: $scope.databasePrefix
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
statusFile = response.data.tempStatusPath;
getInstallStatus();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
}
};
});
app.controller('setupGit', function ($scope, $http, $timeout, $window) {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.gitLoading = true;
$scope.githubBranch = 'master';
$scope.installProg = true;
$scope.goBackDisable = true;
var defaultProvider = 'github';
$scope.setProvider = function (provider) {
defaultProvider = provider;
};
var statusFile;
var domain = $("#domainNamePage").text();
function getInstallStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile,
domainName: domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.gitLoading = true;
$scope.goBackDisable = true;
$scope.installationURL = domain;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
$timeout(function () {
$window.location.reload();
}, 3000);
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.gitLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getInstallStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.canNotFetch = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
$scope.attachRepo = function () {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.gitLoading = false;
$scope.installProg = false;
$scope.currentStatus = "Attaching GIT..";
url = "/websites/setupGitRepo";
var data = {
domain: domain,
username: $scope.githubUserName,
reponame: $scope.githubRepo,
branch: $scope.githubBranch,
defaultProvider: defaultProvider
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
statusFile = response.data.tempStatusPath;
getInstallStatus();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.gitLoading = true;
$scope.errorMessage = response.data.error_message;
$scope.goBackDisable = false;
}
}
function cantLoadInitialDatas(response) {
}
};
$scope.goBack = function () {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installProg = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.gitLoading = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
/// Detach Repo
$scope.failedMesg = true;
$scope.successMessage = true;
$scope.couldNotConnect = true;
$scope.gitLoading = true;
$scope.successMessageBranch = true;
$scope.detachRepo = function () {
$scope.failedMesg = true;
$scope.successMessage = true;
$scope.couldNotConnect = true;
$scope.gitLoading = false;
$scope.successMessageBranch = true;
url = "/websites/detachRepo";
var data = {
domain: domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.gitLoading = true;
if (response.data.status === 1) {
$scope.failedMesg = true;
$scope.successMessage = false;
$scope.couldNotConnect = true;
$scope.successMessageBranch = true;
$timeout(function () {
$window.location.reload();
}, 3000);
} else {
$scope.failedMesg = false;
$scope.successMessage = true;
$scope.couldNotConnect = true;
$scope.successMessageBranch = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.failedMesg = true;
$scope.successMessage = true;
$scope.couldNotConnect = false;
$scope.gitLoading = true;
$scope.successMessageBranch = true;
}
};
$scope.changeBranch = function () {
$scope.failedMesg = true;
$scope.successMessage = true;
$scope.couldNotConnect = true;
$scope.gitLoading = false;
$scope.successMessageBranch = true;
url = "/websites/changeBranch";
var data = {
domain: domain,
githubBranch: $scope.githubBranch
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.gitLoading = true;
if (response.data.status === 1) {
$scope.failedMesg = true;
$scope.successMessage = true;
$scope.couldNotConnect = true;
$scope.successMessageBranch = false;
} else {
$scope.failedMesg = false;
$scope.successMessage = true;
$scope.couldNotConnect = true;
$scope.successMessageBranch = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.failedMesg = true;
$scope.successMessage = true;
$scope.couldNotConnect = false;
$scope.gitLoading = true;
$scope.successMessageBranch = true;
}
};
});
app.controller('installPrestaShopCTRL', function ($scope, $http, $timeout) {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$scope.databasePrefix = 'ps_';
var statusFile;
var domain = $("#domainNamePage").text();
var path;
$scope.goBack = function () {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getInstallStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile,
domainName: domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
if (typeof path !== 'undefined') {
$scope.installationURL = "http://" + domain + "/" + path;
} else {
$scope.installationURL = domain;
}
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getInstallStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.canNotFetch = true;
$scope.couldNotConnect = false;
}
}
$scope.installPrestShop = function () {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting installation..";
path = $scope.installPath;
url = "/websites/prestaShopInstall";
var home = "1";
if (typeof path !== 'undefined') {
home = "0";
}
var data = {
domain: domain,
home: home,
path: path,
shopName: $scope.shopName,
firstName: $scope.firstName,
lastName: $scope.lastName,
databasePrefix: $scope.databasePrefix,
email: $scope.email,
passwordByPass: $scope.password
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
statusFile = response.data.tempStatusPath;
getInstallStatus();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
}
};
});
app.controller('installMauticCTRL', function ($scope, $http, $timeout) {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$scope.databasePrefix = 'ps_';
var statusFile;
var domain = $("#domainNamePage").text();
var path;
$scope.goBack = function () {
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getInstallStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile,
domainName: domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
if (typeof path !== 'undefined') {
$scope.installationURL = "http://" + domain + "/" + path;
} else {
$scope.installationURL = domain;
}
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getInstallStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.canNotFetch = true;
$scope.couldNotConnect = false;
}
}
$scope.installMautic = function () {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = true;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting installation..";
path = $scope.installPath;
url = "/websites/mauticInstall";
var home = "1";
if (typeof path !== 'undefined') {
home = "0";
}
var data = {
domain: domain,
home: home,
path: path,
username: $scope.adminUserName,
email: $scope.email,
passwordByPass: $scope.password
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.installStatus === 1) {
statusFile = response.data.tempStatusPath;
getInstallStatus();
} else {
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.installationFailed = false;
$scope.installationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.wpInstallLoading = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
}
};
});
app.controller('sshAccess', function ($scope, $http, $timeout) {
$scope.openWebTerminal = function() {
$('#web-terminal-modal').modal('show');
if ($scope.term) {
$scope.term.dispose();
}
var term = new Terminal({
cursorBlink: true,
fontFamily: 'monospace',
fontSize: 14,
theme: { background: '#000' }
});
$scope.term = term;
term.open(document.getElementById('xterm-container'));
term.focus();
// Fetch JWT from backend with CSRF token
var domain = $("#domainName").text();
var csrftoken = getCookie('csrftoken');
$http.post('/websites/getTerminalJWT', { domain: domain }, {
headers: { 'X-CSRFToken': csrftoken }
})
.then(function(response) {
if (response.data.status === 1 && response.data.token) {
var token = response.data.token;
var ssh_user = $("#externalApp").text();
var wsProto = location.protocol === 'https:' ? 'wss' : 'ws';
var wsUrl = wsProto + '://' + window.location.hostname + ':8888/ws?token=' + encodeURIComponent(token) + '&ssh_user=' + encodeURIComponent(ssh_user);
var socket = new WebSocket(wsUrl);
socket.binaryType = 'arraybuffer';
$scope.terminalSocket = socket;
socket.onopen = function() {
term.write('\x1b[32mConnected.\x1b[0m\r\n');
};
socket.onclose = function() {
term.write('\r\n\x1b[31mConnection closed.\x1b[0m\r\n');
};
socket.onerror = function(e) {
term.write('\r\n\x1b[31mWebSocket error.\x1b[0m\r\n');
};
socket.onmessage = function(event) {
if (event.data instanceof ArrayBuffer) {
var text = new Uint8Array(event.data);
term.write(new TextDecoder().decode(text));
} else if (typeof event.data === 'string') {
term.write(event.data);
}
};
term.onData(function(data) {
if (socket.readyState === WebSocket.OPEN) {
var encoder = new TextEncoder();
socket.send(encoder.encode(data));
}
});
term.onResize(function(size) {
if (socket.readyState === WebSocket.OPEN) {
var msg = JSON.stringify({resize: {cols: size.cols, rows: size.rows}});
socket.send(msg);
}
});
$('#web-terminal-modal').on('hidden.bs.modal', function() {
if ($scope.term) {
$scope.term.dispose();
$scope.term = null;
}
if ($scope.terminalSocket) {
$scope.terminalSocket.close();
$scope.terminalSocket = null;
}
});
} else {
term.write('\x1b[31mFailed to get terminal token.\x1b[0m\r\n');
}
}, function() {
term.write('\x1b[31mFailed to contact backend.\x1b[0m\r\n');
});
};
$scope.wpInstallLoading = true;
$scope.setupSSHAccess = function () {
$scope.wpInstallLoading = false;
url = "/websites/saveSSHAccessChanges";
var data = {
domain: $("#domainName").text(),
externalApp: $("#externalApp").text(),
password: $scope.password
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.wpInstallLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes Successfully Applied.',
type: 'success'
});
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
new PNotify({
title: 'Error!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
/// SSH Key at user level
$scope.keyBox = true;
$scope.saveKeyBtn = true;
$scope.addKey = function () {
$scope.showKeyBox = true;
$scope.keyBox = false;
$scope.saveKeyBtn = false;
};
function populateCurrentKeys() {
url = "/websites/getSSHConfigs";
var data = {
domain: $("#domainName").text(),
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
$scope.records = JSON.parse(response.data.data);
}
}
function cantLoadInitialDatas(response) {
$scope.couldNotConnect = false;
}
}
populateCurrentKeys();
$scope.deleteKey = function (key) {
$scope.wpInstallLoading = false;
url = "/websites/deleteSSHKey";
var data = {
domain: $("#domainName").text(),
key: key,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.wpInstallLoading = true;
if (response.data.delete_status === 1) {
new PNotify({
title: 'Success',
text: 'Key deleted successfully.',
type: 'success'
});
populateCurrentKeys();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.wpInstallLoading = true;
new PNotify({
title: 'Error!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
}
$scope.saveKey = function (key) {
$scope.wpInstallLoading = false;
url = "/websites/addSSHKey";
var data = {
domain: $("#domainName").text(),
key: $scope.keyData,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.wpInstallLoading = true;
if (response.data.add_status === 1) {
new PNotify({
title: 'Success',
text: 'Key added successfully.',
type: 'success'
});
populateCurrentKeys();
} else {
new PNotify({
title: 'Error!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
new PNotify({
title: 'Error!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
}
});
/* Java script code to cloneWebsite */
app.controller('cloneWebsite', function ($scope, $http, $timeout, $window) {
$('form').submit(function (e) {
e.preventDefault();
});
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.goBackDisable = true;
$scope.cloneEnter = function ($event) {
var keyCode = $event.which || $event.keyCode;
if (keyCode === 13) {
$scope.cyberpanelLoading = false;
$scope.startCloning();
}
};
var statusFile;
$scope.startCloning = function () {
$scope.cyberpanelLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = true;
$scope.currentStatus = "Cloning started..";
url = "/websites/startCloning";
var data = {
masterDomain: $("#domainName").text(),
domainName: $scope.domain
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$scope.currentStatus = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
$scope.currentStatus = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.goBackDisable = false;
}
}
});
/* Java script code to cloneWebsite ends here */
/* Java script code to git tracking */
app.controller('manageGIT', function ($scope, $http, $timeout, $window) {
$scope.cyberpanelLoading = true;
$scope.loadingSticks = true;
$scope.gitTracking = true;
$scope.gitEnable = true;
$scope.statusBox = true;
$scope.gitCommitsTable = true;
var statusFile;
$scope.fetchFolderDetails = function () {
$scope.cyberpanelLoading = false;
$scope.gitCommitsTable = true;
url = "/websites/fetchFolderDetails";
var data = {
domain: $("#domain").text(),
folder: $scope.folder
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
if (response.data.repo === 1) {
$scope.gitTracking = true;
$scope.gitEnable = false;
$scope.branches = response.data.finalBranches;
$scope.deploymentKey = response.data.deploymentKey;
$scope.remote = response.data.remote;
$scope.remoteResult = response.data.remoteResult;
$scope.totalCommits = response.data.totalCommits;
$scope.home = response.data.home;
$scope.webHookURL = response.data.webHookURL;
$scope.autoCommitCurrent = response.data.autoCommitCurrent;
$scope.autoPushCurrent = response.data.autoPushCurrent;
$scope.emailLogsCurrent = response.data.emailLogsCurrent;
document.getElementById("currentCommands").value = response.data.commands;
$scope.webhookCommandCurrent = response.data.webhookCommandCurrent;
} else {
$scope.gitTracking = false;
$scope.gitEnable = true;
$scope.home = response.data.home;
$scope.deploymentKey = response.data.deploymentKey;
}
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.initRepo = function () {
$scope.cyberpanelLoading = false;
url = "/websites/initRepo";
var data = {
domain: $("#domain").text(),
folder: $scope.folder
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Repo initiated.',
type: 'success'
});
$scope.fetchFolderDetails();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.setupRemote = function () {
$scope.cyberpanelLoading = false;
url = "/websites/setupRemote";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
gitHost: $scope.gitHost,
gitUsername: $scope.gitUsername,
gitReponame: $scope.gitReponame,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Remote successfully set.',
type: 'success'
});
$scope.fetchFolderDetails();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
var changeBranch = 0;
$scope.changeBranch = function () {
if (changeBranch === 1) {
changeBranch = 0;
return 0;
}
$scope.loadingSticks = false;
$("#showStatus").modal();
url = "/websites/changeGitBranch";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
branchName: $scope.branchName
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.loadingSticks = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.commandStatus = response.data.commandStatus;
$timeout(function () {
$window.location.reload();
}, 3000);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
$scope.commandStatus = response.data.commandStatus;
}
}
function cantLoadInitialDatas(response) {
$scope.loadingSticks = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.createNewBranch = function () {
$scope.cyberpanelLoading = false;
$scope.commandStatus = "";
$scope.statusBox = false;
changeBranch = 1;
url = "/websites/createNewBranch";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
newBranchName: $scope.newBranchName
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.commandStatus = response.data.commandStatus;
$scope.fetchFolderDetails();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
$scope.commandStatus = response.data.commandStatus;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = false;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.commitChanges = function () {
$scope.cyberpanelLoading = false;
$scope.commandStatus = "";
$scope.statusBox = false;
url = "/websites/commitChanges";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
commitMessage: $scope.commitMessage
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.commandStatus = response.data.commandStatus;
$scope.fetchFolderDetails();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
$scope.commandStatus = response.data.commandStatus;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = false;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.gitPull = function () {
$scope.loadingSticks = false;
$("#showStatus").modal();
url = "/websites/gitPull";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.loadingSticks = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.commandStatus = response.data.commandStatus;
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
$scope.commandStatus = response.data.commandStatus;
}
}
function cantLoadInitialDatas(response) {
$scope.loadingSticks = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.gitPush = function () {
$scope.loadingSticks = false;
$("#showStatus").modal();
url = "/websites/gitPush";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.loadingSticks = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.commandStatus = response.data.commandStatus;
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
$scope.commandStatus = response.data.commandStatus;
}
}
function cantLoadInitialDatas(response) {
$scope.loadingSticks = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.attachRepoGIT = function () {
$scope.cyberpanelLoading = false;
$scope.commandStatus = "";
$scope.statusBox = false;
url = "/websites/attachRepoGIT";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
gitHost: $scope.gitHost,
gitUsername: $scope.gitUsername,
gitReponame: $scope.gitReponame,
overrideData: $scope.overrideData
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.commandStatus = response.data.commandStatus;
$scope.fetchFolderDetails();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
$scope.commandStatus = response.data.commandStatus;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = false;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.removeTracking = function () {
$scope.cyberpanelLoading = false;
url = "/websites/removeTracking";
var data = {
domain: $("#domain").text(),
folder: $scope.folder
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes applied.',
type: 'success'
});
$scope.fetchFolderDetails();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.fetchGitignore = function () {
$scope.cyberpanelLoading = false;
url = "/websites/fetchGitignore";
var data = {
domain: $("#domain").text(),
folder: $scope.folder
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully fetched.',
type: 'success'
});
$scope.gitIgnoreContent = response.data.gitIgnoreContent;
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.saveGitIgnore = function () {
$scope.cyberpanelLoading = false;
url = "/websites/saveGitIgnore";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
gitIgnoreContent: $scope.gitIgnoreContent
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully saved.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.fetchCommits = function () {
$scope.cyberpanelLoading = false;
url = "/websites/fetchCommits";
var data = {
domain: $("#domain").text(),
folder: $scope.folder
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
$scope.gitCommitsTable = false;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully fetched.',
type: 'success'
});
$scope.commits = JSON.parse(response.data.commits);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
var currentComit;
var fetchFileCheck = 0;
var initial = 1;
$scope.fetchFiles = function (commit) {
currentComit = commit;
$scope.cyberpanelLoading = false;
if (initial === 1) {
initial = 0;
} else {
fetchFileCheck = 1;
}
url = "/websites/fetchFiles";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
commit: commit
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
$scope.gitCommitsTable = false;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully fetched.',
type: 'success'
});
$scope.files = response.data.files;
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.fileStatus = true;
$scope.fetchChangesInFile = function () {
$scope.fileStatus = true;
if (fetchFileCheck === 1) {
fetchFileCheck = 0;
return 0;
}
$scope.cyberpanelLoading = false;
$scope.currentSelectedFile = $scope.changeFile;
url = "/websites/fetchChangesInFile";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
file: $scope.changeFile,
commit: currentComit
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully fetched.',
type: 'success'
});
$scope.fileStatus = false;
document.getElementById("fileChangedContent").innerHTML = response.data.fileChangedContent;
} else {
$scope.fileStatus = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.saveGitConfigurations = function () {
$scope.cyberpanelLoading = false;
url = "/websites/saveGitConfigurations";
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
autoCommit: $scope.autoCommit,
autoPush: $scope.autoPush,
emailLogs: $scope.emailLogs,
commands: document.getElementById("currentCommands").value,
webhookCommand: $scope.webhookCommand
};
if ($scope.autoCommit === undefined) {
$scope.autoCommitCurrent = 'Never';
} else {
$scope.autoCommitCurrent = $scope.autoCommit;
}
if ($scope.autoPush === undefined) {
$scope.autoPushCurrent = 'Never';
} else {
$scope.autoPushCurrent = $scope.autoPush;
}
if ($scope.emailLogs === undefined) {
$scope.emailLogsCurrent = false;
} else {
$scope.emailLogsCurrent = $scope.emailLogs;
}
if ($scope.webhookCommand === undefined) {
$scope.webhookCommandCurrent = false;
} else {
$scope.webhookCommandCurrent = $scope.webhookCommand;
}
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully saved.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.currentPage = 1;
$scope.recordsToShow = 10;
$scope.fetchGitLogs = function () {
$scope.cyberpanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
domain: $("#domain").text(),
folder: $scope.folder,
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
dataurl = "/websites/fetchGitLogs";
$http.post(dataurl, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully fetched.',
type: 'success'
});
$scope.logs = JSON.parse(response.data.logs);
$scope.pagination = response.data.pagination;
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
});
/* Java script code to git tracking ends here */
app.controller('ApacheManager', function ($scope, $http, $timeout) {
$scope.cyberpanelloading = true;
$scope.apacheOLS = true;
$scope.pureOLS = true;
$scope.lswsEnt = true;
var apache = 1, ols = 2, lsws = 3;
var statusFile;
$scope.getSwitchStatus = function () {
$scope.cyberpanelloading = false;
url = "/websites/getSwitchStatus";
var data = {
domainName: $("#domainNamePage").text()
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
$scope.cyberpanelloading = true;
if (response.data.status === 1) {
if (response.data.server === apache) {
$scope.apacheOLS = false;
$scope.pureOLS = true;
$scope.lswsEnt = true;
$scope.configData = response.data.configData;
$scope.pmMaxChildren = response.data.pmMaxChildren;
$scope.pmStartServers = response.data.pmStartServers;
$scope.pmMinSpareServers = response.data.pmMinSpareServers;
$scope.pmMaxSpareServers = response.data.pmMaxSpareServers;
$scope.phpPath = response.data.phpPath;
} else if (response.data.server === ols) {
$scope.apacheOLS = true;
$scope.pureOLS = false;
$scope.lswsEnt = true;
} else {
$scope.apacheOLS = true;
$scope.pureOLS = true;
$scope.lswsEnt = false;
}
//$scope.records = JSON.parse(response.data.data);
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.getSwitchStatus();
$scope.switchServer = function (server) {
$scope.cyberpanelloading = false;
$scope.functionProgress = {"width": "0%"};
$scope.functionStatus = 'Starting conversion..';
url = "/websites/switchServer";
var data = {
domainName: $("#domainNamePage").text(),
phpSelection: $scope.phpSelection,
server: server
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
if (response.data.status === 1) {
statusFile = response.data.tempStatusPath;
statusFunc();
} else {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
function statusFunc() {
$scope.cyberpanelloading = false;
url = "/websites/statusFunc";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
if (response.data.status === 1) {
if (response.data.abort === 1) {
$scope.functionProgress = {"width": "100%"};
$scope.functionStatus = response.data.currentStatus;
$scope.cyberpanelloading = true;
$timeout.cancel();
$scope.getSwitchStatus();
} else {
$scope.functionProgress = {"width": response.data.installationProgress + "%"};
$scope.functionStatus = response.data.currentStatus;
$timeout(statusFunc, 3000);
}
} else {
$scope.cyberpanelloading = true;
$scope.functionStatus = response.data.error_message;
$scope.functionProgress = {"width": response.data.installationProgress + "%"};
$timeout.cancel();
}
}
function cantLoadInitialData(response) {
$scope.functionProgress = {"width": response.data.installationProgress + "%"};
$scope.functionStatus = 'Could not connect to server, please refresh this page.';
$timeout.cancel();
}
}
$scope.tuneSettings = function () {
$scope.cyberpanelloading = false;
url = "/websites/tuneSettings";
var data = {
domainName: $("#domainNamePage").text(),
pmMaxChildren: $scope.pmMaxChildren,
pmStartServers: $scope.pmStartServers,
pmMinSpareServers: $scope.pmMinSpareServers,
pmMaxSpareServers: $scope.pmMaxSpareServers,
phpPath: $scope.phpPath
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
$scope.cyberpanelloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes successfully applied.',
type: 'success'
});
} else {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
$scope.saveApacheConfig = function () {
$scope.cyberpanelloading = false;
url = "/websites/saveApacheConfigsToFile";
var data = {
domainName: $("#domainNamePage").text(),
configData: $scope.configData
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
$scope.cyberpanelloading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Changes successfully applied.',
type: 'success'
});
} else {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberpanelloading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
};
});
app.controller('createDockerPackage', function ($scope, $http, $window) {
$scope.cyberpanelLoading = true;
$scope.createdockerpackage = function () {
$scope.cyberpanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
name: $scope.packagesname,
cpu: $scope.CPU,
Memory: $scope.Memory,
Bandwidth: $scope.Bandwidth,
disk: $scope.disk
};
dataurl = "/websites/AddDockerpackage";
$http.post(dataurl, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully Saved.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
}
$scope.Getpackage = function (packid) {
$scope.cyberpanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
id: packid,
};
dataurl = "/websites/Getpackage";
$http.post(dataurl, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
$scope.U_Name = response.data.error_message.obj.Name
$scope.U_CPU = response.data.error_message.obj.CPU
$scope.U_Memory = response.data.error_message.obj.Memory
$scope.U_Bandwidth = response.data.error_message.obj.Bandwidth
$scope.U_DiskSpace = response.data.error_message.obj.DiskSpace
$scope.EidtID = packid;
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
}
$scope.SaveUpdate = function () {
$scope.cyberpanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
id: $scope.EidtID,
CPU: $scope.U_CPU,
RAM: $scope.U_Memory,
Bandwidth: $scope.U_Bandwidth,
DiskSpace: $scope.U_DiskSpace,
};
dataurl = "/websites/Updatepackage";
$http.post(dataurl, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully Updated.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
}
var FinalDeletepackageURL;
$scope.Deletepackage = function (url) {
FinalDeletepackageURL = url;
// console.log(FinalDeletepackageURL);
}
$scope.ConfirmDelete = function () {
window.location.href = FinalDeletepackageURL
}
})
app.controller('AssignPackage', function ($scope, $http,) {
$scope.cyberpanelLoading = true;
$scope.AddAssignment = function () {
$scope.cyberpanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
package: $('#packageSelection').val(),
user: $scope.userSelection,
};
dataurl = "/websites/AddAssignment";
$http.post(dataurl, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
$scope.cyberpanelLoading = true;
if (response.data.status === 1) {
new PNotify({
title: 'Success',
text: 'Successfully saved.',
type: 'success'
});
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Could not connect to server, please refresh this page.',
type: 'error'
});
}
}
var FinalDeletepackageURL;
$scope.Deleteassingment = function (url) {
FinalDeletepackageURL = url;
// console.log(FinalDeletepackageURL);
}
$scope.ConfirmDelete = function () {
window.location.href = FinalDeletepackageURL
}
})
app.controller('createDockerSite', function ($scope, $http, $timeout) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
var statusFile;
$scope.createdockersite = function () {
$scope.cyberpanelLoading = false;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$scope.currentStatus = "Starting creation..";
url = "/websites/submitDockerSiteCreation";
var package = $scope.packageForWebsite;
var data = {
sitename: $scope.siteName,
Owner: $scope.userSelection,
Domain: $scope.domainNameCreate,
MysqlCPU: $scope.CPUMysql,
MYsqlRam: $scope.rammysql,
SiteCPU: $scope.CPUSite,
SiteRam: $scope.RamSite,
App: $scope.App,
WPusername: $scope.WPUsername,
WPemal: $scope.wpEmail,
WPpasswd: $scope.WPpassword
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
console.log('.........................')
if (response.data.installStatus === 1) {
console.log(response.data.installsatus)
statusFile = response.data.tempStatusPath;
getCreationStatus();
} else {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
};
$scope.goBack = function () {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = false;
$scope.installationProgress = true;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = true;
$("#installProgress").css("width", "0%");
};
function getCreationStatus() {
url = "/websites/installWordpressStatus";
var data = {
statusFile: statusFile
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.abort === 1) {
if (response.data.installStatus === 1) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = false;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$("#installProgress").css("width", "100%");
$scope.installPercentage = "100";
$scope.currentStatus = response.data.currentStatus;
$timeout.cancel();
} else {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = false;
$scope.success = true;
$scope.couldNotConnect = true;
$scope.goBackDisable = false;
$scope.errorMessage = response.data.error_message;
$("#installProgress").css("width", "0%");
$scope.installPercentage = "0";
$scope.goBackDisable = false;
}
} else {
$("#installProgress").css("width", response.data.installationProgress + "%");
$scope.installPercentage = response.data.installationProgress;
$scope.currentStatus = response.data.currentStatus;
$timeout(getCreationStatus, 1000);
}
}
function cantLoadInitialDatas(response) {
$scope.cyberpanelLoading = true;
$scope.installationDetailsForm = true;
$scope.installationProgress = false;
$scope.errorMessageBox = true;
$scope.success = true;
$scope.couldNotConnect = false;
$scope.goBackDisable = false;
}
}
})
app.controller('listDockersite', function ($scope, $http) {
$scope.cyberPanelLoading = true;
$scope.currentPage = 1;
$scope.recordsToShow = 10;
$scope.fetchDockersiteFromDB = function () {
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
page: $scope.currentPage,
recordsToShow: $scope.recordsToShow
};
dataurl = "/websites/fetchDockersite";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
if (response.data.listWebSiteStatus === 1) {
$scope.WebSitesList = JSON.parse(response.data.data);
$scope.pagination = response.data.pagination;
$scope.clients = JSON.parse(response.data.data);
$("#listFail").hide();
} else {
$("#listFail").fadeIn();
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialData(response) {
}
};
$scope.fetchDockersiteFromDB();
$scope.cyberPanelLoading = true;
$scope.cyberPanelLoading = true;
$scope.searchWebsites = function () {
$scope.cyberPanelLoading = false;
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
var data = {
patternAdded: $scope.patternAdded
};
dataurl = "/websites/searchWebsites";
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
function ListInitialData(response) {
$scope.cyberPanelLoading = true;
if (response.data.listWebSiteStatus === 1) {
var finalData = JSON.parse(response.data.data);
$scope.WebSitesList = finalData;
$("#listFail").hide();
} else {
new PNotify({
title: 'Operation Failed!',
text: response.data.error_message,
type: 'error'
});
}
}
function cantLoadInitialData(response) {
$scope.cyberPanelLoading = true;
new PNotify({
title: 'Operation Failed!',
text: 'Connect disrupted, refresh the page.',
type: 'error'
});
}
};
var deletedockersiteurl;
$scope.DeleteDockersite = function (url, id) {
// console.log(url)
// console.log(id)
deletedockersiteurl = url + id;
}
$scope.ConfirmDelete = function () {
window.location.href = deletedockersiteurl;
}
});
app.controller('BuyAddons', function ($scope, $http) {
$scope.cyberpanelLoading = true;
$scope.sftpHide = true;
$scope.localHide = true;
$scope.PaypalBuyNowAddons = function (planName, monthlyPrice, yearlyPrice, lifetime, months) {
const baseURL = 'https://platform.cyberpersons.com/Billing/AddOnOrderPaypal';
// Get the current URL
var currentURL = window.location.href;
// Find the position of the question mark
const queryStringIndex = currentURL.indexOf('?');
// Check if there is a query string
currentURL = queryStringIndex !== -1 ? currentURL.substring(0, queryStringIndex) : currentURL;
// Encode parameters to make them URL-safe
const params = new URLSearchParams({
planName: planName,
monthlyPrice: monthlyPrice,
yearlyPrice: yearlyPrice,
returnURL: currentURL, // Add the current URL as a query parameter
months: months
});
// Build the complete URL with query string
const fullURL = `${baseURL}?${params.toString()}`;
// Redirect to the constructed URL
window.location.href = fullURL;
}
})
app.controller('launchChild', function ($scope, $http) {
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = true;
$scope.hideErrorLogs = true;
$scope.hidelogsbtn = function () {
$scope.hideLogs = true;
};
$scope.hideErrorLogsbtn = function () {
$scope.hideLogs = true;
};
$scope.fileManagerURL = "/filemanager/" + $("#domainNamePage").text();
$scope.previewUrl = "/preview/" + $("#childDomain").text() + "/";
$scope.wordPressInstallURL = "/websites/" + $("#childDomain").text() + "/wordpressInstall";
$scope.joomlaInstallURL = "/websites/" + $("#childDomain").text() + "/joomlaInstall";
$scope.setupGit = "/websites/" + $("#childDomain").text() + "/setupGit";
$scope.installPrestaURL = "/websites/" + $("#childDomain").text() + "/installPrestaShop";
$scope.installMagentoURL = "/websites/" + $("#childDomain").text() + "/installMagento";
var logType = 0;
$scope.pageNumber = 1;
$scope.fetchLogs = function (type) {
var pageNumber = $scope.pageNumber;
if (type == 3) {
pageNumber = $scope.pageNumber + 1;
$scope.pageNumber = pageNumber;
} else if (type == 4) {
pageNumber = $scope.pageNumber - 1;
$scope.pageNumber = pageNumber;
} else {
logType = type;
}
$scope.logFileLoading = false;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = false;
$scope.hideErrorLogs = true;
url = "/websites/getDataFromLogFile";
var domainNamePage = $("#domainNamePage").text();
var data = {
logType: logType,
virtualHost: domainNamePage,
page: pageNumber,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.logstatus === 1) {
$scope.logFileLoading = true;
$scope.logsFeteched = false;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = false;
$scope.hideLogs = false;
$scope.records = JSON.parse(response.data.data);
} else {
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = false;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = false;
$scope.errorMessage = response.data.error_message;
console.log(domainNamePage)
}
}
function cantLoadInitialDatas(response) {
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = false;
$scope.fetchedData = true;
$scope.hideLogs = false;
}
};
$scope.errorPageNumber = 1;
$scope.fetchErrorLogs = function (type) {
var errorPageNumber = $scope.errorPageNumber;
if (type === 3) {
errorPageNumber = $scope.errorPageNumber + 1;
$scope.errorPageNumber = errorPageNumber;
} else if (type === 4) {
errorPageNumber = $scope.errorPageNumber - 1;
$scope.errorPageNumber = errorPageNumber;
} else {
logType = type;
}
// notifications
$scope.logFileLoading = false;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideErrorLogs = true;
$scope.hideLogs = false;
url = "/websites/fetchErrorLogs";
var domainNamePage = $("#domainNamePage").text();
var data = {
virtualHost: domainNamePage,
page: errorPageNumber,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.logstatus === 1) {
// notifications
$scope.logFileLoading = true;
$scope.logsFeteched = false;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = false;
$scope.hideErrorLogs = false;
$scope.errorLogsData = response.data.data;
} else {
// notifications
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = false;
$scope.couldNotConnect = true;
$scope.fetchedData = true;
$scope.hideLogs = true;
$scope.hideErrorLogs = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
// notifications
$scope.logFileLoading = true;
$scope.logsFeteched = true;
$scope.couldNotFetchLogs = true;
$scope.couldNotConnect = false;
$scope.fetchedData = true;
$scope.hideLogs = true;
$scope.hideErrorLogs = true;
}
};
///////// Configurations Part
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.hideconfigbtn = function () {
$scope.configurationsBox = true;
};
$scope.fetchConfigurations = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = true;
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configFileLoading = false;
url = "/websites/getDataFromConfigFile";
var virtualHost = $("#childDomain").text();
var data = {
virtualHost: virtualHost,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.configstatus === 1) {
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configurationsBox = false;
$scope.configsFetched = false;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = false;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = false;
$scope.configData = response.data.configData;
} else {
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = false;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
//Rewrite rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
///
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = false;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
}
};
$scope.saveCongiruations = function () {
$scope.configFileLoading = false;
url = "/websites/saveConfigsToFile";
var virtualHost = $("#childDomain").text();
var configData = $scope.configData;
var data = {
virtualHost: virtualHost,
configData: configData,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.configstatus == 1) {
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = false;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
} else {
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = false;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.configurationsBox = false;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = false;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
}
};
///////// Rewrite Rules
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.hideRewriteRulesbtn = function () {
$scope.configurationsBoxRewrite = true;
};
$scope.fetchRewriteFules = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBox = true;
$scope.changePHPView = true;
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.couldNotConnect = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
$scope.configFileLoading = false;
url = "/websites/getRewriteRules";
var virtualHost = $("#childDomain").text();
var data = {
virtualHost: virtualHost,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.rewriteStatus == 1) {
// from main
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.fetchedConfigsData = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
// main ends
$scope.configFileLoading = true;
//
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = false;
$scope.saveRewriteRulesBTN = false;
$scope.couldNotConnect = true;
$scope.rewriteRules = response.data.rewriteRules;
} else {
// from main
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
// from main
$scope.configFileLoading = true;
///
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = false;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.couldNotConnect = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
// from main
$scope.configurationsBox = true;
$scope.configsFetched = true;
$scope.couldNotFetchConfigs = true;
$scope.fetchedConfigsData = true;
$scope.configFileLoading = true;
$scope.configSaved = true;
$scope.couldNotSaveConfigurations = true;
$scope.saveConfigBtn = true;
// from main
$scope.configFileLoading = true;
///
$scope.configurationsBoxRewrite = true;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.couldNotConnect = false;
}
};
$scope.saveRewriteRules = function () {
$scope.configFileLoading = false;
url = "/websites/saveRewriteRules";
var virtualHost = $("#childDomain").text();
var rewriteRules = $scope.rewriteRules;
var data = {
virtualHost: virtualHost,
rewriteRules: rewriteRules,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.rewriteStatus == 1) {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = true;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = false;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = true;
$scope.configFileLoading = true;
} else {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = false;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = false;
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.configurationsBoxRewrite = false;
$scope.rewriteRulesFetched = false;
$scope.couldNotFetchRewriteRules = true;
$scope.rewriteRulesSaved = true;
$scope.couldNotSaveRewriteRules = true;
$scope.fetchedRewriteRules = true;
$scope.saveRewriteRulesBTN = false;
$scope.configFileLoading = true;
$scope.couldNotConnect = false;
}
};
//////// SSL Part
$scope.sslSaved = true;
$scope.couldNotSaveSSL = true;
$scope.hidsslconfigs = true;
$scope.couldNotConnect = true;
$scope.hidesslbtn = function () {
$scope.hidsslconfigs = true;
};
$scope.addSSL = function () {
$scope.hidsslconfigs = false;
$scope.configurationsBox = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = true;
};
$scope.saveSSL = function () {
$scope.configFileLoading = false;
url = "/websites/saveSSL";
var virtualHost = $("#childDomain").text();
var cert = $scope.cert;
var key = $scope.key;
var data = {
virtualHost: virtualHost,
cert: cert,
key: key,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.sslStatus === 1) {
$scope.sslSaved = false;
$scope.couldNotSaveSSL = true;
$scope.couldNotConnect = true;
$scope.configFileLoading = true;
} else {
$scope.sslSaved = true;
$scope.couldNotSaveSSL = false;
$scope.couldNotConnect = true;
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.sslSaved = true;
$scope.couldNotSaveSSL = true;
$scope.couldNotConnect = false;
$scope.configFileLoading = true;
}
};
//// Change PHP Master
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = true;
$scope.changePHPView = true;
$scope.hideChangePHPMaster = function () {
$scope.changePHPView = true;
};
$scope.changePHPMaster = function () {
$scope.hidsslconfigs = true;
$scope.configurationsBox = true;
$scope.configurationsBoxRewrite = true;
$scope.changePHPView = false;
};
$scope.changePHPVersionMaster = function (childDomain, phpSelection) {
// notifcations
$scope.configFileLoading = false;
var url = "/websites/changePHP";
var data = {
childDomain: $("#childDomain").text(),
phpSelection: $scope.phpSelectionMaster,
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changePHP === 1) {
$scope.configFileLoading = true;
$scope.websiteDomain = $("#childDomain").text();
// notifcations
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = false;
$scope.couldNotConnect = true;
} else {
$scope.configFileLoading = true;
$scope.errorMessage = response.data.error_message;
// notifcations
$scope.failedToChangePHPMaster = false;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = true;
}
}
function cantLoadInitialDatas(response) {
$scope.configFileLoading = true;
// notifcations
$scope.failedToChangePHPMaster = true;
$scope.phpChangedMaster = true;
$scope.couldNotConnect = false;
}
};
/// Open_basedir protection
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = true;
$scope.openBaseDirView = function () {
$scope.openBaseDirBox = false;
};
$scope.hideOpenBasedir = function () {
$scope.openBaseDirBox = true;
};
$scope.applyOpenBasedirChanges = function (childDomain, phpSelection) {
// notifcations
$scope.baseDirLoading = false;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
var url = "/websites/changeOpenBasedir";
var data = {
domainName: $("#childDomain").text(),
openBasedirValue: $scope.openBasedirValue
};
var config = {
headers: {
'X-CSRFToken': getCookie('csrftoken')
}
};
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
function ListInitialDatas(response) {
if (response.data.changeOpenBasedir === 1) {
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = false;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
} else {
$scope.baseDirLoading = true;
$scope.operationFailed = false;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = true;
$scope.openBaseDirBox = false;
$scope.errorMessage = response.data.error_message;
}
}
function cantLoadInitialDatas(response) {
$scope.baseDirLoading = true;
$scope.operationFailed = true;
$scope.operationSuccessfull = true;
$scope.couldNotConnect = false;
$scope.openBaseDirBox = false;
}
}
});