WordPress.org

Make WordPress Core

Changeset 22220


Ignore:
Timestamp:
10/12/12 18:36:21 (18 months ago)
Author:
koopersmith
Message:

Properly align MCE attachment views.

  • Adds a $wrapper property to MCE views to allow them to manipulate the wrapper on render. This should be used sparingly — only for layout changes that cannot be accomplished through altering the wrapper's children — and likely only for adding/removing classes.
  • Uses wp.html.string() in wp.mce.view.toView().

see #21390, #21812, #21813.

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/js/media-upload.js

    r22173 r22220  
    112112                this.insert( selection.map( function( attachment ) { 
    113113                    if ( 'image' === attachment.get('type') ) 
    114                         return '\n' + wp.media.string.image( attachment ) + '\n'; 
     114                        return wp.media.string.image( attachment ) + ' '; 
    115115                    else 
    116116                        return wp.media.string.link( attachment ) + ' '; 
  • trunk/wp-includes/js/mce-view.js

    r22210 r22220  
    282282        toView: function( viewType, options ) { 
    283283            var view = wp.mce.view.get( viewType ), 
    284                 instance, id, tag; 
     284                instance, id; 
    285285 
    286286            if ( ! view ) 
     
    297297            instances[ id ] = instance; 
    298298 
    299             // If the view is a span, wrap it in a span. 
    300             tag = 'span' === instance.tagName ? 'span' : 'div'; 
    301  
    302             return '<' + tag + ' class="wp-view-wrap" data-wp-view="' + id + '" contenteditable="false"></' + tag + '>'; 
     299            // Create a dummy `$wrapper` property to allow `$wrapper` to be 
     300            // called in the view's `render` method without a conditional. 
     301            instance.$wrapper = $(); 
     302 
     303            return wp.html.string({ 
     304                // If the view is a span, wrap it in a span. 
     305                tag: 'span' === instance.tagName ? 'span' : 'div', 
     306 
     307                attrs: { 
     308                    'class':           'wp-view-wrap wp-view-type-' + viewType, 
     309                    'data-wp-view':    id, 
     310                    'contenteditable': false 
     311                } 
     312            }); 
    303313        }, 
    304314 
     
    317327                    return; 
    318328 
     329                // Link the real wrapper to the view. 
     330                view.$wrapper = wrapper; 
    319331                // Render the view. 
    320332                view.render(); 
     
    544556                    return; 
    545557 
     558                // Align the wrapper. 
     559                if ( this.align ) 
     560                    this.$wrapper.addClass( 'align' + this.align ); 
     561 
     562                // Generate the template options. 
    546563                options = { 
    547564                    url: 'image' === attachment.type ? attachment.url : attachment.icon, 
Note: See TracChangeset for help on using the changeset viewer.