( function ( localized ) {
function ready( fn ) {
if ( document.readyState !== 'loading' ) {
fn();
} else {
document.addEventListener( 'DOMContentLoaded', fn );
}
}
function fetch_scan_treats_and_add_link() {
var xhrRequest = new XMLHttpRequest();
xhrRequest.open( 'GET', localized.scan_endpoint, true );
xhrRequest.onload = function () {
if ( this.status === 200 ) {
// Success!
var body = JSON.parse( this.response );
if ( body && body.data ) {
var apiResponse = JSON.parse( body.data );
var numberOfThreats =
apiResponse.threats && apiResponse.threats.length ? apiResponse.threats.length : 0;
update_threats_link( numberOfThreats );
} else {
update_threats_link( 0 );
}
} else {
update_threats_link( 0 );
}
};
xhrRequest.setRequestHeader( 'X-WP-Nonce', localized.nonce );
xhrRequest.send();
}
ready( function () {
fetch_scan_treats_and_add_link();
} );
function update_threats_link( numberOfThreats ) {
var element = document.getElementById( 'wp-admin-bar-jetpack-scan-notice' );
if ( ! element ) {
return;
}
if ( ! numberOfThreats ) {
element.parentNode.removeChild( element );
return;
}
var textLabel = numberOfThreats === 1 ? localized.singular : localized.multiple;
element.innerHTML =
'<a href="' + localized.scan_dashboard_url + '" class="ab-item">' + textLabel + '</a>';
}
} )( window.Jetpack_Scan );