WordPress.org

Make WordPress Core

Ticket #28895: 28895.diff

File 28895.diff, 4.4 KB (added by ericlewis, 6 years ago)
  • src/wp-admin/includes/ajax-actions.php

    diff --git a/src/wp-admin/includes/ajax-actions.php b/src/wp-admin/includes/ajax-actions.php
    index 78cad54..55661dd 100644
    a b function wp_ajax_query_attachments() { 
    21562156        $query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
    21572157        $query = array_intersect_key( $query, array_flip( array(
    21582158                's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
    2159                 'post_parent', 'post__in', 'post__not_in',
     2159                'post_parent', 'post__in', 'post__not_in', 'year', 'monthnum'
    21602160        ) ) );
    21612161
    21622162        $query['post_type'] = 'attachment';
    function wp_ajax_parse_media_shortcode() { 
    27132713        if ( ! empty( $wp_scripts ) ) {
    27142714                $wp_scripts->done = array();
    27152715        }
    2716        
     2716
    27172717        if ( 'playlist' === $_REQUEST['type'] ) {
    27182718                wp_underscore_playlist_templates();
    27192719
  • src/wp-includes/js/media-grid.js

    diff --git a/src/wp-includes/js/media-grid.js b/src/wp-includes/js/media-grid.js
    index 67f4dc5..5e19753 100644
    a b  
    681681                }
    682682        });
    683683
     684        /**
     685         * A filter dropdown for month/dates.
     686         */
     687        media.view.DateFilter = media.view.AttachmentFilters.extend({
     688                createFilters: function() {
     689                        var filters = {};
     690                        _.each( media.view.settings.months || {}, function( value, index ) {
     691                                filters[ index ] = {
     692                                        text: value.text,
     693                                        props: {
     694                                                year: value.year,
     695                                                monthnum: value.month,
     696                                        }
     697                                };
     698                        });
     699                        filters.all = {
     700                                text:  l10n.allDates,
     701                                props: {
     702                                        monthnum: false,
     703                                        year:  false
     704                                },
     705                                priority: 10
     706                        };
     707                        this.filters = filters;
     708                }
     709        });
     710
    684711}(jQuery, _, Backbone, wp));
  • src/wp-includes/js/media-views.js

    diff --git a/src/wp-includes/js/media-views.js b/src/wp-includes/js/media-views.js
    index c57df05..8336a0d 100644
    a b  
    54995499                        this.select();
    55005500                },
    55015501
     5502                /**
     5503                 * @abstract
     5504                 */
    55025505                createFilters: function() {
    55035506                        this.filters = {};
    55045507                },
    55055508
     5509                /**
     5510                 * When the selection changes, set the Query properties
     5511                 * accordingly for the selected filter.
     5512                 */
    55065513                change: function() {
    55075514                        var filter = this.filters[ this.el.value ];
    5508 
    55095515                        if ( filter ) {
    55105516                                this.model.set( filter.props );
    55115517                        }
     
    57355741                                        priority: -90
    57365742                                }).render() );
    57375743
    5738                                 this.toolbar.set( 'BulkSelection', new media.view.BulkSelection({
     5744                                this.toolbar.set( 'bulkSelection', new media.view.BulkSelection({
    57395745                                        controller: this.controller,
    57405746                                        priority: -70
    57415747                                }).render() );
     5748                                this.toolbar.set( 'dateFilter', new media.view.DateFilter({
     5749                                        controller: this.controller,
     5750                                        model:      this.collection.props,
     5751                                        priority: -75
     5752                                }).render() );
    57425753                        }
    57435754
    57445755                        filters = this.options.filters;
  • src/wp-includes/media.php

    diff --git a/src/wp-includes/media.php b/src/wp-includes/media.php
    index fea3c34..cd32ae1 100644
    a b function wp_enqueue_media( $args = array() ) { 
    27722772        if ( did_action( 'wp_enqueue_media' ) )
    27732773                return;
    27742774
    2775         global $content_width, $wpdb;
     2775        global $content_width, $wpdb, $wp_locale;
    27762776
    27772777        $defaults = array(
    27782778                'post' => null,
    function wp_enqueue_media( $args = array() ) { 
    28252825                AND post_mime_type LIKE 'video%'
    28262826                LIMIT 1
    28272827        " );
     2828        $months = $wpdb->get_results( $wpdb->prepare( "
     2829                SELECT DISTINCT YEAR( post_date ) AS year, MONTH( post_date ) AS month
     2830                FROM $wpdb->posts
     2831                WHERE post_type = %s
     2832                ORDER BY post_date DESC
     2833        ", 'attachment' ) );
     2834        foreach ( $months as $month_year ) {
     2835                $month_year->text = sprintf( __( '%1$s %2$d' ), $wp_locale->get_month( $month_year->month ), $month_year->year );
     2836        }
    28282837
    28292838        $settings = array(
    28302839                'tabs'      => $tabs,
    function wp_enqueue_media( $args = array() ) { 
    28462855                'embedExts'    => $exts,
    28472856                'embedMimes'   => $ext_mimes,
    28482857                'contentWidth' => $content_width,
     2858                'months'       => $months,
    28492859        );
    28502860
    28512861        $post = null;
    function wp_enqueue_media( $args = array() ) { 
    29042914                'returnToLibrary'        => __( '← Return to library' ),
    29052915                'allMediaItems'          => __( 'All media items' ),
    29062916                'allMediaTypes'          => __( 'All media types' ),
     2917                'allDates'               => __( 'All dates' ),
    29072918                'noItemsFound'           => __( 'No items found.' ),
    29082919                'insertIntoPost'         => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ),
    29092920                'uploadedToThisPost'     => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ),