WordPress.org

Make WordPress Core

Ticket #38342: 38342.2.diff

File 38342.2.diff, 3.9 KB (added by adamsilverstein, 4 years ago)
  • src/wp-admin/admin-header.php

     
    7171<script type="text/javascript">
    7272addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
    7373var ajaxurl = '<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>',
     74        wpApi   = wpApi || {};
    7475        pagenow = '<?php echo $current_screen->id; ?>',
    7576        typenow = '<?php echo $current_screen->post_type; ?>',
    7677        adminpage = '<?php echo $admin_body_class; ?>',
     
    7778        thousandsSeparator = '<?php echo addslashes( $wp_locale->number_format['thousands_sep'] ); ?>',
    7879        decimalPoint = '<?php echo addslashes( $wp_locale->number_format['decimal_point'] ); ?>',
    7980        isRtl = <?php echo (int) is_rtl(); ?>;
     81        wpApi.url     = '<?php echo esc_url_raw( get_rest_url() ); ?>',
     82        wpApi.nonce   = '<?php echo esc_attr( wp_create_nonce( 'wp_rest' ) ); ?>',
     83        wpApi.success = '<?php echo __( 'Success' ); ?>'
     84        wpApi.failure = '<?php echo __( 'Error' ); ?>'
    8085</script>
    8186<meta name="viewport" content="width=device-width,initial-scale=1.0">
    8287<?php
  • src/wp-admin/includes/dashboard.php

     
    518518                        <input type="hidden" name="post_ID" value="<?php echo $post_ID; ?>" />
    519519                        <input type="hidden" name="post_type" value="post" />
    520520                        <?php wp_nonce_field( 'add-post' ); ?>
     521                        <span class="spinner"></span>
    521522                        <?php submit_button( __( 'Save Draft' ), 'primary', 'save', false, array( 'id' => 'save-post' ) ); ?>
    522523                        <br class="clear" />
    523524                </p>
  • src/wp-admin/js/dashboard.js

     
    6363
    6464        /* QuickPress */
    6565        quickPressLoad = function() {
    66                 var act = $('#quickpost-action'), t;
     66                var act = $('#quickpost-action'), t,
     67                        $quickPress = $( '#dashboard_quick_press' );
    6768
    6869                $( '#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]' ).prop( 'disabled' , false );
    6970
    7071                t = $('#quick-press').submit( function( e ) {
    7172                        e.preventDefault();
    72                         $('#dashboard_quick_press #publishing-action .spinner').show();
     73                        var title   = $quickPress.find( '#title' ).val(),
     74                                content = $quickPress.find( '#content' ).val(),
     75                                status  = 'draft',
     76                                data = {
     77                                        title: title,
     78                                        content: content,
     79                                };
     80
     81                        // Don't send if the fields are blank.
     82                        if ( '' === title && '' === content ) {
     83                                return false;
     84                        }
     85
     86                        $quickPress.find( '.spinner' ).show();
    7387                        $('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
    7488
    75                         $.post( t.attr( 'action' ), t.serializeArray(), function( data ) {
    76                                 // Replace the form, and prepend the published post.
    77                                 $('#dashboard_quick_press .inside').html( data );
    78                                 $('#quick-press').removeClass('initial-form');
    79                                 quickPressLoad();
    80                                 highlightLatestPost();
    81                                 $('#title').focus();
    82                         });
     89                        $.ajax( {
     90                                method: "POST",
     91                                url: wpApi.url + 'wp/v2/posts',
     92                                data: data,
     93                                beforeSend: function ( xhr ) {
    8394
     95                                        // Add a nonce to the request.
     96                                        xhr.setRequestHeader( 'X-WP-Nonce', wpApi.nonce );
     97                                },
     98                                complete: function( response ) {
     99
     100                                        // After the form submission, reset everything.
     101                                        $( '#quick-press' ).removeClass( 'initial-form' );
     102                                        quickPressLoad();
     103                                        highlightLatestPost();
     104                                        $( '#title' ).focus();
     105                                        $quickPress.find( '.spinner' ).hide();
     106                                }
     107                        } );
     108
    84109                        function highlightLatestPost () {
    85110                                var latestPost = $('.drafts ul li').first();
    86111                                latestPost.css('background', '#fffbe5');