Edit File by line

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in /home/sportsfever/public_html/filemanger/function.php on line 93
/home/sportsfe.../httpdocs/clone/wp-conte.../plugins/wp-smush.../_src/js/smush
File: directory-scanner.js
/* global WP_Smush */
[0] Fix | Delete
/* global ajaxurl */
[1] Fix | Delete
[2] Fix | Delete
/**
[3] Fix | Delete
* Directory scanner module that will Smush images in the Directory Smush modal.
[4] Fix | Delete
*
[5] Fix | Delete
* @since 2.8.1
[6] Fix | Delete
*
[7] Fix | Delete
* @param {string|number} totalSteps
[8] Fix | Delete
* @param {string|number} currentStep
[9] Fix | Delete
* @return {Object} Scan object.
[10] Fix | Delete
* @class
[11] Fix | Delete
*/
[12] Fix | Delete
const DirectoryScanner = ( totalSteps, currentStep ) => {
[13] Fix | Delete
totalSteps = parseInt( totalSteps );
[14] Fix | Delete
currentStep = parseInt( currentStep );
[15] Fix | Delete
[16] Fix | Delete
let cancelling = false,
[17] Fix | Delete
failedItems = 0,
[18] Fix | Delete
skippedItems = 0;
[19] Fix | Delete
[20] Fix | Delete
const obj = {
[21] Fix | Delete
scan() {
[22] Fix | Delete
const remainingSteps = totalSteps - currentStep;
[23] Fix | Delete
if ( currentStep !== 0 ) {
[24] Fix | Delete
// Scan started on a previous page load.
[25] Fix | Delete
step( remainingSteps ).fail( this.showScanError );
[26] Fix | Delete
} else {
[27] Fix | Delete
jQuery
[28] Fix | Delete
.post( ajaxurl, {
[29] Fix | Delete
action: 'directory_smush_start',
[30] Fix | Delete
_ajax_nonce: window.wp_smush_msgs.nonce
[31] Fix | Delete
}, () =>
[32] Fix | Delete
step( remainingSteps ).fail( this.showScanError )
[33] Fix | Delete
)
[34] Fix | Delete
.fail( this.showScanError );
[35] Fix | Delete
}
[36] Fix | Delete
},
[37] Fix | Delete
[38] Fix | Delete
cancel() {
[39] Fix | Delete
cancelling = true;
[40] Fix | Delete
return jQuery.post( ajaxurl, {
[41] Fix | Delete
action: 'directory_smush_cancel',
[42] Fix | Delete
_ajax_nonce: window.wp_smush_msgs.nonce
[43] Fix | Delete
} );
[44] Fix | Delete
},
[45] Fix | Delete
[46] Fix | Delete
getProgress() {
[47] Fix | Delete
if ( cancelling ) {
[48] Fix | Delete
return 0;
[49] Fix | Delete
}
[50] Fix | Delete
// O M G ... Logic at it's finest!
[51] Fix | Delete
const remainingSteps = totalSteps - currentStep;
[52] Fix | Delete
return Math.min(
[53] Fix | Delete
Math.round(
[54] Fix | Delete
( parseInt( totalSteps - remainingSteps ) * 100 ) /
[55] Fix | Delete
totalSteps
[56] Fix | Delete
),
[57] Fix | Delete
99
[58] Fix | Delete
);
[59] Fix | Delete
},
[60] Fix | Delete
[61] Fix | Delete
onFinishStep( progress ) {
[62] Fix | Delete
jQuery( '.wp-smush-progress-dialog .sui-progress-state-text' ).html(
[63] Fix | Delete
currentStep -
[64] Fix | Delete
failedItems +
[65] Fix | Delete
'/' +
[66] Fix | Delete
totalSteps +
[67] Fix | Delete
' ' +
[68] Fix | Delete
window.wp_smush_msgs.progress_smushed
[69] Fix | Delete
);
[70] Fix | Delete
WP_Smush.directory.updateProgressBar( progress );
[71] Fix | Delete
},
[72] Fix | Delete
[73] Fix | Delete
onFinish() {
[74] Fix | Delete
WP_Smush.directory.updateProgressBar( 100 );
[75] Fix | Delete
window.location.href =
[76] Fix | Delete
window.wp_smush_msgs.directory_url + '&scan=done';
[77] Fix | Delete
},
[78] Fix | Delete
[79] Fix | Delete
/**
[80] Fix | Delete
* Displays an error when the scan request fails.
[81] Fix | Delete
*
[82] Fix | Delete
* @param {Object} res XHR object.
[83] Fix | Delete
*/
[84] Fix | Delete
showScanError( res ) {
[85] Fix | Delete
const dialog = jQuery( '#wp-smush-progress-dialog' );
[86] Fix | Delete
[87] Fix | Delete
// Add the error class to show/hide elements in the dialog.
[88] Fix | Delete
dialog
[89] Fix | Delete
.removeClass( 'wp-smush-exceed-limit' )
[90] Fix | Delete
.addClass( 'wp-smush-scan-error' );
[91] Fix | Delete
[92] Fix | Delete
// Add the error status and description to the error message.
[93] Fix | Delete
dialog
[94] Fix | Delete
.find( '#smush-scan-error' )
[95] Fix | Delete
.text( `${ res.status } ${ res.statusText }` );
[96] Fix | Delete
[97] Fix | Delete
// Show/hide the 403 error specific instructions.
[98] Fix | Delete
const forbiddenMessage = dialog.find( '.smush-403-error-message' );
[99] Fix | Delete
if ( 403 !== res.status ) {
[100] Fix | Delete
forbiddenMessage.addClass( 'sui-hidden' );
[101] Fix | Delete
} else {
[102] Fix | Delete
forbiddenMessage.removeClass( 'sui-hidden' );
[103] Fix | Delete
}
[104] Fix | Delete
},
[105] Fix | Delete
[106] Fix | Delete
limitReached() {
[107] Fix | Delete
const dialog = jQuery( '#wp-smush-progress-dialog' );
[108] Fix | Delete
[109] Fix | Delete
dialog.addClass( 'wp-smush-exceed-limit' );
[110] Fix | Delete
dialog
[111] Fix | Delete
.find( '#cancel-directory-smush' )
[112] Fix | Delete
.attr( 'data-tooltip', window.wp_smush_msgs.bulk_resume );
[113] Fix | Delete
dialog
[114] Fix | Delete
.find( '.sui-box-body .sui-icon-close' )
[115] Fix | Delete
.removeClass( 'sui-icon-close' )
[116] Fix | Delete
.addClass( 'sui-icon-play' );
[117] Fix | Delete
dialog
[118] Fix | Delete
.find( '#cancel-directory-smush' )
[119] Fix | Delete
.attr( 'id', 'cancel-directory-smush-disabled' );
[120] Fix | Delete
},
[121] Fix | Delete
[122] Fix | Delete
resume() {
[123] Fix | Delete
const dialog = jQuery( '#wp-smush-progress-dialog' );
[124] Fix | Delete
const resume = dialog.find( '#cancel-directory-smush-disabled' );
[125] Fix | Delete
[126] Fix | Delete
dialog.removeClass( 'wp-smush-exceed-limit' );
[127] Fix | Delete
dialog
[128] Fix | Delete
.find( '.sui-box-body .sui-icon-play' )
[129] Fix | Delete
.removeClass( 'sui-icon-play' )
[130] Fix | Delete
.addClass( 'sui-icon-close' );
[131] Fix | Delete
resume.attr( 'data-tooltip', 'Cancel' );
[132] Fix | Delete
resume.attr( 'id', 'cancel-directory-smush' );
[133] Fix | Delete
[134] Fix | Delete
obj.scan();
[135] Fix | Delete
},
[136] Fix | Delete
};
[137] Fix | Delete
[138] Fix | Delete
/**
[139] Fix | Delete
* Execute a scan step recursively
[140] Fix | Delete
*
[141] Fix | Delete
* Private to avoid overriding
[142] Fix | Delete
*
[143] Fix | Delete
* @param {number} remainingSteps
[144] Fix | Delete
*/
[145] Fix | Delete
const step = function( remainingSteps ) {
[146] Fix | Delete
if ( remainingSteps >= 0 ) {
[147] Fix | Delete
currentStep = totalSteps - remainingSteps;
[148] Fix | Delete
return jQuery.post(
[149] Fix | Delete
ajaxurl,
[150] Fix | Delete
{
[151] Fix | Delete
action: 'directory_smush_check_step',
[152] Fix | Delete
_ajax_nonce: window.wp_smush_msgs.nonce,
[153] Fix | Delete
step: currentStep,
[154] Fix | Delete
},
[155] Fix | Delete
( response ) => {
[156] Fix | Delete
// We're good - continue on.
[157] Fix | Delete
if (
[158] Fix | Delete
'undefined' !== typeof response.success &&
[159] Fix | Delete
response.success
[160] Fix | Delete
) {
[161] Fix | Delete
if (
[162] Fix | Delete
'undefined' !== typeof response.data &&
[163] Fix | Delete
'undefined' !== typeof response.data.skipped &&
[164] Fix | Delete
true === response.data.skipped
[165] Fix | Delete
) {
[166] Fix | Delete
skippedItems++;
[167] Fix | Delete
}
[168] Fix | Delete
[169] Fix | Delete
currentStep++;
[170] Fix | Delete
remainingSteps = remainingSteps - 1;
[171] Fix | Delete
obj.onFinishStep( obj.getProgress() );
[172] Fix | Delete
step( remainingSteps ).fail( obj.showScanError );
[173] Fix | Delete
} else if (
[174] Fix | Delete
'undefined' !== typeof response.data.error &&
[175] Fix | Delete
'dir_smush_limit_exceeded' === response.data.error
[176] Fix | Delete
) {
[177] Fix | Delete
// Limit reached. Stop.
[178] Fix | Delete
obj.limitReached();
[179] Fix | Delete
} else {
[180] Fix | Delete
// Error? never mind, continue, but count them.
[181] Fix | Delete
failedItems++;
[182] Fix | Delete
currentStep++;
[183] Fix | Delete
remainingSteps = remainingSteps - 1;
[184] Fix | Delete
obj.onFinishStep( obj.getProgress() );
[185] Fix | Delete
step( remainingSteps ).fail( obj.showScanError );
[186] Fix | Delete
}
[187] Fix | Delete
}
[188] Fix | Delete
);
[189] Fix | Delete
}
[190] Fix | Delete
return jQuery.post(
[191] Fix | Delete
ajaxurl,
[192] Fix | Delete
{
[193] Fix | Delete
action: 'directory_smush_finish',
[194] Fix | Delete
_ajax_nonce: window.wp_smush_msgs.nonce,
[195] Fix | Delete
items: totalSteps - ( failedItems + skippedItems ),
[196] Fix | Delete
failed: failedItems,
[197] Fix | Delete
skipped: skippedItems,
[198] Fix | Delete
},
[199] Fix | Delete
( response ) => obj.onFinish( response )
[200] Fix | Delete
);
[201] Fix | Delete
};
[202] Fix | Delete
[203] Fix | Delete
return obj;
[204] Fix | Delete
};
[205] Fix | Delete
[206] Fix | Delete
export default DirectoryScanner;
[207] Fix | Delete
[208] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function