WordPress.org

Make WordPress Core

Ticket #31923: 31923.2.patch

File 31923.2.patch, 5.8 KB (added by azaozz, 5 years ago)
  • src/wp-admin/css/press-this.css

     
    341341
    342342.button-subtle:focus,
    343343.button-subtle:hover,
    344 .button-subtle:active {
     344.button-subtle:active,
     345.edit-post-link:focus,
     346.edit-post-link:hover,
     347.edit-post-link:active {
    345348        color: #00a0d2;
    346349}
    347350
    348351.button-subtle:focus,
    349 .button-subtle:active {
     352.button-subtle:active,
     353.edit-post-link:focus,
     354.edit-post-link:active {
    350355        outline: 0;
    351356        text-decoration: underline;
    352357}
     
    13731378        background-size: 20px 20px;
    13741379        opacity: 0.7;
    13751380        filter: alpha(opacity=70);
    1376         line-height: 30px;
    1377         vertical-align: baseline;
     1381        line-height: 1;
     1382        vertical-align: middle;
    13781383}
    13791384
    13801385@media print,
     
    17341739.post-actions {
    17351740        float: right;
    17361741        margin: 14px 30px 14px 0;
    1737         font-size: 0;
     1742        font-size: 13px;
    17381743}
    17391744
    17401745@media (max-width: 320px) {
     
    17431748        }
    17441749}
    17451750
     1751.edit-post-link {
     1752        font-size: 13px;
     1753        display: inline-block;
     1754        text-decoration: none;
     1755        padding: 0 10px;
     1756}
     1757
     1758.draft-button.is-hidden,
     1759.edit-post-link.is-hidden,
     1760.draft-button .saving-draft,
     1761.draft-button.is-saving .save-draft {
     1762        display: none;
     1763}
     1764
     1765.draft-button.is-saving .saving-draft {
     1766        display: inline;
     1767}
     1768
    17461769/* TinyMCE styles */
    17471770.editor .wp-media-buttons {
    17481771        float: none;
  • src/wp-admin/includes/class-wp-press-this.php

     
    14301430                </div>
    14311431                <div class="post-actions">
    14321432                        <span class="spinner">&nbsp;</span>
    1433                         <button type="button" class="button-subtle draft-button"><?php _e( 'Save Draft' ); ?></button>
     1433                        <button type="button" class="button-subtle draft-button">
     1434                                <span class="save-draft"><?php _e( 'Save Draft' ); ?></span>
     1435                                <span class="saving-draft"><?php _e( 'Saving...' ); ?></span>
     1436                        </button>
     1437                        <a href="<?php echo esc_url( get_edit_post_link( $post_ID ) ); ?>" class="edit-post-link is-hidden" target="_blank"><?php _e( 'Edit post' ); ?></a>
    14341438                        <button type="button" class="button-subtle preview-button"><?php _e( 'Preview' ); ?></button>
    14351439                        <button type="button" class="button-primary publish-button"><?php echo ( current_user_can( 'publish_posts' ) ) ? __( 'Publish' ) : __( 'Submit for Review' ); ?></button>
    14361440                </div>
  • src/wp-admin/js/press-this.js

     
    184184                                data: data
    185185                        }).always( function() {
    186186                                hideSpinner();
     187                                clearNotices();
    187188                        }).done( function( response ) {
     189                                var $link, keepFocus;
     190
    188191                                if ( ! response.success ) {
    189192                                        renderError( response.data.errorMessage );
    190193                                } else if ( response.data.redirect ) {
     
    198201                                                window.location.href = response.data.redirect;
    199202                                        }
    200203                                } else if ( response.data.postSaved ) {
    201                                         // show "success" message?
     204                                        $link = $( '.edit-post-link' );
     205
     206                                        if ( document.activeElement && document.activeElement.className.indexOf( 'draft-button' ) > -1 ) {
     207                                                keepFocus = true;
     208                                        }
     209
     210                                        $( '.draft-button' ).removeClass( 'is-saving' ).addClass( 'is-hidden' );
     211                                        $link.removeClass( 'is-hidden' );
     212
     213                                        if ( keepFocus ) {
     214                                                $link.focus();
     215                                        }
    202216                                }
    203217                        }).fail( function() {
    204218                                renderError( __( 'serverError' ) );
     
    205219                        });
    206220                }
    207221
     222                function resetDraftButton() {
     223                        $( '.draft-button' ).removeClass( 'is-saving' ).removeClass( 'is-hidden' );
     224                        $( '.edit-post-link' ).addClass( 'is-hidden' );
     225                }
     226
    208227                /**
    209228                 * Inserts the media a user has selected from the presented list inside the editor, as an image or embed, based on type
    210229                 *
     
    328347                        renderNotice( msg, true );
    329348                }
    330349
     350                function clearNotices() {
     351                        $( 'div.alerts' ).empty();
     352                }
     353
    331354                /**
    332355                 * Render notices on page load, if any already
    333356                 */
     
    527550
    528551                        $titleField.on( 'focus', function() {
    529552                                $placeholder.addClass( 'is-hidden' );
     553                                resetDraftButton();
    530554                        }).on( 'blur', function() {
    531555                                if ( ! $titleField.text() && ! $titleField.html() ) {
    532556                                        $placeholder.removeClass( 'is-hidden' );
     
    623647                /**
    624648                 * Set app events and other state monitoring related code.
    625649                 */
    626                 function monitor(){
     650                function monitor() {
    627651                        $( document ).on( 'tinymce-editor-init', function( event, ed ) {
    628652                                editor = ed;
    629653
    630654                                ed.on( 'focus', function() {
    631655                                        hasSetFocus = true;
     656                                        resetDraftButton();
    632657                                } );
    633658                        }).on( 'click.press-this keypress.press-this', '.suggested-media-thumbnail', function( event ) {
    634659                                if ( event.type === 'click' || event.keyCode === 13 ) {
     
    639664                        // Publish, Draft and Preview buttons
    640665
    641666                        $( '.post-actions' ).on( 'click.press-this', function( event ) {
    642                                 var $target = $( event.target );
     667                                var $button = $( event.target ).closest( 'button' );
    643668
    644                                 if ( $target.hasClass( 'draft-button' ) ) {
     669                                if ( $button.hasClass( 'draft-button' ) ) {
     670                                        $button.addClass( 'is-saving' );
    645671                                        submitPost( 'draft' );
    646                                 } else if ( $target.hasClass( 'publish-button' ) ) {
     672                                } else if ( $button.hasClass( 'publish-button' ) ) {
    647673                                        submitPost( 'publish' );
    648                                 } else if ( $target.hasClass( 'preview-button' ) ) {
     674                                } else if ( $button.hasClass( 'preview-button' ) ) {
    649675                                        prepareFormData();
    650676                                        window.opener && window.opener.focus();
    651677
     
    652678                                        $( '#wp-preview' ).val( 'dopreview' );
    653679                                        $( '#pressthis-form' ).attr( 'target', '_blank' ).submit().attr( 'target', '' );
    654680                                        $( '#wp-preview' ).val( '' );
     681                                } else if ( $( event.target ).hasClass( 'edit-post-link' ) && window.opener ) {
     682                                        window.opener.focus();
     683                                        window.self.close();
    655684                                }
    656685                        });
    657686