/**
* Batch Processor JS Object
*/
function NinjaBatchProcessor( settings ) {
var that = this;
var modalData = {
closeOnClick: false,
closeOnEsc: true,
useProgressBar: true
};
/**
* If we haven't been passed any content, make sure we pass an empty content var.
*/
if ( 'undefined' == typeof settings.content ) {
settings.content = '';
}
// Set our modalData content var.
modalData.content = settings.content;
/**
* If we've been passed a loadingText var, pass that along.
*/
if ( 'undefined' != typeof settings.loadingText ) {
modalData.loadingText = settings.loadingText;
}
/**
* If we haven't defined button text for our primary button, we don't want to pass button settings.
*
* Check to see if we've defined primary button text, and if we have, add button settings to the modalData.
*/
if ( 'undefined' != typeof settings.btnPrimaryText ) {
modalData.btnPrimary = {
text: settings.btnPrimaryText,
callback: function( e ) {
// Hide the buttons.
modalInstance.maybeShowActions( false );
// Show the progress bar.
modalInstance.maybeShowProgress( true );
// Begin our cleanup process.
that.postToProcessor( that, -1, modalInstance );
}
};
modalData.btnSecondary = {
text: settings.btnSecondaryText,
callback: function( e ) {
modalInstance.toggleModal( false );
}
};
} else { // If we don't have any buttons defined, then we want to run the batch process on modal open.
modalData.onOpenCallback = function() {
// Hide the buttons.
this.maybeShowActions( false );
// Show the progress bar.
this.maybeShowProgress( true );
// Begin our cleanup process.
that.postToProcessor( that, -1, this );
}
}
this.postToProcessor = function( context, steps, modal, data ) {
if ( 'undefined' == typeof data ) {
var data = {
action: 'nf_batch_process',
batch_type: settings.batch_type,
security: nfAdmin.batchNonce,
extraData: settings.extraData
};
}
jQuery.post( ajaxurl, data, function( response ) {
response = JSON.parse( response );
// If we're done...
if ( response.batch_complete ) {
// Push our progress bar to 100%.
modal.setProgress( 100 );
modal.toggleModal( false );
if ( 'undefined' != typeof settings.onCompleteCallback ) {
settings.onCompleteCallback( response );
}
// Exit.
return false;
}
// If we do not yet have a determined number of steps...
if ( -1 == steps ) {
// If step_toal is defined...
if ( 'undefined' != typeof response.step_total ) {
// Use the step_total.
steps = response.step_total;
} // Otherwise... (step_total is not defined)
else {
// Use step_remaining.
steps = response.step_remaining;
}
}
// If our PHP edited our extraData variable, update our JS var and pass it along.
if ( 'undefined' != typeof response.extraData ) {
// Update our extraData property.
data.extraData = response.extraData;
}
// Calculate our current step.
var step = steps - response.step_remaining;
// Calculate our maximum progress for this step.
var maxProgress = Math.round( step / steps * 100 );
// Increment the progress.
modal.incrementProgress ( maxProgress );
// Recall our function...
context.postToProcessor( context, steps, modal, data );
} );
}
var modalInstance = new NinjaModal( modalData );
}{"id":302,"date":"2021-10-11T05:23:59","date_gmt":"2021-10-11T05:23:59","guid":{"rendered":"https:\/\/sureinstrumentamerica.com\/?page_id=302"},"modified":"2021-10-22T05:05:43","modified_gmt":"2021-10-22T05:05:43","slug":"customization","status":"publish","type":"page","link":"https:\/\/sureinstrumentamerica.com\/customization\/","title":{"rendered":"Customization"},"content":{"rendered":"