Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
/**
|
|
|
|
* Interactions used by the Site Health modules in WordPress.
|
|
|
|
*
|
|
|
|
* @output wp-admin/js/site-health.js
|
|
|
|
*/
|
|
|
|
|
2019-03-28 14:38:51 -04:00
|
|
|
/* global ajaxurl, ClipboardJS, SiteHealth, wp */
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
|
|
|
|
jQuery( document ).ready( function( $ ) {
|
|
|
|
|
|
|
|
var data;
|
|
|
|
|
2019-03-27 18:31:52 -04:00
|
|
|
var clipboard = new ClipboardJS( '.site-health-copy-buttons .copy-button' );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
|
2019-03-27 18:31:52 -04:00
|
|
|
// Debug information copy section.
|
|
|
|
clipboard.on( 'success', function( e ) {
|
|
|
|
var $wrapper = $( e.trigger ).closest( 'div' );
|
|
|
|
$( '.success', $wrapper ).addClass( 'visible' );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
|
2019-03-27 18:31:52 -04:00
|
|
|
wp.a11y.speak( SiteHealth.string.site_info_copied );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
} );
|
|
|
|
|
|
|
|
// Accordion handling in various areas.
|
|
|
|
$( '.health-check-accordion' ).on( 'click', '.health-check-accordion-trigger', function() {
|
|
|
|
var isExpanded = ( 'true' === $( this ).attr( 'aria-expanded' ) );
|
|
|
|
|
|
|
|
if ( isExpanded ) {
|
|
|
|
$( this ).attr( 'aria-expanded', 'false' );
|
|
|
|
$( '#' + $( this ).attr( 'aria-controls' ) ).attr( 'hidden', true );
|
|
|
|
} else {
|
|
|
|
$( this ).attr( 'aria-expanded', 'true' );
|
|
|
|
$( '#' + $( this ).attr( 'aria-controls' ) ).attr( 'hidden', false );
|
|
|
|
}
|
|
|
|
} );
|
|
|
|
|
|
|
|
// Site Health test handling.
|
|
|
|
|
|
|
|
$( '.site-health-view-passed' ).on( 'click', function() {
|
|
|
|
var goodIssuesWrapper = $( '#health-check-issues-good' );
|
|
|
|
|
|
|
|
goodIssuesWrapper.toggleClass( 'hidden' );
|
|
|
|
$( this ).attr( 'aria-expanded', ! goodIssuesWrapper.hasClass( 'hidden' ) );
|
|
|
|
} );
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Append a new issue to the issue list.
|
|
|
|
*
|
|
|
|
* @since 5.2.0
|
|
|
|
*
|
|
|
|
* @param {Object} issue The issue data.
|
|
|
|
*/
|
|
|
|
function AppendIssue( issue ) {
|
|
|
|
var template = wp.template( 'health-check-issue' ),
|
|
|
|
issueWrapper = $( '#health-check-issues-' + issue.status ),
|
|
|
|
issueCounter = $( '.issue-count', issueWrapper );
|
|
|
|
|
|
|
|
SiteHealth.site_status.issues[ issue.status ]++;
|
|
|
|
|
|
|
|
issueCounter.text( SiteHealth.site_status.issues[ issue.status ] );
|
|
|
|
$( '.issues', '#health-check-issues-' + issue.status ).append( template( issue ) );
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Update site health status indicator as asynchronous tests are run and returned.
|
|
|
|
*
|
|
|
|
* @since 5.2.0
|
|
|
|
*/
|
|
|
|
function RecalculateProgression() {
|
|
|
|
var r, c, pct;
|
2019-03-27 16:39:51 -04:00
|
|
|
var $progress = $( '.site-health-progress' );
|
2019-03-29 14:44:51 -04:00
|
|
|
var $progressCount = $progress.find( '.site-health-progress-count' );
|
2019-03-27 16:39:51 -04:00
|
|
|
var $circle = $( '.site-health-progress svg #bar' );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
var totalTests = parseInt( SiteHealth.site_status.issues.good, 0 ) + parseInt( SiteHealth.site_status.issues.recommended, 0 ) + ( parseInt( SiteHealth.site_status.issues.critical, 0 ) * 1.5 );
|
|
|
|
var failedTests = parseInt( SiteHealth.site_status.issues.recommended, 0 ) + ( parseInt( SiteHealth.site_status.issues.critical, 0 ) * 1.5 );
|
|
|
|
var val = 100 - Math.ceil( ( failedTests / totalTests ) * 100 );
|
|
|
|
|
|
|
|
if ( 0 === totalTests ) {
|
2019-03-27 16:39:51 -04:00
|
|
|
$progress.addClass( 'hidden' );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2019-03-27 16:39:51 -04:00
|
|
|
$progress.removeClass( 'loading' );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
|
|
|
|
r = $circle.attr( 'r' );
|
|
|
|
c = Math.PI * ( r * 2 );
|
|
|
|
|
|
|
|
if ( 0 > val ) {
|
|
|
|
val = 0;
|
|
|
|
}
|
|
|
|
if ( 100 < val ) {
|
|
|
|
val = 100;
|
|
|
|
}
|
|
|
|
|
|
|
|
pct = ( ( 100 - val ) / 100 ) * c;
|
|
|
|
|
2019-03-23 12:39:52 -04:00
|
|
|
$circle.css( { strokeDashoffset: pct } );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
|
|
|
|
if ( 1 > parseInt( SiteHealth.site_status.issues.critical, 0 ) ) {
|
|
|
|
$( '#health-check-issues-critical' ).addClass( 'hidden' );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 1 > parseInt( SiteHealth.site_status.issues.recommended, 0 ) ) {
|
|
|
|
$( '#health-check-issues-recommended' ).addClass( 'hidden' );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 50 <= val ) {
|
|
|
|
$circle.addClass( 'orange' ).removeClass( 'red' );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 90 <= val ) {
|
|
|
|
$circle.addClass( 'green' ).removeClass( 'orange' );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 100 === val ) {
|
|
|
|
$( '.site-status-all-clear' ).removeClass( 'hide' );
|
|
|
|
$( '.site-status-has-issues' ).addClass( 'hide' );
|
|
|
|
}
|
|
|
|
|
2019-03-27 16:39:51 -04:00
|
|
|
$progressCount.text( val + '%' );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
|
|
|
|
$.post(
|
|
|
|
ajaxurl,
|
|
|
|
{
|
|
|
|
'action': 'health-check-site-status-result',
|
|
|
|
'_wpnonce': SiteHealth.nonce.site_status_result,
|
|
|
|
'counts': SiteHealth.site_status.issues
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
2019-03-23 12:39:52 -04:00
|
|
|
wp.a11y.speak( SiteHealth.string.site_health_complete_screen_reader.replace( '%s', val + '%' ) );
|
Admin: Introduce the Site Health screens.
The Site Health tool serves two purposes:
- Provide site owners with information to improve the performance, reliability, and security of their site.
- Collect comprehensive debug information about the site.
By encouraging site owners to maintain their site and adhere to modern best practices, we ultimately improve the software hygeine of both the WordPress ecosystem, and the open internet as a whole.
Props Clorith, hedgefield, melchoyce, xkon, karmatosed, jordesign, earnjam, ianbelanger, wpscholar, desrosj, pedromendonca, peterbooker, jcastaneda, garyj, soean, pento, timothyblynjacobs, zodiac1978, dgroddick, garrett-eclipse, netweb, tobifjellner, pixolin, afercia, joedolson, birgire.
See #46573.
Built from https://develop.svn.wordpress.org/trunk@44986
git-svn-id: http://core.svn.wordpress.org/trunk@44817 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-22 23:55:53 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Queue the next asynchronous test when we're ready to run it.
|
|
|
|
*
|
|
|
|
* @since 5.2.0
|
|
|
|
*/
|
|
|
|
function maybeRunNextAsyncTest() {
|
|
|
|
var doCalculation = true;
|
|
|
|
|
|
|
|
if ( 1 <= SiteHealth.site_status.async.length ) {
|
|
|
|
$.each( SiteHealth.site_status.async, function() {
|
|
|
|
var data = {
|
|
|
|
'action': 'health-check-' + this.test.replace( '_', '-' ),
|
|
|
|
'_wpnonce': SiteHealth.nonce.site_status
|
|
|
|
};
|
|
|
|
|
|
|
|
if ( this.completed ) {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
doCalculation = false;
|
|
|
|
|
|
|
|
this.completed = true;
|
|
|
|
|
|
|
|
$.post(
|
|
|
|
ajaxurl,
|
|
|
|
data,
|
|
|
|
function( response ) {
|
|
|
|
AppendIssue( response.data );
|
|
|
|
maybeRunNextAsyncTest();
|
|
|
|
}
|
|
|
|
);
|
|
|
|
|
|
|
|
return false;
|
|
|
|
} );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( doCalculation ) {
|
|
|
|
RecalculateProgression();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 'undefined' !== typeof SiteHealth ) {
|
|
|
|
if ( 0 === SiteHealth.site_status.direct.length && 0 === SiteHealth.site_status.async.length ) {
|
|
|
|
RecalculateProgression();
|
|
|
|
} else {
|
|
|
|
SiteHealth.site_status.issues = {
|
|
|
|
'good': 0,
|
|
|
|
'recommended': 0,
|
|
|
|
'critical': 0
|
|
|
|
};
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 0 < SiteHealth.site_status.direct.length ) {
|
|
|
|
$.each( SiteHealth.site_status.direct, function() {
|
|
|
|
AppendIssue( this );
|
|
|
|
} );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( 0 < SiteHealth.site_status.async.length ) {
|
|
|
|
data = {
|
|
|
|
'action': 'health-check-' + SiteHealth.site_status.async[0].test.replace( '_', '-' ),
|
|
|
|
'_wpnonce': SiteHealth.nonce.site_status
|
|
|
|
};
|
|
|
|
|
|
|
|
SiteHealth.site_status.async[0].completed = true;
|
|
|
|
|
|
|
|
$.post(
|
|
|
|
ajaxurl,
|
|
|
|
data,
|
|
|
|
function( response ) {
|
|
|
|
AppendIssue( response.data );
|
|
|
|
maybeRunNextAsyncTest();
|
|
|
|
}
|
|
|
|
);
|
|
|
|
} else {
|
|
|
|
RecalculateProgression();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
} );
|