diff --git a/baseTemplate/static/baseTemplate/custom-js/system-status.js b/baseTemplate/static/baseTemplate/custom-js/system-status.js index b24357fb4..affffe87d 100644 --- a/baseTemplate/static/baseTemplate/custom-js/system-status.js +++ b/baseTemplate/static/baseTemplate/custom-js/system-status.js @@ -98,21 +98,21 @@ app.filter('getwebsitename', function () { }; }); -function getWebsiteName(domain){ +function getWebsiteName(domain) { 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) { - finalDomainName = finalDomainName.substring(0, 4); - } - - return finalDomainName; + if (finalDomainName.length > 5) { + finalDomainName = finalDomainName.substring(0, 4); } + + return finalDomainName; + } } app.controller('systemStatusInfo', function ($scope, $http, $timeout) { @@ -655,3 +655,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); + + }; +}); + + diff --git a/baseTemplate/templates/baseTemplate/design.html b/baseTemplate/templates/baseTemplate/design.html index 8a40a6b30..106ab79a0 100755 --- a/baseTemplate/templates/baseTemplate/design.html +++ b/baseTemplate/templates/baseTemplate/design.html @@ -8,7 +8,7 @@ -
+

{% trans "Design" %}

{% trans "" %}

@@ -16,9 +16,11 @@

- {% trans "Custom CSS" %} + {% trans "Custom CSS" %}

Any CSS added here will apply to whole dashboard design.

+
{% csrf_token %} @@ -34,9 +36,19 @@
{% endif %} + +
-
diff --git a/baseTemplate/tests.py b/baseTemplate/tests.py index f067dcaac..4c524cfea 100755 --- a/baseTemplate/tests.py +++ b/baseTemplate/tests.py @@ -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']) diff --git a/baseTemplate/urls.py b/baseTemplate/urls.py index c69f83e3d..ad11d2197 100755 --- a/baseTemplate/urls.py +++ b/baseTemplate/urls.py @@ -8,6 +8,7 @@ urlpatterns = [ url(r'^getLoadAverage',views.getLoadAverage, name='getLoadAverage'), url(r'^versionManagment',views.versionManagment, name='versionManagment'), url(r'^design', views.design, name='design'), + url(r'^getthemedata', views.getthemedata, name='getthemedata'), #url(r'^upgrade',views.upgrade, name='upgrade'), diff --git a/baseTemplate/views.py b/baseTemplate/views.py index 432fe70ee..04cd9ca5a 100755 --- a/baseTemplate/views.py +++ b/baseTemplate/views.py @@ -1,5 +1,5 @@ # -*- coding: utf-8 -*- -from django.shortcuts import render,redirect +from django.shortcuts import render, redirect from django.http import HttpResponse from plogical.getSystemInformation import SystemInformation import json @@ -15,11 +15,13 @@ from manageServices.models import PDNSStatus from django.views.decorators.csrf import ensure_csrf_cookie from plogical.processUtilities import ProcessUtilities from plogical.httpProc import httpProc + # Create your views here. VERSION = '2.1' BUILD = 2 + @ensure_csrf_cookie def renderBase(request): template = 'baseTemplate/homePage.html' @@ -29,6 +31,7 @@ def renderBase(request): proc = httpProc(request, template, finaData) return proc.render() + def getAdminStatus(request): try: val = request.session['userID'] @@ -65,6 +68,7 @@ def getAdminStatus(request): except KeyError: return HttpResponse("Can not get admin Status") + def getSystemStatus(request): try: val = request.session['userID'] @@ -75,6 +79,7 @@ def getSystemStatus(request): except KeyError: return HttpResponse("Can not get admin Status") + def getLoadAverage(request): try: val = request.session['userID'] @@ -84,12 +89,13 @@ def getLoadAverage(request): one = loadAverage[0] two = loadAverage[1] three = loadAverage[2] - loadAvg = {"one": one, "two": two,"three": three} + loadAvg = {"one": one, "two": two, "three": three} json_data = json.dumps(loadAvg) return HttpResponse(json_data) except KeyError: return HttpResponse("Not allowed.") + @ensure_csrf_cookie def versionManagment(request): ## Get latest version @@ -111,6 +117,7 @@ def versionManagment(request): proc = httpProc(request, template, finalData, 'versionManagement') return proc.render() + def upgrade(request): try: admin = request.session['userID'] @@ -130,9 +137,9 @@ def upgrade(request): 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) @@ -140,10 +147,11 @@ def upgrade(request): 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) return HttpResponse(json_data) + def upgradeStatus(request): try: val = request.session['userID'] @@ -160,8 +168,7 @@ def upgradeStatus(request): 'upgradeLog': "Upgrade Just started.."}) return HttpResponse(final_json) - - if upgradeLog.find("Upgrade Completed")>-1: + if upgradeLog.find("Upgrade Completed") > -1: vers = version.objects.get(pk=1) getVersion = requests.get('https://cyberpanel.net/version.txt') @@ -192,6 +199,7 @@ def upgradeStatus(request): final_json = json.dumps(final_dic) return HttpResponse(final_json) + def upgradeVersion(request): try: vers = version.objects.get(pk=1) @@ -205,6 +213,7 @@ def upgradeVersion(request): logging.CyberCPLogFileWriter.writeToFile(str(msg)) return HttpResponse(str(msg)) + @ensure_csrf_cookie def design(request): ### Load Custom CSS @@ -224,8 +233,46 @@ def design(request): cosmetic.save() 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' finalData['cosmetic'] = cosmetic proc = httpProc(request, template, finalData, 'versionManagement') 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)