WordPress.org

Make WordPress Core

Ticket #6343: 6343.diff

File 6343.diff, 9.0 KB (added by mdawaffe, 6 years ago)
  • wp-includes/js/autosave.js

     
    4646} 
    4747 
    4848// called when autosaving new post 
    49 function autosave_update_post_ID(response) { 
     49function autosave_saved_new(response) { 
    5050        var res = autosave_saved(response); // parse the ajax response do the above 
    51  
    5251        // if no errors: update post_ID from the temporary value, grab new save-nonce for that new ID 
    5352        if ( res && res.responses.length && !res.errors ) { 
    5453                var postID = parseInt( res.responses[0].id ); 
    55                 if ( !isNaN(postID) && postID > 0 ) { 
    56                         if ( postID == parseInt(jQuery('#post_ID').val()) ) { return; } // no need to do this more than once 
    57                         jQuery('#post_ID').attr({name: "post_ID"}); 
    58                         jQuery('#post_ID').val(postID); 
    59                         // We need new nonces 
    60                         jQuery.post(autosaveL10n.requestFile, { 
    61                                 action: "autosave-generate-nonces", 
    62                                 post_ID: postID, 
    63                                 autosavenonce: jQuery('#autosavenonce').val(), 
    64                                 post_type: jQuery('#post_type').val() 
    65                         }, function(html) { 
    66                                 jQuery('#_wpnonce').val(html); 
    67                         }); 
    68                         jQuery('#hiddenaction').val('editpost'); 
    69                 } 
     54                autosave_update_post_ID( postID ); 
    7055        } 
    7156} 
    7257 
     58function autosave_update_post_ID( postID ) { 
     59        if ( !isNaN(postID) && postID > 0 ) { 
     60                if ( postID == parseInt(jQuery('#post_ID').val()) ) { return; } // no need to do this more than once 
     61                jQuery('#post_ID').attr({name: "post_ID"}); 
     62                jQuery('#post_ID').val(postID); 
     63                // We need new nonces 
     64                jQuery.post(autosaveL10n.requestFile, { 
     65                        action: "autosave-generate-nonces", 
     66                        post_ID: postID, 
     67                        autosavenonce: jQuery('#autosavenonce').val(), 
     68                        post_type: jQuery('#post_type').val() 
     69                }, function(html) { 
     70                        jQuery('#_wpnonce').val(html); 
     71                }); 
     72                jQuery('#hiddenaction').val('editpost'); 
     73        } 
     74} 
     75 
    7376function autosave_update_preview_link(post_id) { 
    7477        // Add preview button if not already there 
    7578        if ( !jQuery('#previewview > *').size() ) { 
     
    173176 
    174177        if(parseInt(post_data["post_ID"]) < 1) { 
    175178                post_data["temp_ID"] = post_data["post_ID"]; 
    176                 var successCallback = autosave_update_post_ID; // new post 
     179                var successCallback = autosave_saved_new;; // new post 
    177180        } else { 
    178181                var successCallback = autosave_saved; // pre-existing post 
    179182        } 
  • wp-includes/js/wp-lists.js

     
    154154                s.success = function(r) { 
    155155                        var res = wpAjax.parseAjaxResponse(r, s.response, s.element); 
    156156                        if ( !res || res.errors ) { 
    157                                 element.stop().css( 'backgroundColor', '#FF3333' ).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } ); 
     157                                element.stop().stop().css( 'backgroundColor', '#FF3333' ).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } ); 
    158158                                return false; 
    159159                        } 
    160160                        if ( $.isFunction(s.delAfter) ) { 
     
    217217                s.success = function(r) { 
    218218                        var res = wpAjax.parseAjaxResponse(r, s.response, s.element); 
    219219                        if ( !res || res.errors ) { 
    220                                 element.stop().css( 'backgroundColor', '#FF3333' )[isClass?'removeClass':'addClass'](s.dimClass).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } ); 
     220                                element.stop().stop().css( 'backgroundColor', '#FF3333' )[isClass?'removeClass':'addClass'](s.dimClass).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } ); 
    221221                                return false; 
    222222                        } 
    223223                        if ( $.isFunction(s.dimAfter) ) { 
  • wp-includes/script-loader.php

     
    4747                        'broken' => __('An unidentified error has occurred.') 
    4848                ) ); 
    4949 
    50                 $this->add( 'autosave', '/wp-includes/js/autosave.js', array('schedule', 'wp-ajax-response'), '20080317' ); 
     50                $this->add( 'autosave', '/wp-includes/js/autosave.js', array('schedule', 'wp-ajax-response'), '20080322' ); 
    5151 
    5252                $this->add( 'wp-ajax', '/wp-includes/js/wp-ajax.js', array('prototype'), '20070306'); 
    5353                $this->localize( 'wp-ajax', 'WPAjaxL10n', array( 
     
    5757                        'whoaText' => __("Slow down, I'm still sending your data!") 
    5858                ) ); 
    5959 
    60                 $this->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080312' ); 
     60                $this->add( 'wp-lists', '/wp-includes/js/wp-lists.js', array('wp-ajax-response'), '20080322' ); 
    6161                $this->localize( 'wp-lists', 'wpListL10n', array( 
    6262                        'url' => get_option( 'siteurl' ) . '/wp-admin/admin-ajax.php' 
    6363                ) ); 
     
    144144                                'save' => __('Save'), 
    145145                                'cancel' => __('Cancel'), 
    146146                        ) ); 
    147                         $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080318' ); 
     147                        $this->add( 'post', '/wp-admin/js/post.js', array('suggest', 'jquery-ui-tabs', 'wp-lists', 'postbox', 'slug'), '20080322' ); 
    148148                        $this->localize( 'post', 'postL10n', array( 
    149149                                'tagsUsed' =>  __('Tags used on this post:'), 
    150150                                'add' => attribute_escape(__('Add')), 
  • wp-admin/admin-ajax.php

     
    9494        else    die('0'); 
    9595        break; 
    9696case 'delete-meta' : 
    97         check_ajax_referer( 'change_meta' ); 
     97        check_ajax_referer( "delete-meta_$id" ); 
    9898        if ( !$meta = get_post_meta_by_id( $id ) ) 
    9999                die('0'); 
    100100        if ( !current_user_can( 'edit_post', $meta->post_id ) ) 
     
    368368        $x->send(); 
    369369        break; 
    370370case 'add-meta' : 
    371         check_ajax_referer( 'change_meta' ); 
     371        check_ajax_referer( 'add-meta' ); 
    372372        $c = 0; 
    373373        $pid = (int) $_POST['post_id']; 
    374         if ( isset($_POST['addmeta']) ) { 
     374        if ( isset($_POST['metakeyselect']) ) { 
    375375                if ( !current_user_can( 'edit_post', $pid ) ) 
    376376                        die('-1'); 
    377377                if ( '#NONE#' == $_POST['metakeyselect'] && empty($_POST['metakeyinput']) ) 
  • wp-admin/includes/template.php

     
    745745} 
    746746 
    747747function _list_meta_row( $entry, &$count ) { 
     748        static $update_nonce = false; 
     749        if ( !$update_nonce ) 
     750                $update_nonce = wp_create_nonce( 'add-meta' ); 
     751 
    748752        $r = ''; 
    749753        ++ $count; 
    750754        if ( $count % 2 ) 
     
    768772        $entry['meta_key']   = attribute_escape($entry['meta_key']); 
    769773        $entry['meta_value'] = attribute_escape($entry['meta_value']); 
    770774        $entry['meta_id'] = (int) $entry['meta_id']; 
     775 
     776        $delete_nonce = wp_create_nonce( 'delete-meta_' . $entry['meta_id'] ); 
     777 
    771778        $r .= "\n\t<tr id='meta-{$entry['meta_id']}' class='$style'>"; 
    772779        $r .= "\n\t\t<td valign='top'><input name='meta[{$entry['meta_id']}][key]' tabindex='6' type='text' size='20' value='{$entry['meta_key']}' /></td>"; 
    773780        $r .= "\n\t\t<td><textarea name='meta[{$entry['meta_id']}][value]' tabindex='6' rows='2' cols='30'>{$entry['meta_value']}</textarea></td>"; 
    774         $r .= "\n\t\t<td style='text-align: center;'><input name='updatemeta' type='submit' tabindex='6' value='".attribute_escape(__( 'Update' ))."' class='add:the-list:meta-{$entry['meta_id']} updatemeta' /><br />"; 
     781        $r .= "\n\t\t<td style='text-align: center;'><input name='updatemeta' type='submit' tabindex='6' value='".attribute_escape(__( 'Update' ))."' class='add:the-list:meta-{$entry['meta_id']}::_ajax_nonce=$update_nonce updatemeta' /><br />"; 
    775782        $r .= "\n\t\t<input name='deletemeta[{$entry['meta_id']}]' type='submit' "; 
    776         $r .= "class='delete:the-list:meta-{$entry['meta_id']} deletemeta' tabindex='6' value='".attribute_escape(__( 'Delete' ))."' />"; 
     783        $r .= "class='delete:the-list:meta-{$entry['meta_id']}::_ajax_nonce=$delete_nonce deletemeta' tabindex='6' value='".attribute_escape(__( 'Delete' ))."' />"; 
     784        $r .= wp_nonce_field( 'change-meta', '_ajax_nonce', false, false ); 
    777785        $r .= "</td>\n\t</tr>"; 
    778786        return $r; 
    779787} 
     
    815823<td><input type="text" id="metakeyinput" name="metakeyinput" tabindex="7" /></td> 
    816824                <td><textarea id="metavalue" name="metavalue" rows="3" cols="25" tabindex="8"></textarea></td> 
    817825        </tr> 
    818  
    819826<tr class="submit"><td colspan="3"> 
    820         <?php wp_nonce_field( 'change_meta', '_ajax_nonce', false ); ?> 
    821         <input type="submit" id="addmetasub" name="addmeta" class="add:the-list:newmeta" tabindex="9" value="<?php _e( 'Add Custom Field' ) ?>" /> 
     827        <?php wp_nonce_field( 'add-meta', '_ajax_nonce', false ); ?> 
     828        <input type="submit" id="addmetasub" name="addmeta" class="add:the-list:newmeta::post_id=<?php echo $GLOBALS['post_ID'] ? $GLOBALS['post_ID'] : $GLOBALS['temp_ID']; ?>" tabindex="9" value="<?php _e( 'Add Custom Field' ) ?>" /> 
    822829</td></tr> 
    823830</table> 
    824831<?php 
  • wp-admin/js/post.js

     
    157157                        jQuery('.edit-timestamp').text(postL10n.edit); 
    158158                } 
    159159                return false; 
    160     }); 
     160 
     161        }); 
     162 
     163        // Custom Fields 
     164        jQuery('#the-list').wpList( { addAfter: function( xml, s ) { 
     165                if ( jQuery.isFunction( autosave_update_post_ID ) ) { 
     166                        autosave_update_post_ID(s.parsed.responses[0].supplemental.postid); 
     167                } 
     168        } }); 
    161169});