Make WordPress Core

Ticket #22608: 22608.diff

File 22608.diff, 5.5 KB (added by koopersmith, 12 years ago)
  • wp-includes/js/media-editor.js

     
    157157                                icontag:    'dt',
    158158                                captiontag: 'dd',
    159159                                columns:    3,
    160                                 size:       'thumbnail'
     160                                size:       'thumbnail',
     161                                orderby:    'menu_order ID'
    161162                        },
    162163
    163164                        attachments: function( shortcode ) {
     
    170171                                if ( result )
    171172                                        return result;
    172173
    173                                 attrs = shortcode.attrs.named;
     174                                // Fill the default shortcode attributes.
     175                                attrs = _.defaults( shortcode.attrs.named, wp.media.gallery.defaults );
    174176                                args  = _.pick( attrs, 'orderby', 'order' );
    175177
    176178                                args.type    = 'image';
    177179                                args.perPage = -1;
    178180
     181                                // Map the `orderby` attribute to the corresponding model property.
     182                                if ( ! attrs.orderby || /^menu_order(?: ID)?$/i.test( attrs.orderby ) )
     183                                        args.orderby = 'menuOrder';
     184
    179185                                // Map the `ids` param to the correct query args.
    180186                                if ( attrs.ids ) {
    181187                                        args.post__in = attrs.ids.split(',');
     
    204210
    205211                        shortcode: function( attachments ) {
    206212                                var props = attachments.props.toJSON(),
    207                                         attrs = _.pick( props, 'include', 'exclude', 'orderby', 'order' ),
     213                                        attrs = _.pick( props, 'orderby', 'order' ),
    208214                                        shortcode, clone;
    209215
    210216                                if ( attachments.gallery )
    211217                                        _.extend( attrs, attachments.gallery.toJSON() );
    212218
     219                                // Convert all gallery shortcodes to use the `ids` property.
     220                                // Ignore `post__in` and `post__not_in`; the attachments in
     221                                // the collection will already reflect those properties.
    213222                                attrs.ids = attachments.pluck('id');
    214223
     224                                // Copy the `parent` post ID.
     225                                if ( props.parent )
     226                                        attrs.id = props.parent;
     227
    215228                                // If the `ids` attribute is set and `orderby` attribute
    216229                                // is the default value, clear it for cleaner output.
    217230                                if ( attrs.ids && 'post__in' === attrs.orderby )
     
    272285                                        selection.props.unset('orderby');
    273286                                });
    274287
    275                                 return wp.media({
     288                                // Destroy the previous gallery frame.
     289                                if ( this.frame )
     290                                        this.frame.dispose();
     291
     292                                // Store the current gallery frame.
     293                                this.frame = wp.media({
    276294                                        frame:     'post',
    277295                                        state:     'gallery-edit',
    278296                                        title:     wp.media.view.l10n.editGalleryTitle,
     
    280298                                        multiple:  true,
    281299                                        selection: selection
    282300                                });
     301
     302                                return this.frame;
    283303                        }
    284304                };
    285305        }());
  • wp-includes/js/media-models.js

     
    659659                },
    660660
    661661                orderby: {
    662                         allowed:  [ 'name', 'author', 'date', 'title', 'modified', 'uploadedTo', 'id', 'post__in' ],
     662                        allowed:  [ 'name', 'author', 'date', 'title', 'modified', 'uploadedTo', 'id', 'post__in', 'menuOrder' ],
    663663                        valuemap: {
    664664                                'id':         'ID',
    665                                 'uploadedTo': 'parent'
     665                                'uploadedTo': 'parent',
     666                                'menuOrder':  'menu_order ID'
    666667                        }
    667668                },
    668669
    669670                propmap: {
    670                         'search':  's',
    671                         'type':    'post_mime_type',
    672                         'parent':  'post_parent',
    673                         'perPage': 'posts_per_page'
     671                        'search':    's',
     672                        'type':      'post_mime_type',
     673                        'parent':    'post_parent',
     674                        'perPage':   'posts_per_page',
     675                        'menuOrder': 'menu_order'
    674676                },
    675677
    676678                // Caches query objects so queries can be easily reused.
  • wp-includes/js/media-views.js

     
    28982898                        all: {
    28992899                                text:  l10n.allMediaItems,
    29002900                                props: {
    2901                                         parent: null
     2901                                        parent:  null,
     2902                                        orderby: 'date',
     2903                                        order:   'DESC'
    29022904                                },
    29032905                                priority: 10
    29042906                        },
     
    29062908                        uploaded: {
    29072909                                text:  l10n.uploadedToThisPost,
    29082910                                props: {
    2909                                         parent: media.view.settings.postId
     2911                                        parent:  media.view.settings.postId,
     2912                                        orderby: 'menuOrder',
     2913                                        order:   'ASC'
    29102914                                },
    29112915                                priority: 20
    29122916                        }
     
    29212925                                filters[ key ] = {
    29222926                                        text: text,
    29232927                                        props: {
    2924                                                 type:   key,
    2925                                                 parent: null
     2928                                                type:    key,
     2929                                                parent:  null,
     2930                                                orderby: 'date',
     2931                                                order:   'DESC'
    29262932                                        }
    29272933                                };
    29282934                        });
     
    29302936                        filters.all = {
    29312937                                text:  l10n.allMediaItems,
    29322938                                props: {
    2933                                         type:   null,
    2934                                         parent: null
     2939                                        type:    null,
     2940                                        parent:  null,
     2941                                        orderby: 'date',
     2942                                        order:   'DESC'
    29352943                                },
    29362944                                priority: 10
    29372945                        };
     
    29392947                        filters.uploaded = {
    29402948                                text:  l10n.uploadedToThisPost,
    29412949                                props: {
    2942                                         type:   null,
    2943                                         parent: media.view.settings.postId
     2950                                        type:    null,
     2951                                        parent:  media.view.settings.postId,
     2952                                        orderby: 'menuOrder',
     2953                                        order:   'ASC'
    29442954                                },
    29452955                                priority: 20
    29462956                        };
  • wp-includes/media.php

     
    12541254                'multipart'           => true,
    12551255                'urlstream_upload'    => true,
    12561256        );
    1257        
     1257
    12581258        // Multi-file uploading doesn't currently work in iOS Safari,
    12591259        // single-file allows the built-in camera to be used as source for images
    12601260        if ( wp_is_mobile() )
     
    13271327                'uploadedTo'  => $attachment->post_parent,
    13281328                'date'        => strtotime( $attachment->post_date_gmt ) * 1000,
    13291329                'modified'    => strtotime( $attachment->post_modified_gmt ) * 1000,
     1330                'menuOrder'   => $attachment->menu_order,
    13301331                'mime'        => $attachment->post_mime_type,
    13311332                'type'        => $type,
    13321333                'subtype'     => $subtype,