81 lines
2.5 KiB
JavaScript
81 lines
2.5 KiB
JavaScript
/* global jetpackSiteHealth */
|
|
/**
|
|
* This script runs on the site health page.
|
|
*/
|
|
|
|
jQuery( document ).ready( function( $ ) {
|
|
var JetpackSync = {
|
|
inProgress: true,
|
|
progressPercent: 0,
|
|
interval: false,
|
|
init: function() {
|
|
JetpackSync.progressPercent = parseInt( jetpackSiteHealth.progressPercent );
|
|
JetpackSync.setProgress();
|
|
JetpackSync.interval = setInterval( JetpackSync.checkProgress, 3000 );
|
|
$( 'body' ).on(
|
|
'click',
|
|
'[aria-controls=health-check-accordion-block-jetpack_test__full_sync_health]',
|
|
JetpackSync.setProgress
|
|
);
|
|
},
|
|
accordionButton: function() {
|
|
return $( '[aria-controls=health-check-accordion-block-jetpack_test__full_sync_health]' );
|
|
},
|
|
accordionIsOpen: function() {
|
|
return JetpackSync.accordionButton().attr( 'aria-expanded' );
|
|
},
|
|
checkProgress: function() {
|
|
$.post( jetpackSiteHealth.ajaxUrl, { action: 'jetpack_sync_progress_check' }, function(
|
|
response
|
|
) {
|
|
if ( 'done' === response ) {
|
|
clearInterval( JetpackSync.interval );
|
|
if ( JetpackSync.inProgress ) {
|
|
JetpackSync.progressPercent = 100;
|
|
JetpackSync.setProgress();
|
|
}
|
|
JetpackSync.inProgress = false;
|
|
return;
|
|
}
|
|
JetpackSync.inProgress = true;
|
|
JetpackSync.progressPercent = parseInt( response );
|
|
JetpackSync.setProgress();
|
|
} );
|
|
},
|
|
setProgress: function() {
|
|
if ( 'true' === JetpackSync.accordionIsOpen() ) {
|
|
// When the accordion is open, we remove the progress percentage from the accordion heading,
|
|
// and show a progress bar in the accordion body.
|
|
$( '.jetpack-sync-progress-bar' ).progressbar( { value: JetpackSync.progressPercent } );
|
|
$( '.jetpack-sync-progress-label' ).text( JetpackSync.progressPercent + '%' );
|
|
JetpackSync.accordionButton()
|
|
.find( '.title' )
|
|
.text( jetpackSiteHealth.syncProgressHeading );
|
|
} else {
|
|
// When the accordion is closed, we show the progress percentage in the accordion heading.
|
|
JetpackSync.accordionButton()
|
|
.find( '.title' )
|
|
.text(
|
|
jetpackSiteHealth.syncProgressHeading + ' - ' + JetpackSync.progressPercent + '%'
|
|
);
|
|
}
|
|
},
|
|
};
|
|
|
|
if ( jetpackSiteHealth.progressPercent ) {
|
|
setTimeout( function() {
|
|
JetpackSync.init();
|
|
}, 5000 );
|
|
}
|
|
|
|
$( 'body' ).on( 'click', '#full_sync_request_link', function() {
|
|
var data = {
|
|
action: 'jetpack_debugger_full_sync_start',
|
|
'site-health-nonce': jetpackSiteHealth.fullSyncNonce,
|
|
};
|
|
$.post( jetpackSiteHealth.ajaxUrl, data, function( response ) {
|
|
window.location.reload( true );
|
|
} );
|
|
} );
|
|
} );
|