WordPress.org

Make WordPress Core


Ignore:
Timestamp:
10/29/2012 06:56:23 AM (8 years ago)
Author:
koopersmith
Message:

Add a sidebar to the media modal.

  • Adds wp.media.view.Sidebar, to aid in rendering the sidebar.
  • Removes the directions from the Attachments view and shifts search into a separate view (wp.mce.view.Search) that can be relocated at will. This also serves to simplify the Attachments view by removing the nested list and $list parameters.
  • Show the toolbar on the featured image workflow, effectively requiring confirmation before closing the dialog.

see #21390, #21776, #21808.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/wp-admin/includes/meta-boxes.php

    r22320 r22321  
    10191019            $thumbnailId = $element.find('input[name="thumbnail_id"]'),
    10201020            title        = '<?php _e( "Choose a Featured Image" ); ?>',
    1021             workflow, selection, setFeaturedImage;
     1021            update       = '<?php _e( "Update Featured Image" ); ?>',
     1022            frame, selection, setFeaturedImage;
    10221023
    10231024        setFeaturedImage = function( thumbnailId ) {
     
    10301031            event.preventDefault();
    10311032
    1032             if ( ! workflow ) {
    1033                 workflow = wp.media({
     1033            if ( ! frame ) {
     1034                frame = wp.media({
    10341035                    title:   title,
    10351036                    library: {
     
    10381039                });
    10391040
    1040                 selection = workflow.state().get('selection');
    1041 
    1042                 selection.on( 'add', function( model ) {
    1043                     var sizes = model.get('sizes'),
    1044                         size;
    1045 
    1046                     setFeaturedImage( model.id );
    1047 
    1048                     // @todo: might need a size hierarchy equivalent.
    1049                     if ( sizes )
    1050                         size = sizes['post-thumbnail'] || sizes.medium;
    1051 
    1052                     // @todo: Need a better way of accessing full size
    1053                     // data besides just calling toJSON().
    1054                     size = size || model.toJSON();
    1055 
    1056                     workflow.close();
    1057                     selection.clear();
    1058 
    1059                     $( '<img />', {
    1060                         src:    size.url,
    1061                         width:  size.width
    1062                     }).prependTo( $element );
    1063                 });
     1041                frame.toolbar( new wp.media.view.Toolbar({
     1042                    controller: frame,
     1043                    items: {
     1044                        update: {
     1045                            style:    'primary',
     1046                            text:     update,
     1047                            priority: 40,
     1048
     1049                            click: function() {
     1050                                var selection = frame.state().get('selection'),
     1051                                    model = selection.first(),
     1052                                    sizes = model.get('sizes'),
     1053                                    size;
     1054
     1055                                setFeaturedImage( model.id );
     1056
     1057                                // @todo: might need a size hierarchy equivalent.
     1058                                if ( sizes )
     1059                                    size = sizes['post-thumbnail'] || sizes.medium;
     1060
     1061                                // @todo: Need a better way of accessing full size
     1062                                // data besides just calling toJSON().
     1063                                size = size || model.toJSON();
     1064
     1065                                frame.close();
     1066                                selection.clear();
     1067
     1068                                $( '<img />', {
     1069                                    src:    size.url,
     1070                                    width:  size.width
     1071                                }).prependTo( $element );
     1072                            }
     1073                        }
     1074                    }
     1075                }) );
    10641076            }
    10651077
    1066             workflow.open();
     1078            frame.open();
    10671079        });
    10681080
Note: See TracChangeset for help on using the changeset viewer.