mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-08 22:36:12 +01:00
add missing function
This commit is contained in:
@@ -2674,111 +2674,25 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
|||||||
// Call it immediately
|
// Call it immediately
|
||||||
$scope.getFurtherWebsitesFromDB();
|
$scope.getFurtherWebsitesFromDB();
|
||||||
|
|
||||||
$scope.showWPSites = function(index) {
|
$scope.showWPSites = function(domain) {
|
||||||
$scope.selectedWebsite = $scope.WebSitesList[index];
|
var url = '/websites/fetchWPDetails';
|
||||||
|
var data = {
|
||||||
|
domain: domain
|
||||||
|
};
|
||||||
|
|
||||||
if (!$scope.selectedWebsite.wp_sites) {
|
$http({
|
||||||
var url = '/websites/fetchWPDetails';
|
method: 'POST',
|
||||||
var data = {
|
url: url,
|
||||||
domain: $scope.selectedWebsite.domain,
|
data: $.param(data),
|
||||||
websiteName: $scope.selectedWebsite.domain
|
headers: {
|
||||||
};
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
|
'X-CSRFToken': getCookie('csrftoken')
|
||||||
$http({
|
}
|
||||||
method: 'POST',
|
}).then(function(response) {
|
||||||
url: url,
|
alert(JSON.stringify(response.data, null, 2));
|
||||||
data: $.param(data),
|
}).catch(function(error) {
|
||||||
headers: {
|
alert('Error fetching WordPress sites: ' + JSON.stringify(error));
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
});
|
||||||
'X-CSRFToken': getCookie('csrftoken')
|
|
||||||
}
|
|
||||||
}).then(function(response) {
|
|
||||||
console.log('WP Details Response:', response);
|
|
||||||
|
|
||||||
// Check if response is HTML (login page)
|
|
||||||
if (typeof response.data === 'string' && response.data.includes('<!DOCTYPE html>')) {
|
|
||||||
console.log('Received HTML response, redirecting to login');
|
|
||||||
window.location.href = '/login';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response.data && response.data.status === 1) {
|
|
||||||
try {
|
|
||||||
// If single site, wrap in array
|
|
||||||
var sites = Array.isArray(response.data.data) ? response.data.data : [response.data.data];
|
|
||||||
|
|
||||||
$scope.selectedWebsite.wp_sites = sites.map(function(site) {
|
|
||||||
return {
|
|
||||||
id: site.id || $scope.selectedWebsite.domain,
|
|
||||||
title: site.title || site.domain || $scope.selectedWebsite.domain,
|
|
||||||
url: site.url || 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: site.version || 'Unknown',
|
|
||||||
phpVersion: site.php_version || 'Unknown',
|
|
||||||
theme: site.theme || 'Unknown',
|
|
||||||
activePlugins: site.active_plugins || 0,
|
|
||||||
searchIndex: site.search_index === 'enabled',
|
|
||||||
debugging: site.debugging === 'enabled',
|
|
||||||
passwordProtection: site.password_protection === 'enabled',
|
|
||||||
maintenanceMode: site.maintenance_mode === 'enabled'
|
|
||||||
};
|
|
||||||
});
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
} catch (e) {
|
|
||||||
console.error('Error processing WordPress data:', e);
|
|
||||||
// Create default site on error
|
|
||||||
$scope.selectedWebsite.wp_sites = [{
|
|
||||||
id: $scope.selectedWebsite.domain,
|
|
||||||
title: $scope.selectedWebsite.domain,
|
|
||||||
url: 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: 'Unknown',
|
|
||||||
phpVersion: 'Unknown',
|
|
||||||
theme: 'Unknown',
|
|
||||||
activePlugins: 0,
|
|
||||||
searchIndex: false,
|
|
||||||
debugging: false,
|
|
||||||
passwordProtection: false,
|
|
||||||
maintenanceMode: false
|
|
||||||
}];
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Create default site if no data
|
|
||||||
$scope.selectedWebsite.wp_sites = [{
|
|
||||||
id: $scope.selectedWebsite.domain,
|
|
||||||
title: $scope.selectedWebsite.domain,
|
|
||||||
url: 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: 'Unknown',
|
|
||||||
phpVersion: 'Unknown',
|
|
||||||
theme: 'Unknown',
|
|
||||||
activePlugins: 0,
|
|
||||||
searchIndex: false,
|
|
||||||
debugging: false,
|
|
||||||
passwordProtection: false,
|
|
||||||
maintenanceMode: false
|
|
||||||
}];
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
}
|
|
||||||
}).catch(function(error) {
|
|
||||||
console.error('WP Details Error:', error);
|
|
||||||
// Create default site on error
|
|
||||||
$scope.selectedWebsite.wp_sites = [{
|
|
||||||
id: $scope.selectedWebsite.domain,
|
|
||||||
title: $scope.selectedWebsite.domain,
|
|
||||||
url: 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: 'Unknown',
|
|
||||||
phpVersion: 'Unknown',
|
|
||||||
theme: 'Unknown',
|
|
||||||
activePlugins: 0,
|
|
||||||
searchIndex: false,
|
|
||||||
debugging: false,
|
|
||||||
passwordProtection: false,
|
|
||||||
maintenanceMode: false
|
|
||||||
}];
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
$scope.selectedWebsite.showWPSites = !$scope.selectedWebsite.showWPSites;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.visitSite = function(url) {
|
$scope.visitSite = function(url) {
|
||||||
@@ -6648,111 +6562,25 @@ app.controller('manageAliasController', function ($scope, $http, $timeout, $wind
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$scope.showWPSites = function(index) {
|
$scope.showWPSites = function(domain) {
|
||||||
$scope.selectedWebsite = $scope.WebSitesList[index];
|
var url = '/websites/fetchWPDetails';
|
||||||
|
|
||||||
if (!$scope.selectedWebsite.wp_sites) {
|
|
||||||
var url = '/websites/fetchWPDetails';
|
|
||||||
var data = {
|
var data = {
|
||||||
domain: $scope.selectedWebsite.domain,
|
domain: domain
|
||||||
websiteName: $scope.selectedWebsite.domain
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$http({
|
$http({
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
url: url,
|
url: url,
|
||||||
data: $.param(data),
|
data: $.param(data),
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/x-www-form-urlencoded',
|
'Content-Type': 'application/x-www-form-urlencoded',
|
||||||
'X-CSRFToken': getCookie('csrftoken')
|
'X-CSRFToken': getCookie('csrftoken')
|
||||||
}
|
}
|
||||||
}).then(function(response) {
|
}).then(function(response) {
|
||||||
console.log('WP Details Response:', response);
|
alert(JSON.stringify(response.data, null, 2));
|
||||||
|
}).catch(function(error) {
|
||||||
// Check if response is HTML (login page)
|
alert('Error fetching WordPress sites: ' + JSON.stringify(error));
|
||||||
if (typeof response.data === 'string' && response.data.includes('<!DOCTYPE html>')) {
|
});
|
||||||
console.log('Received HTML response, redirecting to login');
|
|
||||||
window.location.href = '/login';
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (response.data && response.data.status === 1) {
|
|
||||||
try {
|
|
||||||
// If single site, wrap in array
|
|
||||||
var sites = Array.isArray(response.data.data) ? response.data.data : [response.data.data];
|
|
||||||
|
|
||||||
$scope.selectedWebsite.wp_sites = sites.map(function(site) {
|
|
||||||
return {
|
|
||||||
id: site.id || $scope.selectedWebsite.domain,
|
|
||||||
title: site.title || site.domain || $scope.selectedWebsite.domain,
|
|
||||||
url: site.url || 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: site.version || 'Unknown',
|
|
||||||
phpVersion: site.php_version || 'Unknown',
|
|
||||||
theme: site.theme || 'Unknown',
|
|
||||||
activePlugins: site.active_plugins || 0,
|
|
||||||
searchIndex: site.search_index === 'enabled',
|
|
||||||
debugging: site.debugging === 'enabled',
|
|
||||||
passwordProtection: site.password_protection === 'enabled',
|
|
||||||
maintenanceMode: site.maintenance_mode === 'enabled'
|
|
||||||
};
|
|
||||||
});
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
} catch(e) {
|
|
||||||
console.error('Error processing WordPress data:', e);
|
|
||||||
// Create default site on error
|
|
||||||
$scope.selectedWebsite.wp_sites = [{
|
|
||||||
id: $scope.selectedWebsite.domain,
|
|
||||||
title: $scope.selectedWebsite.domain,
|
|
||||||
url: 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: 'Unknown',
|
|
||||||
phpVersion: 'Unknown',
|
|
||||||
theme: 'Unknown',
|
|
||||||
activePlugins: 0,
|
|
||||||
searchIndex: false,
|
|
||||||
debugging: false,
|
|
||||||
passwordProtection: false,
|
|
||||||
maintenanceMode: false
|
|
||||||
}];
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
// Create default site if no data
|
|
||||||
$scope.selectedWebsite.wp_sites = [{
|
|
||||||
id: $scope.selectedWebsite.domain,
|
|
||||||
title: $scope.selectedWebsite.domain,
|
|
||||||
url: 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: 'Unknown',
|
|
||||||
phpVersion: 'Unknown',
|
|
||||||
theme: 'Unknown',
|
|
||||||
activePlugins: 0,
|
|
||||||
searchIndex: false,
|
|
||||||
debugging: false,
|
|
||||||
passwordProtection: false,
|
|
||||||
maintenanceMode: false
|
|
||||||
}];
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
}
|
|
||||||
}).catch(function(error) {
|
|
||||||
console.error('WP Details Error:', error);
|
|
||||||
// Create default site on error
|
|
||||||
$scope.selectedWebsite.wp_sites = [{
|
|
||||||
id: $scope.selectedWebsite.domain,
|
|
||||||
title: $scope.selectedWebsite.domain,
|
|
||||||
url: 'http://' + $scope.selectedWebsite.domain,
|
|
||||||
version: 'Unknown',
|
|
||||||
phpVersion: 'Unknown',
|
|
||||||
theme: 'Unknown',
|
|
||||||
activePlugins: 0,
|
|
||||||
searchIndex: false,
|
|
||||||
debugging: false,
|
|
||||||
passwordProtection: false,
|
|
||||||
maintenanceMode: false
|
|
||||||
}];
|
|
||||||
$scope.selectedWebsite.showWPSites = true;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
$scope.selectedWebsite.showWPSites = !$scope.selectedWebsite.showWPSites;
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.updateSetting = function(wp, setting) {
|
$scope.updateSetting = function(wp, setting) {
|
||||||
|
|||||||
@@ -101,7 +101,7 @@
|
|||||||
<span ng-bind="web.admin" style="text-transform: none"></span>
|
<span ng-bind="web.admin" style="text-transform: none"></span>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-md-3 content-box-header">
|
<div class="col-md-3 content-box-header">
|
||||||
<i class="p fa fa-wordpress btn-icon text-muted" ng-click="showWPSites($index)"
|
<i class="p fa fa-wordpress btn-icon text-muted" ng-click="showWPSites(web.domain)"
|
||||||
data-toggle="tooltip" data-placement="right" title="Show WordPress Sites"> </i>
|
data-toggle="tooltip" data-placement="right" title="Show WordPress Sites"> </i>
|
||||||
<span ng-if="web.wp_sites && web.wp_sites.length > 0" style="text-transform: none">
|
<span ng-if="web.wp_sites && web.wp_sites.length > 0" style="text-transform: none">
|
||||||
{$ web.wp_sites.length $} WordPress Sites
|
{$ web.wp_sites.length $} WordPress Sites
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ urlpatterns = [
|
|||||||
path('AddWPsiteforRemoteBackup', views.AddWPsiteforRemoteBackup, name='AddWPsiteforRemoteBackup'),
|
path('AddWPsiteforRemoteBackup', views.AddWPsiteforRemoteBackup, name='AddWPsiteforRemoteBackup'),
|
||||||
path('UpdateRemoteschedules', views.UpdateRemoteschedules, name='UpdateRemoteschedules'),
|
path('UpdateRemoteschedules', views.UpdateRemoteschedules, name='UpdateRemoteschedules'),
|
||||||
path('ScanWordpressSite', views.ScanWordpressSite, name='ScanWordpressSite'),
|
path('ScanWordpressSite', views.ScanWordpressSite, name='ScanWordpressSite'),
|
||||||
|
path('fetchWPDetails', views.fetchWPDetails, name='fetchWPDetails'),
|
||||||
|
|
||||||
# AddPlugin
|
# AddPlugin
|
||||||
path('ConfigurePlugins', views.ConfigurePlugins, name='ConfigurePlugins'),
|
path('ConfigurePlugins', views.ConfigurePlugins, name='ConfigurePlugins'),
|
||||||
|
|||||||
@@ -1840,5 +1840,14 @@ def Dockersitehome(request, dockerapp):
|
|||||||
userID = request.session['userID']
|
userID = request.session['userID']
|
||||||
wm = WebsiteManager(dockerapp)
|
wm = WebsiteManager(dockerapp)
|
||||||
return wm.Dockersitehome(request, userID, None)
|
return wm.Dockersitehome(request, userID, None)
|
||||||
|
except KeyError:
|
||||||
|
return redirect(loadLoginPage)
|
||||||
|
|
||||||
|
def fetchWPDetails(request):
|
||||||
|
try:
|
||||||
|
userID = request.session['userID']
|
||||||
|
data = json.loads(request.body)
|
||||||
|
wm = WebsiteManager()
|
||||||
|
return wm.fetchWPSitesForDomain(userID, data)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
return redirect(loadLoginPage)
|
return redirect(loadLoginPage)
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user