Dashboard: Introduce the "Try Gutenberg" callout.

To encourage folks to prepare for Gutenberg, this new Dashboard box allows site users to easily install and try the Gutenberg plugin now, or to install the Classic Editor plugin before WordPress 5.0 is released.

Props pento, melchoyce, joen, karmatosed, joemcgill, SergeyBiryukov, jorbin, bph, Clorith, afercia, chanthaboune, chrislema, kjellr, matveb, michelleweber.
Fixes #41316.


Built from https://develop.svn.wordpress.org/branches/4.9@43502


git-svn-id: http://core.svn.wordpress.org/branches/4.9@43329 1a063a9b-81f0-0310-95a4-ce76da25c4cd
This commit is contained in:
Gary Pendergast 2018-07-18 06:42:26 +00:00
parent c74898bab3
commit bf820c9036
19 changed files with 415 additions and 43 deletions

View File

@ -764,6 +764,7 @@ img.emoji {
/* @todo can we combine these into a class or use an existing dashicon one? */
.welcome-panel .welcome-panel-close:before,
.try-gutenberg-panel .try-gutenberg-panel-close:before,
.tagchecklist .ntdelbutton .remove-tag-icon:before,
#bulk-titles div a:before,
.notice-dismiss:before {

File diff suppressed because one or more lines are too long

View File

@ -764,6 +764,7 @@ img.emoji {
/* @todo can we combine these into a class or use an existing dashicon one? */
.welcome-panel .welcome-panel-close:before,
.try-gutenberg-panel .try-gutenberg-panel-close:before,
.tagchecklist .ntdelbutton .remove-tag-icon:before,
#bulk-titles div a:before,
.notice-dismiss:before {

File diff suppressed because one or more lines are too long

View File

@ -98,7 +98,8 @@
}
/* Welcome Panel */
.welcome-panel {
.welcome-panel,
.try-gutenberg-panel {
position: relative;
overflow: auto;
margin: 16px 0;
@ -110,7 +111,8 @@
line-height: 2.1em;
}
.welcome-panel h2 {
.welcome-panel h2,
.try-gutenberg-panel h2 {
margin: 0;
font-size: 21px;
font-weight: 400;
@ -122,25 +124,42 @@
font-size: 16px;
}
.welcome-panel li {
.try-gutenberg-panel h3 {
margin: 17px 0 0;
font-size: 16px;
}
.welcome-panel li,
.try-gutenberg-panel li {
font-size: 14px;
}
.welcome-panel p {
.welcome-panel p,
.try-gutenberg-panel p {
color: #72777c;
}
.welcome-panel a {
.welcome-panel a,
.try-gutenberg-action a {
text-decoration: none;
}
.welcome-panel .about-description {
.welcome-panel .about-description,
.try-gutenberg-panel .about-description {
font-size: 16px;
margin: 0;
}
.welcome-panel .welcome-panel-close {
.try-gutenberg-panel-content hr {
margin: 20px -23px 0 -23px;
border-top: 1px solid #f3f4f5;
border-bottom: none;
}
.welcome-panel .welcome-panel-close,
.try-gutenberg-panel .try-gutenberg-panel-close {
position: absolute;
z-index: 10;
top: 10px;
left: 10px;
padding: 10px 21px 10px 15px;
@ -149,7 +168,8 @@
text-decoration: none;
}
.welcome-panel .welcome-panel-close:before {
.welcome-panel .welcome-panel-close:before,
.try-gutenberg-panel .try-gutenberg-panel-close:before {
position: absolute;
top: 8px;
right: 0;
@ -164,11 +184,23 @@
white-space: normal;
}
.welcome-panel-content {
margin-right: 13px;
.welcome-panel-content,
.try-gutenberg-panel-content {
margin: 0 13px;
max-width: 1500px;
}
.try-gutenberg-panel img {
margin-top: 23px;
width: calc( 100% - 40px );
border: 1px solid #f3f4f5;
}
.try-gutenberg-panel .install-now.updating-message:before,
.try-gutenberg-panel .install-now.updated-message:before {
margin-top: 11px;
}
.welcome-panel .welcome-panel-column-container {
clear: both;
position: relative;
@ -180,6 +212,10 @@
float: right;
}
.try-gutenberg-panel .try-gutenberg-panel-column > * {
padding-left: 40px;
}
.ie8 .welcome-panel .welcome-panel-column {
min-width: 230px;
}
@ -188,11 +224,27 @@
width: 36%;
}
.try-gutenberg-panel .try-gutenberg-panel-column-container {
display: -ms-grid;
display: grid;
-ms-grid-columns: 36% 32% 32%;
grid-template-columns: 36% 32% 32%;
margin-bottom: 13px;
}
.try-gutenberg-panel .try-gutenberg-panel-column:not(.try-gutenberg-panel-image-column) {
display: -ms-grid;
display: grid;
-ms-grid-rows: 45px auto 100px;
grid-template-rows: 45px auto 100px;
}
.welcome-panel-column p.hide-if-no-customize {
margin-top: 10px;
}
.welcome-panel-column p {
.welcome-panel-column p,
.try-gutenberg-panel-column p {
margin-top: 7px;
color: #444;
}
@ -202,7 +254,7 @@
}
.welcome-panel .welcome-panel-column ul {
margin: 0.8em 0 1em 1em;
margin: 0.8em 0 1em 1em;
}
.welcome-panel .welcome-panel-column li {
@ -1207,6 +1259,17 @@ a.rsswidget {
}
}
@media screen and (max-width: 1024px) {
.try-gutenberg-panel .try-gutenberg-panel-column-container {
-ms-grid-columns: 50% 50%;
grid-template-columns: 50% 50%;
}
.try-gutenberg-panel .try-gutenberg-panel-image-column {
display: none;
}
}
@media screen and (max-width: 870px) {
.welcome-panel .welcome-panel-column,
.welcome-panel .welcome-panel-column:first-child {
@ -1215,6 +1278,11 @@ a.rsswidget {
width: 100%;
}
.try-gutenberg-panel .try-gutenberg-panel-column-container {
-ms-grid-columns: 100%;
grid-template-columns: 100%;
}
.welcome-panel .welcome-panel-column li {
display: inline-block;
margin-left: 13px;
@ -1223,7 +1291,6 @@ a.rsswidget {
.welcome-panel .welcome-panel-column ul {
margin: 0.4em 0 0;
}
}
@media screen and ( max-width: 782px ) {
@ -1266,7 +1333,8 @@ a.rsswidget {
/* Smartphone */
@media screen and (max-width: 600px) {
/* Keep the close icon from overlapping the Welcome text. */
.welcome-panel .welcome-panel-close {
.welcome-panel .welcome-panel-close,
.try-gutenberg-panel .try-gutenberg-panel-close {
overflow: hidden;
text-indent: 40px;
white-space: nowrap;
@ -1278,7 +1346,8 @@ a.rsswidget {
}
/* Make the close icon larger for tappability. */
.welcome-panel .welcome-panel-close:before {
.welcome-panel .welcome-panel-close:before,
.try-gutenberg-panel .try-gutenberg-panel-close:before {
font-size: 20px;
top: 5px;
right: -35px;

File diff suppressed because one or more lines are too long

View File

@ -98,7 +98,8 @@
}
/* Welcome Panel */
.welcome-panel {
.welcome-panel,
.try-gutenberg-panel {
position: relative;
overflow: auto;
margin: 16px 0;
@ -110,7 +111,8 @@
line-height: 2.1em;
}
.welcome-panel h2 {
.welcome-panel h2,
.try-gutenberg-panel h2 {
margin: 0;
font-size: 21px;
font-weight: 400;
@ -122,25 +124,42 @@
font-size: 16px;
}
.welcome-panel li {
.try-gutenberg-panel h3 {
margin: 17px 0 0;
font-size: 16px;
}
.welcome-panel li,
.try-gutenberg-panel li {
font-size: 14px;
}
.welcome-panel p {
.welcome-panel p,
.try-gutenberg-panel p {
color: #72777c;
}
.welcome-panel a {
.welcome-panel a,
.try-gutenberg-action a {
text-decoration: none;
}
.welcome-panel .about-description {
.welcome-panel .about-description,
.try-gutenberg-panel .about-description {
font-size: 16px;
margin: 0;
}
.welcome-panel .welcome-panel-close {
.try-gutenberg-panel-content hr {
margin: 20px -23px 0 -23px;
border-top: 1px solid #f3f4f5;
border-bottom: none;
}
.welcome-panel .welcome-panel-close,
.try-gutenberg-panel .try-gutenberg-panel-close {
position: absolute;
z-index: 10;
top: 10px;
right: 10px;
padding: 10px 15px 10px 21px;
@ -149,7 +168,8 @@
text-decoration: none;
}
.welcome-panel .welcome-panel-close:before {
.welcome-panel .welcome-panel-close:before,
.try-gutenberg-panel .try-gutenberg-panel-close:before {
position: absolute;
top: 8px;
left: 0;
@ -164,11 +184,23 @@
white-space: normal;
}
.welcome-panel-content {
margin-left: 13px;
.welcome-panel-content,
.try-gutenberg-panel-content {
margin: 0 13px;
max-width: 1500px;
}
.try-gutenberg-panel img {
margin-top: 23px;
width: calc( 100% - 40px );
border: 1px solid #f3f4f5;
}
.try-gutenberg-panel .install-now.updating-message:before,
.try-gutenberg-panel .install-now.updated-message:before {
margin-top: 11px;
}
.welcome-panel .welcome-panel-column-container {
clear: both;
position: relative;
@ -180,6 +212,10 @@
float: left;
}
.try-gutenberg-panel .try-gutenberg-panel-column > * {
padding-right: 40px;
}
.ie8 .welcome-panel .welcome-panel-column {
min-width: 230px;
}
@ -188,11 +224,27 @@
width: 36%;
}
.try-gutenberg-panel .try-gutenberg-panel-column-container {
display: -ms-grid;
display: grid;
-ms-grid-columns: 36% 32% 32%;
grid-template-columns: 36% 32% 32%;
margin-bottom: 13px;
}
.try-gutenberg-panel .try-gutenberg-panel-column:not(.try-gutenberg-panel-image-column) {
display: -ms-grid;
display: grid;
-ms-grid-rows: 45px auto 100px;
grid-template-rows: 45px auto 100px;
}
.welcome-panel-column p.hide-if-no-customize {
margin-top: 10px;
}
.welcome-panel-column p {
.welcome-panel-column p,
.try-gutenberg-panel-column p {
margin-top: 7px;
color: #444;
}
@ -202,7 +254,7 @@
}
.welcome-panel .welcome-panel-column ul {
margin: 0.8em 1em 1em 0;
margin: 0.8em 1em 1em 0;
}
.welcome-panel .welcome-panel-column li {
@ -1207,6 +1259,17 @@ a.rsswidget {
}
}
@media screen and (max-width: 1024px) {
.try-gutenberg-panel .try-gutenberg-panel-column-container {
-ms-grid-columns: 50% 50%;
grid-template-columns: 50% 50%;
}
.try-gutenberg-panel .try-gutenberg-panel-image-column {
display: none;
}
}
@media screen and (max-width: 870px) {
.welcome-panel .welcome-panel-column,
.welcome-panel .welcome-panel-column:first-child {
@ -1215,6 +1278,11 @@ a.rsswidget {
width: 100%;
}
.try-gutenberg-panel .try-gutenberg-panel-column-container {
-ms-grid-columns: 100%;
grid-template-columns: 100%;
}
.welcome-panel .welcome-panel-column li {
display: inline-block;
margin-right: 13px;
@ -1223,7 +1291,6 @@ a.rsswidget {
.welcome-panel .welcome-panel-column ul {
margin: 0.4em 0 0;
}
}
@media screen and ( max-width: 782px ) {
@ -1266,7 +1333,8 @@ a.rsswidget {
/* Smartphone */
@media screen and (max-width: 600px) {
/* Keep the close icon from overlapping the Welcome text. */
.welcome-panel .welcome-panel-close {
.welcome-panel .welcome-panel-close,
.try-gutenberg-panel .try-gutenberg-panel-close {
overflow: hidden;
text-indent: 40px;
white-space: nowrap;
@ -1278,7 +1346,8 @@ a.rsswidget {
}
/* Make the close icon larger for tappability. */
.welcome-panel .welcome-panel-close:before {
.welcome-panel .welcome-panel-close:before,
.try-gutenberg-panel .try-gutenberg-panel-close:before {
font-size: 20px;
top: 5px;
left: -35px;

File diff suppressed because one or more lines are too long

View File

@ -1484,6 +1484,19 @@ function wp_ajax_update_welcome_panel() {
wp_die( 1 );
}
/**
* Ajax handler for updating whether to display the Try Gutenberg panel.
*
* @since 4.9.8
*/
function wp_ajax_update_try_gutenberg_panel() {
check_ajax_referer( 'try-gutenberg-panel-nonce', 'trygutenbergpanelnonce' );
update_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', empty( $_POST['visible'] ) ? 0 : 1 );
wp_die( 1 );
}
/**
* Ajax handler for retrieving menu meta boxes.
*

View File

@ -1020,7 +1020,10 @@ final class WP_Screen {
update_user_meta( get_current_user_id(), 'show_welcome_panel', $welcome_checked );
} else {
$welcome_checked = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
if ( 2 == $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
if ( '' === $welcome_checked ) {
$welcome_checked = '1';
}
if ( '2' === $welcome_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
$welcome_checked = false;
}
}
@ -1028,6 +1031,24 @@ final class WP_Screen {
echo '<input type="checkbox" id="wp_welcome_panel-hide"' . checked( (bool) $welcome_checked, true, false ) . ' />';
echo _x( 'Welcome', 'Welcome panel' ) . "</label>\n";
}
if ( 'dashboard' === $this->id && has_action( 'try_gutenberg_panel' ) ) {
if ( isset( $_GET['try_gutenberg'] ) ) {
$try_gutenberg_checked = empty( $_GET['try_gutenberg'] ) ? 0 : 1;
update_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', $try_gutenberg_checked );
} else {
$try_gutenberg_checked = get_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', true );
if ( '' === $try_gutenberg_checked ) {
$try_gutenberg_checked = '1';
}
if ( '2' === $try_gutenberg_checked && wp_get_current_user()->user_email != get_option( 'admin_email' ) ) {
$try_gutenberg_checked = false;
}
}
echo '<label for="wp_try_gutenberg_panel-hide">';
echo '<input type="checkbox" id="wp_try_gutenberg_panel-hide"' . checked( (bool) $try_gutenberg_checked, true, false ) . ' />';
echo __( 'New Editor' ) . "</label>\n";
}
?>
</fieldset>
<?php

View File

@ -1619,3 +1619,118 @@ function wp_welcome_panel() {
</div>
<?php
}
/**
* Displays a Try Gutenberg Panel, to introduce people to Gutenberg
*
* @since 4.9.8
*/
function wp_try_gutenberg_panel() {
$plugins = get_plugins();
$action = $url = $classes = '';
$classic_action = $classic_url = $classic_classes = '';
if ( current_user_can( 'install_plugins' ) ) {
if ( empty( $plugins['gutenberg/gutenberg.php'] ) ) {
$action = __( 'Install Gutenberg' );
$url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=gutenberg' ), 'install-plugin_gutenberg' );
$classes = ' install-now';
} else if ( is_plugin_inactive( 'gutenberg/gutenberg.php' ) ) {
$action = __( 'Activate Gutenberg' );
$url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=gutenberg/gutenberg.php&from=try-gutenberg' ), 'activate-plugin_gutenberg/gutenberg.php' );
$classes = ' activate-now';
}
if ( empty( $plugins['classic-editor/classic-editor.php'] ) ) {
$classic_action = __( 'Install the Classic Editor' );
$classic_url = wp_nonce_url( self_admin_url( 'update.php?action=install-plugin&plugin=classic-editor' ), 'install-plugin_classic-editor' );
$classic_classes = ' install-now';
} else if ( is_plugin_inactive( 'classic-editor/classic-editor.php' ) ) {
$classic_action = __( 'Activate the Classic Editor' );
$classic_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php&from=try-gutenberg' ), 'activate-plugin_classic-editor/classic-editor.php' );
$classic_classes = ' activate-now';
} else {
$classic_action = __( 'The Classic Editor is activated' );
$classic_url = wp_nonce_url( self_admin_url( 'plugins.php?action=activate&plugin=classic-editor/classic-editor.php&from=try-gutenberg' ), 'activate-plugin_classic-editor/classic-editor.php' );;
$classic_classes = ' button-disabled install-now updated-message';
}
}
if ( current_user_can( 'edit_posts' ) && is_plugin_active( 'gutenberg/gutenberg.php' ) ) {
$action = __( 'Try Gutenberg' );
$url = admin_url( 'admin.php?page=gutenberg' );
}
?>
<div class="try-gutenberg-panel-content">
<h2><?php _e( 'A new, modern publishing experience is coming soon.' ); ?></h2>
<p class="about-description"><?php _e( "Take your words, media, and layout in new directions with Gutenberg, the WordPress editor we're currently building." ); ?></p>
<hr />
<div class="try-gutenberg-panel-column-container">
<div class="try-gutenberg-panel-column try-gutenberg-panel-image-column">
<picture>
<source srcset="about:blank" media="(max-width: 1024px)">
<img src="https://s.w.org/images/core/gutenberg-screenshot.png?<?php echo date( 'Ymd' ); ?>" alt="<?php esc_attr_e( 'Screenshot from the Gutenberg interface' ); ?>" />
</picture>
</div>
<div class="try-gutenberg-panel-column plugin-card-gutenberg">
<h3><?php _e( 'Test the new editor today.' ); ?></h3>
<p>
<?php _e( "You can take Gutenberg for a spin (and share your feedback, if youd like) before we officially release it, by installing it as a plugin." ); ?>
<?php
printf(
/* translators: 1: Gutenberg call for testing handbook link, 2: Gutenberg GitHub repository issues link, 3: Gutenberg GitHub repository CONTRIBUTING.md link */
__( 'You can help by <a href="%1$s">testing</a>, <a href="%2$s">filing bugs</a>, or contributing on the <a href="%3$s">GitHub repository</a>.' ),
'https://make.wordpress.org/test/handbook/call-for-testing/gutenberg-testing/',
'https://github.com/WordPress/gutenberg/issues',
'https://github.com/WordPress/gutenberg/blob/master/CONTRIBUTING.md'
);
?>
</p>
<?php if ( $action ) { ?>
<div class="try-gutenberg-action">
<p><a class="button button-primary button-hero<?php echo $classes; ?>" href="<?php echo esc_url( $url ); ?>" data-name="<?php esc_attr_e( 'Gutenberg' ); ?>" data-slug="gutenberg"><?php echo $action; ?></a></p>
<p>
<?php
printf(
/* translators: Link to https://wordpress.org/gutenberg/ */
__( '<a href="%s">Learn more about Gutenberg</a>' ),
'https://wordpress.org/gutenberg/'
);
?>
</p>
</div>
<?php } ?>
</div>
<div class="try-gutenberg-panel-column plugin-card-classic-editor">
<h3><?php _e( 'Not quite ready?' ); ?></h3>
<p>
<?php _e( 'The new editor will be enabled by default in the next major release of WordPress. If youre not sure how compatible your current themes and plugins are, weve got you covered.' ); ?>
<?php
printf(
/* translators: Link to the Classic Editor plugin page */
__( 'Install the <a href="%s">Classic Editor plugin</a> to keep using the current editor until youre ready to make the switch.' ),
'http://wordpress.org/plugins/classic-editor'
);
?>
</p>
<?php if ( $classic_action ) { ?>
<div class="try-gutenberg-action">
<p><a class="button button-secondary button-hero<?php echo $classic_classes; ?>" href="<?php echo esc_url( $classic_url ); ?>" data-name="<?php esc_attr_e( 'Classic Editor' ); ?>" data-slug="classic-editor"><?php echo $classic_action; ?></a></p>
</div>
<?php } ?>
</div>
</div>
</div>
<?php
}

View File

@ -103,12 +103,38 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
<div class="wrap">
<h1><?php echo esc_html( $title ); ?></h1>
<?php if ( has_action( 'try_gutenberg_panel' ) ) :
$classes = 'try-gutenberg-panel';
$option = get_user_meta( get_current_user_id(), 'show_try_gutenberg_panel', true );
// 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
$hide = '0' === $option || ( '2' === $option && wp_get_current_user()->user_email !== get_option( 'admin_email' ) );
if ( $hide )
$classes .= ' hidden'; ?>
<div id="try-gutenberg-panel" class="<?php echo esc_attr( $classes ); ?>">
<?php wp_nonce_field( 'try-gutenberg-panel-nonce', 'trygutenbergpanelnonce', false ); ?>
<a class="try-gutenberg-panel-close" href="<?php echo esc_url( admin_url( '?try_gutenberg=0' ) ); ?>" aria-label="<?php esc_attr_e( 'Dismiss the Try Gutenberg panel' ); ?>"><?php _e( 'Dismiss' ); ?></a>
<?php
/**
* Add content to the Try Gutenberg panel on the admin dashboard.
*
* To remove the Try Gutenberg panel, use remove_action():
*
* remove_action( 'try_gutenberg_panel', 'wp_try_gutenberg_panel' );
*
* @since 4.9.8
*/
do_action( 'try_gutenberg_panel' );
?>
</div>
<?php endif; ?>
<?php if ( has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) :
$classes = 'welcome-panel';
$option = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
// 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
$hide = 0 == $option || ( 2 == $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
$hide = '0' === $option || ( '2' === $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
if ( $hide )
$classes .= ' hidden'; ?>

View File

@ -31,6 +31,49 @@ jQuery(document).ready( function($) {
updateWelcomePanel( this.checked ? 1 : 0 );
});
var tryGutenbergPanel = $( '#try-gutenberg-panel' ),
tryGutenbergPanelHide = $('#wp_try_gutenberg_panel-hide'),
updateTryGutenbergPanel, installGutenbergSuccess;
updateTryGutenbergPanel = function( visible ) {
$.post( ajaxurl, {
action: 'update-try-gutenberg-panel',
visible: visible,
trygutenbergpanelnonce: $( '#trygutenbergpanelnonce' ).val()
});
};
installGutenbergSuccess = function( response ) {
response.activateUrl += '&from=try-gutenberg';
response.activateLabel = wp.updates.l10n.activatePluginLabel.replace( '%s', response.pluginName );
wp.updates.installPluginSuccess( response );
};
if ( tryGutenbergPanel.hasClass( 'hidden' ) && tryGutenbergPanelHide.prop( 'checked' ) ) {
tryGutenbergPanel.removeClass( 'hidden' );
}
$( '.try-gutenberg-panel-close, .try-gutenberg-panel-dismiss a', tryGutenbergPanel ).click( function( e ) {
e.preventDefault();
tryGutenbergPanel.addClass( 'hidden' );
updateTryGutenbergPanel( 0 );
$('#wp_try_gutenberg_panel-hide').prop( 'checked', false );
});
tryGutenbergPanelHide.click( function() {
tryGutenbergPanel.toggleClass( 'hidden', ! this.checked );
updateTryGutenbergPanel( this.checked ? 1 : 0 );
});
tryGutenbergPanel.on( 'click', '.install-now', function( e ) {
e.preventDefault();
var args = {
slug: $( e.target ).data( 'slug' ),
success: installGutenbergSuccess
};
wp.updates.installPlugin( args );
} );
// These widgets are sometimes populated via ajax
ajaxWidgets = ['dashboard_primary'];

File diff suppressed because one or more lines are too long

View File

@ -585,10 +585,16 @@
$message
.removeClass( 'updating-message' )
.addClass( 'updated-message installed button-disabled' )
.addClass( 'updated-message installed' )
.attr( 'aria-label', wp.updates.l10n.pluginInstalledLabel.replace( '%s', response.pluginName ) )
.text( wp.updates.l10n.pluginInstalled );
if ( $message.hasClass( 'button-primary' ) ) {
$message.addClass( 'button-primary-disabled' );
} else {
$message.addClass( 'button-disabled' );
}
wp.a11y.speak( wp.updates.l10n.installedMsg, 'polite' );
$document.trigger( 'wp-plugin-install-success', response );
@ -597,10 +603,11 @@
setTimeout( function() {
// Transform the 'Install' button into an 'Activate' button.
$message.removeClass( 'install-now installed button-disabled updated-message' ).addClass( 'activate-now button-primary' )
$message.removeClass( 'install-now installed button-primary-disabled button-secondary-disabled button-disabled updated-message' )
.addClass( 'activate-now' )
.attr( 'href', response.activateUrl )
.attr( 'aria-label', wp.updates.l10n.activatePluginLabel.replace( '%s', response.pluginName ) )
.text( wp.updates.l10n.activatePlugin );
.text( response.activateLabel || wp.updates.l10n.activatePlugin );
}, 1000 );
}
};

File diff suppressed because one or more lines are too long

View File

@ -65,6 +65,12 @@ if ( $action ) {
wp_redirect( self_admin_url("import.php?import=" . str_replace('-importer', '', dirname($plugin))) ); // overrides the ?error=true one above and redirects to the Imports page, stripping the -importer suffix
} else if ( isset($_GET['from']) && 'press-this' == $_GET['from'] ) {
wp_redirect( self_admin_url( "press-this.php") );
} else if ( isset( $_GET['from'] ) && 'try-gutenberg' == $_GET['from'] ) {
if ( 'gutenberg/gutenberg.php' === $plugin ) {
wp_redirect( self_admin_url( "admin.php?page=gutenberg" ) );
} else {
wp_redirect( self_admin_url() );
}
} else {
wp_redirect( self_admin_url("plugins.php?activate=true&plugin_status=$status&paged=$page&s=$s") ); // overrides the ?error=true one above
}

View File

@ -318,6 +318,7 @@ add_action( 'transition_post_status', '_transition_post_status',
add_action( 'transition_post_status', '_update_term_count_on_transition_post_status', 10, 3 );
add_action( 'comment_form', 'wp_comment_form_unfiltered_html_nonce' );
add_action( 'admin_init', 'send_frame_options_header', 10, 0 );
add_action( 'try_gutenberg_panel', 'wp_try_gutenberg_panel' );
add_action( 'welcome_panel', 'wp_welcome_panel' );
// Privacy

View File

@ -4,7 +4,7 @@
*
* @global string $wp_version
*/
$wp_version = '4.9.8-beta1-43500';
$wp_version = '4.9.8-beta1-43502';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.