mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-10 07:16:15 +01:00
change auth type for cloud api
This commit is contained in:
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
*.pyc
|
||||
@@ -10,6 +10,7 @@ class secMiddleware:
|
||||
def __call__(self, request):
|
||||
if request.method == 'POST':
|
||||
try:
|
||||
logging.writeToFile(request.body)
|
||||
data = json.loads(request.body)
|
||||
for key, value in data.iteritems():
|
||||
if type(value) == str or type(value) == unicode:
|
||||
|
||||
@@ -560,9 +560,12 @@ def changeAdminPassword(request):
|
||||
if numberOfAdministrator == 0:
|
||||
ACLManager.createDefaultACLs()
|
||||
acl = ACL.objects.get(name='admin')
|
||||
|
||||
token = hashPassword.generateToken('admin', '1234567')
|
||||
|
||||
email = 'usman@cyberpersons.com'
|
||||
admin = Administrator(userName="admin", password=hashPassword.hash_password(adminPass), type=1, email=email,
|
||||
firstName="Cyber", lastName="Panel", acl=acl)
|
||||
firstName="Cyber", lastName="Panel", acl=acl, token=token)
|
||||
admin.save()
|
||||
|
||||
vers = version(currentVersion="1.7", build=3)
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -3,16 +3,29 @@ from __future__ import unicode_literals
|
||||
|
||||
from cloudManager import CloudManager
|
||||
import json
|
||||
from loginSystem.models import Administrator
|
||||
|
||||
def router(request):
|
||||
try:
|
||||
data = json.loads(request.body)
|
||||
controller = data['controller']
|
||||
|
||||
cm = CloudManager(data)
|
||||
serverUserName = data['serverUserName']
|
||||
admin = Administrator.objects.get(userName=serverUserName)
|
||||
|
||||
cm = CloudManager(data, admin)
|
||||
|
||||
if controller == 'statusFunc':
|
||||
pass
|
||||
else:
|
||||
if cm.verifyLogin(request)[0] == 1:
|
||||
pass
|
||||
else:
|
||||
return cm.verifyLogin(request)[1]
|
||||
|
||||
|
||||
if controller == 'verifyLogin':
|
||||
return cm.verifyLogin()
|
||||
return cm.verifyLogin(request)[1]
|
||||
elif controller == 'fetchWebsites':
|
||||
return cm.fetchWebsites()
|
||||
elif controller == 'fetchWebsiteDataJSON':
|
||||
@@ -117,6 +130,20 @@ def router(request):
|
||||
return cm.submitACLModifications(request)
|
||||
elif controller == 'submitPackage':
|
||||
return cm.submitPackage(request)
|
||||
elif controller == 'fetchPackages':
|
||||
return cm.fetchPackages(request)
|
||||
elif controller == 'submitPackageDelete':
|
||||
return cm.submitPackageDelete(request)
|
||||
elif controller == 'submitPackageModify':
|
||||
return cm.submitPackageModify(request)
|
||||
elif controller == 'getDataFromLogFile':
|
||||
return cm.getDataFromLogFile(request)
|
||||
elif controller == 'fetchErrorLogs':
|
||||
return cm.fetchErrorLogs(request)
|
||||
elif controller == 'submitApplicationInstall':
|
||||
return cm.submitApplicationInstall(request)
|
||||
elif controller == 'obtainServer':
|
||||
return cm.obtainServer(request)
|
||||
|
||||
except BaseException, msg:
|
||||
cm = CloudManager(None)
|
||||
|
||||
@@ -80,6 +80,7 @@ class Administrator(models.Model):
|
||||
email = models.CharField(max_length=50)
|
||||
type = models.IntegerField()
|
||||
owner = models.IntegerField(default=1)
|
||||
token = models.CharField(max_length=500, default='None')
|
||||
|
||||
initWebsitesLimit = models.IntegerField(default=0)
|
||||
acl = models.ForeignKey(ACL, default=1)
|
||||
|
||||
@@ -30,7 +30,6 @@ def verifyLogin(request):
|
||||
if request.method == "POST":
|
||||
data = json.loads(request.body)
|
||||
|
||||
|
||||
username = data['username']
|
||||
password = data['password']
|
||||
|
||||
@@ -153,9 +152,11 @@ def loadLoginPage(request):
|
||||
|
||||
acl = ACL.objects.get(name='admin')
|
||||
|
||||
token = hashPassword.generateToken('admin', '1234567')
|
||||
|
||||
email = 'usman@cyberpersons.com'
|
||||
admin = Administrator(userName="admin", password=password, type=1,email=email,
|
||||
firstName="Cyber",lastName="Panel", acl=acl)
|
||||
firstName="Cyber",lastName="Panel", acl=acl, token=token)
|
||||
admin.save()
|
||||
|
||||
vers = version(currentVersion="1.7",build=3)
|
||||
|
||||
@@ -1427,7 +1427,7 @@ def getCurrentPHPConfig(request):
|
||||
elif phpVers == "PHP 7.2":
|
||||
phpVers = "php72"
|
||||
|
||||
if ProcessUtilities.decideServer() == ProcessUtilities.centos:
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.centos:
|
||||
path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini"
|
||||
else:
|
||||
initial = phpVers[3]
|
||||
@@ -1612,7 +1612,7 @@ def getCurrentAdvancedPHPConfig(request):
|
||||
elif phpVers == "PHP 7.2":
|
||||
phpVers = "php72"
|
||||
|
||||
if ProcessUtilities.decideServer() == ProcessUtilities.centos:
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.centos:
|
||||
path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini"
|
||||
else:
|
||||
initial = phpVers[3]
|
||||
@@ -1665,7 +1665,7 @@ def savePHPConfigAdvance(request):
|
||||
elif phpVers == "PHP 7.2":
|
||||
phpVers = "php72"
|
||||
|
||||
if ProcessUtilities.decideServer() == ProcessUtilities.centos:
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.centos:
|
||||
path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini"
|
||||
else:
|
||||
initial = phpVers[3]
|
||||
|
||||
@@ -113,13 +113,13 @@ class PackagesManager:
|
||||
delPackage = Package.objects.get(packageName=packageName)
|
||||
delPackage.delete()
|
||||
|
||||
data_ret = {'deleteStatus': 1, 'error_message': "None"}
|
||||
data_ret = {'status': 1, 'deleteStatus': 1, 'error_message': "None"}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'deleteStatus': 0, 'error_message': str(msg)}
|
||||
data_ret = {'status': 0, 'deleteStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
@@ -196,11 +196,11 @@ class PackagesManager:
|
||||
modifyPack.allowedDomains = data['allowedDomains']
|
||||
modifyPack.save()
|
||||
|
||||
data_ret = {'saveStatus': 1, 'error_message': "None"}
|
||||
data_ret = {'status': 1, 'saveStatus': 1, 'error_message': "None"}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'saveStatus': 0, 'error_message': str(msg)}
|
||||
data_ret = {'status': 0, 'saveStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
@@ -329,6 +329,15 @@ class ACLManager:
|
||||
|
||||
return packNames
|
||||
|
||||
@staticmethod
|
||||
def loadPackageObjects(userID, finalResponse):
|
||||
admin = Administrator.objects.get(pk=userID)
|
||||
|
||||
if finalResponse['admin'] == 1:
|
||||
return Package.objects.all()
|
||||
else:
|
||||
return admin.package_set.all()
|
||||
|
||||
@staticmethod
|
||||
def findAllSites(currentACL, userID):
|
||||
websiteNames = []
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import uuid
|
||||
import hashlib
|
||||
|
||||
import base64
|
||||
|
||||
def hash_password(password):
|
||||
# uuid is used to generate a random number
|
||||
@@ -11,3 +11,8 @@ def hash_password(password):
|
||||
def check_password(hashed_password, user_password):
|
||||
password, salt = hashed_password.split(':')
|
||||
return password == hashlib.sha256(salt.encode() + user_password.encode()).hexdigest()
|
||||
|
||||
def generateToken(serverUserName, serverPassword):
|
||||
credentials = '{0}:{1}'.format(serverUserName, serverPassword).encode()
|
||||
encoded_credentials = base64.b64encode(credentials).decode()
|
||||
return 'Basic {0}'.format(encoded_credentials)
|
||||
@@ -94,7 +94,7 @@ class phpUtilities:
|
||||
def savePHPConfigBasic(phpVers,allow_url_fopen,display_errors,file_uploads,allow_url_include,memory_limit,max_execution_time,upload_max_filesize,max_input_time,post_max_size):
|
||||
try:
|
||||
|
||||
if ProcessUtilities.decideServer() == ProcessUtilities.centos:
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.centos:
|
||||
path = "/usr/local/lsws/ls" + phpVers + "/etc/php.ini"
|
||||
else:
|
||||
initial = phpVers[3]
|
||||
|
||||
@@ -666,7 +666,7 @@ class WebsiteManager:
|
||||
|
||||
if output.find("1,None") > -1:
|
||||
final_json = json.dumps(
|
||||
{'logstatus': 0, 'error_message': "Not able to fetch logs, see CyberPanel main log file!"})
|
||||
{'status': 0,'logstatus': 0, 'error_message': "Not able to fetch logs, see CyberPanel main log file!"})
|
||||
return HttpResponse(final_json)
|
||||
|
||||
## get log ends here.
|
||||
@@ -700,7 +700,7 @@ class WebsiteManager:
|
||||
json_data = json_data + ',' + json.dumps(dic)
|
||||
|
||||
json_data = json_data + ']'
|
||||
final_json = json.dumps({'logstatus': 1, 'error_message': "None", "data": json_data})
|
||||
final_json = json.dumps({'status': 1, 'logstatus': 1, 'error_message': "None", "data": json_data})
|
||||
return HttpResponse(final_json)
|
||||
|
||||
def fetchErrorLogs(self, userID = None, data = None):
|
||||
@@ -728,12 +728,12 @@ class WebsiteManager:
|
||||
|
||||
if output.find("1,None") > -1:
|
||||
final_json = json.dumps(
|
||||
{'logstatus': 0, 'error_message': "Not able to fetch logs, see CyberPanel main log file!"})
|
||||
{'status': 0, 'logstatus': 0, 'error_message': "Not able to fetch logs, see CyberPanel main log file!"})
|
||||
return HttpResponse(final_json)
|
||||
|
||||
## get log ends here.
|
||||
|
||||
final_json = json.dumps({'logstatus': 1, 'error_message': "None", "data": output})
|
||||
final_json = json.dumps({'status': 1, 'logstatus': 1, 'error_message': "None", "data": output})
|
||||
return HttpResponse(final_json)
|
||||
|
||||
def getDataFromConfigFile(self, userID = None, data = None):
|
||||
@@ -753,12 +753,12 @@ class WebsiteManager:
|
||||
configData = subprocess.check_output(shlex.split(command))
|
||||
|
||||
if len(configData) == 0:
|
||||
status = {"configstatus": 0, "error_message": "Configuration file is currently empty!"}
|
||||
status = {'status': 0, "configstatus": 0, "error_message": "Configuration file is currently empty!"}
|
||||
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
status = {"configstatus": 1, "configData": configData}
|
||||
status = {'status': 1, "configstatus": 1, "configData": configData}
|
||||
final_json = json.dumps(status)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
@@ -1257,10 +1257,15 @@ class WebsiteManager:
|
||||
|
||||
website = Websites.objects.get(domain=self.domain)
|
||||
|
||||
try:
|
||||
output = subprocess.check_output(["sudo", "/usr/bin/crontab", "-u", website.externalApp, "-l"])
|
||||
except:
|
||||
try:
|
||||
subprocess.call(('sudo', 'crontab', '-u', website.externalApp, '-'))
|
||||
except:
|
||||
pass
|
||||
data_ret = {'addNewCron': 0, 'error_message': 'Unable to initialise crontab file for user'}
|
||||
final_json = json.dumps(data_ret)
|
||||
return HttpResponse(final_json)
|
||||
|
||||
output = subprocess.check_output(["sudo", "/usr/bin/crontab", "-u", website.externalApp, "-l"])
|
||||
|
||||
@@ -1507,14 +1512,14 @@ class WebsiteManager:
|
||||
|
||||
time.sleep(2)
|
||||
|
||||
data_ret = {'installStatus': 1, 'error_message': 'None',
|
||||
data_ret = {'status': 1, 'installStatus': 1, 'error_message': 'None',
|
||||
'tempStatusPath': extraArgs['tempStatusPath']}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'installStatus': 0, 'error_message': str(msg)}
|
||||
data_ret = {'status': 0, 'installStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
@@ -1614,7 +1619,7 @@ class WebsiteManager:
|
||||
|
||||
if Databases.objects.filter(dbName=dbName).exists() or Databases.objects.filter(
|
||||
dbUser=dbUser).exists():
|
||||
data_ret = {'installStatus': 0,
|
||||
data_ret = {'status': 0, 'installStatus': 0,
|
||||
'error_message': "0,This database or user is already taken."}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
@@ -1624,7 +1629,7 @@ class WebsiteManager:
|
||||
if result == 1:
|
||||
pass
|
||||
else:
|
||||
data_ret = {'installStatus': 0,
|
||||
data_ret = {'status': 0, 'installStatus': 0,
|
||||
'error_message': "0,Not able to create database."}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
@@ -1640,7 +1645,7 @@ class WebsiteManager:
|
||||
if website.master.package.dataBases > website.master.databases_set.all().count():
|
||||
pass
|
||||
else:
|
||||
data_ret = {'installStatus': 0,
|
||||
data_ret = {'status': 0, 'installStatus': 0,
|
||||
'error_message': "0,Maximum database limit reached for this website."}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
@@ -1661,7 +1666,7 @@ class WebsiteManager:
|
||||
if website.package.dataBases > website.databases_set.all().count():
|
||||
pass
|
||||
else:
|
||||
data_ret = {'installStatus': 0,
|
||||
data_ret = {'status': 0, 'installStatus': 0,
|
||||
'error_message': "0,Maximum database limit reached for this website."}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
@@ -1676,7 +1681,7 @@ class WebsiteManager:
|
||||
db.save()
|
||||
|
||||
if finalPath.find("..") > -1:
|
||||
data_ret = {'installStatus': 0,
|
||||
data_ret = {'status': 0, 'installStatus': 0,
|
||||
'error_message': "Specified path must be inside virtual host home!"}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
@@ -1704,16 +1709,15 @@ class WebsiteManager:
|
||||
|
||||
output = subprocess.Popen(shlex.split(execPath))
|
||||
|
||||
data_ret = {"installStatus": 1, 'tempStatusPath': tempStatusPath}
|
||||
data_ret = {'status': 1, "installStatus": 1, 'tempStatusPath': tempStatusPath}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
|
||||
## Installation ends
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'installStatus': 0, 'error_message': str(msg)}
|
||||
data_ret = {'status': 0, 'installStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
@@ -1925,7 +1929,7 @@ class WebsiteManager:
|
||||
|
||||
time.sleep(2)
|
||||
|
||||
data_ret = {'installStatus': 1, 'error_message': 'None',
|
||||
data_ret = {'status': 1, 'installStatus': 1, 'error_message': 'None',
|
||||
'tempStatusPath': extraArgs['tempStatusPath']}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
@@ -1933,7 +1937,7 @@ class WebsiteManager:
|
||||
## Installation ends
|
||||
|
||||
except BaseException, msg:
|
||||
data_ret = {'installStatus': 0, 'error_message': str(msg)}
|
||||
data_ret = {'status': 0, 'installStatus': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
|
||||
@@ -92,9 +92,11 @@ def submitUserCreation(request):
|
||||
else:
|
||||
type = 3
|
||||
|
||||
token = hashPassword.generateToken(userName, password)
|
||||
password = hashPassword.hash_password(password)
|
||||
currentAdmin = Administrator.objects.get(pk=userID)
|
||||
|
||||
|
||||
if ACLManager.websitesLimitCheck(currentAdmin, websitesLimit) == 0:
|
||||
data_ret = {'status': 0, 'createStatus': 0,
|
||||
'error_message': "You've reached maximum websites limit as a reseller."}
|
||||
@@ -112,7 +114,8 @@ def submitUserCreation(request):
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
owner=currentAdmin.pk,
|
||||
acl=selectedACL
|
||||
acl=selectedACL,
|
||||
token=token
|
||||
)
|
||||
newAdmin.save()
|
||||
|
||||
@@ -126,7 +129,8 @@ def submitUserCreation(request):
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
owner=currentAdmin.pk,
|
||||
acl=selectedACL
|
||||
acl=selectedACL,
|
||||
token=token
|
||||
)
|
||||
newAdmin.save()
|
||||
elif currentACL['createNewUser'] == 1:
|
||||
@@ -139,7 +143,8 @@ def submitUserCreation(request):
|
||||
password=password,
|
||||
initWebsitesLimit=websitesLimit,
|
||||
owner=currentAdmin.pk,
|
||||
acl=selectedACL
|
||||
acl=selectedACL,
|
||||
token=token
|
||||
)
|
||||
newAdmin.save()
|
||||
else:
|
||||
@@ -228,12 +233,14 @@ def saveModifications(request):
|
||||
admin = Administrator.objects.get(pk=val)
|
||||
user = Administrator.objects.get(userName=accountUsername)
|
||||
|
||||
token = hashPassword.generateToken(accountUsername, data['password'])
|
||||
password = hashPassword.hash_password(data['password'])
|
||||
|
||||
user.firstName = firstName
|
||||
user.lastName = lastName
|
||||
user.email = email
|
||||
user.password = password
|
||||
user.token = token
|
||||
user.type = 0
|
||||
|
||||
user.save()
|
||||
|
||||
@@ -3,14 +3,17 @@
|
||||
{% block title %}{{ domain }} - CyberPanel{% endblock %}
|
||||
{% block content %}
|
||||
|
||||
{% load static %}
|
||||
{% get_current_language as LANGUAGE_CODE %}
|
||||
<!-- Current language: {{ LANGUAGE_CODE }} -->
|
||||
{% load static %}
|
||||
{% get_current_language as LANGUAGE_CODE %}
|
||||
<!-- Current language: {{ LANGUAGE_CODE }} -->
|
||||
|
||||
<div ng-controller="websitePages" class="container">
|
||||
<div ng-controller="websitePages" class="container">
|
||||
|
||||
<div id="page-title">
|
||||
<h2 ><span id="domainNamePage">{{ domain }}</span> - <a target="_blank" href="{$ previewUrl $}" style="height: 23px;line-height: 21px;" class="btn btn-border btn-alt border-red btn-link font-red" title=""><span>{% trans "Preview" %}</span></a></h2>
|
||||
<h2><span id="domainNamePage">{{ domain }}</span> - <a target="_blank" href="{$ previewUrl $}"
|
||||
style="height: 23px;line-height: 21px;"
|
||||
class="btn btn-border btn-alt border-red btn-link font-red"
|
||||
title=""><span>{% trans "Preview" %}</span></a></h2>
|
||||
<p>{% trans "All functions related to a particular site." %}</p>
|
||||
</div>
|
||||
|
||||
@@ -63,7 +66,6 @@
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
@@ -94,7 +96,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -151,7 +152,8 @@
|
||||
|
||||
|
||||
<div ng-hide="couldNotFetchLogs" class="alert alert-danger">
|
||||
<p>{% trans "Could not fetch logs, see the logs file through command line. Error message:" %} {$ errorMessage $}</p>
|
||||
<p>{% trans "Could not fetch logs, see the logs file through command line. Error message:" %}
|
||||
{$ errorMessage $}</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -160,20 +162,23 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div ng-hide="fetchedData" class="form-group">
|
||||
|
||||
<div class="col-sm-3">
|
||||
<input placeholder="Search..." ng-model="logSearch" name="dom" type="text" class="form-control" ng-model="domainNameCreate" required>
|
||||
<input placeholder="Search..." ng-model="logSearch" name="dom" type="text"
|
||||
class="form-control" ng-model="domainNameCreate" required>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-2">
|
||||
<input placeholder="Page Number" type="number" class="form-control" ng-model="pageNumber" required>
|
||||
<input placeholder="Page Number" type="number" class="form-control"
|
||||
ng-model="pageNumber" required>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-6">
|
||||
<button ng-click="fetchLogs(3)" type="button" class="btn ra-100 btn-purple">{% trans "Next" %}</button>
|
||||
<button ng-click="fetchLogs(4)" type="button" class="btn ra-100 btn-purple">{% trans "Previous" %}</button>
|
||||
<button ng-click="fetchLogs(3)" type="button"
|
||||
class="btn ra-100 btn-purple">{% trans "Next" %}</button>
|
||||
<button ng-click="fetchLogs(4)" type="button"
|
||||
class="btn ra-100 btn-purple">{% trans "Previous" %}</button>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 1%;" class=" col-sm-1">
|
||||
@@ -207,36 +212,32 @@
|
||||
<div ng-hide="hideErrorLogs" class="form-group">
|
||||
|
||||
<div class="col-sm-2">
|
||||
<input placeholder="Page Number" type="number" class="form-control" ng-model="errorPageNumber" required>
|
||||
<input placeholder="Page Number" type="number" class="form-control"
|
||||
ng-model="errorPageNumber" required>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-9">
|
||||
<button ng-click="fetchErrorLogs(3)" type="button" class="btn ra-100 btn-purple">{% trans "Next" %}</button>
|
||||
<button ng-click="fetchErrorLogs(4)" type="button" class="btn ra-100 btn-purple">{% trans "Previous" %}</button>
|
||||
<button ng-click="fetchErrorLogs(3)" type="button"
|
||||
class="btn ra-100 btn-purple">{% trans "Next" %}</button>
|
||||
<button ng-click="fetchErrorLogs(4)" type="button"
|
||||
class="btn ra-100 btn-purple">{% trans "Previous" %}</button>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 1%;" class=" col-sm-1">
|
||||
<a ng-click="hideErrorLogsbtn()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a ng-click="hideErrorLogsbtn()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
|
||||
<div class="col-sm-12">
|
||||
<textarea ng-model="errorLogsData" rows="25" class="form-control"></textarea>
|
||||
<textarea ng-model="errorLogsData" rows="25"
|
||||
class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -258,10 +259,11 @@
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-3" style="margin-bottom: 2%;">
|
||||
<a href="" ng-click="showCreateDomainForm()" title="{% trans 'Add Domains' %}" href="" >
|
||||
<a href="" ng-click="showCreateDomainForm()" title="{% trans 'Add Domains' %}" href="">
|
||||
<img src="{% static 'images/icons/domains.png' %}">
|
||||
</a>
|
||||
<a ng-click="showCreateDomainForm()" title="{% trans 'Add Domains' %}" href="" title="{% trans 'Add Domains' %}">
|
||||
<a ng-click="showCreateDomainForm()" title="{% trans 'Add Domains' %}" href=""
|
||||
title="{% trans 'Add Domains' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Add Domains" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -269,20 +271,24 @@
|
||||
|
||||
|
||||
<div class="col-md-3" style="margin-bottom: 2%;">
|
||||
<a href="" ng-click="showListDomains()" title="{% trans 'List Domains' %}" href="" title="{% trans 'List Domains' %}">
|
||||
<a href="" ng-click="showListDomains()" title="{% trans 'List Domains' %}" href=""
|
||||
title="{% trans 'List Domains' %}">
|
||||
<img src="{% static 'images/icons/sort.png' %}">
|
||||
</a>
|
||||
<a ng-click="showListDomains()" title="{% trans 'List Domains' %}" href="" title="{% trans 'List Domains' %}">
|
||||
<a ng-click="showListDomains()" title="{% trans 'List Domains' %}" href=""
|
||||
title="{% trans 'List Domains' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "List Domains" %}</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-md-3" style="margin-bottom: 2%;">
|
||||
<a href="{$ domainAliasURL $}" target="_blank" title="{% trans 'Domain Alias' %}" href="" title="{% trans 'Domain Alias' %}">
|
||||
<a href="{$ domainAliasURL $}" target="_blank" title="{% trans 'Domain Alias' %}"
|
||||
href="" title="{% trans 'Domain Alias' %}">
|
||||
<img src="{% static 'images/icons/web-domain.png' %}">
|
||||
</a>
|
||||
<a href="{$ domainAliasURL $}" target="_blank" title="{% trans 'Domain Alias' %}" href="" title="{% trans 'Domain Alias' %}">
|
||||
<a href="{$ domainAliasURL $}" target="_blank" title="{% trans 'Domain Alias' %}"
|
||||
href="" title="{% trans 'Domain Alias' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Domain Alias" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -290,39 +296,44 @@
|
||||
|
||||
|
||||
<div class="col-md-3" style="margin-bottom: 2%;">
|
||||
<a href="{% url 'listCron' %}" target="_blank" title="{% trans 'Add new Cron Job' %}" href="" title="{% trans 'List Domains' %}">
|
||||
<a href="{% url 'listCron' %}" target="_blank" title="{% trans 'Add new Cron Job' %}"
|
||||
href="" title="{% trans 'List Domains' %}">
|
||||
<img src="{% static 'images/icons/repeat.png' %}">
|
||||
</a>
|
||||
<a href="{% url 'listCron' %}" target="_blank" title="{% trans 'List Domains' %}" title="{% trans 'Add new Cron Job' %}">
|
||||
<a href="{% url 'listCron' %}" target="_blank" title="{% trans 'List Domains' %}"
|
||||
title="{% trans 'Add new Cron Job' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Cron Jobs" %}</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<!---------- HTML For creating domains --------------->
|
||||
<div class="col-md-12">
|
||||
<form id="domainCreationForm" name="websiteCreationForm" action="/" class="form-horizontal bordered-row">
|
||||
<form id="domainCreationForm" name="websiteCreationForm" action="/"
|
||||
class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
<div ng-hide="installationDetailsForm" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Domain Name" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input name="dom" type="text" class="form-control" ng-model="domainNameCreate" required>
|
||||
<input name="dom" type="text" class="form-control"
|
||||
ng-model="domainNameCreate" required>
|
||||
</div>
|
||||
<div style="margin-bottom: 1%;" class=" col-sm-1">
|
||||
<a title="{% trans 'Cancel' %}" ng-click="hideDomainCreationForm()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a title="{% trans 'Cancel' %}" ng-click="hideDomainCreationForm()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="installationDetailsForm" class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Path" %}</label>
|
||||
<div class="col-sm-6">
|
||||
<input placeholder="{% trans 'This path is relative to: ' %}{$ masterDomain $}. {% trans 'Leave empty to set default.' %}" type="text" class="form-control" ng-model="docRootPath" required>
|
||||
<input placeholder="{% trans 'This path is relative to: ' %}{$ masterDomain $}. {% trans 'Leave empty to set default.' %}"
|
||||
type="text" class="form-control" ng-model="docRootPath" required>
|
||||
</div>
|
||||
<div ng-show="websiteCreationForm.dom.$error.pattern" class="current-pack">{% trans "Invalid Domain (Note: You don't need to add 'http' or 'https')" %}</div>
|
||||
<div ng-show="websiteCreationForm.dom.$error.pattern"
|
||||
class="current-pack">{% trans "Invalid Domain (Note: You don't need to add 'http' or 'https')" %}</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -342,8 +353,8 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div ng-hide="installationDetailsForm" ng-hide="installationDetailsForm" class="form-group">
|
||||
<div ng-hide="installationDetailsForm" 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">
|
||||
@@ -377,13 +388,13 @@
|
||||
<div ng-hide="installationDetailsForm" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="createDomain()" class="btn btn-primary btn-lg btn-block">{% trans "Create Domain" %}</button>
|
||||
<button type="button" ng-click="createDomain()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Create Domain" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div ng-hide="installationProgress" class="form-group">
|
||||
<label class="col-sm-2 control-label"></label>
|
||||
<div class="col-sm-7">
|
||||
@@ -393,7 +404,9 @@
|
||||
</div>
|
||||
|
||||
<div class="progress">
|
||||
<div id="installProgress" class="progress-bar" role="progressbar" aria-valuenow="70" aria-valuemin="0" aria-valuemax="100" style="width:0%">
|
||||
<div id="installProgress" class="progress-bar" role="progressbar"
|
||||
aria-valuenow="70" aria-valuemin="0" aria-valuemax="100"
|
||||
style="width:0%">
|
||||
<span class="sr-only">70% Complete</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -407,7 +420,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div ng-hide="couldNotConnect" class="alert alert-danger">
|
||||
<p>{% trans "Could not connect to server. Please refresh this page." %}</p>
|
||||
</div>
|
||||
@@ -419,7 +431,8 @@
|
||||
<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 btn-block">{% trans "Go Back" %}</button>
|
||||
<button type="button" ng-disabled="goBackDisable" ng-click="goBack()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Go Back" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -436,7 +449,6 @@
|
||||
<form ng-hide="" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
|
||||
<div ng-hide="phpChanged" class="alert alert-success">
|
||||
<p>{% trans "PHP Version Changed to:" %} {$ changedPHPVersion $} </p>
|
||||
</div>
|
||||
@@ -464,16 +476,17 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div ng-hide="" class="form-group">
|
||||
|
||||
<div class="col-sm-11">
|
||||
<input placeholder="Search Domain..." ng-model="logSearch" name="dom" type="text" class="form-control" ng-model="domainNameCreate" required>
|
||||
<input placeholder="Search Domain..." ng-model="logSearch" name="dom"
|
||||
type="text" class="form-control" ng-model="domainNameCreate"
|
||||
required>
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 1%;" class=" col-sm-1">
|
||||
<a title="{% trans 'Close' %}" ng-click="hideListDomains()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a title="{% trans 'Close' %}" ng-click="hideListDomains()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -493,16 +506,21 @@
|
||||
<tbody>
|
||||
<tr ng-repeat="record in childDomains | filter:logSearch">
|
||||
<td ng-bind="record.childDomain"></td>
|
||||
<td><a href="{$ record.childLunch $}"><img width="30px" height="30" class="center-block" src="{% static 'baseTemplate/assets/image-resources/webPanel.png' %}"></a></td>
|
||||
<td><a href="{$ record.childLunch $}"><img width="30px" height="30"
|
||||
class="center-block"
|
||||
src="{% static 'baseTemplate/assets/image-resources/webPanel.png' %}"></a>
|
||||
</td>
|
||||
<td ng-bind="record.path"></td>
|
||||
<td >
|
||||
<select ng-change="changeChildBaseDir(record.childDomain,childBaseDir)" ng-model="childBaseDir" class="form-control">
|
||||
<td>
|
||||
<select ng-change="changeChildBaseDir(record.childDomain,childBaseDir)"
|
||||
ng-model="childBaseDir" class="form-control">
|
||||
<option>Enable</option>
|
||||
<option>Disable</option>
|
||||
</select>
|
||||
</td>
|
||||
<td >
|
||||
<select ng-change="changePHP(record.childDomain,phpSelection)" ng-model="phpSelection" class="form-control">
|
||||
<td>
|
||||
<select ng-change="changePHP(record.childDomain,phpSelection)"
|
||||
ng-model="phpSelection" class="form-control">
|
||||
<option>PHP 5.3</option>
|
||||
<option>PHP 5.4</option>
|
||||
<option>PHP 5.5</option>
|
||||
@@ -512,8 +530,16 @@
|
||||
<option>PHP 7.2</option>
|
||||
</select>
|
||||
</td>
|
||||
<td><button type="button" ng-click="issueSSL(record.childDomain,record.path)" class="btn ra-100 btn-purple">{% trans "Issue" %}</button></td>
|
||||
<td><button type="button" ng-click="deleteChildDomain(record.childDomain)" class="btn ra-100 btn-purple">{% trans "Delete" %}</button></td>
|
||||
<td>
|
||||
<button type="button"
|
||||
ng-click="issueSSL(record.childDomain,record.path)"
|
||||
class="btn ra-100 btn-purple">{% trans "Issue" %}</button>
|
||||
</td>
|
||||
<td>
|
||||
<button type="button"
|
||||
ng-click="deleteChildDomain(record.childDomain)"
|
||||
class="btn ra-100 btn-purple">{% trans "Delete" %}</button>
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
@@ -546,10 +572,12 @@
|
||||
|
||||
<div class="col-md-3" style="margin-bottom: 2%;">
|
||||
|
||||
<a ng-click="fetchConfigurations()" href="" title="{% trans 'Edit vHost Main Configurations' %}">
|
||||
<a ng-click="fetchConfigurations()" href=""
|
||||
title="{% trans 'Edit vHost Main Configurations' %}">
|
||||
<img src="{% static 'images/icons/file.png' %}">
|
||||
</a>
|
||||
<a ng-click="fetchConfigurations()" href="" title="{% trans 'Edit vHost Main Configurations' %}">
|
||||
<a ng-click="fetchConfigurations()" href=""
|
||||
title="{% trans 'Edit vHost Main Configurations' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "vHost Conf" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -558,10 +586,12 @@
|
||||
|
||||
<div class="col-md-3" style="margin-bottom: 2%;">
|
||||
|
||||
<a ng-click="fetchRewriteFules()" href="" title="{% trans 'Add Rewrite Rules (.htaccess)' %}">
|
||||
<a ng-click="fetchRewriteFules()" href=""
|
||||
title="{% trans 'Add Rewrite Rules (.htaccess)' %}">
|
||||
<img src="{% static 'images/icons/pencilcase.png' %}">
|
||||
</a>
|
||||
<a ng-click="fetchRewriteFules()" href="" title="{% trans 'Rewrite Rules (.htaccess)' %}">
|
||||
<a ng-click="fetchRewriteFules()" href=""
|
||||
title="{% trans 'Rewrite Rules (.htaccess)' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Rewrite Rules" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -614,20 +644,24 @@
|
||||
|
||||
<div ng-hide="" class="form-group">
|
||||
<div style="margin-bottom: 1%;" class="col-sm-offset-11 col-sm-1">
|
||||
<a ng-click="hidesslbtn()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a ng-click="hidesslbtn()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<textarea placeholder="Paste Your Cert" ng-model="cert" rows="10" class="form-control"></textarea>
|
||||
<textarea placeholder="Paste Your Cert" ng-model="cert" rows="10"
|
||||
class="form-control"></textarea>
|
||||
</div>
|
||||
<div class="col-sm-6">
|
||||
<textarea placeholder="Paste Your Key" ng-model="key" rows="10" class="form-control"></textarea>
|
||||
<textarea placeholder="Paste Your Key" ng-model="key" rows="10"
|
||||
class="form-control"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div ng-hide="" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="saveSSL()" class="btn btn-primary btn-lg btn-block">{% trans "Save" %}</button>
|
||||
<button type="button" ng-click="saveSSL()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Save" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -636,9 +670,6 @@
|
||||
</form>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -657,7 +688,8 @@
|
||||
|
||||
|
||||
<div ng-hide="couldNotFetchConfigs" class="alert alert-danger">
|
||||
<p>{% trans "Could not fetch current configuration. Error message:" %} {$ errorMessage $}</p>
|
||||
<p>{% trans "Could not fetch current configuration. Error message:" %} {$
|
||||
errorMessage $}</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -670,13 +702,15 @@
|
||||
</div>
|
||||
|
||||
<div ng-hide="couldNotSaveConfigurations" class="alert alert-danger">
|
||||
<p>{% trans "Could not fetch current configuration. Error message:" %} {$ errorMessage $}</p>
|
||||
<p>{% trans "Could not fetch current configuration. Error message:" %} {$
|
||||
errorMessage $}</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-hide="fetchedConfigsData" class="form-group">
|
||||
<div style="margin-bottom: 1%;" class="col-sm-offset-11 col-sm-1">
|
||||
<a ng-click="hideconfigbtn()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a ng-click="hideconfigbtn()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<textarea ng-model="configData" rows="20" class="form-control"></textarea>
|
||||
@@ -686,7 +720,8 @@
|
||||
<div ng-hide="saveConfigBtn" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="saveCongiruations()" class="btn btn-primary btn-lg btn-block">{% trans "Save" %}</button>
|
||||
<button type="button" ng-click="saveCongiruations()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Save" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -704,12 +739,17 @@
|
||||
|
||||
|
||||
<div ng-hide="rewriteRulesFetched" class="alert alert-success">
|
||||
<p>{% trans "Current rewrite rules in the file fetched." %} <a target="_blank" href="http://go.cyberpanel.net/cyber9bed2">Click</a> to read more about whats changed in <a target="_blank" href="http://go.cyberpanel.net/rewrite">rewrite rules</a> from v1.7 onwards.</p>
|
||||
<p>{% trans "Current rewrite rules in the file fetched." %} <a target="_blank"
|
||||
href="http://go.cyberpanel.net/cyber9bed2">Click</a>
|
||||
to read more about whats changed in <a target="_blank"
|
||||
href="http://go.cyberpanel.net/rewrite">rewrite
|
||||
rules</a> from v1.7 onwards.</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-hide="couldNotFetchRewriteRules" class="alert alert-danger">
|
||||
<p>{% trans "Could not fetch current rewrite rules. Error message:" %} {$ errorMessage $}</p>
|
||||
<p>{% trans "Could not fetch current rewrite rules. Error message:" %} {$
|
||||
errorMessage $}</p>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -722,13 +762,15 @@
|
||||
</div>
|
||||
|
||||
<div ng-hide="couldNotSaveRewriteRules" class="alert alert-danger">
|
||||
<p>{% trans "Could not save rewrite rules. Error message:" %} {$ errorMessage $}</p>
|
||||
<p>{% trans "Could not save rewrite rules. Error message:" %} {$ errorMessage
|
||||
$}</p>
|
||||
</div>
|
||||
|
||||
|
||||
<div ng-hide="fetchedRewriteRules" class="form-group">
|
||||
<div style="margin-bottom: 1%;" class="col-sm-offset-11 col-sm-1">
|
||||
<a ng-click="hideRewriteRulesbtn()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a ng-click="hideRewriteRulesbtn()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
<div class="col-sm-12">
|
||||
<textarea ng-model="rewriteRules" rows="10" class="form-control"></textarea>
|
||||
@@ -738,7 +780,8 @@
|
||||
<div ng-hide="saveRewriteRulesBTN" class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="saveRewriteRules()" class="btn btn-primary btn-lg btn-block">{% trans "Save Rewrite Rules" %}</button>
|
||||
<button type="button" ng-click="saveRewriteRules()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Save Rewrite Rules" %}</button>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
@@ -755,7 +798,6 @@
|
||||
<form ng-hide="changePHPView" name="" action="/" class="form-horizontal bordered-row">
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label">{% trans "Select PHP" %}</label>
|
||||
<div class="col-sm-6">
|
||||
@@ -771,33 +813,34 @@
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 1%;" class=" col-sm-1">
|
||||
<a title="{% trans 'Cancel' %}" ng-click="hideChangePHPMaster()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a title="{% trans 'Cancel' %}" ng-click="hideChangePHPMaster()"
|
||||
href=""><img src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="changePHPVersionMaster()" class="btn btn-primary btn-lg btn-block">{% trans "Change PHP" %}</button>
|
||||
<button type="button" ng-click="changePHPVersionMaster()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Change PHP" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<div ng-hide="failedToChangePHPMaster" class="alert alert-danger">
|
||||
<p>{% trans "Failed to change PHP version. Error message:" %} {$ errorMessage $}</p>
|
||||
<p>{% trans "Failed to change PHP version. Error message:" %} {$
|
||||
errorMessage $}</p>
|
||||
</div>
|
||||
|
||||
<div ng-hide="phpChangedMaster" class="alert alert-success">
|
||||
<p>{% trans "PHP successfully changed for: " %} <strong>{$ websiteDomain $}</strong></p>
|
||||
<p>{% trans "PHP successfully changed for: " %} <strong>{$ websiteDomain
|
||||
$}</strong></p>
|
||||
</div>
|
||||
|
||||
<div ng-hide="couldNotConnect" class="alert alert-danger">
|
||||
@@ -806,7 +849,6 @@
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
@@ -895,7 +937,8 @@
|
||||
</div>
|
||||
|
||||
<div style="margin-bottom: 2%;" class=" col-sm-1">
|
||||
<a title="{% trans 'Cancel' %}" ng-click="hideOpenBasedir()" href=""><img src="/static/images/close-32.png"></a>
|
||||
<a title="{% trans 'Cancel' %}" ng-click="hideOpenBasedir()" href=""><img
|
||||
src="/static/images/close-32.png"></a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@@ -904,7 +947,8 @@
|
||||
<div class="form-group">
|
||||
<label class="col-sm-3 control-label"></label>
|
||||
<div class="col-sm-4">
|
||||
<button type="button" ng-click="applyOpenBasedirChanges()" class="btn btn-primary btn-lg btn-block">{% trans "Apply Changes" %}</button>
|
||||
<button type="button" ng-click="applyOpenBasedirChanges()"
|
||||
class="btn btn-primary btn-lg btn-block">{% trans "Apply Changes" %}</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -933,7 +977,6 @@
|
||||
<!--- HTML To change open_basedir --->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1016,7 +1059,8 @@
|
||||
|
||||
<div style="border-radius: 25px;border-color:#3498db" class="content-box">
|
||||
<h3 class="content-box-header bg-blue">
|
||||
{% trans "Application Installer" %} <img ng-hide="applicationInstallerLoading" src="/static/images/loading.gif">
|
||||
{% trans "Application Installer" %} <img ng-hide="applicationInstallerLoading"
|
||||
src="/static/images/loading.gif">
|
||||
</h3>
|
||||
|
||||
<div class="content-box-wrapper">
|
||||
@@ -1025,10 +1069,12 @@
|
||||
|
||||
<div class="col-md-4" style="margin-bottom: 2%;">
|
||||
|
||||
<a href="{$ wordPressInstallURL $}" target="_blank" title="{% trans 'Install wordpress with LSCache' %}">
|
||||
<a href="{$ wordPressInstallURL $}" target="_blank"
|
||||
title="{% trans 'Install wordpress with LSCache' %}">
|
||||
<img src="{% static 'images/icons/wordpress.png' %}">
|
||||
</a>
|
||||
<a href="{$ wordPressInstallURL $}" target="_blank" title="{% trans 'Install wordpress with LSCache' %}">
|
||||
<a href="{$ wordPressInstallURL $}" target="_blank"
|
||||
title="{% trans 'Install wordpress with LSCache' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Wordpress with LSCache" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -1037,10 +1083,12 @@
|
||||
|
||||
<div class="col-md-4" style="margin-bottom: 2%;">
|
||||
|
||||
<a href="{$ joomlaInstallURL $}" target="_blank" title="{% trans 'Install Joomla with LSCache' %}">
|
||||
<a href="{$ joomlaInstallURL $}" target="_blank"
|
||||
title="{% trans 'Install Joomla with LSCache' %}">
|
||||
<img src="{% static 'images/icons/joomla-logo.png' %}">
|
||||
</a>
|
||||
<a href="{$ joomlaInstallURL $}" target="_blank" title="{% trans 'Install Joomla with LSCache' %}">
|
||||
<a href="{$ joomlaInstallURL $}" target="_blank"
|
||||
title="{% trans 'Install Joomla with LSCache' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Joomla" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -1049,23 +1097,26 @@
|
||||
|
||||
<div class="col-md-4" style="margin-bottom: 2%;">
|
||||
|
||||
<a href="{$ setupGit $}" target="_blank" title="{% trans 'Attach Git with this website!' %}">
|
||||
<a href="{$ setupGit $}" target="_blank"
|
||||
title="{% trans 'Attach Git with this website!' %}">
|
||||
<img src="{% static 'images/icons/git-logo.png' %}">
|
||||
</a>
|
||||
<a href="{$ setupGit $}" target="_blank" title="{% trans 'Attach Git with this website!' %}">
|
||||
<a href="{$ setupGit $}" target="_blank"
|
||||
title="{% trans 'Attach Git with this website!' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Git" %}</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="col-md-4" style="margin-bottom: 2%;">
|
||||
|
||||
<a href="{$ installPrestaURL $}" target="_blank" title="{% trans 'Install Prestashop' %}">
|
||||
<a href="{$ installPrestaURL $}" target="_blank"
|
||||
title="{% trans 'Install Prestashop' %}">
|
||||
<img src="{% static 'images/icons/prestashop.png' %}">
|
||||
</a>
|
||||
<a href="{$ installPrestaURL $}" target="_blank" title="{% trans 'Install Prestashop' %}">
|
||||
<a href="{$ installPrestaURL $}" target="_blank"
|
||||
title="{% trans 'Install Prestashop' %}">
|
||||
<span style='font-size: 21px;font-family: "Times New Roman", Times, serif; padding-left: 2%'>{% trans "Prestashop" %}</span>
|
||||
</a>
|
||||
|
||||
@@ -1088,9 +1139,7 @@
|
||||
{% endif %}
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user