mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-07 22:06:05 +01:00
fetch package details on ubuntu
This commit is contained in:
@@ -836,15 +836,9 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) {
|
||||
};
|
||||
$scope.fetchPackages('upgrade');
|
||||
|
||||
$scope.killProcess = function (pid) {
|
||||
|
||||
$scope.cyberPanelLoading = false;
|
||||
|
||||
url = "/serverstatus/killProcess";
|
||||
|
||||
var data = {
|
||||
pid: pid
|
||||
};
|
||||
$scope.fetchPackageDetails = function (package) {
|
||||
$scope.cyberpanelLoading = false;
|
||||
$scope.package = package;
|
||||
|
||||
var config = {
|
||||
headers: {
|
||||
@@ -852,30 +846,28 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) {
|
||||
}
|
||||
};
|
||||
|
||||
var data = {
|
||||
package: package
|
||||
};
|
||||
|
||||
$http.post(url, data, config).then(ListInitialDatas, cantLoadInitialDatas);
|
||||
dataurl = "/serverstatus/fetchPackageDetails";
|
||||
|
||||
$http.post(dataurl, data, config).then(ListInitialData, cantLoadInitialData);
|
||||
|
||||
function ListInitialDatas(response) {
|
||||
$scope.cyberPanelLoading = true;
|
||||
function ListInitialData(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
if (response.data.status === 1) {
|
||||
new PNotify({
|
||||
title: 'Success',
|
||||
text: 'Process successfully killed.',
|
||||
type: 'success'
|
||||
});
|
||||
$scope.packageDetails = response.data.packageDetails;
|
||||
} else {
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
title: 'Error!',
|
||||
text: response.data.error_message,
|
||||
type: 'error'
|
||||
});
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function cantLoadInitialDatas(response) {
|
||||
$scope.cyberPanelLoading = true;
|
||||
function cantLoadInitialData(response) {
|
||||
$scope.cyberpanelLoading = true;
|
||||
new PNotify({
|
||||
title: 'Operation Failed!',
|
||||
text: 'Could not connect to server, please refresh this page',
|
||||
@@ -883,6 +875,7 @@ app.controller('listOSPackages', function ($scope, $http, $timeout) {
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
};
|
||||
|
||||
});
|
||||
@@ -22,7 +22,8 @@
|
||||
|
||||
<div class="example-box-wrapper">
|
||||
<ul class="nav-responsive nav nav-tabs">
|
||||
<li class="active"><a ng-click="fetchPackages('upgrade')" href="#tab4" data-toggle="tab">Updates</a></li>
|
||||
<li class="active"><a ng-click="fetchPackages('upgrade')" href="#tab4"
|
||||
data-toggle="tab">Updates</a></li>
|
||||
<li><a ng-click="fetchPackages()" href="#tab6" data-toggle="tab">All Packages</a></li>
|
||||
<li><a href="#tab7" data-toggle="tab">Settings</a></li>
|
||||
<img ng-hide="cyberpanelLoading"
|
||||
@@ -70,7 +71,56 @@
|
||||
<td ng-bind="record.package"></td>
|
||||
<td ng-bind="record.version"></td>
|
||||
<td ng-bind="record.upgrade"></td>
|
||||
<td><a style="float: left ; margin-bottom: 2%"
|
||||
<td>
|
||||
<a data-toggle="modal" data-target="#packageDetails"
|
||||
ng-click="fetchPackageDetails(record.package)"
|
||||
class="btn btn-border btn-alt border-blue-alt btn-link font-blue-alt"
|
||||
href="#"
|
||||
title=""><span>Details</span></a>
|
||||
<div id="packageDetails" class="modal fade" role="dialog">
|
||||
<div class="modal-dialog modal-lg">
|
||||
|
||||
<!-- Modal content-->
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close"
|
||||
data-dismiss="modal">
|
||||
×
|
||||
</button>
|
||||
<h4 class="modal-title">Package {$ package $}
|
||||
details.
|
||||
<img ng-hide="cyberpanelLoading"
|
||||
src="{% static 'images/loading.gif' %}">
|
||||
</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-sm-12">
|
||||
<div class="col-sm-12">
|
||||
<textarea ng-model="packageDetails"
|
||||
class="form-control"
|
||||
rows="12"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<table class="table">
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button"
|
||||
ng-disabled="savingSettings"
|
||||
class="btn btn-default"
|
||||
data-dismiss="modal">
|
||||
Close
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a style="margin-left: 1%"
|
||||
class="btn btn-border btn-alt border-azure btn-link font-azure"
|
||||
href="#"
|
||||
title=""><span>Upgrade</span></a></td>
|
||||
|
||||
@@ -20,5 +20,6 @@ urlpatterns = [
|
||||
url(r'^killProcess$', views.killProcess, name='killProcess'),
|
||||
url(r'^packageManager$', views.packageManager, name='packageManager'),
|
||||
url(r'^fetchPackages$', views.fetchPackages, name='fetchPackages'),
|
||||
url(r'^fetchPackageDetails$', views.fetchPackageDetails, name='fetchPackageDetails'),
|
||||
|
||||
]
|
||||
@@ -794,3 +794,30 @@ def fetchPackages(request):
|
||||
data_ret = {'status': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
def fetchPackageDetails(request):
|
||||
try:
|
||||
|
||||
userID = request.session['userID']
|
||||
currentACL = ACLManager.loadedACL(userID)
|
||||
|
||||
if currentACL['admin'] == 1:
|
||||
pass
|
||||
else:
|
||||
return ACLManager.loadError()
|
||||
|
||||
data = json.loads(request.body)
|
||||
package = data['package']
|
||||
|
||||
if ProcessUtilities.decideDistro() == ProcessUtilities.ubuntu:
|
||||
command = 'apt-cache show %s' % (package)
|
||||
packageDetails = ProcessUtilities.outputExecutioner(command)
|
||||
|
||||
data_ret = {'status': 1, 'packageDetails': packageDetails}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
|
||||
except BaseException as msg:
|
||||
data_ret = {'status': 0, 'error_message': str(msg)}
|
||||
json_data = json.dumps(data_ret)
|
||||
return HttpResponse(json_data)
|
||||
Reference in New Issue
Block a user