mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-08 06:16:08 +01:00
Upcloudfull
This commit is contained in:
@@ -98,21 +98,21 @@ app.filter('getwebsitename', function () {
|
|||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|
||||||
function getWebsiteName(domain){
|
function getWebsiteName(domain) {
|
||||||
if (domain !== undefined) {
|
if (domain !== undefined) {
|
||||||
|
|
||||||
domain = domain.replace(/-/g, '');
|
domain = domain.replace(/-/g, '');
|
||||||
|
|
||||||
var domainName = domain.split(".");
|
var domainName = domain.split(".");
|
||||||
|
|
||||||
var finalDomainName = domainName[0];
|
var finalDomainName = domainName[0];
|
||||||
|
|
||||||
if (finalDomainName.length > 5) {
|
if (finalDomainName.length > 5) {
|
||||||
finalDomainName = finalDomainName.substring(0, 4);
|
finalDomainName = finalDomainName.substring(0, 4);
|
||||||
}
|
|
||||||
|
|
||||||
return finalDomainName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return finalDomainName;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
app.controller('systemStatusInfo', function ($scope, $http, $timeout) {
|
app.controller('systemStatusInfo', function ($scope, $http, $timeout) {
|
||||||
@@ -653,4 +653,50 @@ app.controller('versionManagment', function ($scope, $http, $timeout) {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
app.controller('designtheme', function ($scope, $http, $timeout) {
|
||||||
|
|
||||||
|
$scope.themeloading = true;
|
||||||
|
|
||||||
|
|
||||||
|
$scope.getthemedata = function () {
|
||||||
|
$scope.themeloading = false;
|
||||||
|
|
||||||
|
url = "/base/getthemedata";
|
||||||
|
|
||||||
|
var data = {
|
||||||
|
package: "helo world",
|
||||||
|
Themename: $('#stheme').val(),
|
||||||
|
};
|
||||||
|
|
||||||
|
var config = {
|
||||||
|
headers: {
|
||||||
|
'X-CSRFToken': getCookie('csrftoken')
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
$http.post(url, data, config).then(Listgetthemedata, cantgetthemedata);
|
||||||
|
|
||||||
|
|
||||||
|
function Listgetthemedata(response) {
|
||||||
|
$scope.themeloading = true;
|
||||||
|
|
||||||
|
if (response.data.status === 1) {
|
||||||
|
document.getElementById('appendthemedata').innerHTML = "";
|
||||||
|
$("#appendthemedata").val(response.data.csscontent)
|
||||||
|
} else {
|
||||||
|
alert(response.data.error_message)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function cantgetthemedata(response) {
|
||||||
|
$scope.themeloading = true;
|
||||||
|
console.log(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
//$timeout(getStuff, 2000);
|
||||||
|
|
||||||
|
};
|
||||||
});
|
});
|
||||||
@@ -8,7 +8,7 @@
|
|||||||
<!-- Current language: {{ LANGUAGE_CODE }} -->
|
<!-- Current language: {{ LANGUAGE_CODE }} -->
|
||||||
|
|
||||||
|
|
||||||
<div class="container">
|
<div class="container" ng-controller="designtheme">
|
||||||
<div id="page-title">
|
<div id="page-title">
|
||||||
<h2>{% trans "Design" %}</h2>
|
<h2>{% trans "Design" %}</h2>
|
||||||
<p>{% trans "" %}</p>
|
<p>{% trans "" %}</p>
|
||||||
@@ -16,9 +16,11 @@
|
|||||||
<div class="panel">
|
<div class="panel">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<h3 class="content-box-header">
|
<h3 class="content-box-header">
|
||||||
{% trans "Custom CSS" %}
|
{% trans "Custom CSS" %}<img ng-hide="themeloading"
|
||||||
|
src="{% static 'images/loading.gif' %}">
|
||||||
</h3>
|
</h3>
|
||||||
<p>Any CSS added here will apply to whole dashboard design.</p>
|
<p>Any CSS added here will apply to whole dashboard design.</p>
|
||||||
|
|
||||||
<div class="example-box-wrapper">
|
<div class="example-box-wrapper">
|
||||||
<form action="{% url 'design' %}" method="POST" class="form-horizontal bordered-row panel-body">
|
<form action="{% url 'design' %}" method="POST" class="form-horizontal bordered-row panel-body">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
@@ -34,9 +36,19 @@
|
|||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
|
<select ng-change="getthemedata()" ng-model="stheme" id="stheme"
|
||||||
|
style="width: 49%; padding: 8px; margin-top: 5px; margin-bottom: 10px"
|
||||||
|
|
||||||
|
class="form-control form-select form-select-lg"
|
||||||
|
aria-label=".form-select-lg example">
|
||||||
|
{% for key in tree %}
|
||||||
|
<option value="{{ key }}">{{ key }}</option>
|
||||||
|
{% endfor %}
|
||||||
|
</select>
|
||||||
|
|
||||||
<div ng-hide="keyBox" class="form-group">
|
<div ng-hide="keyBox" class="form-group">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<textarea name="MainDashboardCSS" rows="12"
|
<textarea id="appendthemedata" name="MainDashboardCSS" rows="12"
|
||||||
class="form-control ng-pristine ng-untouched ng-valid ng-empty">{{ cosmetic.MainDashboardCSS }}</textarea>
|
class="form-control ng-pristine ng-untouched ng-valid ng-empty">{{ cosmetic.MainDashboardCSS }}</textarea>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,6 +1,26 @@
|
|||||||
# -*- coding: utf-8 -*-
|
import requests
|
||||||
|
|
||||||
|
|
||||||
from django.test import TestCase
|
|
||||||
|
|
||||||
# Create your tests here.
|
ab = {'package': 'helo world', 'Themename': 'blue-green-theme'}
|
||||||
|
|
||||||
|
url= "https://raw.githubusercontent.com/usmannasir/CyberPanel-Themes/main/%s/design.css"%ab['Themename']
|
||||||
|
#url= "https://api.github.com/repos/usmannasir/CyberPanel-Themes/git/commits/def351a6eb4c103fb2dd2acf52396d4ef6111eee"
|
||||||
|
|
||||||
|
|
||||||
|
res=requests.get(url)
|
||||||
|
# sha=res.json()[0]['sha']
|
||||||
|
print(res.text)
|
||||||
|
|
||||||
|
# l ="https://api.github.com/repos/usmannasir/CyberPanel-Themes/git/trees/%s"%sha
|
||||||
|
# fres=requests.get(l)
|
||||||
|
#
|
||||||
|
# print(fres.json())
|
||||||
|
# # tott = len(fres.json()['tree'])
|
||||||
|
#
|
||||||
|
# finalData['tree']=[]
|
||||||
|
# for i in range(tott):
|
||||||
|
# if(fres.json()['tree'][i]['type']=="tree"):
|
||||||
|
# finalData['tree'].append(fres.json()['tree'][i]['path'])
|
||||||
|
#
|
||||||
|
# print(finalData['tree'])
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ urlpatterns = [
|
|||||||
url(r'^getLoadAverage',views.getLoadAverage, name='getLoadAverage'),
|
url(r'^getLoadAverage',views.getLoadAverage, name='getLoadAverage'),
|
||||||
url(r'^versionManagment',views.versionManagment, name='versionManagment'),
|
url(r'^versionManagment',views.versionManagment, name='versionManagment'),
|
||||||
url(r'^design', views.design, name='design'),
|
url(r'^design', views.design, name='design'),
|
||||||
|
url(r'^getthemedata', views.getthemedata, name='getthemedata'),
|
||||||
|
|
||||||
#url(r'^upgrade',views.upgrade, name='upgrade'),
|
#url(r'^upgrade',views.upgrade, name='upgrade'),
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from django.shortcuts import render,redirect
|
from django.shortcuts import render, redirect
|
||||||
from django.http import HttpResponse
|
from django.http import HttpResponse
|
||||||
from plogical.getSystemInformation import SystemInformation
|
from plogical.getSystemInformation import SystemInformation
|
||||||
import json
|
import json
|
||||||
@@ -15,11 +15,13 @@ from manageServices.models import PDNSStatus
|
|||||||
from django.views.decorators.csrf import ensure_csrf_cookie
|
from django.views.decorators.csrf import ensure_csrf_cookie
|
||||||
from plogical.processUtilities import ProcessUtilities
|
from plogical.processUtilities import ProcessUtilities
|
||||||
from plogical.httpProc import httpProc
|
from plogical.httpProc import httpProc
|
||||||
|
|
||||||
# Create your views here.
|
# Create your views here.
|
||||||
|
|
||||||
VERSION = '2.1'
|
VERSION = '2.1'
|
||||||
BUILD = 2
|
BUILD = 2
|
||||||
|
|
||||||
|
|
||||||
@ensure_csrf_cookie
|
@ensure_csrf_cookie
|
||||||
def renderBase(request):
|
def renderBase(request):
|
||||||
template = 'baseTemplate/homePage.html'
|
template = 'baseTemplate/homePage.html'
|
||||||
@@ -29,6 +31,7 @@ def renderBase(request):
|
|||||||
proc = httpProc(request, template, finaData)
|
proc = httpProc(request, template, finaData)
|
||||||
return proc.render()
|
return proc.render()
|
||||||
|
|
||||||
|
|
||||||
def getAdminStatus(request):
|
def getAdminStatus(request):
|
||||||
try:
|
try:
|
||||||
val = request.session['userID']
|
val = request.session['userID']
|
||||||
@@ -64,6 +67,7 @@ def getAdminStatus(request):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Can not get admin Status")
|
return HttpResponse("Can not get admin Status")
|
||||||
|
|
||||||
|
|
||||||
def getSystemStatus(request):
|
def getSystemStatus(request):
|
||||||
try:
|
try:
|
||||||
val = request.session['userID']
|
val = request.session['userID']
|
||||||
@@ -74,6 +78,7 @@ def getSystemStatus(request):
|
|||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Can not get admin Status")
|
return HttpResponse("Can not get admin Status")
|
||||||
|
|
||||||
|
|
||||||
def getLoadAverage(request):
|
def getLoadAverage(request):
|
||||||
try:
|
try:
|
||||||
val = request.session['userID']
|
val = request.session['userID']
|
||||||
@@ -83,12 +88,13 @@ def getLoadAverage(request):
|
|||||||
one = loadAverage[0]
|
one = loadAverage[0]
|
||||||
two = loadAverage[1]
|
two = loadAverage[1]
|
||||||
three = loadAverage[2]
|
three = loadAverage[2]
|
||||||
loadAvg = {"one": one, "two": two,"three": three}
|
loadAvg = {"one": one, "two": two, "three": three}
|
||||||
json_data = json.dumps(loadAvg)
|
json_data = json.dumps(loadAvg)
|
||||||
return HttpResponse(json_data)
|
return HttpResponse(json_data)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return HttpResponse("Not allowed.")
|
return HttpResponse("Not allowed.")
|
||||||
|
|
||||||
|
|
||||||
@ensure_csrf_cookie
|
@ensure_csrf_cookie
|
||||||
def versionManagment(request):
|
def versionManagment(request):
|
||||||
## Get latest version
|
## Get latest version
|
||||||
@@ -110,6 +116,7 @@ def versionManagment(request):
|
|||||||
proc = httpProc(request, template, finalData, 'versionManagement')
|
proc = httpProc(request, template, finalData, 'versionManagement')
|
||||||
return proc.render()
|
return proc.render()
|
||||||
|
|
||||||
|
|
||||||
def upgrade(request):
|
def upgrade(request):
|
||||||
try:
|
try:
|
||||||
admin = request.session['userID']
|
admin = request.session['userID']
|
||||||
@@ -129,9 +136,9 @@ def upgrade(request):
|
|||||||
|
|
||||||
from upgrade import Upgrade
|
from upgrade import Upgrade
|
||||||
|
|
||||||
Upgrade.initiateUpgrade(vers.currentVersion,vers.build)
|
Upgrade.initiateUpgrade(vers.currentVersion, vers.build)
|
||||||
|
|
||||||
adminData = {"upgrade":1}
|
adminData = {"upgrade": 1}
|
||||||
|
|
||||||
json_data = json.dumps(adminData)
|
json_data = json.dumps(adminData)
|
||||||
|
|
||||||
@@ -139,10 +146,11 @@ def upgrade(request):
|
|||||||
|
|
||||||
|
|
||||||
except KeyError:
|
except KeyError:
|
||||||
adminData = {"upgrade": 1,"error_message":"Please login or refresh this page."}
|
adminData = {"upgrade": 1, "error_message": "Please login or refresh this page."}
|
||||||
json_data = json.dumps(adminData)
|
json_data = json.dumps(adminData)
|
||||||
return HttpResponse(json_data)
|
return HttpResponse(json_data)
|
||||||
|
|
||||||
|
|
||||||
def upgradeStatus(request):
|
def upgradeStatus(request):
|
||||||
try:
|
try:
|
||||||
val = request.session['userID']
|
val = request.session['userID']
|
||||||
@@ -159,8 +167,7 @@ def upgradeStatus(request):
|
|||||||
'upgradeLog': "Upgrade Just started.."})
|
'upgradeLog': "Upgrade Just started.."})
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
|
||||||
|
if upgradeLog.find("Upgrade Completed") > -1:
|
||||||
if upgradeLog.find("Upgrade Completed")>-1:
|
|
||||||
|
|
||||||
vers = version.objects.get(pk=1)
|
vers = version.objects.get(pk=1)
|
||||||
getVersion = requests.get('https://cyberpanel.net/version.txt')
|
getVersion = requests.get('https://cyberpanel.net/version.txt')
|
||||||
@@ -191,6 +198,7 @@ def upgradeStatus(request):
|
|||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
|
||||||
|
|
||||||
def upgradeVersion(request):
|
def upgradeVersion(request):
|
||||||
try:
|
try:
|
||||||
vers = version.objects.get(pk=1)
|
vers = version.objects.get(pk=1)
|
||||||
@@ -204,6 +212,7 @@ def upgradeVersion(request):
|
|||||||
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
logging.CyberCPLogFileWriter.writeToFile(str(msg))
|
||||||
return HttpResponse(str(msg))
|
return HttpResponse(str(msg))
|
||||||
|
|
||||||
|
|
||||||
@ensure_csrf_cookie
|
@ensure_csrf_cookie
|
||||||
def design(request):
|
def design(request):
|
||||||
### Load Custom CSS
|
### Load Custom CSS
|
||||||
@@ -223,8 +232,46 @@ def design(request):
|
|||||||
cosmetic.save()
|
cosmetic.save()
|
||||||
finalData['saved'] = 1
|
finalData['saved'] = 1
|
||||||
|
|
||||||
|
####### Fetch sha...
|
||||||
|
|
||||||
|
sha_url = "https://api.github.com/repos/usmannasir/CyberPanel-Themes/commits"
|
||||||
|
|
||||||
|
sha_res = requests.get(sha_url)
|
||||||
|
|
||||||
|
sha = sha_res.json()[0]['sha']
|
||||||
|
|
||||||
|
l = "https://api.github.com/repos/usmannasir/CyberPanel-Themes/git/trees/%s" % sha
|
||||||
|
fres = requests.get(l)
|
||||||
|
tott = len(fres.json()['tree'])
|
||||||
|
finalData['tree'] = []
|
||||||
|
for i in range(tott):
|
||||||
|
if (fres.json()['tree'][i]['type'] == "tree"):
|
||||||
|
finalData['tree'].append(fres.json()['tree'][i]['path'])
|
||||||
|
|
||||||
template = 'baseTemplate/design.html'
|
template = 'baseTemplate/design.html'
|
||||||
finalData['cosmetic'] = cosmetic
|
finalData['cosmetic'] = cosmetic
|
||||||
|
|
||||||
proc = httpProc(request, template, finalData, 'versionManagement')
|
proc = httpProc(request, template, finalData, 'versionManagement')
|
||||||
return proc.render()
|
return proc.render()
|
||||||
|
|
||||||
|
|
||||||
|
def getthemedata(request):
|
||||||
|
try:
|
||||||
|
val = request.session['userID']
|
||||||
|
currentACL = ACLManager.loadedACL(val)
|
||||||
|
data = json.loads(request.body)
|
||||||
|
|
||||||
|
#logging.CyberCPLogFileWriter.writeToFile(str(data) + " [themedata]")
|
||||||
|
|
||||||
|
url = "https://raw.githubusercontent.com/usmannasir/CyberPanel-Themes/main/%s/design.css" % data['Themename']
|
||||||
|
|
||||||
|
res = requests.get(url)
|
||||||
|
|
||||||
|
rsult = res.text
|
||||||
|
final_dic = {'status': 1, 'csscontent': rsult}
|
||||||
|
final_json = json.dumps(final_dic)
|
||||||
|
return HttpResponse(final_json)
|
||||||
|
except BaseException as msg:
|
||||||
|
final_dic = {'status': 0, 'error_message': str(msg)}
|
||||||
|
final_json = json.dumps(final_dic)
|
||||||
|
return HttpResponse(final_json)
|
||||||
|
|||||||
Reference in New Issue
Block a user