mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-10 07:16:15 +01:00
wpmanagerui
This commit is contained in:
@@ -14,7 +14,6 @@ os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CyberCP.settings")
|
|||||||
django.setup()
|
django.setup()
|
||||||
import threading as multi
|
import threading as multi
|
||||||
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
|
from plogical.CyberCPLogFileWriter import CyberCPLogFileWriter as logging
|
||||||
import plogical.CyberCPLogFileWriter as logging
|
|
||||||
import subprocess
|
import subprocess
|
||||||
from websiteFunctions.models import ChildDomains, Websites, WPSites, WPStaging
|
from websiteFunctions.models import ChildDomains, Websites, WPSites, WPStaging
|
||||||
from plogical import randomPassword
|
from plogical import randomPassword
|
||||||
@@ -1668,11 +1667,11 @@ $parameters = array(
|
|||||||
ab = WebsiteManager()
|
ab = WebsiteManager()
|
||||||
coreResult = ab.submitWebsiteCreation(UserID, DataToPass)
|
coreResult = ab.submitWebsiteCreation(UserID, DataToPass)
|
||||||
coreResult1 = json.loads((coreResult).content)
|
coreResult1 = json.loads((coreResult).content)
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Creating website result....%s"%coreResult1)
|
logging.writeToFile("Creating website result....%s"%coreResult1)
|
||||||
reutrntempath = coreResult1['tempStatusPath']
|
reutrntempath = coreResult1['tempStatusPath']
|
||||||
while (1):
|
while (1):
|
||||||
lastLine = open(reutrntempath, 'r').read()
|
lastLine = open(reutrntempath, 'r').read()
|
||||||
|
logging.writeToFile("Error web creating lastline ....... %s" % lastLine)
|
||||||
if lastLine.find('[200]') > -1:
|
if lastLine.find('[200]') > -1:
|
||||||
break
|
break
|
||||||
elif lastLine.find('[404]') > -1:
|
elif lastLine.find('[404]') > -1:
|
||||||
@@ -1709,7 +1708,7 @@ $parameters = array(
|
|||||||
return 0
|
return 0
|
||||||
else:
|
else:
|
||||||
statusFile = open(currentTemp, 'w')
|
statusFile = open(currentTemp, 'w')
|
||||||
statusFile.writelines('Installing WordPress....,30')
|
statusFile.writelines('Installing WordPress....,50')
|
||||||
statusFile.close()
|
statusFile.close()
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
@@ -1734,7 +1733,7 @@ $parameters = array(
|
|||||||
|
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP web creating ....... %s" % str(msg))
|
logging.writeToFile("Error WP web creating ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def UpdateWPTheme(self):
|
def UpdateWPTheme(self):
|
||||||
@@ -1768,7 +1767,7 @@ $parameters = array(
|
|||||||
stdoutput = ProcessUtilities.outputExecutioner(command)
|
stdoutput = ProcessUtilities.outputExecutioner(command)
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP UpdateWPTheme ....... %s" % str(msg))
|
logging.writeToFile("Error WP UpdateWPTheme ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
@@ -1804,7 +1803,7 @@ $parameters = array(
|
|||||||
stdoutput = ProcessUtilities.outputExecutioner(command)
|
stdoutput = ProcessUtilities.outputExecutioner(command)
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP UpdateWPTheme ....... %s" % str(msg))
|
logging.writeToFile("Error WP UpdateWPTheme ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def DeleteThemes(self):
|
def DeleteThemes(self):
|
||||||
@@ -1829,7 +1828,7 @@ $parameters = array(
|
|||||||
|
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP DeleteThemes ....... %s" % str(msg))
|
logging.writeToFile("Error WP DeleteThemes ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def DeletePlugins(self):
|
def DeletePlugins(self):
|
||||||
@@ -1856,7 +1855,7 @@ $parameters = array(
|
|||||||
|
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP DeletePlugins ....... %s" % str(msg))
|
logging.writeToFile("Error WP DeletePlugins ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def ChangeStatusThemes(self):
|
def ChangeStatusThemes(self):
|
||||||
@@ -1883,7 +1882,7 @@ $parameters = array(
|
|||||||
|
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP ChangeStatusThemes ....... %s" % str(msg))
|
logging.writeToFile("Error WP ChangeStatusThemes ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
def CreateStagingNow(self):
|
def CreateStagingNow(self):
|
||||||
@@ -1915,7 +1914,7 @@ $parameters = array(
|
|||||||
ab = WebsiteManager()
|
ab = WebsiteManager()
|
||||||
coreResult = ab.submitWebsiteCreation(UserID, DataToPass)
|
coreResult = ab.submitWebsiteCreation(UserID, DataToPass)
|
||||||
coreResult1 = json.loads((coreResult).content)
|
coreResult1 = json.loads((coreResult).content)
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Creating website result....%s" % coreResult1)
|
logging.writeToFile("Creating website result....%s" % coreResult1)
|
||||||
reutrntempath = coreResult1['tempStatusPath']
|
reutrntempath = coreResult1['tempStatusPath']
|
||||||
while (1):
|
while (1):
|
||||||
lastLine = open(reutrntempath, 'r').read()
|
lastLine = open(reutrntempath, 'r').read()
|
||||||
@@ -2053,7 +2052,7 @@ $parameters = array(
|
|||||||
|
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile("Error WP ChangeStatusThemes ....... %s" % str(msg))
|
logging.writeToFile("Error WP ChangeStatusThemes ....... %s" % str(msg))
|
||||||
return 0
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -101,6 +101,7 @@ class NormalBackupJobLogs(models.Model):
|
|||||||
message = models.TextField()
|
message = models.TextField()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
class wpplugins(models.Model):
|
class wpplugins(models.Model):
|
||||||
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
owner = models.ForeignKey(Administrator, on_delete=models.CASCADE)
|
||||||
Name = models.CharField(max_length=255, default='')
|
Name = models.CharField(max_length=255, default='')
|
||||||
|
|||||||
@@ -48,6 +48,7 @@ function FinalDeletePluginBuucket() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var SPVal;
|
var SPVal;
|
||||||
|
|
||||||
app.controller('WPAddNewPlugin', function ($scope, $http, $timeout, $window, $compile) {
|
app.controller('WPAddNewPlugin', function ($scope, $http, $timeout, $window, $compile) {
|
||||||
|
|
||||||
$scope.SearchPluginName = function (val) {
|
$scope.SearchPluginName = function (val) {
|
||||||
@@ -442,6 +443,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
$scope.LoadWPdata = function () {
|
$scope.LoadWPdata = function () {
|
||||||
|
|
||||||
$scope.wordpresshomeloading = false;
|
$scope.wordpresshomeloading = false;
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
|
|
||||||
var url = "/websites/FetchWPdata";
|
var url = "/websites/FetchWPdata";
|
||||||
|
|
||||||
@@ -462,6 +464,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
wordpresshomeloading = true;
|
wordpresshomeloading = true;
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
$('#WPVersion').text(response.data.ret_data.version);
|
$('#WPVersion').text(response.data.ret_data.version);
|
||||||
@@ -486,6 +489,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
$scope.webSiteCreationLoading = true;
|
$scope.webSiteCreationLoading = true;
|
||||||
$scope.installationDetailsForm = true;
|
$scope.installationDetailsForm = true;
|
||||||
@@ -562,6 +566,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
$scope.GetCurrentPlugins = function () {
|
$scope.GetCurrentPlugins = function () {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
|
|
||||||
$scope.wordpresshomeloading = false;
|
$scope.wordpresshomeloading = false;
|
||||||
|
|
||||||
@@ -583,6 +588,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
wordpresshomeloading = true;
|
wordpresshomeloading = true;
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
$('#PluginBody').html('');
|
$('#PluginBody').html('');
|
||||||
@@ -597,6 +603,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
$scope.webSiteCreationLoading = true;
|
$scope.webSiteCreationLoading = true;
|
||||||
$scope.installationDetailsForm = true;
|
$scope.installationDetailsForm = true;
|
||||||
@@ -613,6 +620,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
$scope.GetCurrentThemes = function () {
|
$scope.GetCurrentThemes = function () {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
|
|
||||||
$scope.wordpresshomeloading = false;
|
$scope.wordpresshomeloading = false;
|
||||||
|
|
||||||
@@ -634,6 +642,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
wordpresshomeloading = true;
|
wordpresshomeloading = true;
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
|
|
||||||
@@ -649,7 +658,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.webSiteCreationLoading = true;
|
$scope.webSiteCreationLoading = true;
|
||||||
$scope.installationDetailsForm = true;
|
$scope.installationDetailsForm = true;
|
||||||
$scope.installationProgress = false;
|
$scope.installationProgress = false;
|
||||||
@@ -664,7 +673,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.UpdatePlugins = function (plugin) {
|
$scope.UpdatePlugins = function (plugin) {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
var data = {
|
var data = {
|
||||||
plugin: plugin,
|
plugin: plugin,
|
||||||
pluginarray: PluginsList,
|
pluginarray: PluginsList,
|
||||||
@@ -686,6 +695,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -706,6 +716,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -715,6 +726,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.DeletePlugins = function (plugin) {
|
$scope.DeletePlugins = function (plugin) {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
var data = {
|
var data = {
|
||||||
plugin: plugin,
|
plugin: plugin,
|
||||||
pluginarray: PluginsList,
|
pluginarray: PluginsList,
|
||||||
@@ -736,6 +748,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -756,6 +769,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -764,6 +778,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.ChangeStatus = function (plugin) {
|
$scope.ChangeStatus = function (plugin) {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
var data = {
|
var data = {
|
||||||
plugin: plugin,
|
plugin: plugin,
|
||||||
WPid: $('#WPid').html(),
|
WPid: $('#WPid').html(),
|
||||||
@@ -784,6 +799,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -804,6 +820,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -838,8 +855,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.UpdateThemes = function (theme) {
|
$scope.UpdateThemes = function (theme) {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
|
|
||||||
var data = {
|
var data = {
|
||||||
Theme: theme,
|
Theme: theme,
|
||||||
Themearray: ThemesList,
|
Themearray: ThemesList,
|
||||||
@@ -861,6 +877,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -881,6 +898,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -890,6 +908,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.DeleteThemes = function (theme) {
|
$scope.DeleteThemes = function (theme) {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
var data = {
|
var data = {
|
||||||
Theme: theme,
|
Theme: theme,
|
||||||
Themearray: ThemesList,
|
Themearray: ThemesList,
|
||||||
@@ -911,6 +930,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -931,6 +951,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -938,6 +959,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.ChangeStatusThemes = function (theme) {
|
$scope.ChangeStatusThemes = function (theme) {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
var data = {
|
var data = {
|
||||||
theme: theme,
|
theme: theme,
|
||||||
WPid: $('#WPid').html(),
|
WPid: $('#WPid').html(),
|
||||||
@@ -958,6 +980,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -978,6 +1001,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -1013,6 +1037,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.CreateStagingNow = function () {
|
$scope.CreateStagingNow = function () {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
|
|
||||||
$scope.wordpresshomeloading = false;
|
$scope.wordpresshomeloading = false;
|
||||||
$scope.stagingDetailsForm = true;
|
$scope.stagingDetailsForm = true;
|
||||||
@@ -1042,7 +1067,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
statusFile = response.data.tempStatusPath;
|
statusFile = response.data.tempStatusPath;
|
||||||
getCreationStatus();
|
getCreationStatus();
|
||||||
@@ -1058,6 +1083,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
alert(response)
|
alert(response)
|
||||||
|
|
||||||
@@ -1065,6 +1091,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
};
|
};
|
||||||
|
|
||||||
function getCreationStatus() {
|
function getCreationStatus() {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
|
|
||||||
url = "/websites/installWordpressStatus";
|
url = "/websites/installWordpressStatus";
|
||||||
|
|
||||||
@@ -1083,7 +1110,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
if (response.data.abort === 1) {
|
if (response.data.abort === 1) {
|
||||||
|
|
||||||
@@ -1122,6 +1149,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
$("#installProgress").css("width", response.data.installationProgress + "%");
|
$("#installProgress").css("width", response.data.installationProgress + "%");
|
||||||
$scope.installPercentage = response.data.installationProgress;
|
$scope.installPercentage = response.data.installationProgress;
|
||||||
$scope.currentStatus = response.data.currentStatus;
|
$scope.currentStatus = response.data.currentStatus;
|
||||||
@@ -1131,7 +1159,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
$scope.stagingDetailsForm = true;
|
$scope.stagingDetailsForm = true;
|
||||||
$scope.installationProgress = false;
|
$scope.installationProgress = false;
|
||||||
@@ -1146,6 +1174,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.goBack = function () {
|
$scope.goBack = function () {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
$scope.stagingDetailsForm = false;
|
$scope.stagingDetailsForm = false;
|
||||||
$scope.installationProgress = true;
|
$scope.installationProgress = true;
|
||||||
@@ -1157,6 +1186,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
};
|
};
|
||||||
|
|
||||||
$scope.fetchstaging = function () {
|
$scope.fetchstaging = function () {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
$scope.wordpresshomeloading = false;
|
$scope.wordpresshomeloading = false;
|
||||||
|
|
||||||
var url = "/websites/fetchstaging";
|
var url = "/websites/fetchstaging";
|
||||||
@@ -1177,6 +1207,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
wordpresshomeloading = true;
|
wordpresshomeloading = true;
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
|
|
||||||
@@ -1196,6 +1227,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
alert("Error"+response)
|
alert("Error"+response)
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1211,6 +1243,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
$scope.SaveUpdateConfig =function () {
|
$scope.SaveUpdateConfig =function () {
|
||||||
|
$('#wordpresshomeloading').show();
|
||||||
var data = {
|
var data = {
|
||||||
AutomaticUpdates: $('#AutomaticUpdates').find(":selected").text(),
|
AutomaticUpdates: $('#AutomaticUpdates').find(":selected").text(),
|
||||||
Plugins: $('#Plugins').find(":selected").text(),
|
Plugins: $('#Plugins').find(":selected").text(),
|
||||||
@@ -1233,6 +1266,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
|
|
||||||
|
|
||||||
function ListInitialDatas(response) {
|
function ListInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
$scope.wordpresshomeloading = true;
|
$scope.wordpresshomeloading = true;
|
||||||
|
|
||||||
if (response.data.status === 1) {
|
if (response.data.status === 1) {
|
||||||
@@ -1254,6 +1288,7 @@ app.controller('WPsiteHome', function ($scope, $http, $timeout, $compile, $windo
|
|||||||
}
|
}
|
||||||
|
|
||||||
function cantLoadInitialDatas(response) {
|
function cantLoadInitialDatas(response) {
|
||||||
|
$('#wordpresshomeloading').hide();
|
||||||
new PNotify({
|
new PNotify({
|
||||||
title: 'Operation Failed!',
|
title: 'Operation Failed!',
|
||||||
text: response,
|
text: response,
|
||||||
|
|||||||
@@ -29,17 +29,12 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<label>{% trans "Search Plugin Name" %}</label>
|
<label style="margin-top: 15px;">{% trans "Search Plugin Name" %}</label>
|
||||||
|
|
||||||
<input name="searchcontent" type="text" class="form-control" ng-model="searchcontent"
|
<input name="searchcontent" type="text" class="form-control" ng-model="searchcontent"
|
||||||
ng-keyup="SearchPluginName('add')"
|
ng-keyup="SearchPluginName('add')"
|
||||||
placeholder="{% trans "Search Plugin...." %}" required>
|
placeholder="{% trans "Search Plugin...." %}" required>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="mysearch" class="col-lg-12" style="display: none; border-top: none!important;
|
<div id="mysearch" class="col-lg-12" style="display: none; border-top: none!important;
|
||||||
border: 1px solid rgba(90, 91, 92, 0.7);
|
border: 1px solid rgba(90, 91, 92, 0.7);
|
||||||
position: absolute; z-index: 1;
|
position: absolute; z-index: 1;
|
||||||
@@ -48,8 +43,8 @@
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Selected Plugin</h3>
|
<h3 style="margin-top: 20px;">Selected Plugin</h3>
|
||||||
<div id="selJS" style="display: none; display: flex; flex-direction: row;">
|
<div id="selJS" style="display: none; display: flex; flex-direction: row; margin-top: 10px;">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div ng-hide="installationDetailsForm" class="form-group">
|
<div ng-hide="installationDetailsForm" class="form-group">
|
||||||
|
|||||||
@@ -122,7 +122,7 @@
|
|||||||
<select ng-model="autoupdates" class="form-control">
|
<select ng-model="autoupdates" class="form-control">
|
||||||
|
|
||||||
<option>Disabled</option>
|
<option>Disabled</option>
|
||||||
<option>All (minor and major)</option>
|
<option>All minor and major</option>
|
||||||
<option>Minor and Security Updates</option>
|
<option>Minor and Security Updates</option>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
@@ -155,45 +155,6 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
<div ng-hide="installationDetailsForm" class="form-group">
|
|
||||||
<label class="col-sm-3 control-label">{% trans "Additional Features" %}</label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label>
|
|
||||||
<input ng-model="sslCheck" type="checkbox" value="">
|
|
||||||
SSL
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<label class="col-sm-3 control-label"></label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label>
|
|
||||||
<input ng-model="dkimCheck" type="checkbox" value="">
|
|
||||||
DKIM Support
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<label class="col-sm-3 control-label"></label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label>
|
|
||||||
<input ng-model="openBasedir" type="checkbox" value="">
|
|
||||||
open_basedir Protection
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<label class="col-sm-3 control-label"></label>
|
|
||||||
<div class="col-sm-9">
|
|
||||||
<div class="checkbox">
|
|
||||||
<label>
|
|
||||||
<input ng-model="mailDomain" type="checkbox" value="">
|
|
||||||
Create Mail Domain
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div ng-hide="installationDetailsForm" class="form-group">
|
<div ng-hide="installationDetailsForm" class="form-group">
|
||||||
<label class="col-sm-3 control-label"></label>
|
<label class="col-sm-3 control-label"></label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
|
|||||||
@@ -22,27 +22,20 @@
|
|||||||
class="form-horizontal bordered-row panel-body">
|
class="form-horizontal bordered-row panel-body">
|
||||||
|
|
||||||
|
|
||||||
<label>{% trans "Search Plugin Name" %}</label>
|
<label style="margin-bottom: 10px;">{% trans "Search Plugin Name" %}</label>
|
||||||
|
|
||||||
<input name="searchcontent" type="text" class="form-control" ng-model="searchcontent"
|
<input name="searchcontent" type="text" class="form-control" ng-model="searchcontent"
|
||||||
ng-keyup="SearchPluginName('eidt')"
|
ng-keyup="SearchPluginName('eidt')"
|
||||||
placeholder="{% trans "Search Plugin...." %}" required>
|
placeholder="{% trans "Search Plugin...." %}" required>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div id="mysearch" class="col-lg-12" style="display: none; border-top: none!important;
|
<div id="mysearch" class="col-lg-12" style="display: none; border-top: none!important;
|
||||||
border: 1px solid rgba(90, 91, 92, 0.7);
|
border: 1px solid rgba(90, 91, 92, 0.7);
|
||||||
position: absolute; z-index: 1;
|
position: absolute; z-index: 1;
|
||||||
background-color: #FFFFFF">
|
background-color: #FFFFFF">
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<h3 style="margin-top: 20px;">Selected Plugin</h3>
|
||||||
|
<div id="sedplugn" style=" display: flex; flex-direction: row; margin-top: 10px;">
|
||||||
<h3>Selected Plugin</h3>
|
|
||||||
<div id="sedplugn" style=" display: flex; flex-direction: row;">
|
|
||||||
{% for plugin in Selectedplugins %}
|
{% for plugin in Selectedplugins %}
|
||||||
<div id="selplug"
|
<div id="selplug"
|
||||||
style="background-color: #12207a; color: #FFFFFF; padding: 5px; border-radius: 30px">
|
style="background-color: #12207a; color: #FFFFFF; padding: 5px; border-radius: 30px">
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "baseTemplate/index.html" %}
|
{% extends "baseTemplate/index.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Websites Hosted - CyberPanel" %}{% endblock %}
|
{% block title %}{% trans "Worpress Manager - CyberPanel" %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
@@ -12,480 +12,472 @@
|
|||||||
|
|
||||||
<div ng-controller="WPsiteHome" class="container">
|
<div ng-controller="WPsiteHome" class="container">
|
||||||
|
|
||||||
<div class="col-sm-12">
|
<div id="page-title">
|
||||||
<div class="row">
|
<h2>{{ wpsite.title }}</h2>
|
||||||
<div class="col-12">
|
<p>({{ wpsite.path }})<img style="display: none" id="wordpresshomeloading" ng-hide="wordpresshomeloading"
|
||||||
<div class="card">
|
src="{% static 'images/loading.gif' %}"></p>
|
||||||
<div class="card-body">
|
</div>
|
||||||
<div class="row">
|
|
||||||
<div class="col-lg-4">
|
<div class="panel" >
|
||||||
<!-- Product image -->
|
<div class="panel-body">
|
||||||
<a target="_blank" style="border: 1px solid greenyellow"
|
<h3 class="content-box-header">
|
||||||
href="http://{{ wpsite.FinalURL }}" class="text-center d-block mb-4">
|
{% trans "WordPress Manager" %}
|
||||||
<img src="https://cdn.statically.io/screenshot/{{ wpsite.FinalURL }}"
|
</h3>
|
||||||
class="img-fluid"
|
<div>
|
||||||
alt="{{ wpsite.FinalURL }}">
|
|
||||||
</a>
|
<!-- Product title -->
|
||||||
<hr>
|
<h2 style="display: inline" class="mt-0"></h2>
|
||||||
<div class="d-lg-flex d-none justify-content-center">
|
<p style="display: inline;">
|
||||||
<a href="/websites/{{ wpsite.owner.domain }}">
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<div class="example-box-wrapper">
|
||||||
|
<ul class="nav-responsive nav nav-tabs">
|
||||||
|
|
||||||
|
<li class="active"><a href="#tab1" data-toggle="tab"
|
||||||
|
aria-selected="true">General</a></li>
|
||||||
|
<li class=""><a href="#tab2" ng-click="GetCurrentPlugins()"
|
||||||
|
data-toggle="tab">Plugins</a></li>
|
||||||
|
<li class=""><a href="#tab3" ng-click="GetCurrentThemes()"
|
||||||
|
data-toggle="tab">Themes</a></li>
|
||||||
|
<li><a href="#tab4" data-toggle="tab"
|
||||||
|
ng-click="fetchstaging()">Staging</a></li>
|
||||||
|
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<div class="tab-pane active" id="tab1">
|
||||||
|
<div class="d-lg-flex d-none">
|
||||||
|
<a target="_blank" href="http://{{ wpsite.FinalURL }}">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
focusable="false" width="1em" height="1em"
|
aria-hidden="true" focusable="false" width="1em"
|
||||||
|
height="1em"
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32">
|
preserveAspectRatio="xMidYMid meet"
|
||||||
<path d="M16 18H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2zM6 6v10h10V6z"
|
viewBox="0 0 24 24">
|
||||||
|
<path d="M13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z"
|
||||||
fill="#626262"></path>
|
fill="#626262"></path>
|
||||||
<path d="M26 12v4h-4v-4h4m0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2z"
|
<path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
|
||||||
fill="#626262"></path>
|
|
||||||
<path d="M26 22v4h-4v-4h4m0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2z"
|
|
||||||
fill="#626262"></path>
|
|
||||||
<path d="M16 22v4h-4v-4h4m0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2z"
|
|
||||||
fill="#626262"></path>
|
fill="#626262"></path>
|
||||||
</svg>
|
</svg>
|
||||||
Manage Application
|
Open
|
||||||
</a>
|
</a>
|
||||||
<a ng-click="autoUpdateConfigurationsInit()" data-toggle="modal"
|
<a target="_blank"
|
||||||
data-target="#autoUpdateConfig" style="margin-left: 3%"
|
href="/filemanager/{{ wpsite.owner.domain }}"
|
||||||
|
style="margin-left: 4%">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
aria-hidden="true" focusable="false" width="1em"
|
||||||
|
height="1em"
|
||||||
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
|
preserveAspectRatio="xMidYMid meet"
|
||||||
|
viewBox="0 0 1024 1024">
|
||||||
|
<path d="M159 768h612.3l103.4-256H262.3z"
|
||||||
|
fill-opacity=".15"
|
||||||
|
fill="#626262"/>
|
||||||
|
<path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12c0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"
|
||||||
|
fill="#626262"/>
|
||||||
|
</svg>
|
||||||
|
File Manager
|
||||||
|
</a>
|
||||||
|
<a ng-click="autoLogin()"
|
||||||
|
style="margin-left: 4%"
|
||||||
href="javascript: void(0);">
|
href="javascript: void(0);">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
focusable="false" width="1em" height="1em"
|
aria-hidden="true" focusable="false" width="1em"
|
||||||
|
height="1em"
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
preserveAspectRatio="xMidYMid meet" viewBox="0 0 20 20">
|
preserveAspectRatio="xMidYMid meet"
|
||||||
<path d="M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4l-3.5-4h2.32a4.439 4.439 0 0 0-4.32-3.45c-1.45 0-2.73.71-3.54 1.78L4.95 5.66a6.965 6.965 0 0 1 5.25-2.38zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48a4.439 4.439 0 0 0 4.32 3.45c1.45 0 2.73-.71 3.54-1.78l1.71 1.95a6.95 6.95 0 0 1-5.25 2.38z"
|
viewBox="0 0 20 20">
|
||||||
|
<path d="M14 10L8 5v3H1v4h7v3l6-5zm3 7H9v2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H9v2h8v14z"
|
||||||
fill="#626262"></path>
|
fill="#626262"></path>
|
||||||
</svg>
|
</svg>
|
||||||
Autoupdate Configurations
|
Login
|
||||||
</a>
|
</a>
|
||||||
<div id="autoUpdateConfig" class="modal fade" tabindex="-1" role="dialog"
|
<a style="margin-left: 4%" target="_blank"
|
||||||
aria-hidden="true">
|
href="/websites/{{ wpsite.owner.domain }}/manageGIT">
|
||||||
<div class="modal-dialog">
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
<!-- Modal content-->
|
aria-hidden="true" focusable="false" width="1em"
|
||||||
<div class="modal-content">
|
height="1em"
|
||||||
<div class="modal-header">
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
<button type="button" class="close" data-dismiss="modal">×
|
preserveAspectRatio="xMidYMid meet"
|
||||||
</button>
|
viewBox="0 0 24 24">
|
||||||
<h4 class="modal-title">{% trans "Updates" %}</h4>
|
<path d="M17.5 4C15.57 4 14 5.57 14 7.5c0 1.554 1.025 2.859 2.43 3.315c-.146.932-.547 1.7-1.23 2.323c-1.946 1.773-5.527 1.935-7.2 1.907V8.837c1.44-.434 2.5-1.757 2.5-3.337C10.5 3.57 8.93 2 7 2S3.5 3.57 3.5 5.5c0 1.58 1.06 2.903 2.5 3.337v6.326c-1.44.434-2.5 1.757-2.5 3.337C3.5 20.43 5.07 22 7 22s3.5-1.57 3.5-3.5c0-.551-.14-1.065-.367-1.529c2.06-.186 4.657-.757 6.409-2.35c1.097-.997 1.731-2.264 1.904-3.768C19.915 10.438 21 9.1 21 7.5C21 5.57 19.43 4 17.5 4zm-12 1.5C5.5 4.673 6.173 4 7 4s1.5.673 1.5 1.5S7.827 7 7 7s-1.5-.673-1.5-1.5zM7 20c-.827 0-1.5-.673-1.5-1.5a1.5 1.5 0 0 1 1.482-1.498l.13.01A1.495 1.495 0 0 1 7 20zM17.5 9c-.827 0-1.5-.673-1.5-1.5S16.673 6 17.5 6s1.5.673 1.5 1.5S18.327 9 17.5 9z"
|
||||||
</div>
|
fill="#626262"></path>
|
||||||
<div class="modal-body">
|
</svg>
|
||||||
<form>
|
Git Manager
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
<div style="margin-top: 4%">
|
||||||
<h4 style="margin: 2%">Configure setting for automatic updates.</h4>
|
<div class="row">
|
||||||
<div class="row">
|
<div class="col-md-4">
|
||||||
<label class="col-lg-6">Automatic Updates (Currently:
|
<h6 style="font-weight: bold">WordPress Version</h6>
|
||||||
{{ wpsite.AutoUpdates }})</label>
|
<p id="WPVersion" class="text-sm lh-150"></p>
|
||||||
<div class="col-lg-6">
|
</div>
|
||||||
<select id="AutomaticUpdates"
|
<div class="col-md-4">
|
||||||
style="padding: 10px">
|
<h6 style="font-weight: bold">PHP</h6>
|
||||||
<option>Disabled</option>
|
<p class="text-sm lh-150">{{ wpsite.owner.phpSelection }}</p>
|
||||||
<option>Minor and Security Updates</option>
|
</div>
|
||||||
<option>All (minor and major)</option>
|
<div class="col-md-4">
|
||||||
</select>
|
<h6 style="font-weight: bold">LSCache</h6>
|
||||||
</div>
|
<div class="custom-control custom-switch">
|
||||||
</div>
|
<input ng-click="UpdateWPSettings('lscache')"
|
||||||
<div class="row">
|
type="checkbox"
|
||||||
<label class="col-lg-4">Plugins (Currently: {{ wpsite.PluginUpdates }})</label>
|
class="custom-control-input ng-pristine ng-untouched ng-valid ng-not-empty"
|
||||||
<div class="col-lg-8">
|
id="lscache">
|
||||||
<select id="Plugins"
|
<label class="custom-control-label"
|
||||||
|
for="lscache"></label>
|
||||||
style="padding: 10px">
|
</div>
|
||||||
<option>Enabled</option>
|
</div>
|
||||||
<option>Disabled</option>
|
</div>
|
||||||
</select>
|
</div>
|
||||||
</div>
|
<div style="margin-top: 4%">
|
||||||
</div>
|
<div class="row">
|
||||||
<div class="row">
|
<div class="col-md-4">
|
||||||
<label class="col-lg-4">Themes (Currently: {{ wpsite.ThemeUpdates }})</label>
|
<h6 style="font-weight: bold">Debugging</h6>
|
||||||
<div class="col-lg-8">
|
<div class="custom-control custom-switch">
|
||||||
<select id="Themes"
|
<input ng-click="UpdateWPSettings('debugging')"
|
||||||
|
type="checkbox"
|
||||||
style="padding: 10px">
|
class="custom-control-input ng-pristine ng-untouched ng-valid ng-empty"
|
||||||
<option>Enabled</option>
|
id="debugging">
|
||||||
<option>Disabled</option>
|
<label class="custom-control-label"
|
||||||
</select>
|
for="debugging"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="col-md-4">
|
||||||
</form>
|
<h6 style="font-weight: bold">Search Engine Indexing</h6>
|
||||||
|
<div class="custom-control custom-switch">
|
||||||
|
<input ng-click="UpdateWPSettings('searchIndex')"
|
||||||
</div>
|
type="checkbox"
|
||||||
<div class="modal-footer">
|
class="custom-control-input ng-pristine ng-untouched ng-valid ng-not-empty"
|
||||||
<button type="button" class="btn btn-primary"
|
id="searchIndex">
|
||||||
ng-click="SaveUpdateConfig()">Save
|
<label class="custom-control-label"
|
||||||
</button>
|
for="searchIndex"></label>
|
||||||
<button type="button" ng-disabled="savingSettings"
|
</div>
|
||||||
class="btn btn-default" data-dismiss="modal">
|
</div>
|
||||||
Close
|
<div class="col-md-4">
|
||||||
</button>
|
<h6 style="font-weight: bold">Maintenance mode</h6>
|
||||||
</div>
|
<div class="custom-control custom-switch">
|
||||||
|
<input ng-click="UpdateWPSettings('maintenanceMode')"
|
||||||
|
type="checkbox"
|
||||||
|
class="custom-control-input ng-pristine ng-untouched ng-valid ng-empty"
|
||||||
|
id="maintenanceMode">
|
||||||
|
<label class="custom-control-label"
|
||||||
|
for="maintenanceMode"></label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- /.modal-dialog -->
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-8">
|
<div class="tab-pane" id="tab2">
|
||||||
|
<div class="row mb-2">
|
||||||
<!-- Product title -->
|
<div class="col-sm-8">
|
||||||
<h2 style="display: inline" class="mt-0">{{ wpsite.title }}</h2>
|
<a ng-click="UpdatePlugins('all')"
|
||||||
<p style="display: inline;">({{ wpsite.path }}) <img ng-hide="wordpresshomeloading"
|
href="javascript:void(0);"
|
||||||
src="{% static 'images/loading.gif' %}">
|
class="btn btn-sm btn-default">
|
||||||
</p>
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
|
aria-hidden="true" focusable="false" width="1em"
|
||||||
<div class="panel-body">
|
height="1em"
|
||||||
<div class="example-box-wrapper">
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
<ul class="nav-responsive nav nav-tabs">
|
preserveAspectRatio="xMidYMid meet"
|
||||||
|
viewBox="0 0 24 24">
|
||||||
<li class="active"><a href="#tab1" data-toggle="tab"
|
<path fill="none" stroke="#626262" stroke-width="2"
|
||||||
aria-selected="true">General</a></li>
|
d="M2.998 7V1H17.5L21 4.5V23h-6m1-22v5h5M8 23A7 7 0 1 0 8 9a7 7 0 0 0 0 14zm-3.5-6.5L8 13l3.5 3.5m-3.5-3V20"></path>
|
||||||
<li class=""><a href="#tab2" ng-click="GetCurrentPlugins()"
|
</svg>
|
||||||
data-toggle="tab">Plugins</a></li>
|
Update All</a>
|
||||||
<li class=""><a href="#tab3" ng-click="GetCurrentThemes()"
|
<a ng-click="UpdatePlugins('selected')"
|
||||||
data-toggle="tab">Themes</a></li>
|
href="javascript:void(0);"
|
||||||
<li><a href="#tab4" data-toggle="tab"
|
class="btn btn-sm btn-default"> Update
|
||||||
ng-click="fetchstaging()">Staging</a></li>
|
Selected</a>
|
||||||
|
</div>
|
||||||
</li>
|
<div class="col-sm-4">
|
||||||
</ul>
|
<div class="text-sm-right">
|
||||||
<div class="tab-content">
|
<button data-toggle="modal" data-target="#DeleteWebsite"
|
||||||
<div class="tab-pane active" id="tab1">
|
ng-click="DeletePlugins('selected')"
|
||||||
<div class="d-lg-flex d-none">
|
aria-label=""
|
||||||
<a target="_blank" href="http://{{ wpsite.FinalURL }}">
|
class="btn btn-danger btn-icon-left m-b-10"
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
type="button">Delete Selected
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
</button>
|
||||||
aria-hidden="true" focusable="false" width="1em"
|
</div>
|
||||||
height="1em"
|
</div><!-- end col-->
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
</div>
|
||||||
preserveAspectRatio="xMidYMid meet"
|
<table class="table table-hover mb-0">
|
||||||
viewBox="0 0 24 24">
|
<thead>
|
||||||
<path d="M13 3l3.293 3.293l-7 7l1.414 1.414l7-7L21 11V3z"
|
<tr>
|
||||||
fill="#626262"></path>
|
<th>
|
||||||
<path d="M19 19H5V5h7l-2-2H5c-1.103 0-2 .897-2 2v14c0 1.103.897 2 2 2h14c1.103 0 2-.897 2-2v-5l-2-2v7z"
|
{% comment %}<div class="custom-control custom-checkbox" style="padding-left: 0px">
|
||||||
fill="#626262"></path>
|
|
||||||
</svg>
|
|
||||||
Open
|
|
||||||
</a>
|
|
||||||
<a target="_blank"
|
|
||||||
href="/filemanager/{{ wpsite.owner.domain }}"
|
|
||||||
style="margin-left: 4%">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
aria-hidden="true" focusable="false" width="1em"
|
|
||||||
height="1em"
|
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
|
||||||
preserveAspectRatio="xMidYMid meet"
|
|
||||||
viewBox="0 0 1024 1024">
|
|
||||||
<path d="M159 768h612.3l103.4-256H262.3z"
|
|
||||||
fill-opacity=".15"
|
|
||||||
fill="#626262"/>
|
|
||||||
<path d="M928 444H820V330.4c0-17.7-14.3-32-32-32H473L355.7 186.2a8.15 8.15 0 0 0-5.5-2.2H96c-17.7 0-32 14.3-32 32v592c0 17.7 14.3 32 32 32h698c13 0 24.8-7.9 29.7-20l134-332c1.5-3.8 2.3-7.9 2.3-12c0-17.7-14.3-32-32-32zM136 256h188.5l119.6 114.4H748V444H238c-13 0-24.8 7.9-29.7 20L136 643.2V256zm635.3 512H159l103.3-256h612.4L771.3 768z"
|
|
||||||
fill="#626262"/>
|
|
||||||
</svg>
|
|
||||||
File Manager
|
|
||||||
</a>
|
|
||||||
<a ng-click="autoLogin()"
|
|
||||||
style="margin-left: 4%"
|
|
||||||
href="javascript: void(0);">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
aria-hidden="true" focusable="false" width="1em"
|
|
||||||
height="1em"
|
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
|
||||||
preserveAspectRatio="xMidYMid meet"
|
|
||||||
viewBox="0 0 20 20">
|
|
||||||
<path d="M14 10L8 5v3H1v4h7v3l6-5zm3 7H9v2h8c1.1 0 2-.9 2-2V3c0-1.1-.9-2-2-2H9v2h8v14z"
|
|
||||||
fill="#626262"></path>
|
|
||||||
</svg>
|
|
||||||
Login
|
|
||||||
</a>
|
|
||||||
<a style="margin-left: 4%" target="_blank"
|
|
||||||
href="/websites/{{ wpsite.owner.domain }}/manageGIT">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
aria-hidden="true" focusable="false" width="1em"
|
|
||||||
height="1em"
|
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
|
||||||
preserveAspectRatio="xMidYMid meet"
|
|
||||||
viewBox="0 0 24 24">
|
|
||||||
<path d="M17.5 4C15.57 4 14 5.57 14 7.5c0 1.554 1.025 2.859 2.43 3.315c-.146.932-.547 1.7-1.23 2.323c-1.946 1.773-5.527 1.935-7.2 1.907V8.837c1.44-.434 2.5-1.757 2.5-3.337C10.5 3.57 8.93 2 7 2S3.5 3.57 3.5 5.5c0 1.58 1.06 2.903 2.5 3.337v6.326c-1.44.434-2.5 1.757-2.5 3.337C3.5 20.43 5.07 22 7 22s3.5-1.57 3.5-3.5c0-.551-.14-1.065-.367-1.529c2.06-.186 4.657-.757 6.409-2.35c1.097-.997 1.731-2.264 1.904-3.768C19.915 10.438 21 9.1 21 7.5C21 5.57 19.43 4 17.5 4zm-12 1.5C5.5 4.673 6.173 4 7 4s1.5.673 1.5 1.5S7.827 7 7 7s-1.5-.673-1.5-1.5zM7 20c-.827 0-1.5-.673-1.5-1.5a1.5 1.5 0 0 1 1.482-1.498l.13.01A1.495 1.495 0 0 1 7 20zM17.5 9c-.827 0-1.5-.673-1.5-1.5S16.673 6 17.5 6s1.5.673 1.5 1.5S18.327 9 17.5 9z"
|
|
||||||
fill="#626262"></path>
|
|
||||||
</svg>
|
|
||||||
Git Manager
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div style="margin-top: 4%">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h6 class="font-14">WordPress Version</h6>
|
|
||||||
<p id="WPVersion" class="text-sm lh-150"></p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h6 class="font-14">PHP</h6>
|
|
||||||
<p class="text-sm lh-150">{{ wpsite.owner.phpSelection }}</p>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h6 class="font-14">LSCache</h6>
|
|
||||||
<div class="custom-control custom-switch">
|
|
||||||
<input ng-click="UpdateWPSettings('lscache')"
|
|
||||||
type="checkbox"
|
|
||||||
class="custom-control-input ng-pristine ng-untouched ng-valid ng-not-empty"
|
|
||||||
id="lscache">
|
|
||||||
<label class="custom-control-label"
|
|
||||||
for="lscache"></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div style="margin-top: 4%">
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h6 class="font-14">Debugging</h6>
|
|
||||||
<div class="custom-control custom-switch">
|
|
||||||
<input ng-click="UpdateWPSettings('debugging')"
|
|
||||||
type="checkbox"
|
|
||||||
class="custom-control-input ng-pristine ng-untouched ng-valid ng-empty"
|
|
||||||
id="debugging">
|
|
||||||
<label class="custom-control-label"
|
|
||||||
for="debugging"></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h6 class="font-14">Search Engine Indexing</h6>
|
|
||||||
<div class="custom-control custom-switch">
|
|
||||||
<input ng-click="UpdateWPSettings('searchIndex')"
|
|
||||||
type="checkbox"
|
|
||||||
class="custom-control-input ng-pristine ng-untouched ng-valid ng-not-empty"
|
|
||||||
id="searchIndex">
|
|
||||||
<label class="custom-control-label"
|
|
||||||
for="searchIndex"></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="col-md-4">
|
|
||||||
<h6 class="font-14">Maintenance mode</h6>
|
|
||||||
<div class="custom-control custom-switch">
|
|
||||||
<input ng-click="UpdateWPSettings('maintenanceMode')"
|
|
||||||
type="checkbox"
|
|
||||||
class="custom-control-input ng-pristine ng-untouched ng-valid ng-empty"
|
|
||||||
id="maintenanceMode">
|
|
||||||
<label class="custom-control-label"
|
|
||||||
for="maintenanceMode"></label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="tab-pane" id="tab2">
|
|
||||||
<div class="row mb-2">
|
|
||||||
<div class="col-sm-8">
|
|
||||||
<a ng-click="UpdatePlugins('all')"
|
|
||||||
href="javascript:void(0);"
|
|
||||||
class="btn btn-sm btn-default">
|
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
|
||||||
aria-hidden="true" focusable="false" width="1em"
|
|
||||||
height="1em"
|
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
|
||||||
preserveAspectRatio="xMidYMid meet"
|
|
||||||
viewBox="0 0 24 24">
|
|
||||||
<path fill="none" stroke="#626262" stroke-width="2"
|
|
||||||
d="M2.998 7V1H17.5L21 4.5V23h-6m1-22v5h5M8 23A7 7 0 1 0 8 9a7 7 0 0 0 0 14zm-3.5-6.5L8 13l3.5 3.5m-3.5-3V20"></path>
|
|
||||||
</svg>
|
|
||||||
Update All</a>
|
|
||||||
<a ng-click="UpdatePlugins('selected')"
|
|
||||||
href="javascript:void(0);"
|
|
||||||
class="btn btn-sm btn-default"> Update
|
|
||||||
Selected</a>
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-4">
|
|
||||||
<div class="text-sm-right">
|
|
||||||
<button data-toggle="modal" data-target="#DeleteWebsite"
|
|
||||||
ng-click="DeletePlugins('selected')"
|
|
||||||
aria-label=""
|
|
||||||
class="btn btn-danger btn-icon-left m-b-10"
|
|
||||||
type="button">Delete Selected
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div><!-- end col-->
|
|
||||||
</div>
|
|
||||||
<table class="table table-hover mb-0">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>
|
|
||||||
{% comment %}<div class="custom-control custom-checkbox" style="padding-left: 0px">
|
|
||||||
<input type="checkbox" id="CheckAll">
|
<input type="checkbox" id="CheckAll">
|
||||||
<label for="CheckAll"></label>
|
<label for="CheckAll"></label>
|
||||||
</div>{% endcomment %}
|
</div>{% endcomment %}
|
||||||
</th>
|
</th>
|
||||||
<th>Plugin</th>
|
<th>Plugin</th>
|
||||||
<th>State</th>
|
<th>State</th>
|
||||||
<th>Updates</th>
|
<th>Updates</th>
|
||||||
<th>Version</th>
|
<th>Version</th>
|
||||||
<th>Delete</th>
|
<th>Delete</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="PluginBody">
|
<tbody id="PluginBody">
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tab3">
|
<div class="tab-pane" id="tab3">
|
||||||
<div class="row mb-2">
|
<div class="row mb-2">
|
||||||
<div class="col-sm-8">
|
<div class="col-sm-8">
|
||||||
<a ng-click="UpdateThemes('all')" href="javascript:void(0);"
|
<a ng-click="UpdateThemes('all')" href="javascript:void(0);"
|
||||||
class="btn btn-sm btn-default">
|
class="btn btn-sm btn-default">
|
||||||
<svg xmlns="http://www.w3.org/2000/svg"
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||||
aria-hidden="true" focusable="false" width="1em"
|
aria-hidden="true" focusable="false" width="1em"
|
||||||
height="1em"
|
height="1em"
|
||||||
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
preserveAspectRatio="xMidYMid meet"
|
preserveAspectRatio="xMidYMid meet"
|
||||||
viewBox="0 0 24 24">
|
viewBox="0 0 24 24">
|
||||||
<path fill="none" stroke="#626262" stroke-width="2"
|
<path fill="none" stroke="#626262" stroke-width="2"
|
||||||
d="M2.998 7V1H17.5L21 4.5V23h-6m1-22v5h5M8 23A7 7 0 1 0 8 9a7 7 0 0 0 0 14zm-3.5-6.5L8 13l3.5 3.5m-3.5-3V20"></path>
|
d="M2.998 7V1H17.5L21 4.5V23h-6m1-22v5h5M8 23A7 7 0 1 0 8 9a7 7 0 0 0 0 14zm-3.5-6.5L8 13l3.5 3.5m-3.5-3V20"></path>
|
||||||
</svg>
|
</svg>
|
||||||
Update All</a>
|
Update All</a>
|
||||||
<a ng-click="UpdateThemes('selected')"
|
<a ng-click="UpdateThemes('selected')"
|
||||||
href="javascript:void(0);"
|
href="javascript:void(0);"
|
||||||
class="btn btn-sm btn-default"> Update
|
class="btn btn-sm btn-default"> Update
|
||||||
Selected</a>
|
Selected</a>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="text-sm-right">
|
<div class="text-sm-right">
|
||||||
<button data-toggle="modal" data-target="#DeleteWebsite"
|
<button data-toggle="modal" data-target="#DeleteWebsite"
|
||||||
ng-click="DeleteThemes('selected')"
|
ng-click="DeleteThemes('selected')"
|
||||||
aria-label=""
|
aria-label=""
|
||||||
class="btn btn-danger btn-icon-left m-b-10"
|
class="btn btn-danger btn-icon-left m-b-10"
|
||||||
type="button">Delete
|
type="button">Delete
|
||||||
Selected
|
Selected
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div><!-- end col-->
|
</div><!-- end col-->
|
||||||
</div>
|
</div>
|
||||||
<table class="table table-hover mb-0">
|
<table class="table table-hover mb-0">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
<th>
|
<th>
|
||||||
{% comment %}<div class="custom-control custom-checkbox" style="padding-left: 0px">
|
{% comment %}<div class="custom-control custom-checkbox" style="padding-left: 0px">
|
||||||
<input type="checkbox" id="CheckAll">
|
<input type="checkbox" id="CheckAll">
|
||||||
<label for="CheckAll"></label>
|
<label for="CheckAll"></label>
|
||||||
</div>{% endcomment %}
|
</div>{% endcomment %}
|
||||||
</th>
|
</th>
|
||||||
<th>Theme</th>
|
<th>Theme</th>
|
||||||
<th>State</th>
|
<th>State</th>
|
||||||
<th>Updates</th>
|
<th>Updates</th>
|
||||||
<th>Version</th>
|
<th>Version</th>
|
||||||
<th>Delete</th>
|
<th>Delete</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody id="ThemeBody">
|
<tbody id="ThemeBody">
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="tab4">
|
<div class="tab-pane" id="tab4">
|
||||||
<h2>Create Staging site</h2>
|
<h2>Create Staging site</h2>
|
||||||
<div ng-hide="stagingDetailsForm" class="form-group">
|
<div ng-hide="stagingDetailsForm" class="form-group">
|
||||||
<label style="margin-bottom: 2%!important; margin-top: 2%!important;"
|
<label style="margin-bottom: 2%!important; margin-top: 2%!important;"
|
||||||
class="col-sm-2 control-label">Name</label>
|
class="col-sm-2 control-label">Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input style="margin-bottom: 2%!important; margin-top: 2%!important;"
|
<input style="margin-bottom: 2%!important; margin-top: 2%!important;"
|
||||||
type="text" class="form-control" id="stagingName">
|
type="text" class="form-control" id="stagingName">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-hide="stagingDetailsForm" class="form-group mt-5">
|
<div ng-hide="stagingDetailsForm" class="form-group mt-5">
|
||||||
<label style="margin-bottom: 2%!important;"
|
<label style="margin-bottom: 2%!important;"
|
||||||
class="col-sm-2 control-label">Domain Name</label>
|
class="col-sm-2 control-label">Domain Name</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input style="margin-bottom: 2%!important;"
|
<input style="margin-bottom: 2%!important;"
|
||||||
type="text" class="form-control" id="stagingDomain">
|
type="text" class="form-control" id="stagingDomain">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div ng-hide="stagingDetailsForm" class="center-div mt-5">
|
<div ng-hide="stagingDetailsForm" class="center-div mt-5">
|
||||||
<button ng-click="CreateStagingNow()"
|
<button ng-click="CreateStagingNow()"
|
||||||
style="margin-bottom: 2%!important;"
|
style="margin-bottom: 2%!important;"
|
||||||
class="btn btn-alt btn-hover btn-blue-alt">
|
class="btn btn-alt btn-hover btn-blue-alt">
|
||||||
<span>Create Now</span>
|
<span>Create Now</span>
|
||||||
<i class="glyph-icon icon-arrow-right"></i>
|
<i class="glyph-icon icon-arrow-right"></i>
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
<div ng-hide="installationProgress" class="form-group">
|
<div ng-hide="installationProgress" class="form-group">
|
||||||
<label class="col-sm-2 control-label"></label>
|
<label class="col-sm-2 control-label"></label>
|
||||||
<div class="col-sm-7">
|
<div class="col-sm-7">
|
||||||
|
|
||||||
<div class="alert alert-success text-center">
|
<div class="alert alert-success text-center">
|
||||||
<h2>{$ currentStatus $}</h2>
|
<h2>{$ currentStatus $}</h2>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="progress">
|
<div class="progress">
|
||||||
<div id="installProgress" class="progress-bar"
|
<div id="installProgress" class="progress-bar"
|
||||||
role="progressbar" aria-valuenow="70"
|
role="progressbar" aria-valuenow="70"
|
||||||
aria-valuemin="0" aria-valuemax="100"
|
aria-valuemin="0" aria-valuemax="100"
|
||||||
style="width:0%">
|
style="width:0%">
|
||||||
<span class="sr-only">70% Complete</span>
|
<span class="sr-only">70% Complete</span>
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div ng-hide="errorMessageBox" class="alert alert-danger">
|
|
||||||
<p>{% trans "Error message:" %} {$ errorMessage $}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div ng-hide="success" class="alert alert-success">
|
|
||||||
<p>{% trans "Website succesfully created." %}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<div ng-hide="couldNotConnect" class="alert alert-danger">
|
|
||||||
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div ng-hide="installationProgress" class="form-group">
|
|
||||||
<label class="col-sm-3 control-label"></label>
|
|
||||||
<div class="col-sm-4">
|
|
||||||
<button type="button" ng-disabled="goBackDisable"
|
|
||||||
ng-click="goBack()"
|
|
||||||
class="btn btn-primary btn-lg center-div">{% trans "Go Back" %}</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<br>
|
|
||||||
<br>
|
|
||||||
<h3>List staging site</h3>
|
|
||||||
<table class="table table-condensed">
|
|
||||||
<thead>
|
|
||||||
<tr>
|
|
||||||
<th>Name</th>
|
|
||||||
<th>Domain</th>
|
|
||||||
<th>Path</th>
|
|
||||||
<th>Action</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody id="StagingBody">
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
|
|
||||||
|
<div ng-hide="errorMessageBox" class="alert alert-danger">
|
||||||
|
<p>{% trans "Error message:" %} {$ errorMessage $}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div ng-hide="success" class="alert alert-success">
|
||||||
|
<p>{% trans "Website succesfully created." %}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div ng-hide="couldNotConnect" class="alert alert-danger">
|
||||||
|
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
<div ng-hide="installationProgress" class="form-group">
|
||||||
|
<label class="col-sm-3 control-label"></label>
|
||||||
|
<div class="col-sm-4">
|
||||||
|
<button type="button" ng-disabled="goBackDisable"
|
||||||
|
ng-click="goBack()"
|
||||||
|
class="btn btn-primary btn-lg center-div">{% trans "Go Back" %}</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<br>
|
||||||
|
<br>
|
||||||
|
<h3>List staging site</h3>
|
||||||
|
<table class="table table-condensed">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Name</th>
|
||||||
|
<th>Domain</th>
|
||||||
|
<th>Path</th>
|
||||||
|
<th>Action</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody id="StagingBody">
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<hr>
|
||||||
|
<div class="d-lg-flex d-none justify-content-center">
|
||||||
|
<a href="/websites/{{ wpsite.owner.domain }}">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"
|
||||||
|
focusable="false" width="1em" height="1em"
|
||||||
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
|
preserveAspectRatio="xMidYMid meet" viewBox="0 0 32 32">
|
||||||
|
<path d="M16 18H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2zM6 6v10h10V6z"
|
||||||
|
fill="#626262"></path>
|
||||||
|
<path d="M26 12v4h-4v-4h4m0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2z"
|
||||||
|
fill="#626262"></path>
|
||||||
|
<path d="M26 22v4h-4v-4h4m0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2z"
|
||||||
|
fill="#626262"></path>
|
||||||
|
<path d="M16 22v4h-4v-4h4m0-2h-4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h4a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2z"
|
||||||
|
fill="#626262"></path>
|
||||||
|
</svg>
|
||||||
|
Manage Application
|
||||||
|
</a>
|
||||||
|
<a ng-click="autoUpdateConfigurationsInit()" data-toggle="modal"
|
||||||
|
data-target="#autoUpdateConfig" style="margin-left: 3%"
|
||||||
|
href="javascript: void(0);">
|
||||||
|
<svg xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true"
|
||||||
|
focusable="false" width="1em" height="1em"
|
||||||
|
style="-ms-transform: rotate(360deg); -webkit-transform: rotate(360deg); transform: rotate(360deg);"
|
||||||
|
preserveAspectRatio="xMidYMid meet" viewBox="0 0 20 20">
|
||||||
|
<path d="M10.2 3.28c3.53 0 6.43 2.61 6.92 6h2.08l-3.5 4l-3.5-4h2.32a4.439 4.439 0 0 0-4.32-3.45c-1.45 0-2.73.71-3.54 1.78L4.95 5.66a6.965 6.965 0 0 1 5.25-2.38zm-.4 13.44c-3.52 0-6.43-2.61-6.92-6H.8l3.5-4c1.17 1.33 2.33 2.67 3.5 4H5.48a4.439 4.439 0 0 0 4.32 3.45c1.45 0 2.73-.71 3.54-1.78l1.71 1.95a6.95 6.95 0 0 1-5.25 2.38z"
|
||||||
|
fill="#626262"></path>
|
||||||
|
</svg>
|
||||||
|
Autoupdate Configurations
|
||||||
|
</a>
|
||||||
|
<div id="autoUpdateConfig" class="modal fade" tabindex="-1" role="dialog"
|
||||||
|
aria-hidden="true">
|
||||||
|
<div class="modal-dialog">
|
||||||
|
|
||||||
|
<!-- Modal content-->
|
||||||
|
<div class="modal-content">
|
||||||
|
<div class="modal-header">
|
||||||
|
<button type="button" class="close" data-dismiss="modal">
|
||||||
|
×
|
||||||
|
</button>
|
||||||
|
<h4 class="modal-title">{% trans "Updates" %}</h4>
|
||||||
|
</div>
|
||||||
|
<div class="modal-body">
|
||||||
|
<form>
|
||||||
|
|
||||||
|
|
||||||
|
<h4 style="margin: 2%">Configure setting for automatic
|
||||||
|
updates.</h4>
|
||||||
|
<div class="row">
|
||||||
|
<label class="col-lg-6">Automatic Updates
|
||||||
|
(Currently:
|
||||||
|
{{ wpsite.AutoUpdates }})</label>
|
||||||
|
<div class="col-lg-6">
|
||||||
|
<select id="AutomaticUpdates"
|
||||||
|
style="padding: 10px">
|
||||||
|
<option>Disabled</option>
|
||||||
|
<option>Minor and Security Updates</option>
|
||||||
|
<option>All (minor and major)</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<label class="col-lg-4">Plugins
|
||||||
|
(Currently: {{ wpsite.PluginUpdates }})</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<select id="Plugins"
|
||||||
|
|
||||||
|
style="padding: 10px">
|
||||||
|
<option>Enabled</option>
|
||||||
|
<option>Disabled</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="row">
|
||||||
|
<label class="col-lg-4">Themes
|
||||||
|
(Currently: {{ wpsite.ThemeUpdates }})</label>
|
||||||
|
<div class="col-lg-8">
|
||||||
|
<select id="Themes"
|
||||||
|
|
||||||
|
style="padding: 10px">
|
||||||
|
<option>Enabled</option>
|
||||||
|
<option>Disabled</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div class="modal-footer">
|
||||||
|
<button type="button" class="btn btn-primary"
|
||||||
|
ng-click="SaveUpdateConfig()">Save
|
||||||
|
</button>
|
||||||
|
<button type="button" ng-disabled="savingSettings"
|
||||||
|
class="btn btn-default" data-dismiss="modal">
|
||||||
|
Close
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<!-- /.modal-dialog -->
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{% extends "baseTemplate/index.html" %}
|
{% extends "baseTemplate/index.html" %}
|
||||||
{% load i18n %}
|
{% load i18n %}
|
||||||
{% block title %}{% trans "Websites Hosted - CyberPanel" %}{% endblock %}
|
{% block title %}{% trans "WordPress List - CyberPanel" %}{% endblock %}
|
||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% load static %}
|
{% load static %}
|
||||||
@@ -13,81 +13,139 @@
|
|||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
table { /* tables still need 'cellspacing="0"' in the markup */
|
||||||
|
border-collapse: separate;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-spacing {
|
||||||
|
border-spacing: 0em .9em;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th:nth-child(1) {
|
||||||
|
|
||||||
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 3px 0px 0px 3px;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 3px 0px 0px 3px;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius: 3px 0px 0px 3px;
|
||||||
|
}
|
||||||
|
table th:nth-child(1){
|
||||||
|
|
||||||
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 20px 0px 0px 20px;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 20px 0px 0px 20px;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius: 20px 0px 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table th:nth-last-child(1) {
|
||||||
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 0px 20px 20px 0px;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 0px 20px 20px 0px;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius:0px 20px 20px 0px;
|
||||||
|
}
|
||||||
|
table td:nth-child(1){
|
||||||
|
|
||||||
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 20px 0px 0px 20px;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 20px 0px 0px 20px;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius: 20px 0px 0px 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
table td:nth-last-child(1) {
|
||||||
|
/* Safari 3-4, iOS 1-3.2, Android 1.6- */
|
||||||
|
-webkit-border-radius: 0px 20px 20px 0px;
|
||||||
|
|
||||||
|
/* Firefox 1-3.6 */
|
||||||
|
-moz-border-radius: 0px 20px 20px 0px;
|
||||||
|
|
||||||
|
/* Opera 10.5, IE 9, Safari 5, Chrome, Firefox 4, iOS 4, Android 2.1+ */
|
||||||
|
border-radius: 0px 20px 20px 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
|
|
||||||
|
|
||||||
<div ng-controller="listWebsites" class="container">
|
<div ng-controller="listWebsites" class="container">
|
||||||
|
|
||||||
<div id="page-title">
|
<div id="page-title">
|
||||||
<h2 id="domainNamePage">{% trans "List WordPress Websites" %}
|
<h2 id="domainNamePage">{% trans "List WordPress Websites" %}
|
||||||
<a class="pull-right btn btn-primary" href="{% url "createWordpress" %}">{% trans "Create WordPress Website" %}</a>
|
<a class="pull-right btn btn-primary"
|
||||||
|
href="{% url "createWordpress" %}">{% trans "Create WordPress Website" %}</a>
|
||||||
</h2>
|
</h2>
|
||||||
<img ng-hide="cyberPanelLoading" src="{% static 'images/loading.gif' %}">
|
<img ng-hide="cyberPanelLoading" src="{% static 'images/loading.gif' %}">
|
||||||
<p>{% trans "On this page you can launch, list, modify and delete websites from your server." %}</p>
|
<p>{% trans "On this page you can launch, list, modify and delete Wordpress Sites from your server." %}</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<table class="table table-hover dataTable no-footer" id="basicTable" role="grid">
|
|
||||||
<thead style="background-color: #0a6ebd">
|
|
||||||
<tr role="row" class="plans-head">
|
|
||||||
<th style="color: #fff0ff" class="sorting_desc" tabindex="0"
|
|
||||||
aria-controls="basicTable" rowspan="1" colspan="1"
|
|
||||||
aria-sort="descending"
|
|
||||||
aria-label="Title: activate to sort column ascending">ID
|
|
||||||
</th>
|
|
||||||
<th style="color: #fff0ff" class="sorting" tabindex="0"
|
|
||||||
aria-controls="basicTable" rowspan="1" colspan="1"
|
|
||||||
aria-label="Places: activate to sort column ascending">WordPress Site Title
|
|
||||||
</th>
|
|
||||||
<th style="color: #fff0ff" class="sorting" tabindex="0"
|
|
||||||
aria-controls="basicTable" rowspan="1" colspan="1"
|
|
||||||
aria-label="Places: activate to sort column ascending">URL
|
|
||||||
</th>
|
|
||||||
|
|
||||||
<th style="color: #fff0ff" class="sorting" tabindex="0"
|
|
||||||
aria-controls="basicTable" rowspan="1" colspan="1"
|
|
||||||
aria-label="Places: activate to sort column ascending">Action
|
|
||||||
</th>
|
|
||||||
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
|
|
||||||
<tbody>
|
|
||||||
{% for sub in wpsite %}
|
|
||||||
|
|
||||||
<tr role="row" class="odd">
|
|
||||||
<td class="v-align-middle sorting_1">
|
|
||||||
<p>{{ sub.id }}</p>
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td class="v-align-middle sorting_1">
|
|
||||||
<a href="{% url 'WPHome'%}?ID={{sub.id}}">
|
|
||||||
<p>{{ sub.title }}</p>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
</td>
|
|
||||||
<td class="v-align-middle">
|
|
||||||
<p>{{ sub.url }}</p>
|
|
||||||
</td>
|
|
||||||
<td class="row">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<button
|
<table class="table-spacing" style="width: 100%">
|
||||||
|
<thead style="color: white; background-color: #0a6ebd">
|
||||||
data-toggle="modal"
|
<tr>
|
||||||
data-target="#DeleteMember" aria-label=""
|
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">WordPress Site Title
|
||||||
type="button" class="btn btn-border btn-alt border-red btn-link font-red">
|
</th>
|
||||||
Delete
|
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Domain
|
||||||
</button>
|
</th>
|
||||||
|
<th style="padding: 18px; color: white; width: 161px; font-size: 12px;">Action
|
||||||
|
</th>
|
||||||
|
|
||||||
|
|
||||||
</td>
|
</tr>
|
||||||
|
</thead>
|
||||||
|
|
||||||
|
<tbody style="background-color: #d9eefa">
|
||||||
|
{% for sub in wpsite %}
|
||||||
|
|
||||||
|
<tr >
|
||||||
|
<td style="padding: 13px;">
|
||||||
|
<a href="{% url 'WPHome'%}?ID={{sub.id}}">
|
||||||
|
<p style="font-weight: bold; text-transform: uppercase; ">{{ sub.title }}</p>
|
||||||
|
</a>
|
||||||
|
</td>
|
||||||
|
<td style="padding: 13px;">
|
||||||
|
<a target="_blank" style="color: #6aa7ff"
|
||||||
|
href="http://{{ sub.url }}">Visit
|
||||||
|
<i class="glyph-icon icon-external-link-square" title="{{ sub.url }}"></i></a>
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<td style="padding: 13px;">
|
||||||
|
|
||||||
|
|
||||||
</tr>
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
</tbody>
|
<button
|
||||||
</table>
|
|
||||||
|
data-toggle="modal"
|
||||||
|
data-target="#DeleteMember" aria-label=""
|
||||||
|
type="button" class="btn btn-border btn-alt border-red btn-link font-red">
|
||||||
|
Delete
|
||||||
|
</button>
|
||||||
|
|
||||||
|
|
||||||
|
</td>
|
||||||
|
|
||||||
|
|
||||||
|
</tr>
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user