Create New Item
×
Item Type
File
Folder
Item Name
×
Search file in folder and subfolders...
File Manager
/
wp-content
/
plugins
/
wp-smushit
/
_src
/
js
/
modules
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
/* global WP_Smush */ /* global ajaxurl */ /* global wp_smush_msgs */ /** * Helpers functions. * * @since 2.9.0 Moved from admin.js */ (function() { "use strict"; WP_Smush.helpers = { init: () => {}, /** * Convert bytes to human readable form. * * @param {number} a Bytes * @param {number} b Number of digits * @return {*} Formatted Bytes */ formatBytes: (a, b) => { const thresh = 1024, units = ["KB", "MB", "GB", "TB", "PB"]; if (Math.abs(a) < thresh) { return a + " B"; } let u = -1; do { a /= thresh; ++u; } while (Math.abs(a) >= thresh && u < units.length - 1); return a.toFixed(b) + " " + units[u]; }, /** * Get size from a string. * * @param {string} formattedSize Formatter string * @return {*} Formatted Bytes */ getSizeFromString: formattedSize => { return formattedSize.replace(/[a-zA-Z]/g, "").trim(); }, /** * Get type from formatted string. * * @param {string} formattedSize Formatted string * @return {*} Formatted Bytes */ getFormatFromString: formattedSize => { return formattedSize.replace(/[0-9.]/g, "").trim(); }, /** * Stackoverflow: http://stackoverflow.com/questions/1726630/formatting-a-number-with-exactly-two-decimals-in-javascript * * @param {number} num * @param {number} decimals * @return {number} Number */ precise_round: (num, decimals) => { const sign = num >= 0 ? 1 : -1; // Keep the percentage below 100. num = num > 100 ? 100 : num; return ( Math.round(num * Math.pow(10, decimals) + sign * 0.001) / Math.pow(10, decimals) ); }, /** * Reset settings. * * @since 3.2.0 */ resetSettings: () => { const _nonce = document.getElementById("wp_smush_reset"); const xhr = new XMLHttpRequest(); xhr.open("POST", ajaxurl + "?action=reset_settings", true); xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); xhr.onload = () => { if (200 === xhr.status) { const res = JSON.parse(xhr.response); if ("undefined" !== typeof res.success && res.success) { window.location.href = wp_smush_msgs.smush_url; } } else { window.console.log( "Request failed. Returned status of " + xhr.status ); } }; xhr.send("_ajax_nonce=" + _nonce.value); } }; WP_Smush.helpers.init(); })();