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( $ ) {
|
|
|
|
|
2019-04-12 16:34:51 -04:00
|
|
|
var __ = wp.i18n.__,
|
|
|
|
_n = wp.i18n._n,
|
|
|
|
sprintf = wp.i18n.sprintf;
|
|
|
|
|
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 data;
|
2019-03-27 18:31:52 -04:00
|
|
|
var clipboard = new ClipboardJS( '.site-health-copy-buttons .copy-button' );
|
2019-04-12 15:24:51 -04:00
|
|
|
var isDebugTab = $( '.health-check-body.health-check-debug-tab' ).length;
|
2019-04-17 20:34:51 -04:00
|
|
|
var pathsSizesSection = $( '#health-check-accordion-block-wp-paths-sizes' );
|
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-04-12 16:34:51 -04:00
|
|
|
wp.a11y.speak( __( 'Site information has been added to your clipboard.' ) );
|
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 ),
|
2019-04-14 09:49:55 -04:00
|
|
|
heading,
|
|
|
|
count;
|
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
|
|
|
|
|
|
|
SiteHealth.site_status.issues[ issue.status ]++;
|
|
|
|
|
2019-04-14 09:49:55 -04:00
|
|
|
count = SiteHealth.site_status.issues[ issue.status ];
|
2019-04-12 16:34:51 -04:00
|
|
|
|
|
|
|
if ( 'critical' === issue.status ) {
|
|
|
|
heading = sprintf( _n( '%s Critical issue', '%s Critical issues', count ), '<span class="issue-count">' + count + '</span>' );
|
|
|
|
} else if ( 'recommended' === issue.status ) {
|
|
|
|
heading = sprintf( _n( '%s Recommended improvement', '%s Recommended improvements', count ), '<span class="issue-count">' + count + '</span>' );
|
|
|
|
} else if ( 'good' === issue.status ) {
|
|
|
|
heading = sprintf( _n( '%s Item with no issues detected', '%s Items with no issues detected', count ), '<span class="issue-count">' + count + '</span>' );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( heading ) {
|
2019-04-14 10:30:51 -04:00
|
|
|
$( '.site-health-issue-count-title', issueWrapper ).html( heading );
|
2019-04-12 16:34:51 -04:00
|
|
|
}
|
|
|
|
|
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
|
|
|
$( '.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
|
|
|
|
2019-04-12 15:24:51 -04:00
|
|
|
if ( ! isDebugTab ) {
|
|
|
|
$.post(
|
|
|
|
ajaxurl,
|
|
|
|
{
|
|
|
|
'action': 'health-check-site-status-result',
|
|
|
|
'_wpnonce': SiteHealth.nonce.site_status_result,
|
|
|
|
'counts': SiteHealth.site_status.issues
|
|
|
|
}
|
|
|
|
);
|
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-04-14 09:49:55 -04:00
|
|
|
wp.a11y.speak( sprintf(
|
|
|
|
// translators: %s: The percentage score for the tests.
|
|
|
|
__( 'All site health tests have finished running. Your site scored %s, and the results are now available on the page.' ),
|
|
|
|
val + '%'
|
|
|
|
) );
|
2019-04-12 15:24:51 -04:00
|
|
|
}
|
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();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-12 15:24:51 -04:00
|
|
|
if ( 'undefined' !== typeof SiteHealth && ! isDebugTab ) {
|
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 ( 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();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2019-04-12 15:24:51 -04:00
|
|
|
function getDirectorySizes() {
|
|
|
|
var data = {
|
|
|
|
action: 'health-check-get-sizes',
|
|
|
|
_wpnonce: SiteHealth.nonce.site_status_result
|
|
|
|
};
|
|
|
|
|
|
|
|
var timestamp = ( new Date().getTime() );
|
|
|
|
|
|
|
|
// After 3 seconds announce that we're still waiting for directory sizes.
|
|
|
|
var timeout = window.setTimeout( function() {
|
2019-04-12 16:34:51 -04:00
|
|
|
wp.a11y.speak( __( 'Please wait...' ) );
|
2019-04-12 15:24:51 -04:00
|
|
|
}, 3000 );
|
|
|
|
|
|
|
|
$.post( {
|
|
|
|
type: 'POST',
|
|
|
|
url: ajaxurl,
|
|
|
|
data: data,
|
|
|
|
dataType: 'json'
|
|
|
|
} ).done( function( response ) {
|
|
|
|
updateDirSizes( response.data || {} );
|
|
|
|
} ).always( function() {
|
|
|
|
var delay = ( new Date().getTime() ) - timestamp;
|
|
|
|
|
|
|
|
$( '.health-check-wp-paths-sizes.spinner' ).css( 'visibility', 'hidden' );
|
|
|
|
RecalculateProgression();
|
|
|
|
|
|
|
|
if ( delay > 3000 ) {
|
|
|
|
// We have announced that we're waiting.
|
|
|
|
// Announce that we're ready after giving at least 3 seconds for the first announcement
|
|
|
|
// to be read out, or the two may collide.
|
|
|
|
if ( delay > 6000 ) {
|
|
|
|
delay = 0;
|
|
|
|
} else {
|
|
|
|
delay = 6500 - delay;
|
|
|
|
}
|
|
|
|
|
|
|
|
window.setTimeout( function() {
|
2019-04-12 16:34:51 -04:00
|
|
|
wp.a11y.speak( __( 'All site health tests have finished running.' ) );
|
2019-04-12 15:24:51 -04:00
|
|
|
}, delay );
|
|
|
|
} else {
|
|
|
|
// Cancel the announcement.
|
|
|
|
window.clearTimeout( timeout );
|
|
|
|
}
|
2019-04-16 19:02:51 -04:00
|
|
|
|
|
|
|
$( document ).trigger( 'site-health-info-dirsizes-done' );
|
2019-04-12 15:24:51 -04:00
|
|
|
} );
|
|
|
|
}
|
|
|
|
|
|
|
|
function updateDirSizes( data ) {
|
|
|
|
var copyButton = $( 'button.button.copy-button' );
|
|
|
|
var clipdoardText = copyButton.attr( 'data-clipboard-text' );
|
|
|
|
|
|
|
|
$.each( data, function( name, value ) {
|
|
|
|
var text = value.debug || value.size;
|
|
|
|
|
|
|
|
if ( typeof text !== 'undefined' ) {
|
2019-04-18 00:51:52 -04:00
|
|
|
clipdoardText = clipdoardText.replace( name + ': loading...', name + ': ' + text );
|
2019-04-12 15:24:51 -04:00
|
|
|
}
|
|
|
|
} );
|
|
|
|
|
|
|
|
copyButton.attr( 'data-clipboard-text', clipdoardText );
|
|
|
|
|
2019-04-17 20:34:51 -04:00
|
|
|
pathsSizesSection.find( 'td[class]' ).each( function( i, element ) {
|
2019-04-12 15:24:51 -04:00
|
|
|
var td = $( element );
|
|
|
|
var name = td.attr( 'class' );
|
|
|
|
|
|
|
|
if ( data.hasOwnProperty( name ) && data[ name ].size ) {
|
|
|
|
td.text( data[ name ].size );
|
|
|
|
}
|
|
|
|
} );
|
|
|
|
}
|
|
|
|
|
|
|
|
if ( isDebugTab ) {
|
2019-04-17 20:34:51 -04:00
|
|
|
if ( pathsSizesSection.length ) {
|
|
|
|
getDirectorySizes();
|
|
|
|
} else {
|
|
|
|
RecalculateProgression();
|
|
|
|
}
|
2019-04-12 15:24:51 -04:00
|
|
|
}
|
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
|
|
|
} );
|