Make WordPress Core

Changeset 43064


Ignore:
Timestamp:
05/01/2018 10:03:18 PM (7 years ago)
Author:
SergeyBiryukov
Message:

Privacy: add "Mine" filter for media similarly to posts and comments.

Props audrasjb.
Merged [43056], [43062], [43063] to the 4.9 branch.
Fixes #43820.

Location:
branches/4.9
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • branches/4.9

  • branches/4.9/src/wp-admin/includes/ajax-actions.php

    r42883 r43064  
    24432443    $keys = array(
    24442444        's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
    2445         'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
     2445        'post_parent', 'author', 'post__in', 'post__not_in', 'year', 'monthnum'
    24462446    );
    24472447    foreach ( get_taxonomies_for_attachments( 'objects' ) as $t ) {
  • branches/4.9/src/wp-admin/includes/class-wp-media-list-table.php

    r41161 r43064  
    120120            );
    121121        }
     122
    122123        $type_links['detached'] = '<option value="detached"' . ( $this->detached ? ' selected="selected"' : '' ) . '>' . __( 'Unattached' ) . '</option>';
     124
     125        $type_links['mine'] = sprintf(
     126            '<option value="mine"%s>%s</option>',
     127            selected( 'mine' === $filter, true, false ),
     128            _x( 'Mine', 'media items' )
     129        );
    123130
    124131        if ( $this->is_trash || ( defined( 'MEDIA_TRASH') && MEDIA_TRASH ) ) {
     
    129136            );
    130137        }
     138
    131139        return $type_links;
    132140    }
  • branches/4.9/src/wp-admin/includes/post.php

    r41706 r43064  
    11461146    if ( isset( $q['detached'] ) || ( isset( $q['attachment-filter'] ) && 'detached' == $q['attachment-filter'] ) ) {
    11471147        $q['post_parent'] = 0;
     1148    }
     1149
     1150    if ( isset( $q['mine'] ) || ( isset( $q['attachment-filter'] ) && 'mine' == $q['attachment-filter'] ) ) {
     1151        $q['author'] = get_current_user_id();
    11481152    }
    11491153
  • branches/4.9/src/wp-includes/js/media-models.js

    r42848 r43064  
    11221122        // are no filters for other properties, so observing will result in
    11231123        // false positives in those queries.
    1124         allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent' ];
     1124        allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent', 'author' ];
    11251125        if ( wp.Uploader && _( this.args ).chain().keys().difference( allowed ).isEmpty().value() ) {
    11261126            this.observe( wp.Uploader.queue );
     
    12391239     */
    12401240    propmap: {
    1241         'search':    's',
    1242         'type':      'post_mime_type',
    1243         'perPage':   'posts_per_page',
    1244         'menuOrder': 'menu_order',
    1245         'uploadedTo': 'post_parent',
    1246         'status':     'post_status',
    1247         'include':    'post__in',
    1248         'exclude':    'post__not_in'
     1241        'search':       's',
     1242        'type':         'post_mime_type',
     1243        'perPage':      'posts_per_page',
     1244        'menuOrder':    'menu_order',
     1245        'uploadedTo':   'post_parent',
     1246        'status':       'post_status',
     1247        'include':      'post__in',
     1248        'exclude':      'post__not_in',
     1249        'author':       'author'
    12491250    },
    12501251    /**
     
    12681269     * @param {Object} [props.post_parent]
    12691270     * @param {Object} [props.post_status]
     1271     * @param {Object} [props.author]
    12701272     * @param {Object} [options]
    12711273     *
  • branches/4.9/src/wp-includes/js/media-views.js

    r42848 r43064  
    70237023        var type = this.model.get('type'),
    70247024            types = wp.media.view.settings.mimeTypes,
     7025            uid = window.userSettings ? parseInt( window.userSettings.uid, 10 ) : 0,
    70257026            text;
    70267027
     
    70357036                    uploadedTo: null,
    70367037                    orderby: 'date',
    7037                     order:   'DESC'
     7038                    order:   'DESC',
     7039                    author:  null
    70387040                },
    70397041                priority: 10
     
    70457047                    uploadedTo: wp.media.view.settings.post.id,
    70467048                    orderby: 'menuOrder',
    7047                     order:   'ASC'
     7049                    order:   'ASC',
     7050                    author:  null
    70487051                },
    70497052                priority: 20
     
    70557058                    uploadedTo: 0,
    70567059                    orderby: 'menuOrder',
    7057                     order:   'ASC'
     7060                    order:   'ASC',
     7061                    author:  null
    70587062                },
    70597063                priority: 50
    70607064            }
    70617065        };
     7066
     7067        if ( uid ) {
     7068            this.filters.mine = {
     7069                text:  l10n.mine,
     7070                props: {
     7071                    orderby: 'date',
     7072                    order:   'DESC',
     7073                    author:  uid
     7074                },
     7075                priority: 50
     7076            };
     7077        }
    70627078    }
    70637079});
     
    70867102All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.AttachmentFilters.All.prototype */{
    70877103    createFilters: function() {
    7088         var filters = {};
     7104        var filters = {},
     7105            uid = window.userSettings ? parseInt( window.userSettings.uid, 10 ) : 0;
    70897106
    70907107        _.each( wp.media.view.settings.mimeTypes || {}, function( text, key ) {
     
    70967113                    uploadedTo: null,
    70977114                    orderby: 'date',
    7098                     order:   'DESC'
     7115                    order:   'DESC',
     7116                    author:  null
    70997117                }
    71007118            };
     
    71087126                uploadedTo: null,
    71097127                orderby: 'date',
    7110                 order:   'DESC'
     7128                order:   'DESC',
     7129                author:  null
    71117130            },
    71127131            priority: 10
     
    71217140                    uploadedTo: wp.media.view.settings.post.id,
    71227141                    orderby: 'menuOrder',
    7123                     order:   'ASC'
     7142                    order:   'ASC',
     7143                    author:  null
    71247144                },
    71257145                priority: 20
     
    71347154                type:       null,
    71357155                orderby:    'menuOrder',
    7136                 order:      'ASC'
     7156                order:      'ASC',
     7157                author:     null
    71377158            },
    71387159            priority: 50
    71397160        };
     7161
     7162        if ( uid ) {
     7163            filters.mine = {
     7164                text:  l10n.mine,
     7165                props: {
     7166                    status:     null,
     7167                    type:       null,
     7168                    uploadedTo: null,
     7169                    orderby:    'date',
     7170                    order:      'DESC',
     7171                    author:     uid
     7172                },
     7173                priority: 50
     7174            };
     7175        }
    71407176
    71417177        if ( wp.media.view.settings.mediaTrash &&
     
    71497185                    type:       null,
    71507186                    orderby:    'date',
    7151                     order:      'DESC'
     7187                    order:      'DESC',
     7188                    author:     null
    71527189                },
    71537190                priority: 50
  • branches/4.9/src/wp-includes/js/media/models/query.js

    r41351 r43064  
    7272        // are no filters for other properties, so observing will result in
    7373        // false positives in those queries.
    74         allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent' ];
     74        allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent', 'author' ];
    7575        if ( wp.Uploader && _( this.args ).chain().keys().difference( allowed ).isEmpty().value() ) {
    7676            this.observe( wp.Uploader.queue );
     
    189189     */
    190190    propmap: {
    191         'search':    's',
    192         'type':      'post_mime_type',
    193         'perPage':   'posts_per_page',
    194         'menuOrder': 'menu_order',
    195         'uploadedTo': 'post_parent',
    196         'status':     'post_status',
    197         'include':    'post__in',
    198         'exclude':    'post__not_in'
     191        'search':       's',
     192        'type':         'post_mime_type',
     193        'perPage':      'posts_per_page',
     194        'menuOrder':    'menu_order',
     195        'uploadedTo':   'post_parent',
     196        'status':       'post_status',
     197        'include':      'post__in',
     198        'exclude':      'post__not_in',
     199        'author':       'author'
    199200    },
    200201    /**
     
    218219     * @param {Object} [props.post_parent]
    219220     * @param {Object} [props.post_status]
     221     * @param {Object} [props.author]
    220222     * @param {Object} [options]
    221223     *
  • branches/4.9/src/wp-includes/js/media/views/attachment-filters/all.js

    r41351 r43064  
    1515All = wp.media.view.AttachmentFilters.extend(/** @lends wp.media.view.AttachmentFilters.All.prototype */{
    1616    createFilters: function() {
    17         var filters = {};
     17        var filters = {},
     18            uid = window.userSettings ? parseInt( window.userSettings.uid, 10 ) : 0;
    1819
    1920        _.each( wp.media.view.settings.mimeTypes || {}, function( text, key ) {
     
    2526                    uploadedTo: null,
    2627                    orderby: 'date',
    27                     order:   'DESC'
     28                    order:   'DESC',
     29                    author:  null
    2830                }
    2931            };
     
    3739                uploadedTo: null,
    3840                orderby: 'date',
    39                 order:   'DESC'
     41                order:   'DESC',
     42                author:  null
    4043            },
    4144            priority: 10
     
    5053                    uploadedTo: wp.media.view.settings.post.id,
    5154                    orderby: 'menuOrder',
    52                     order:   'ASC'
     55                    order:   'ASC',
     56                    author:  null
    5357                },
    5458                priority: 20
     
    6367                type:       null,
    6468                orderby:    'menuOrder',
    65                 order:      'ASC'
     69                order:      'ASC',
     70                author:     null
    6671            },
    6772            priority: 50
    6873        };
     74
     75        if ( uid ) {
     76            filters.mine = {
     77                text:  l10n.mine,
     78                props: {
     79                    status:     null,
     80                    type:       null,
     81                    uploadedTo: null,
     82                    orderby:    'date',
     83                    order:      'DESC',
     84                    author:     uid
     85                },
     86                priority: 50
     87            };
     88        }
    6989
    7090        if ( wp.media.view.settings.mediaTrash &&
     
    7898                    type:       null,
    7999                    orderby:    'date',
    80                     order:      'DESC'
     100                    order:      'DESC',
     101                    author:     null
    81102                },
    82103                priority: 50
  • branches/4.9/src/wp-includes/js/media/views/attachment-filters/uploaded.js

    r41351 r43064  
    1717        var type = this.model.get('type'),
    1818            types = wp.media.view.settings.mimeTypes,
     19            uid = window.userSettings ? parseInt( window.userSettings.uid, 10 ) : 0,
    1920            text;
    2021
     
    2930                    uploadedTo: null,
    3031                    orderby: 'date',
    31                     order:   'DESC'
     32                    order:   'DESC',
     33                    author:  null
    3234                },
    3335                priority: 10
     
    3941                    uploadedTo: wp.media.view.settings.post.id,
    4042                    orderby: 'menuOrder',
    41                     order:   'ASC'
     43                    order:   'ASC',
     44                    author:  null
    4245                },
    4346                priority: 20
     
    4952                    uploadedTo: 0,
    5053                    orderby: 'menuOrder',
    51                     order:   'ASC'
     54                    order:   'ASC',
     55                    author:  null
    5256                },
    5357                priority: 50
    5458            }
    5559        };
     60
     61        if ( uid ) {
     62            this.filters.mine = {
     63                text:  l10n.mine,
     64                props: {
     65                    orderby: 'date',
     66                    order:   'DESC',
     67                    author:  uid
     68                },
     69                priority: 50
     70            };
     71        }
    5672    }
    5773});
  • branches/4.9/src/wp-includes/media.php

    r42838 r43064  
    35243524        'insertIntoPost'         => $post_type_object->labels->insert_into_item,
    35253525        'unattached'             => __( 'Unattached' ),
     3526        'mine'                   => _x( 'Mine', 'media items' ),
    35263527        'trash'                  => _x( 'Trash', 'noun' ),
    35273528        'uploadedToThisPost'     => $post_type_object->labels->uploaded_to_this_item,
Note: See TracChangeset for help on using the changeset viewer.