WordPress.org

Make WordPress Core

Ticket #22524: 22524.2.diff

File 22524.2.diff, 5.1 KB (added by nacin, 3 years ago)
  • wp-includes/js/media-views.js

     
    34033403                        'change [data-setting]':          'updateSetting', 
    34043404                        'change [data-setting] input':    'updateSetting', 
    34053405                        'change [data-setting] select':   'updateSetting', 
    3406                         'change [data-setting] textarea': 'updateSetting' 
     3406                        'change [data-setting] textarea': 'updateSetting', 
     3407                        'click .delete-attachment':       'deleteAttachment' 
     3408                }, 
     3409 
     3410                deleteAttachment: function(event) { 
     3411                        event.preventDefault(); 
     3412 
     3413                        if ( confirm( l10n.warnDelete ) ) 
     3414                                this.model.destroy(); 
    34073415                } 
    34083416        }); 
    34093417 
  • wp-includes/js/media-models.js

     
    237237                                options.data = _.extend( options.data || {}, { 
    238238                                        action: 'save-attachment', 
    239239                                        id:     this.id, 
    240                                         nonce:  media.model.settings.saveAttachmentNonce 
     240                                        nonce : this.get('nonces').update 
    241241                                }); 
    242242 
    243243                                // Record the values of the changed attributes. 
     
    251251                                } 
    252252 
    253253                                return media.ajax( options ); 
     254                        } else if ( 'delete' === method ) { 
     255                                options = options || {}; 
     256                                options.context = this; 
     257                                options.data = _.extend( options.data || {}, { 
     258                                        action: 'delete-post', 
     259                                        id: this.id, 
     260                                        _wpnonce: this.get('nonces')['delete'] 
     261                                }); 
     262                                return media.ajax( options ); 
    254263                        } 
    255264                }, 
    256265 
     
    269278 
    270279                        return media.post( 'save-attachment-compat', _.defaults({ 
    271280                                id:     this.id, 
    272                                 nonce:  media.model.settings.saveAttachmentNonce 
     281                                nonce:  this.get('nonces').update 
    273282                        }, data ) ).done( function( resp, status, xhr ) { 
    274283                                model.set( model.parse( resp, xhr ), options ); 
    275284                        }); 
  • wp-includes/media.php

     
    13271327                'subtype'     => $subtype, 
    13281328                'icon'        => wp_mime_type_icon( $attachment->ID ), 
    13291329                'dateFormatted' => mysql2date( get_option('date_format'), $attachment->post_date ), 
     1330                'nonces'      => array( 
     1331                        'update' => wp_create_nonce( 'update-post_' . $attachment->ID ), 
     1332                        'delete' => wp_create_nonce( 'delete-post_' . $attachment->ID ), 
     1333                ), 
    13301334        ); 
    13311335 
    13321336        if ( $meta && 'image' === $type ) { 
     
    14521456                'allMediaItems'      => __( 'All media items' ), 
    14531457                'insertIntoPost'     => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ), 
    14541458                'uploadedToThisPost' => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ), 
     1459                'warnDelete' =>      __( "You are about to permanently delete this item.\n  'Cancel' to stop, 'OK' to delete." ), 
    14551460 
    14561461                // Embed 
    14571462                'embedFromUrlTitle' => __( 'Embed From URL' ), 
     
    16421647                                <# if ( 'image' === data.type && ! data.uploading ) { #> 
    16431648                                        <div class="dimensions">{{ data.width }} &times; {{ data.height }}</div> 
    16441649                                <# } #> 
     1650                                <div class="delete-attachment"> 
     1651                                        <a href="#"><?php _e( 'Delete Permanently' ); ?></a> 
     1652                                </div> 
    16451653                        </div> 
    16461654                        <div class="compat-meta"> 
    16471655                                <# if ( data.compat && data.compat.meta ) { #> 
  • wp-includes/css/media-views.css

     
    11851185        float: left; 
    11861186} 
    11871187 
     1188.attachment-info .delete-attachment a { 
     1189        color: red; 
     1190        padding: 2px 4px; 
     1191} 
     1192 
     1193.attachment-info .delete-attachment a:hover { 
     1194        color: #fff; 
     1195        background: red; 
     1196} 
     1197 
    11881198/** 
    11891199 * Attachment Display Settings 
    11901200 */ 
  • wp-includes/script-loader.php

     
    322322        $scripts->add( 'media-models', "/wp-includes/js/media-models$suffix.js", array( 'backbone', 'jquery' ), false, 1 ); 
    323323        did_action( 'init' ) && $scripts->localize( 'media-models', '_wpMediaModelsL10n', array( 
    324324                'settings' => array( 
    325                         'saveAttachmentNonce' => wp_create_nonce( 'save-attachment' ), 
    326                         'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ), 
     325                        'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ) 
    327326                ), 
    328327        ) ); 
    329328 
  • wp-admin/includes/ajax-actions.php

     
    18431843        if ( ! $id = absint( $_REQUEST['id'] ) ) 
    18441844                wp_send_json_error(); 
    18451845 
    1846         check_ajax_referer( 'save-attachment', 'nonce' ); 
     1846        check_ajax_referer( 'update-post_' . $id, 'nonce' ); 
    18471847 
    18481848        if ( ! current_user_can( 'edit_post', $id ) ) 
    18491849                wp_send_json_error(); 
     
    18891889                wp_send_json_error(); 
    18901890        $attachment_data = $_REQUEST['attachments'][ $id ]; 
    18911891 
    1892         check_ajax_referer( 'save-attachment', 'nonce' ); 
     1892        check_ajax_referer( 'update-post_' . $id, 'nonce' ); 
    18931893 
    18941894        if ( ! current_user_can( 'edit_post', $id ) ) 
    18951895                wp_send_json_error();