📁
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: list_ftp.js
/* globals LANG, FTP_ACCOUNTS_MAXED, REQUIRED_PASSWORD_STRENGTH, DNS, SERVER_TYPE, CPANEL_USER */ /* globals FTP_SERVER, SFTP_PORT, FTP_PORT */ // UAPI: note that this module has been converted to the UAPI JSON call /* eslint-disable camelcase */ var OPEN_MODULE; var PATH_POPUPS = []; var ADD_VALID = []; var CHANGE_PASS_VALID = []; var CHANGE_QUOTA_VALID = []; var FTP_UAPI_CALL = {}; var TABLE_REQUEST_ACTIVE = false; var LAST_SEARCH_TXT = ""; var PURE_ACCOUNTS_TABLE_COLUMNS = 4; var PURE_SPECIAL_ACCOUNTS_TABLE_COLUMNS = 5; var PRO_ACCOUNTS_TABLE_COLUMNS = 3; var PRO_SPECIAL_ACCOUNTS_TABLE_COLUMNS = 4; var FTP_CLIENTS = [ { id: "coreftp", name: "CoreFTP", os: "Windows" }, { id: "cyberduck", name: "Cyberduck", os: "Mac" } ]; var changePasswordTpl = Handlebars.compile(DOM.get("change-password-template").text.trim()), changeQuotaTpl = Handlebars.compile(DOM.get("change-quota-template").text.trim()), deleteAccountTpl = Handlebars.compile(DOM.get("delete-account-template").text.trim()), configureClientTpl = Handlebars.compile(DOM.get("configure-client-template").text.trim()); // NOTE: This is needed because IE9 and below do not support // innerHTML on table, tbody, thead, and tr elements. // This should be removed when we end support for IE9. var tbody_placeholder = document.createElement("div"); var requiresInnerHTMLFix; var tableInnerHTMLTestElement = document.createElement("table"); try { tableInnerHTMLTestElement.innerHTML = "<tbody></tbody>"; } catch (e) { } finally { requiresInnerHTMLFix = (tableInnerHTMLTestElement.childNodes.length === 0); } var insert_html_into_table = function(table_id, html) { // NOTE: The first block should be removed once we end support for IE9. var tbody = document.getElementById(table_id); if (requiresInnerHTMLFix) { var table = tbody.parentNode; tbody_placeholder.innerHTML = "<table><tbody id=\"" + table_id + "\">" + html + "</tbody></table>"; table.replaceChild(tbody_placeholder.firstChild.firstChild, table.tBodies[0]); } else { tbody.innerHTML = html; } }; var generate_table_message = function(table_id, type, message, number_of_cols) { var html = "<tr class=\"" + type + " empty-row\">" + "<td colspan=\"" + number_of_cols + "\">" + message + "</td>" + "</tr>"; insert_html_into_table(table_id, html); }; var init_add_validation = function() { var DOM = YAHOO.util.Dom; var domain_el = DOM.get("domain"); ADD_VALID["login"] = new CPANEL.validate.validator(LANG.ftp_login); ADD_VALID["login"].add("login", "min_length(%input%, 1)", LOCALE.maketext("You must enter an [output,acronym,FTP,File Transfer Protocol] username."), null, { unique_id: "username_min_length" }); ADD_VALID["login"].add("login", "max_length(%input%, 64)", LOCALE.maketext("The [output,acronym,FTP,File Transfer Protocol] username cannot exceed [numf,_1] characters.", 64), null, { unique_id: "username_max_length" }); ADD_VALID["login"].add("login", function(login_el) { var username = login_el.value + "@" + domain_el.value; return CPANEL.validate.max_length(username, 254); }, LOCALE.maketext("The full [output,acronym,FTP,File Transfer Protocol] username with its associated domain cannot exceed [numf,_1] characters.", 254), null, { unique_id: "username_full_length" } ); ADD_VALID["login"].add("login", "ftp_username", LOCALE.maketext("You can only enter letters [asis,(a-z)], numbers [asis,(0-9)], periods, hyphens [asis,(-)], and underscores [asis,(_)]."), null, { unique_id: "username_valid" }); ADD_VALID["login"].add("login", "no_unsafe_periods", LOCALE.maketext("The [output,acronym,FTP,File Transfer Protocol] username cannot start with a period, end with a period, or include two consecutive periods."), null, { unique_id: "username_safe_periods" }); ADD_VALID["login"].attach(); ADD_VALID["domain"] = new CPANEL.validate.validator(LANG.ftp_domain); ADD_VALID["domain"].add("domain", function() { ADD_VALID["login"].clear_messages(); ADD_VALID["login"].verify(); // Will show up in the local parts validator return true; // So this always passes }, "" ); ADD_VALID["domain"].attach(); var password_validators = CPANEL.password.setup("password", "password2", "password_strength", REQUIRED_PASSWORD_STRENGTH, "create_strong_password", "why_strong_passwords_link", "why_strong_passwords_text"); ADD_VALID["pass1"] = password_validators[0]; ADD_VALID["pass2"] = password_validators[1]; ADD_VALID["dir"] = new CPANEL.validate.validator(LANG.directory_path); ADD_VALID["dir"].add("homedir", "dir_path", LANG.validation_directory_paths); ADD_VALID["dir"].attach(); if (SERVER_TYPE !== "PRO") { ADD_VALID["quota_number"] = new CPANEL.validate.validator(LANG.quota); ADD_VALID["quota_number"].add("quota_value", "positive_integer", LANG.email_quota_number, "quota_number"); ADD_VALID["quota_number"].attach(); ADD_VALID["quota_unlimited"] = new CPANEL.validate.validator(LANG.quota); ADD_VALID["quota_unlimited"].add("quota_unlimited", "anything", "", "quota_unlimited"); ADD_VALID["quota_unlimited"].attach(); } CPANEL.validate.attach_to_form("ftp_create_submit", ADD_VALID, add_ftp_account); CPANEL.util.catch_enter(["login", "domain", "password", "password2", "homedir", "quota_value"], "ftp_create_submit"); try { DOM.get("login").focus(); } catch (e) { } }; var suggest_homedir = function(public_html_only) { if ( public_html_only != 0 ) { DOM.get("homedir").value = "public_html/" + DOM.get("domain").value + "/" + DOM.get("login").value; } else { DOM.get("homedir").value = DOM.get("domain").value + "/" + DOM.get("login").value; } ADD_VALID["dir"].verify(); }; var toggle_add_account_quota = function(select_number) { if (select_number == true) { YAHOO.util.Dom.get("quota_number").checked = true; } if (YAHOO.util.Dom.get("quota_number").checked == true) { YAHOO.util.Dom.removeClass("quota_value", "dim-text"); ADD_VALID["quota_number"].verify(); ADD_VALID["quota_unlimited"].clear_messages(); } else { YAHOO.util.Dom.addClass("quota_value", "dim-text"); ADD_VALID["quota_number"].clear_messages(); ADD_VALID["quota_unlimited"].verify(); } }; var load_accounts_table = function() { var columns = (SERVER_TYPE === "PURE") ? PURE_ACCOUNTS_TABLE_COLUMNS : PRO_ACCOUNTS_TABLE_COLUMNS; var callback = { success: function(o) { var result = {}; try { result = YAHOO.lang.JSON.parse(o.responseText); } catch (e) { generate_table_message("accounts_div", "danger", CPANEL.icons.error + " " + LOCALE.maketext("JSON parse failed."), columns); } if (result.status) { build_accounts_table(result); } else { generate_table_message("accounts_div", "danger", CPANEL.icons.error + " " + LOCALE.maketext("Unknown Error"), columns); } TABLE_REQUEST_ACTIVE = false; }, failure: function(o) { generate_table_message("accounts_div", "danger", CPANEL.icons.error + " " + LOCALE.maketext("AJAX Error") + ": " + LOCALE.maketext("Please refresh the page and try again."), columns); TABLE_REQUEST_ACTIVE = false; } }; // send the AJAX request TABLE_REQUEST_ACTIVE = true; var url = CPANEL.urls.uapi("Ftp", "list_ftp_with_disk", FTP_UAPI_CALL); YAHOO.util.Connect.asyncRequest("GET", url, callback, ""); close_all_path_popups(); generate_table_message("accounts_div", "info", CPANEL.icons.ajax + " " + LOCALE.maketext("Loading …"), columns); }; var load_special_accounts_table = function() { var columns = (SERVER_TYPE === "PURE") ? PURE_SPECIAL_ACCOUNTS_TABLE_COLUMNS : PRO_SPECIAL_ACCOUNTS_TABLE_COLUMNS; // build the call var args = { "include_acct_types": "anonymous|logaccess|main", "api.sort_column": "serverlogin", "api.sort_method": "alphabet", "api.sort_reverse": 0 }; var callback = { success: function(o) { try { var result = YAHOO.lang.JSON.parse(o.responseText); if (result.status) { build_special_accounts_table(result); } else { generate_table_message("special_accounts_div", "danger", CPANEL.icons.error + " " + LOCALE.maketext("Unknown Error"), columns); } } catch (e) { generate_table_message("special_accounts_div", "danger", CPANEL.icons.error + " " + LOCALE.maketext("JSON parse failed."), columns); } }, failure: function(o) { generate_table_message("special_accounts_div", "danger", CPANEL.icons.error + " " + LOCALE.maketext("AJAX Error") + ": " + LOCALE.maketext("Please refresh the page and try again."), columns); } }; // send the AJAX request var url = CPANEL.urls.uapi("Ftp", "list_ftp_with_disk", args); YAHOO.util.Connect.asyncRequest("GET", url, callback, ""); generate_table_message("special_accounts_div", "info", CPANEL.icons.ajax + " " + LOCALE.maketext("Loading …"), columns); }; var build_accounts_table = function(result) { var html = ""; var row = ""; var i = 0; var columns = (SERVER_TYPE === "PURE") ? PURE_ACCOUNTS_TABLE_COLUMNS : PRO_ACCOUNTS_TABLE_COLUMNS; var accounts = result.data; var accounts_length = accounts.length; if (accounts_length === 0) { generate_table_message("accounts_div", "info", LANG.no_accounts_found, columns); return; } for (i = 0; i < accounts_length; i++) { var zebra = (i % 2) ? "row-even" : "row-odd"; // convert humandiskquota to MB or infinity symbol /* jshint -W116*/ if (accounts[i].diskquota == 0 || accounts[i].diskquota == "unlimited") { /* jshint +W116*/ accounts[i].diskquota = 0; accounts[i].humandiskquota = "∞"; } else { // convert disk quota to integer accounts[i].diskquota = parseInt(accounts[i].diskquota, 10); accounts[i].humandiskquota = accounts[i].diskquota; } // convert usage to integer accounts[i].diskused = parseInt(accounts[i].diskused, 10); var login = accounts[i].login, urlLogin = encodeURIComponent(login), dns = encodeURIComponent(DNS), tplArgs = { index: i, login: login, home: accounts[i].dir }, configureClientArgs = { index: i, login: accounts[i].serverlogin, server: FTP_SERVER, port: FTP_PORT, token: CPANEL.security_token, urlLogin: urlLogin, dns: dns, clients: FTP_CLIENTS, params: urlLogin + "|ftp." + dns + "|" + urlLogin }; if (SERVER_TYPE === "PURE") { row = '<tr class="' + zebra + '" id="account_row_[% i %]">'; row += '<td class="col1" data-title="' + LOCALE.maketext("Log In") + '">[% serverlogin %]<input type="hidden" id="login_[% i %]" value="[% login %]" /></td>'; row += '<td class="col2" data-title="' + LOCALE.maketext("Path") + '">[% path %]</td>'; row += '<td class="col3" data-title="' + LOCALE.maketext("Usage") + " / " + LOCALE.maketext("Quota") + '">[% diskused %] / <span id="humandiskquota_[% i %]">[% humandiskquota %]</span> <span class="megabyte_font">MB</span><input type="hidden" id="diskused_[% i %]" value="[% diskused %]" /><input type="hidden" id="diskquota_[% i %]" value="[% diskquota %]" /><br /><div style="height: 3px"></div><div id="usage_bar_[% i %]" class="table_progress_bar"></div></td>'; row += '<td data-title="' + LOCALE.maketext("Actions") + '">'; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'changepassword_module_[% i %]\')">' + '<span class="fas fa-key"></span> ' + LANG.change_br_password + "</button>"; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'changequota_module_[% i %]\')">' + '<span class="glyphicon glyphicon-pencil"></span> ' + LANG.change_br_quota + "</button>"; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'delete_module_[% i %]\')">' + '<span class="glyphicon glyphicon-trash"></span> ' + LANG.Delete + "</button>"; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'config_module_[% i %]\')">' + '<span class="fas fa-cog"></span> ' + LANG.configure_ftp_client + "</button>"; row += "</td>"; row += "</tr>"; row += '<tr class="action-row"><td class="editFormRow" colspan="' + columns + '">'; row += changePasswordTpl(tplArgs); row += changeQuotaTpl(tplArgs); row += deleteAccountTpl(tplArgs); row += configureClientTpl(configureClientArgs); row += '<div id="status_bar_[% i %]" class="cjt_status_bar"></div>'; row += "</td></tr>"; } else { row = '<tr class="' + zebra + '" id="account_row_[% i %]">'; row += '<td class="pro_col1" data-title="' + LOCALE.maketext("Log In") + '">[% serverlogin %]<input type="hidden" id="login_[% i %]" value="[% login %]" /></td>'; row += '<td class="pro_col2" data-title="' + LOCALE.maketext("Path") + '">[% path %]</td>'; row += '<td data-title="' + LOCALE.maketext("Actions") + '">'; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'changepassword_module_[% i %]\')">' + '<span class="fas fa-key"></span> ' + LANG.change_br_password + "</button>"; row += '<button type="button" span class="btn btn-link" onclick="toggle_module(\'delete_module_[% i %]\')">' + '<span class="glyphicon glyphicon-trash"></span> ' + LANG.Delete + "</button>"; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'config_module_[% i %]\')">' + '<span class="fas fa-cog"></span> ' + LANG.configure_ftp_client + "</button>"; row += "</td>"; row += "</tr>"; row += '<tr class="action-row"><td class="editFormRow" colspan="' + columns + '">'; row += changePasswordTpl(tplArgs); row += deleteAccountTpl(tplArgs); row += configureClientTpl(configureClientArgs); row += '<div id="status_bar_[% i %]" class="cjt_status_bar"></div>'; row += "</td></tr>"; } // TODO: replace this using YAHOO.lang.substitute row = row.replace(/\[% i %\]/g, i); row = row.replace(/\[% login %\]/g, accounts[i].login); row = row.replace(/\[% serverlogin %\]/g, accounts[i].serverlogin); row = row.replace(/\[% path %\]/g, format_path(accounts[i].dir)); row = row.replace(/\[% special_path %\]/g, format_path(accounts[i].dir, "delete_account2_" + i, i)); row = row.replace(/\[% diskused %\]/g, accounts[i].diskused); row = row.replace(/\[% humandiskquota %\]/g, accounts[i].humandiskquota); row = row.replace(/\[% diskquota %\]/g, accounts[i].diskquota); row = row.replace(/\[% url.acct %\]/g, encodeURIComponent(accounts[i].login)); row = row.replace(/\[% url.accttype %\]/g, encodeURIComponent(accounts[i].accttype)); row = row.replace(/\[% ftp_port %\]/g, FTP_PORT); row = row.replace(/\[% sftp_port %\]/g, SFTP_PORT); row = row.replace(/\[% ftp_server %\]/g, FTP_SERVER); row = row.replace(/\[% url.dns %\]/g, encodeURIComponent(DNS)); html += row; } insert_html_into_table("accounts_div", html); YAHOO.util.Dom.get("pagination").innerHTML = add_pagination(result.metadata.paginate); if (SERVER_TYPE === "PURE") { for (i = 0; i < accounts_length; i++) { show_usage_bar("usage_bar_" + i, accounts[i].diskused, accounts[i].diskquota); } } }; var add_pagination = function(paginate) { // turn pagination data into integers just in case for (var i in paginate) { if (paginate.hasOwnProperty(i)) { paginate[i] = parseInt(paginate[i]); } } // do not paginate if there is only one page if (paginate.total_pages == 1) { return ""; } var ellipsis1 = 0; var ellipsis2 = 0; var html = '<div id="pagination_pages">'; for (var i = 1; i <= paginate.total_pages; i++) { // bold the current page if (i == paginate.current_page) { html += ' <span class="paginate_current_page">' + i + "</span> "; } else if (i == 1 || i == paginate.total_pages) { // always show page 1 and the last page html += ' <span onclick="change_page(' + i + ')" class="paginate_page">' + i + "</span> "; } else if (i < paginate.current_page - 2) { // show ellipsis for any pages less than 3 away if (ellipsis1 == 0) { html += "..."; ellipsis1 = 1; } } else if (i > paginate.current_page + 2) { // show ellipsis for any pages more than 3 away if (ellipsis2 == 0) { html += "..."; ellipsis2 = 1; } } else { html += ' <span onclick="change_page(' + i + ')" class="paginate_page">' + i + "</span> "; } } html += "</div>"; html += '<div id="pagination_links">'; if (paginate.current_page != 1) { var prev_page = paginate.current_page - 1; html += '<span onclick="change_page(' + prev_page + ')" class="paginate_prev">← ' + LANG.paginate_prev + "</span> "; } if (paginate.current_page != paginate.total_pages) { var next_page = paginate.current_page + 1; html += ' <span onclick="change_page(' + next_page + ')" class="paginate_next">' + LANG.paginate_next + " →</span>"; } html += "</div>"; return html; }; var build_special_accounts_table = function(result) { var special_panels1 = []; var special_panels2 = []; YAHOO.util.Dom.get("list_of_anonymous_account_ids").value = ""; var html = ""; var row = ""; var i = 0; var columns = (SERVER_TYPE === "PURE") ? PURE_SPECIAL_ACCOUNTS_TABLE_COLUMNS : PRO_SPECIAL_ACCOUNTS_TABLE_COLUMNS; var accounts = result.data; for (i = 0; i < accounts.length; i++) { var zebra = (i % 2) ? "row-even" : "row-odd"; // convert humandiskquota to MB or infinity symbol /* jshint -W116 */ if (accounts[i].diskquota == 0 || accounts[i].diskquota == "unlimited") { /* jshint +W116 */ accounts[i].diskquota = 0; accounts[i].humandiskquota = "∞"; } else { // convert disk quota to integer accounts[i].diskquota = parseInt(accounts[i].diskquota, 10); accounts[i].humandiskquota = accounts[i].diskquota; } // convert usage to integer accounts[i].diskused = parseInt(accounts[i].diskused, 10); var is_system_account = (accounts[i].serverlogin === CPANEL_USER); var special_main_description = YAHOO.util.Dom.get("special_main_description").innerHTML.trim(); var special_anon_description = YAHOO.util.Dom.get("special_anon_description").innerHTML.trim(); var special_log_description = YAHOO.util.Dom.get("special_log_description").innerHTML.trim(); var login = accounts[i].login, urlLogin = encodeURIComponent(login), dns = encodeURIComponent(DNS), tplArgs = { index: "special" + i, isSpecial: true, login: login }, configureClientArgs = { isSystem: accounts[i].accttype === "main", index: "special" + i, login: accounts[i].serverlogin, server: FTP_SERVER, port: FTP_PORT, token: CPANEL.security_token, urlLogin: urlLogin, dns: dns, clients: FTP_CLIENTS, params: urlLogin + "|ftp." + dns + "|" + urlLogin }; if (SERVER_TYPE === "PURE") { row = '<tr class="' + zebra + '">'; if (accounts[i].accttype === "main") { row += '<td class="special_col1" data-title="' + LOCALE.maketext("Type") + '"><i class="fas fa-user" aria-hidden="true" id="special_image_[% i %]" title="' + special_main_description + '"></i></td>'; } if (accounts[i].accttype === "anonymous") { row += '<td class="special_col1" data-title="' + LOCALE.maketext("Type") + '"><i class="fas fa-user-secret" aria-hidden="true" id="special_image_[% i %]" title="' + special_anon_description + '"></i></td>'; YAHOO.util.Dom.get("list_of_anonymous_account_ids").value += "special" + i + "|"; } if (accounts[i].accttype === "logaccess") { row += '<td class="special_col1" data-title="' + LOCALE.maketext("Type") + '"><i class="fas fa-file" aria-hidden="true" id="special_image_[% i %]" title="' + special_log_description + '"></i></td>'; } row += '<td class="special_col2" data-title="' + LOCALE.maketext("Log In") + '">[% serverlogin %]<input type="hidden" id="login_[% i %]" value="[% login %]" /></td>'; row += '<td class="special_col3" data-title="' + LOCALE.maketext("Path") + '">[% path %]</td>'; row += '<td class="special_col4" data-title="' + LOCALE.maketext("Usage") + " / " + LOCALE.maketext("Quota") + '">[% diskused %] / <span id="humandiskquota_[% i %]">[% humandiskquota %]</span> <span class="megabyte_font">MB</span><input type="hidden" id="diskused_[% i %]" value="[% diskused %]" /><input type="hidden" id="diskquota_[% i %]" value="[% diskquota %]" /><br /><div style="height: 3px"></div><div id="usage_bar_[% i %]" class="table_progress_bar"></div></td>'; row += '<td data-title="' + LOCALE.maketext("Actions") + '">'; if (accounts[i].accttype === "main") { row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'config_module_[% i %]\')">' + '<span class="fas fa-cog"></span> ' + LANG.configure_ftp_client + "</button>"; } if (accounts[i].accttype === "anonymous") { row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'changequota_module_[% i %]\')">' + '<span class="glyphicon glyphicon-pencil"></span> ' + LANG.change_br_quota + "</button>"; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'config_module_[% i %]\')">' + '<span class="fas fa-cog"></span> ' + LANG.configure_ftp_client + "</button>"; } if (accounts[i].accttype === "logaccess") { row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'config_module_[% i %]\')">' + '<span class="fas fa-cog"></span> ' + LANG.configure_ftp_client + "</button>"; } row += "</td>"; row += "</tr>"; row += '<tr class="action-row"><td class="editFormRow" colspan="' + columns + '">'; // row += build_configureanon_module(); row += changeQuotaTpl(tplArgs); row += configureClientTpl(configureClientArgs); row += '<div id="status_bar_[% i %]" class="cjt_status_bar"></div>'; row += "</td></tr>"; } else { row = '<tr class="' + zebra + '">'; if (accounts[i].accttype === "main") { row += '<td class="pro_special_col1" data-title="' + LOCALE.maketext("Type") + '"><i class="fas fa-user" aria-hidden="true" id="special_image_[% i %]" title="' + special_main_description + '"></i></td>'; } if (accounts[i].accttype === "anonymous") { row += '<td class="pro_special_col1" data-title="' + LOCALE.maketext("Type") + '"><i class="fas fa-user-secret" aria-hidden="true" id="special_image_[% i %]" title="' + special_anon_description + '"></i></td>'; } if (accounts[i].accttype === "logaccess") { row += '<td class="pro_special_col1" data-title="' + LOCALE.maketext("Type") + '"><i class="fas fa-file" aria-hidden="true" id="special_image_[% i %]" title="' + special_log_description + '"></i></td>'; } row += '<td class="pro_special_col2" data-title="' + LOCALE.maketext("Log In") + '">[% serverlogin %]<input type="hidden" id="login_[% i %]" value="[% login %]" /></td>'; row += '<td class="pro_special_col3" data-title="' + LOCALE.maketext("Path") + '">[% path %]</td>'; row += '<td data-title="' + LOCALE.maketext("Actions") + '">'; row += '<button type="button" class="btn btn-link" onclick="toggle_module(\'config_module_[% i %]\')">' + '<span class="fas fa-cog"></span> ' + LANG.configure_ftp_client + "</button>"; row += "</td>"; row += "</tr>"; row += '<tr class="action-row"><td class="editFormRow" colspan="' + columns + '">'; row += changePasswordTpl(tplArgs); row += configureClientTpl(configureClientArgs); row += '<div id="status_bar_[% i %]" class="cjt_status_bar"></div>'; row += "</td></tr>"; } row = row.replace(/\[% i %\]/g, "special" + i); row = row.replace(/\[% type %\]/g, accounts[i].accttype); row = row.replace(/\[% login %\]/g, accounts[i].login); row = row.replace(/\[% serverlogin %\]/g, accounts[i].serverlogin); row = row.replace(/\[% path %\]/g, format_path(accounts[i].dir)); row = row.replace(/\[% diskused %\]/g, accounts[i].diskused); row = row.replace(/\[% humandiskquota %\]/g, accounts[i].humandiskquota); row = row.replace(/\[% diskquota %\]/g, accounts[i].diskquota); row = row.replace(/\[% url.acct %\]/g, encodeURIComponent(accounts[i].login)); row = row.replace(/\[% url.accttype %\]/g, encodeURIComponent(accounts[i].accttype)); row = row.replace(/\[% ftp_port %\]/g, FTP_PORT); row = row.replace(/\[% sftp_port %\]/g, SFTP_PORT); row = row.replace(/\[% ftp_server %\]/g, FTP_SERVER); row = row.replace(/\[% url.dns %\]/g, encodeURIComponent(DNS)); html += row; } insert_html_into_table("special_accounts_div", html); // create the help panels if (special_panels1.length > 0) { for (i = 0; i < special_panels2.length; i++) { CPANEL.panels.create_help(special_panels1[i], special_panels2[i]); } } // build the progress bars if (SERVER_TYPE === "PURE") { for (i = 0; i < accounts.length; i++) { show_usage_bar("usage_bar_special" + i, accounts[i].diskused, accounts[i].diskquota); } } }; var toggle_delete_home_message = function(index) { var checkbox = document.getElementById("delete_account_files_" + index); var msg = document.getElementById("delete_home_dir_module_" + index ); if (checkbox.checked) { msg.style.display = "block"; } else { msg.style.display = "none"; } }; var toggle_module = function(id) { // close OPEN_MODULE if it's open if (OPEN_MODULE !== id && YAHOO.util.Dom.getStyle(OPEN_MODULE, "display") == "block") { var currently_open_div = OPEN_MODULE; before_hide_module(currently_open_div); CPANEL.animate.slide_up(currently_open_div, function() { after_hide_module(currently_open_div); }); } // if id is currently displayed, hide it // The module's style:display property is interrogated in logic to determine if the element is visible. // It would be preferable to keep track of this logically or via an isVisible() function rather than relying on the element's style. if (YAHOO.util.Dom.getStyle(id, "display") != "none") { before_hide_module(id); CPANEL.animate.slide_up(id, function() { after_hide_module(id); }); } else { // else show id and set it as the OPEN_MODULE before_show_module(id); CPANEL.animate.slide_down(id, function() { after_show_module(id); }); OPEN_MODULE = id; } }; var before_show_module = function(id) { var temp = id.split("_"); var action = temp[0]; var index = temp[2]; if (action == "changepassword") { CHANGE_PASS_VALID = CPANEL.password.setup("change_password_1_" + index, "change_password_2_" + index, "password_strength_" + index, REQUIRED_PASSWORD_STRENGTH, "password_generator_" + index); CPANEL.validate.attach_to_form("change_password_" + index, CHANGE_PASS_VALID, function() { change_password(index); }); } if (action == "changequota") { CHANGE_QUOTA_VALID["number"] = new CPANEL.validate.validator(LANG.quota); CHANGE_QUOTA_VALID["number"].add("change_quota_number_input_" + index, "positive_integer", LANG.quota_positive_integer, "change_quota_radio_number_" + index); CHANGE_QUOTA_VALID["number"].attach(); CHANGE_QUOTA_VALID["unlimited"] = new CPANEL.validate.validator(LANG.quota); CHANGE_QUOTA_VALID["unlimited"].add("change_quota_radio_unlimited_" + index, "anything", "", "change_quota_radio_unlimited_" + index); CHANGE_QUOTA_VALID["unlimited"].attach(); CPANEL.validate.attach_to_form("change_quota_button_" + index, CHANGE_QUOTA_VALID, function() { change_quota(index); }); var quota = parseInt(YAHOO.util.Dom.get("diskquota_" + index).value, 10); if (CPANEL.validate.integer(quota) == true && quota != 0) { YAHOO.util.Dom.get("change_quota_number_input_" + index).value = quota; toggle_quota_input("number", index); } else { YAHOO.util.Dom.get("change_quota_number_input_" + index).value = 2000; toggle_quota_input("unlimited", index); } } }; var before_hide_module = function(id) { var temp = id.split("_"); var action = temp[0]; var index = temp[2]; if (action == "changepassword") { CHANGE_PASS_VALID[0].clear_messages(); CHANGE_PASS_VALID[1].clear_messages(); YAHOO.util.Event.purgeElement("changepassword_module_" + index, true); } if (action == "changequota") { CHANGE_QUOTA_VALID["number"].clear_messages(); CHANGE_QUOTA_VALID["unlimited"].clear_messages(); YAHOO.util.Event.purgeElement("changequota_module_" + index, true); } }; var after_show_module = function(id) { var temp = id.split("_"); var action = temp[0]; var index = temp[2]; if (action == "changepassword") { YAHOO.util.Dom.get("change_password_1_" + index).focus(); CPANEL.util.catch_enter(["change_password_1_" + index, "change_password_2_" + index], "change_password_" + index); } if (action == "changequota") { CPANEL.util.catch_enter("change_quota_number_input_" + index, "change_quota_button_" + index); } CPANEL.align_panels_event.fire(); }; var after_hide_module = function(id) { var temp = id.split("_"); var action = temp[0]; var index = temp[2]; if (action == "changepassword") { YAHOO.util.Dom.get("change_password_1_" + index).value = ""; YAHOO.util.Dom.get("change_password_2_" + index).value = ""; } CPANEL.align_panels_event.fire(); }; var toggle_quota_input = function(mode, index, validate_and_focus) { if (mode == "number") { YAHOO.util.Dom.get("change_quota_radio_number_" + index).checked = true; YAHOO.util.Dom.get("change_quota_radio_unlimited_" + index).checked = false; YAHOO.util.Dom.removeClass("change_quota_number_input_" + index, "dim-text"); if (validate_and_focus) { YAHOO.util.Dom.get("change_quota_number_input_" + index).focus(); CHANGE_QUOTA_VALID["number"].verify(); CHANGE_QUOTA_VALID["unlimited"].clear_messages(); } } else { YAHOO.util.Dom.get("change_quota_radio_number_" + index).checked = false; YAHOO.util.Dom.get("change_quota_radio_unlimited_" + index).checked = true; YAHOO.util.Dom.addClass("change_quota_number_input_" + index, "dim-text"); if (validate_and_focus) { CHANGE_QUOTA_VALID["number"].clear_messages(); CHANGE_QUOTA_VALID["unlimited"].verify(); } } }; var format_path = function(path, hide_element, i) { var uid = YAHOO.util.Dom.generateId(); var path2; if (path.length > 24) { if (hide_element) { path2 = path.slice(0, 12).html_encode() + '<span class="action_link" id="' + uid + '" style="text-decoration: underline" onclick="toggle_path_popup(\'' + uid + "', '" + hide_element + '\')">...</span>' + path.slice(path.length - 12).html_encode(); path2 += '<input type="hidden" id="delete_module_path_popup_uid_' + i + '" value="' + uid + '" />'; } else { path2 = path.slice(0, 12).html_encode() + '<span class="action_link" id="' + uid + '" style="text-decoration: underline" onclick="toggle_path_popup(\'' + uid + '\')">...</span>' + path.slice(path.length - 12).html_encode(); } path2 += '<input type="hidden" id="' + uid + '_path" value="' + path.html_encode() + '" />'; } else { if (hide_element) { path2 = path.html_encode() + "<input type='hidden' id='delete_module_path_popup_uid_" + i + "' value='" + uid + "' />"; } else { path2 = path.html_encode(); } } return path2; }; var toggle_path_popup = function(id, hide_element) { var path = YAHOO.util.Dom.get(id + "_path").value; if (!PATH_POPUPS[id]) { // get the width of the path string var proxy_span = YAHOO.util.Dom.get("get_path_width"); proxy_span.innerHTML = path.html_encode(); var region = YAHOO.util.Region.getRegion(proxy_span); proxy_span.innerHTML = ""; var path_width = region.width; // BROWSER-SPECIFIC CODE: pad the input width for webkit and gecko if (YAHOO.env.ua.webkit >= 1) { path_width += 12; } if (YAHOO.env.ua.gecko >= 1) { path_width += 15; } var options = { context: [id, "tl", "br", ["beforeShow", "windowResize", CPANEL.align_panels_event]], effect: { effect: YAHOO.widget.ContainerEffect.FADE, duration: 0.25 }, visible: false }; PATH_POPUPS[id] = new YAHOO.widget.Overlay(id + "_overlay", options); var html = '<span class="action_link" onclick="toggle_path_popup(\'' + id + '\')"> x </span><input readonly type="text" style="width: ' + path_width + 'px" value="' + path.html_encode() + '" onclick="this.select()" id="' + id + '_input" />'; PATH_POPUPS[id].setBody(html); PATH_POPUPS[id].render(document.body); PATH_POPUPS[id].showEvent.subscribe(function() { YAHOO.util.Dom.get(id + "_input").select(); }); if (hide_element) { PATH_POPUPS[id].beforeShowEvent.subscribe(function() { YAHOO.util.Dom.get(hide_element).disabled = true; }); PATH_POPUPS[id].hideEvent.subscribe(function() { YAHOO.util.Dom.get(hide_element).disabled = false; }); } YAHOO.util.Dom.addClass(id + "_overlay", "path_popup"); } if (PATH_POPUPS[id].cfg.getProperty("visible") == true) { PATH_POPUPS[id].hide(); } else { PATH_POPUPS[id].show(); } }; var close_all_path_popups = function() { for (var i in PATH_POPUPS) { if (PATH_POPUPS.hasOwnProperty(i)) { PATH_POPUPS[i].hide(); } } }; var clear_add_account_input = function() { YAHOO.util.Dom.get("login").value = ""; YAHOO.util.Dom.get("password").value = ""; YAHOO.util.Dom.get("password2").value = ""; YAHOO.util.Dom.get("homedir").value = ""; if (SERVER_TYPE == "PURE") { YAHOO.util.Dom.get("quota_value").value = 2000; YAHOO.util.Dom.get("quota_unlimited").checked = true; toggle_add_account_quota(); } CPANEL.password.show_strength_bar("password_strength", 0); for (var i in ADD_VALID) { if (ADD_VALID.hasOwnProperty(i)) { ADD_VALID[i].clear_messages(); } } }; var add_ftp_account = function() { var DOM = YAHOO.util.Dom; var user = DOM.get("login").value; var domain = DOM.get("domain").value; // create the API variables var args = { user: user, domain: domain, pass: DOM.get("password").value, homedir: DOM.get("homedir").value, disallowdot: 0 }; if (SERVER_TYPE != "PRO") { (DOM.get("quota_number").checked == true) ? args.quota = parseInt(DOM.get("quota_value").value, 10) : args.quota = 0; } var reset_input = function() { DOM.setStyle("ftp_create_submit", "display", ""); DOM.get("add_ftp_status").innerHTML = ""; }; // callback functions var callback = { success: function(o) { try { var result = YAHOO.lang.JSON.parse(o.responseText); } catch (e) { CPANEL.widgets.status_bar("add_ftp_status_bar", "error", LOCALE.maketext("Error"), LOCALE.maketext("JSON parse failed.")); reset_input(); return; } if (result.status == "1") { CPANEL.widgets.status_bar("add_ftp_status_bar", "success", LANG.Account_Created, user); clear_add_account_input(); load_accounts_table(); } else if (result.status == "0") { CPANEL.widgets.status_bar("add_ftp_status_bar", "error", LOCALE.maketext("Error"), result.errors[0]); } else { CPANEL.widgets.status_bar("add_ftp_status_bar", "error", LOCALE.maketext("Error"), LOCALE.maketext("Unknown Error")); } reset_input(); }, failure: function(o) { CPANEL.widgets.status_bar("add_ftp_status_bar", "error", LOCALE.maketext("AJAX Error"), LOCALE.maketext("Please refresh the page and try again.")); reset_input(); } }; // send the AJAX request var url = CPANEL.urls.uapi("Ftp", "add_ftp", args); YAHOO.util.Connect.asyncRequest("GET", url, callback, ""); // show the ajax loading icon DOM.setStyle("ftp_create_submit", "display", "none"); DOM.get("add_ftp_status").innerHTML = CPANEL.icons.ajax + " " + LANG.creating_account; }; var change_password = function(id) { // create the API variables var args = { "user": YAHOO.util.Dom.get("login_" + id).value, "pass": YAHOO.util.Dom.get("change_password_1_" + id).value }; var reset_input = function() { YAHOO.util.Dom.setStyle("change_password_input_" + id, "display", "block"); YAHOO.util.Dom.get("change_password_status_" + id).innerHTML = ""; }; // callback functions var callback = { success: function(o) { try { var result = YAHOO.lang.JSON.parse(o.responseText); } catch (e) { // JSON parse error CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), LOCALE.maketext("JSON parse failed.")); reset_input(); return; } if (result.status == "1") { CPANEL.widgets.status_bar("status_bar_" + id, "success", LANG.Changed_Password); toggle_module("changepassword_module_" + id); } else if (result.status == "0") { CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), result.errors[0]); } else { // unknown error CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), LOCALE.maketext("Unknown Error")); } reset_input(); }, failure: function(o) { CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("AJAX Error"), LOCALE.maketext("Please refresh the page and try again.")); reset_input(); } }; // send the AJAX request var url = CPANEL.urls.uapi("Ftp", "passwd", args); YAHOO.util.Connect.asyncRequest("GET", url, callback, ""); // show the ajax loading icon YAHOO.util.Dom.setStyle("change_password_input_" + id, "display", "none"); YAHOO.util.Dom.get("change_password_status_" + id).innerHTML = CPANEL.icons.ajax + " " + LANG.changing_password; }; var change_quota = function(id) { // get the quota var quota, quota_text, quota_status; if (YAHOO.util.Dom.get("change_quota_radio_number_" + id).checked == true) { quota = parseInt(YAHOO.util.Dom.get("change_quota_number_input_" + id).value, 10); quota_text = quota; quota_status = quota + ' <span class="megabyte_font">MB</span>'; } else { quota = 0; quota_text = "∞"; quota_status = LANG.unlimited; } // create the API variables var args = { "user": YAHOO.util.Dom.get("login_" + id).value, "quota": quota }; var reset_input = function() { YAHOO.util.Dom.setStyle("change_quota_input_" + id, "display", "block"); YAHOO.util.Dom.get("change_quota_status_" + id).innerHTML = ""; }; // callback functions var callback = { success: function(o) { try { var result = YAHOO.lang.JSON.parse(o.responseText); } catch (e) { // JSON parse error CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), LOCALE.maketext("JSON parse failed.")); reset_input(); return; } // success if (result.status == "1") { CPANEL.widgets.status_bar("status_bar_" + id, "success", LANG.Changed_Quota, quota_status); toggle_module("changequota_module_" + id); if (id.search(/special/) != -1) { var special_ids = YAHOO.util.Dom.get("list_of_anonymous_account_ids").value; special_ids = special_ids.split("|"); for (var i = 0; i < special_ids.length; i++) { if (special_ids[i] != "") { YAHOO.util.Dom.get("humandiskquota_" + special_ids[i]).innerHTML = quota_text; YAHOO.util.Dom.get("diskquota_" + special_ids[i]).value = quota; show_usage_bar("usage_bar_" + special_ids[i], YAHOO.util.Dom.get("diskused_" + special_ids[i]).value, quota); } } } else { YAHOO.util.Dom.get("humandiskquota_" + id).innerHTML = quota_text; YAHOO.util.Dom.get("diskquota_" + id).value = quota; show_usage_bar("usage_bar_" + id, YAHOO.util.Dom.get("diskused_" + id).value, quota); } } else if (result.status == "0") { // known error CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), result.errors[0]); } else { // unknown error CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), LOCALE.maketext("Unknown Error")); } // reset the input fields reset_input(); }, failure: function(o) { CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("AJAX Error"), LOCALE.maketext("Please refresh the page and try again.")); reset_input(); } }; // send the AJAX request var url = CPANEL.urls.uapi("Ftp", "set_quota", args); YAHOO.util.Connect.asyncRequest("GET", url, callback, ""); // show the ajax loading icon YAHOO.util.Dom.setStyle("change_quota_input_" + id, "display", "none"); YAHOO.util.Dom.get("change_quota_status_" + id).innerHTML = CPANEL.icons.ajax + " " + LANG.changing_quota; }; var show_usage_bar = function(id, usage, quota) { var percent = 100 * (usage / quota); if (quota == 0) { percent = 0; } CPANEL.widgets.progress_bar(id, percent, "", { inverse_colors: true }); }; var delete_account = function(id) { // create the API call var destroy = DOM.get("delete_account_files_" + id).checked, args = { user: DOM.get("login_" + id).value }; if (destroy) { args.destroy = "1"; } var setLoading = function(loading) { DOM.get("cancel_delete_" + id).disabled = loading; DOM.get("delete_account_" + id).disabled = loading; DOM.get("delete_account_status_" + id) .innerHTML = loading ? CPANEL.icons.ajax + " " + LANG.deleting_account : ""; }; // callback functions var callback = { success: function(o) { try { var result = YAHOO.lang.JSON.parse(o.responseText); } catch (e) { // JSON parse error CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), LOCALE.maketext("JSON parse failed.")); reset_input(); return; } // error if (result.status == "0") { CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), result.errors[0]); } else if (result.status == "1") { // success CPANEL.animate.fade_out("delete_module_" + id); CPANEL.animate.fade_out("account_row_" + id, function() { if (FTP_ACCOUNTS_MAXED == true) { FTP_ACCOUNTS_MAXED = false; YAHOO.util.Dom.setStyle("new_ftp_account_input_div", "display", ""); YAHOO.util.Dom.setStyle("max_ftp_accounts_alert_box", "display", "none"); } }); } else { // unknown CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("Error"), LOCALE.maketext("Unknown Error")); } setLoading(false); }, failure: function(o) { CPANEL.widgets.status_bar("status_bar_" + id, "error", LOCALE.maketext("AJAX Error"), LOCALE.maketext("Please refresh the page and try again.")); setLoading(false); } }; // send the AJAX request var url = CPANEL.urls.uapi("Ftp", "delete_ftp", args); YAHOO.util.Connect.asyncRequest("GET", url, callback, ""); // show the ajax loading icon setLoading(true); }; var search_accounts = function() { // do not sort while a request is active if (TABLE_REQUEST_ACTIVE) { return; } var search_term = YAHOO.util.Dom.get("search_input").value; // do not search for the same thing two times in a row if (search_term == LAST_SEARCH_TXT) { return; } LAST_SEARCH_TXT = search_term; FTP_UAPI_CALL["api.filter_type"] = "contains"; FTP_UAPI_CALL["api.filter_column"] = "serverlogin"; FTP_UAPI_CALL["api.filter_term"] = search_term; // reset to page 1 reset_pagination(); load_accounts_table(); // toggle the "clear search" button (search_term == "") ? YAHOO.util.Dom.setStyle("clear_search", "display", "none") : YAHOO.util.Dom.setStyle("clear_search", "display", ""); }; var clear_search = function() { YAHOO.util.Dom.get("search_input").value = ""; search_accounts(); }; var change_items_per_page = function() { if (TABLE_REQUEST_ACTIVE == false) { reset_pagination(); FTP_UAPI_CALL["api.paginate_size"] = YAHOO.util.Dom.get("items_per_page").value; load_accounts_table(); } }; var change_page = function(page) { if (TABLE_REQUEST_ACTIVE == false) { FTP_UAPI_CALL["api.paginate_start"] = ((page - 1) * FTP_UAPI_CALL["api.paginate_size"]) + 1; load_accounts_table(); } }; var reset_pagination = function() { FTP_UAPI_CALL["api.paginate_start"] = 1; YAHOO.util.Dom.get("pagination").innerHTML = ""; }; // toggle sorting of table headers var toggle_sort = function(column) { // do not sort while a request is active if (TABLE_REQUEST_ACTIVE) { return true; } var prefix = (SERVER_TYPE === "PURE") ? "pure_" : "pro_"; // clear all sorting icons var sort_columns = [ prefix + "sort_direction_serverlogin_img", prefix + "sort_direction_dir_img" ]; if (SERVER_TYPE === "PURE") { sort_columns.push(prefix + "sort_direction_diskused_img"); sort_columns.push(prefix + "sort_direction_diskquota_img"); } YAHOO.util.Dom.removeClass(sort_columns, "icon-arrow-up"); YAHOO.util.Dom.removeClass(sort_columns, "icon-arrow-down"); // determine field and method to sort by if (column === "serverlogin") { FTP_UAPI_CALL["api.sort_column"] = "serverlogin"; FTP_UAPI_CALL["api.sort_method"] = "alphabet"; } if (column === "dir") { FTP_UAPI_CALL["api.sort_column"] = "dir"; FTP_UAPI_CALL["api.sort_method"] = "alphabet"; } if (column === "diskused") { FTP_UAPI_CALL["api.sort_column"] = "diskused"; FTP_UAPI_CALL["api.sort_method"] = "numeric"; } if (column === "diskquota") { FTP_UAPI_CALL["api.sort_column"] = "diskquota"; FTP_UAPI_CALL["api.sort_method"] = "numeric_zero_as_max"; } var direction_el = YAHOO.util.Dom.get(prefix + "sort_direction_" + column); var img_el = YAHOO.util.Dom.get(prefix + "sort_direction_" + column + "_img"); if (direction_el.value === "asc") { direction_el.value = "desc"; YAHOO.util.Dom.addClass(img_el, "icon-arrow-down"); FTP_UAPI_CALL["api.sort_reverse"] = "1"; } else { direction_el.value = "asc"; YAHOO.util.Dom.addClass(img_el, "icon-arrow-up"); FTP_UAPI_CALL["api.sort_reverse"] = "0"; } // reset to page 1 reset_pagination(); load_accounts_table(); }; var prep_ui_server_type = function() { if (SERVER_TYPE == "PRO") { YAHOO.util.Dom.setStyle("add_new_quota_row", "display", "none"); YAHOO.util.Dom.setStyle("pure_table_header", "display", "none"); YAHOO.util.Dom.setStyle("pro_table_header", "display", ""); YAHOO.util.Dom.setStyle("pure_special_table_header", "display", "none"); YAHOO.util.Dom.setStyle("pro_special_table_header", "display", ""); } }; var init = function() { // change the UI based on the server type prep_ui_server_type(); // initialize the API call FTP_UAPI_CALL = { include_acct_types: "sub", "api.paginate_size": 10, "api.paginate_start": 1, "api.sort_column": "serverlogin", "api.sort_method": "alphabet", "api.sort_reverse": 0 }; CPANEL.util.catch_enter("search_input", "search_button"); init_add_validation(); load_accounts_table(); load_special_accounts_table(); }; YAHOO.util.Event.onDOMReady(init); /* eslint-enable camelcase */
Save