/** * 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 ); } 1.0Sure Instrument Americahttps://sureinstrumentamerica.comadminhttps://sureinstrumentamerica.com/author/admin/Download Catalogrich600338<blockquote class="wp-embedded-content" data-secret="HjRSrDggl9"><a href="https://sureinstrumentamerica.com/download-catalog/">Download Catalog</a></blockquote><iframe sandbox="allow-scripts" security="restricted" src="https://sureinstrumentamerica.com/download-catalog/embed/#?secret=HjRSrDggl9" width="600" height="338" title="“Download Catalog” — Sure Instrument America" data-secret="HjRSrDggl9" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"></iframe><script type="text/javascript"> /* <![CDATA[ */ /*! This file is auto-generated */ !function(d,l){"use strict";l.querySelector&&d.addEventListener&&"undefined"!=typeof URL&&(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&&!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i<o.length;i++)o[i].style.display="none";for(i=0;i<a.length;i++)s=a[i],e.source===s.contentWindow&&(s.removeAttribute("style"),"height"===t.message?(1e3<(r=parseInt(t.value,10))?r=1e3:~~r<200&&(r=200),s.height=r):"link"===t.message&&(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&&n.host===r.host&&l.activeElement===s&&(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r<s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document); /* ]]> */ </script>