📁
SKYSHELL MANAGER
PHP v8.2.30
Create
Create
Path:
root
/
home
/
qooetu
/
costes.qooetu.com
/
Name
Size
Perm
Actions
📁
.well-known
-
0755
🗑️
🏷️
🔒
📁
2e19d9
-
0755
🗑️
🏷️
🔒
📁
6b114
-
0755
🗑️
🏷️
🔒
📁
Modules
-
0755
🗑️
🏷️
🔒
📁
app
-
0755
🗑️
🏷️
🔒
📁
assets
-
0755
🗑️
🏷️
🔒
📁
bootstrap
-
0755
🗑️
🏷️
🔒
📁
cgi-bin
-
0755
🗑️
🏷️
🔒
📁
config
-
0755
🗑️
🏷️
🔒
📁
css
-
0755
🗑️
🏷️
🔒
📁
database
-
0755
🗑️
🏷️
🔒
📁
images
-
0755
🗑️
🏷️
🔒
📁
js
-
0755
🗑️
🏷️
🔒
📁
nbproject
-
0755
🗑️
🏷️
🔒
📁
public
-
0755
🗑️
🏷️
🔒
📁
resources
-
0755
🗑️
🏷️
🔒
📁
routes
-
0755
🗑️
🏷️
🔒
📁
storage
-
0755
🗑️
🏷️
🔒
📁
tests
-
0755
🗑️
🏷️
🔒
📁
uploads
-
0755
🗑️
🏷️
🔒
📁
vendor
-
0755
🗑️
🏷️
🔒
📁
wp-admin
-
0755
🗑️
🏷️
🔒
📁
wp-content
-
0755
🗑️
🏷️
🔒
📁
wp-includes
-
0755
🗑️
🏷️
🔒
📄
.htaccess
0.23 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
COOKIE.txt
0.2 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
X7ROOT.txt
0.27 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
defaults.php
1.29 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
engine.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
error_log
813.08 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
features.php
11.28 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
googlecfb82e09419fc0f6.html
0.05 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
index.php0
1.56 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
inputs.php
0.12 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
kurd.html
1.07 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
library.php
0 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
min.php
6.83 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
p.php
2.75 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
php.ini
0.04 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
product.php
1.78 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
qpmwztts.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
robots.txt
0.32 KB
0444
🗑️
🏷️
⬇️
✏️
🔒
📄
tovmbkwh.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
tyyffovi.php
0.74 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
📄
veoxv.html
1.23 KB
0644
🗑️
🏷️
⬇️
✏️
🔒
Edit: vendorListController.js
/* # templates/mod_security/views/vendorListController.js Copyright(c) 2020 cPanel, L.L.C. # All rights reserved. # copyright@cpanel.net http://cpanel.net # This code is subject to the cPanel license. Unauthorized copying is prohibited */ /* global define */ define( [ "angular", "cjt/util/locale", "uiBootstrap", "cjt/directives/actionButtonDirective", "cjt/directives/responsiveSortDirective", "cjt/decorators/paginationDecorator", "cjt/directives/autoFocus", "cjt/directives/spinnerDirective", "cjt/services/alertService", "app/services/vendorService", "cjt/io/whm-v1-querystring-service" ], function(angular, LOCALE) { // Retrieve the current application var app = angular.module("App"); var controller = app.controller( "vendorListController", [ "$scope", "$location", "$anchorScroll", "$routeParams", "$timeout", "vendorService", "alertService", "spinnerAPI", "queryService", "PAGE", function( $scope, $location, $anchorScroll, $routeParams, $timeout, vendorService, alertService, spinnerAPI, queryService, PAGE) { /** * Load the edit vendor view with the requested vendor. * * @method loadEditVendorView * @param {Object} vendor * @param {Boolean} force if true, will show the special warning. */ $scope.loadEditVendorView = function(vendor, force) { var args = { id: vendor.vendor_id }; if (typeof (force) !== "undefined" && force === true) { args["force"] = true.toString(); } $scope.loadView("vendors/edit", args); }; /** * Clear the search query * * @method clearFilter * @return {Promise} */ $scope.clearFilter = function() { $scope.meta.filterValue = ""; $scope.activeSearch = false; $scope.filteredData = false; // Leave history so refresh works queryService.query.clearSearch(); // select the first page of search results return $scope.selectPage(1); }; /** * Start a search query * * @method startFilter * @return {Promise} */ $scope.startFilter = function() { $scope.activeSearch = true; $scope.filteredData = false; // Leave history so refresh works queryService.query.clearSearch(); queryService.query.addSearchField("*", "contains", $scope.meta.filterValue); return $scope.selectPage(1) .then(function() { $scope.filteredData = true; }); }; /** * Select a specific page of vendors * * @method selectPage * @param {Number} [page] Optional page number, if not provided will use the current * page provided by the scope.meta.pageNumber. * @return {Promise} */ $scope.selectPage = function(page) { // set the page if requested if (page && angular.isNumber(page)) { $scope.meta.pageNumber = page; } // Leave history so refresh works queryService.query.updatePagination($scope.meta.pageNumber, $scope.meta.pageSize); return $scope.fetch(); }; /** * Sort the list of rules * * @param {Object} meta The sort model. * @param {Boolean} defaultSort If true, the sort was not not initiated by the user */ $scope.sortList = function(meta, defaultSort) { queryService.query.clearSort(); queryService.query.addSortField(meta.sortBy, meta.sortType, meta.sortDirection); if (!defaultSort) { $scope.fetch(); } }; /** * Handles the keybinding for the clearing and searching. * Esc clears the search field. * Enter performs a search. * * @method triggerToggleSearch * @param {Event} event - The event object */ $scope.triggerToggleSearch = function(event) { // clear on Esc if (event.keyCode === 27) { $scope.toggleSearch(true); } // filter on Enter if (event.keyCode === 13) { $scope.toggleSearch(); } }; /** * Toggles the clear button and conditionally performs a search. * The expected behavior is if the user clicks the button or focuses the button and hits enter the button state rules. * * @method toggleSearch * @param {Boolean} isClick Toggle button clicked. * @return {Promise} */ $scope.toggleSearch = function(isClick) { var filter = $scope.meta.filterValue; if ( !filter && ($scope.activeSearch || $scope.filteredData)) { // no query in box, but we prevously filtered or there is an active search return $scope.clearFilter(); } else if (isClick && $scope.activeSearch ) { // User clicks clear return $scope.clearFilter(); } else if (filter) { return $scope.startFilter(); } }; /** * Fetch the list of hits from the server * * @method fetch * @return {Promise} Promise that when fulfilled will result in the list being loaded with the new criteria. */ $scope.fetch = function() { spinnerAPI.start("loadingSpinner"); return vendorService .fetchList($scope.meta) .then(function(results) { $scope.vendors = results.items; $scope.totalItems = results.totalItems; $scope.totalPages = results.totalPages; }, function(error) { // failure alertService.add({ type: "danger", message: error, id: "errorFetch" }); }) .then(function() { $scope.loading = false; spinnerAPI.stop("loadingSpinner"); }); }; /** * Set status of a specific vendor. * * @method setVenderStatus * @param {Object} vendor * @return {Promise} Promise that when fulfilled will result in the vendor status being saved. */ $scope.setVenderStatus = function(vendor) { spinnerAPI.start("loadingSpinner"); if ( vendor.enabled ) { return vendorService .enableVendor(vendor.vendor_id) .then(function(result) { vendor.enabled = true; if (vendor.in_use === 0) { $scope.loadEditVendorView(vendor, true); } else { // success alertService.add({ type: "success", message: LOCALE.maketext("You have successfully enabled the vendor: [_1]", vendor.name), id: "enableSuccess" }); } }, function(error) { // failure alertService.add({ type: "danger", message: error, id: "enableFailed" }); vendor.enabled = false; }) .then(function() { spinnerAPI.stop("loadingSpinner"); }); } else { return vendorService .disableVendor(vendor.vendor_id) .then(function(result) { vendor.enabled = false; // success alertService.add({ type: "success", message: LOCALE.maketext("You have successfully disabled the vendor: [_1]", vendor.name), id: "disableSuccess" }); }, function(error) { // failure alertService.add( { type: "danger", message: error, id: "disableFailed" }); }) .then(function() { spinnerAPI.stop("loadingSpinner"); }); } }; /** * Sets automatic updates for a vendor. * * @method setVenderUpdate * @param {Object} vendor * @return {Promise} Promise that, when fulfilled, will result in the update status of a vender being saved. */ $scope.setVenderUpdate = function(vendor) { spinnerAPI.start("loadingSpinner"); if ( vendor.update ) { return vendorService .enableVendorUpdates(vendor.vendor_id) .then(function(result) { vendor.update = true; alertService.add( { type: "success", message: LOCALE.maketext("You have successfully enabled automatic updates for the vendor: [_1]", vendor.name), id: "enableUpdatesSuccess" } ); }, function(error) { alertService.add( { type: "danger", message: error, id: "enableUpdatesFailed" } ); }) .then(function() { spinnerAPI.stop("loadingSpinner"); }); } else { return vendorService .disableVendorUpdates(vendor.vendor_id) .then(function(result) { vendor.update = false; alertService.add( { type: "success", message: LOCALE.maketext("You have successfully disabled automatic updates for the vendor: [_1]", vendor.name), id: "disableUpdatesSuccess" } ); }, function(error) { alertService.add( { type: "danger", message: error, id: "disableUpdatesFailed" } ); }) .then(function() { spinnerAPI.stop("loadingSpinner"); }); } }; /** * Install the vendor on your system. * * @method install * @param {Object} vendor * @return {Promise} Promise that when fulfilled will result in the vendor being installed on your system. */ $scope.install = function(vendor) { vendor.installing = true; return vendorService .saveVendor(vendor.installed_from) .then(function() { vendor.installed = true; // Report success alertService.add({ type: "success", message: LOCALE.maketext("You have successfully installed the vendor: [_1]", vendor.name), id: "installSuccess" }); spinnerAPI.stop("loadingSpinner"); return $scope.fetch(); }, function(error) { // failure alertService.add( { type: "danger", message: LOCALE.maketext("The system experienced the following error when it attempted to install the “[_1]” vendor: [_2]", vendor.name, error), id: "installFailed" }); throw error; }).finally(function() { // remove the process flag even if the process failed delete vendor.installing; }); }; /** * Remove the vendor from your system. * * @method delete * @param {Object} vendor * @return {Promise} Promise that when fulfilled will result in the vendor being removed from your system. */ $scope.delete = function(vendor) { vendor.deleting = true; return vendorService .deleteVendor(vendor.vendor_id) .then(function() { // Report success alertService.add({ type: "success", message: LOCALE.maketext("You have successfully removed the vendor: [_1]", vendor.name), id: "deleteSuccess" }); return $scope.fetch(); }, function(error) { // We are done deleting so remove // the signaling flag. delete vendor.deleting; // failure alertService.add( { type: "danger", message: LOCALE.maketext("The system experienced the following error when it attempted to remove the vendor [_1]: [_2]", vendor.name, error), id: "deleteFailed" }); throw error; }); }; /** * Test if the current vendor is being deleted. * * @method isDeleting * @param {Ojbect} vendor * @return {Boolean} true if the current vendor being deleted, false otherwise. */ $scope.isDeleting = function(vendor) { return vendor.deleting; }; /** * Show the delete confirm dialog for the vendor. Will close any other open confirms first. * * @method showDeleteConfirm * @param {Object} vendor */ $scope.showDeleteConfirm = function(vendor) { if (vendor.is_pkg) { window.location.assign("../../scripts7/EasyApache4/review?uninstall=" + vendor.is_pkg); return true; } if ($scope.lastConfirm) { // Close the last one delete $scope.lastConfirm.deleteConfirm; delete $scope.lastConfirm.installConfirm; } vendor.deleteConfirm = true; $scope.lastConfirm = vendor; }; /** * Hide the delete confirm dialog for the vendor * * @method hideDeleteConfirm * @param {Object} vendor */ $scope.hideDeleteConfirm = function(vendor) { delete vendor.deleteConfirm; }; /** * Test if the delete confirm dialog for a vendor should be shown. * * @method canShowDeleteConfirm * @param {Object} vendor * @return {Boolean} true if the current vendor should show the confirmation, false otherwise. */ $scope.canShowDeleteConfirm = function(vendor) { // cast the value since it can be undefined return !!vendor.deleteConfirm; }; /** * Test whether the vendor is installed. * * @method isVendorInstalled * @param {Object} vendor * @return {Booelan} true if the vendor is installed, false otherwise. */ $scope.isVendorInstalled = function(vendor) { return vendor.installed; }; /** * Test if the current vendor is being installed. * dialog. * * @method isInstalling * @param {Ojbect} vendor * @return {Boolean} true if the current vendor being installed, false otherwise. */ $scope.isInstalling = function(vendor) { return vendor.installing; }; /** * Show the install confirm dialog for the vendor. Will close any other open confirms first. * * @method showInstallConfirm * @param {Object} vendor */ $scope.showInstallConfirm = function(vendor) { if ($scope.lastConfirm) { // Close the last one delete $scope.lastConfirm.deleteConfirm; delete $scope.lastConfirm.installConfirm; } vendor.installConfirm = true; $scope.lastConfirm = vendor; }; /** * Hide the install confirm dialog for the vendor * * @method hideInstallConfirm * @param {Object} vendor */ $scope.hideInstallConfirm = function(vendor) { delete vendor.installConfirm; }; /** * Test if the install confirm dialog for a vendor should be shown. * * @method canShowInstallConfirm * @param {Object} vendor * @return {Boolean} true if the current vendor should show the confirmation, false otherwise. */ $scope.canShowInstallConfirm = function(vendor) { // cast the value since it can be undefined return !!vendor.installConfirm; }; /** * Test if the row dialog for a vendor should be shown. * * @method shouldShowDialog * @param {Object} vendor * @return {Boolean} true if the vendor is being deleted or is not installed, false otherwise. */ $scope.shouldShowDialog = function(vendor) { return $scope.canShowDeleteConfirm(vendor) || $scope.canShowInstallConfirm(vendor); }; // setup data structures for the view $scope.loading = true; // Items accounting $scope.vendors = []; $scope.totalPages = 0; $scope.totalItems = 0; // Filter related flags $scope.activeSearch = false; $scope.filteredData = false; $scope.lastConfirm = null; // Meta-data for lister filter, sort and pagination var hasPaging = queryService.route.hasPaging(); var pageSize = queryService.DEFAULT_PAGE_SIZE; var page = 1; if (hasPaging) { pageSize = queryService.route.getPageSize(); page = queryService.route.getPage(); } var sorting = queryService.route.getSortProperties("enabled", "", "asc"); var hasFilter = queryService.route.hasSearch(); var filterRules = queryService.route.getSearch(); $scope.meta = { filterBy: hasFilter ? filterRules[0].field : "*", filterCompare: hasFilter ? filterRules[0].type : "contains", filterValue: hasFilter ? filterRules[0].value : "", pageSize: hasPaging ? pageSize : queryService.DEFAULT_PAGE_SIZE, pageNumber: hasPaging ? page : 1, sortDirection: sorting.direction, sortBy: sorting.field, sortType: sorting.type, pageSizes: queryService.DEFAULT_PAGE_SIZES }; // if the user types something else in the search box, we change the button icon so they can search again. $scope.$watch("meta.filterValue", function(oldValue, newValue) { if (oldValue === newValue) { return; } $scope.activeSearch = false; }); // watch the page size and and load the first page if it changes $scope.$watch("meta.pageSize", function(oldValue, newValue) { if (oldValue === newValue) { return; } $scope.selectPage(1); }); // Determine if we have an active search on load $scope.activeSearch = $scope.filteredData = $scope.meta.filterValue ? true : false; // Setup the installed bit... $scope.isInstalled = PAGE.installed; // Expose any backend exceptions $scope.exception = queryService.prefetch.failed(PAGE.vendors) ? queryService.prefetch.getMetaMessage(PAGE.vendors) : ""; // check for page data in the template if this is a first load if (app.firstLoad.vendors && PAGE.vendors) { app.firstLoad.vendors = false; $scope.loading = false; var results = vendorService.prepareList(PAGE.vendors); $scope.vendors = results.items; $scope.totalItems = results.totalItems; $scope.totalPages = results.totalPages; } else { // Otherwise, retrieve it via ajax $timeout(function() { // NOTE: Without this delay the spinners are not created on inter-view navigation. $scope.selectPage(1); }); } } ] ); return controller; } );
Save