File "helpers.js"
Full path: /home/satitravel/public_html/wp-content/plugins/wp-smushit/_src/js/modules/helpers.js
File
size: 2.55 B
MIME-type: text/plain
Charset: utf-8
Download Open Edit Advanced Editor &nnbsp; Back
/* 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();
})();