Nessuna descrizione

admin-bar-notice.js 1.4KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. ( function ( localized ) {
  2. function ready( fn ) {
  3. if ( document.readyState != 'loading' ) {
  4. fn();
  5. } else {
  6. document.addEventListener( 'DOMContentLoaded', fn );
  7. }
  8. }
  9. function fetch_scan_treats_and_add_link() {
  10. var xhrRequest = new XMLHttpRequest();
  11. xhrRequest.open( 'GET', localized.scan_endpoint, true );
  12. xhrRequest.onload = function () {
  13. if ( this.status == 200 ) {
  14. // Success!
  15. var body = JSON.parse( this.response );
  16. if ( body && body.data ) {
  17. var apiResponse = JSON.parse( body.data );
  18. var numberOfThreats =
  19. apiResponse.threats && apiResponse.threats.length ? apiResponse.threats.length : 0;
  20. update_threats_link( numberOfThreats );
  21. } else {
  22. update_threats_link( 0 );
  23. }
  24. } else {
  25. update_threats_link( 0 );
  26. }
  27. };
  28. xhrRequest.setRequestHeader( 'X-WP-Nonce', localized.nonce );
  29. xhrRequest.send();
  30. }
  31. ready( function () {
  32. fetch_scan_treats_and_add_link();
  33. } );
  34. function update_threats_link( numberOfThreats ) {
  35. var element = document.getElementById( 'wp-admin-bar-jetpack-scan-notice' );
  36. if ( ! element ) {
  37. return;
  38. }
  39. if ( ! numberOfThreats ) {
  40. element.parentNode.removeChild( element );
  41. return;
  42. }
  43. var textLabel = numberOfThreats == 1 ? localized.singular : localized.multiple;
  44. element.innerHTML =
  45. '<a href="' + localized.scan_dashboard_url + '" class="ab-item">' + textLabel + '</a>';
  46. }
  47. } )( window.Jetpack_Scan );