mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-12 08:16:11 +01:00
add loader
This commit is contained in:
@@ -2631,6 +2631,7 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
$scope.getFurtherWebsitesFromDB();
|
||||
|
||||
$scope.showWPSites = function(domain) {
|
||||
$scope.loading = true;
|
||||
console.log('showWPSites called for domain:', domain);
|
||||
|
||||
// Make sure domain is defined
|
||||
@@ -2639,32 +2640,6 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the website in the list
|
||||
var website = $scope.WebSitesList.find(function(site) {
|
||||
return site.domain === domain;
|
||||
});
|
||||
|
||||
if (!website) {
|
||||
console.error('Website not found');
|
||||
return;
|
||||
}
|
||||
|
||||
// Toggle WordPress sites visibility
|
||||
website.showWPSites = !website.showWPSites;
|
||||
|
||||
// If we're hiding the section, return early
|
||||
if (!website.showWPSites) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If we already have the data, no need to fetch again
|
||||
if (website.wp_sites && website.wp_sites.length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set loading state
|
||||
website.loadingWP = true;
|
||||
|
||||
var url = '/websites/fetchWPDetails';
|
||||
var data = {
|
||||
domain: domain
|
||||
@@ -2681,25 +2656,28 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
}).then(function(response) {
|
||||
$scope.loading = false;
|
||||
console.log('Response received:', response);
|
||||
if (response.data.status === 1 && response.data.fetchStatus === 1) {
|
||||
website.wp_sites = response.data.data;
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message || 'Failed to fetch WordPress sites',
|
||||
type: 'error'
|
||||
// Find the website in the list and update its properties
|
||||
$scope.WebSitesList.forEach(function(website) {
|
||||
if (website.domain === domain) {
|
||||
website.wp_sites = response.data.sites;
|
||||
website.showWPSites = true;
|
||||
console.log('Updated website:', website);
|
||||
}
|
||||
});
|
||||
$("#listFail").hide();
|
||||
} else {
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
|
||||
console.error('Error in response:', response.data.error_message);
|
||||
}
|
||||
}).catch(function(error) {
|
||||
console.error('Error:', error);
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not fetch WordPress sites. Please try again.',
|
||||
type: 'error'
|
||||
});
|
||||
}).finally(function() {
|
||||
website.loadingWP = false;
|
||||
$scope.loading = true;
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
|
||||
console.error('Request failed:', error);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -5769,32 +5747,6 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the website in the list
|
||||
var website = $scope.WebSitesList.find(function(site) {
|
||||
return site.domain === domain;
|
||||
});
|
||||
|
||||
if (!website) {
|
||||
console.error('Website not found');
|
||||
return;
|
||||
}
|
||||
|
||||
// Toggle WordPress sites visibility
|
||||
website.showWPSites = !website.showWPSites;
|
||||
|
||||
// If we're hiding the section, return early
|
||||
if (!website.showWPSites) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If we already have the data, no need to fetch again
|
||||
if (website.wp_sites && website.wp_sites.length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set loading state
|
||||
website.loadingWP = true;
|
||||
|
||||
var url = '/websites/fetchWPDetails';
|
||||
var data = {
|
||||
domain: domain
|
||||
@@ -5813,23 +5765,24 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
}).then(function(response) {
|
||||
console.log('Response received:', response);
|
||||
if (response.data.status === 1 && response.data.fetchStatus === 1) {
|
||||
website.wp_sites = response.data.data;
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message || 'Failed to fetch WordPress sites',
|
||||
type: 'error'
|
||||
// Find the website in the list and update its properties
|
||||
$scope.WebSitesList.forEach(function(website) {
|
||||
if (website.domain === domain) {
|
||||
website.wp_sites = response.data.sites;
|
||||
website.showWPSites = true;
|
||||
console.log('Updated website:', website);
|
||||
}
|
||||
});
|
||||
$("#listFail").hide();
|
||||
} else {
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
|
||||
console.error('Error in response:', response.data.error_message);
|
||||
}
|
||||
}).catch(function(error) {
|
||||
console.error('Error:', error);
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not fetch WordPress sites. Please try again.',
|
||||
type: 'error'
|
||||
});
|
||||
}).finally(function() {
|
||||
website.loadingWP = false;
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
|
||||
console.error('Request failed:', error);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -9473,32 +9426,6 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the website in the list
|
||||
var website = $scope.WebSitesList.find(function(site) {
|
||||
return site.domain === domain;
|
||||
});
|
||||
|
||||
if (!website) {
|
||||
console.error('Website not found');
|
||||
return;
|
||||
}
|
||||
|
||||
// Toggle WordPress sites visibility
|
||||
website.showWPSites = !website.showWPSites;
|
||||
|
||||
// If we're hiding the section, return early
|
||||
if (!website.showWPSites) {
|
||||
return;
|
||||
}
|
||||
|
||||
// If we already have the data, no need to fetch again
|
||||
if (website.wp_sites && website.wp_sites.length > 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Set loading state
|
||||
website.loadingWP = true;
|
||||
|
||||
var url = '/websites/fetchWPDetails';
|
||||
var data = {
|
||||
domain: domain
|
||||
@@ -9517,23 +9444,24 @@ app.controller('listWebsites', function ($scope, $http, $window) {
|
||||
}).then(function(response) {
|
||||
console.log('Response received:', response);
|
||||
if (response.data.status === 1 && response.data.fetchStatus === 1) {
|
||||
website.wp_sites = response.data.data;
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message || 'Failed to fetch WordPress sites',
|
||||
type: 'error'
|
||||
// Find the website in the list and update its properties
|
||||
$scope.WebSitesList.forEach(function(website) {
|
||||
if (website.domain === domain) {
|
||||
website.wp_sites = response.data.sites;
|
||||
website.showWPSites = true;
|
||||
console.log('Updated website:', website);
|
||||
}
|
||||
});
|
||||
$("#listFail").hide();
|
||||
} else {
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
|
||||
console.error('Error in response:', response.data.error_message);
|
||||
}
|
||||
}).catch(function(error) {
|
||||
console.error('Error:', error);
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not fetch WordPress sites. Please try again.',
|
||||
type: 'error'
|
||||
});
|
||||
}).finally(function() {
|
||||
website.loadingWP = false;
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
|
||||
console.error('Request failed:', error);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -13542,68 +13470,58 @@ app.controller('manageAliasController', function ($scope, $http, $timeout, $wind
|
||||
return;
|
||||
}
|
||||
|
||||
// Find the website in the list
|
||||
var website = $scope.WebSitesList.find(function(site) {
|
||||
return site.domain === domain;
|
||||
// Find the website in the list and set loading state
|
||||
var site = $scope.WebSitesList.find(function(website) {
|
||||
return website.domain === domain;
|
||||
});
|
||||
|
||||
if (!website) {
|
||||
console.error('Website not found');
|
||||
if (!site) {
|
||||
console.error('Website not found:', domain);
|
||||
return;
|
||||
}
|
||||
|
||||
// Toggle WordPress sites visibility
|
||||
website.showWPSites = !website.showWPSites;
|
||||
// Toggle visibility and handle loading state
|
||||
site.showWPSites = !site.showWPSites;
|
||||
|
||||
// If we're hiding the section, return early
|
||||
if (!website.showWPSites) {
|
||||
return;
|
||||
}
|
||||
// Only fetch if we're showing and don't have data yet
|
||||
if (site.showWPSites && (!site.wp_sites || !site.wp_sites.length)) {
|
||||
// Set loading state
|
||||
site.loadingWPSites = true;
|
||||
|
||||
// If we already have the data, no need to fetch again
|
||||
if (website.wp_sites && website.wp_sites.length > 0) {
|
||||
return;
|
||||
}
|
||||
var url = '/websites/fetchWPDetails';
|
||||
var data = {
|
||||
domain: domain
|
||||
};
|
||||
|
||||
// Set loading state
|
||||
website.loadingWP = true;
|
||||
console.log('Making request to:', url, 'with data:', data);
|
||||
|
||||
var url = '/websites/fetchWPDetails';
|
||||
var data = {
|
||||
domain: domain
|
||||
};
|
||||
|
||||
console.log('Making request to:', url, 'with data:', data);
|
||||
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: url,
|
||||
data: $.param(data),
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
}).then(function(response) {
|
||||
console.log('Response received:', response);
|
||||
if (response.data.status === 1 && response.data.fetchStatus === 1) {
|
||||
website.wp_sites = response.data.data;
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: response.data.error_message || 'Failed to fetch WordPress sites',
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
}).catch(function(error) {
|
||||
console.error('Error:', error);
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not fetch WordPress sites. Please try again.',
|
||||
type: 'error'
|
||||
$http({
|
||||
method: 'POST',
|
||||
url: url,
|
||||
data: $.param(data),
|
||||
headers: {
|
||||
'Content-Type': 'application/x-www-form-urlencoded',
|
||||
'X-CSRFToken': getCookie('csrftoken')
|
||||
}
|
||||
}).then(function(response) {
|
||||
console.log('Response received:', response);
|
||||
if (response.data.status === 1 && response.data.fetchStatus === 1) {
|
||||
site.wp_sites = response.data.sites;
|
||||
$("#listFail").hide();
|
||||
} else {
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = response.data.error_message || 'Failed to fetch WordPress sites';
|
||||
console.error('Error in response:', response.data.error_message);
|
||||
}
|
||||
}).catch(function(error) {
|
||||
$("#listFail").fadeIn();
|
||||
$scope.errorMessage = error.message || 'An error occurred while fetching WordPress sites';
|
||||
console.error('Request failed:', error);
|
||||
}).finally(function() {
|
||||
// Clear loading state when done
|
||||
site.loadingWPSites = false;
|
||||
});
|
||||
}).finally(function() {
|
||||
website.loadingWP = false;
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
$scope.updateSetting = function(wp, setting) {
|
||||
|
||||
@@ -149,22 +149,13 @@
|
||||
<span ng-if="web.wp_sites && web.wp_sites.length > 0" style="text-transform: none">
|
||||
{$ web.wp_sites.length $} WordPress Sites
|
||||
</span>
|
||||
<i ng-if="web.loadingWPSites" class="fa fa-spinner fa-spin" style="margin-left: 5px;"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WordPress Sites Loading State -->
|
||||
<div class="col-md-12" ng-if="web.loadingWP" style="padding: 30px;">
|
||||
<div class="text-center">
|
||||
<div class="spinner-border text-primary" role="status" style="width: 2rem; height: 2rem;">
|
||||
<span class="sr-only">Loading WordPress sites...</span>
|
||||
</div>
|
||||
<p class="mt-2">{% trans "Loading WordPress sites..." %}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- WordPress Sites Section -->
|
||||
<div class="col-md-12" ng-if="!web.loadingWP && web.showWPSites && web.wp_sites && web.wp_sites.length > 0" style="padding: 15px 30px;">
|
||||
<div class="col-md-12" ng-if="web.showWPSites && web.wp_sites && web.wp_sites.length > 0" style="padding: 15px 30px;">
|
||||
<div ng-repeat="wp in web.wp_sites" class="wp-site-item">
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
|
||||
Reference in New Issue
Block a user