WordPress.org

Make WordPress Core

Ticket #28842: 28842.diff

File 28842.diff, 5.1 KB (added by ericlewis, 5 years ago)
  • 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 46919e7..06e3214 100644
    a b  
    672672        media.view.BulkDeleteButton = media.view.Button.extend({
    673673                initialize: function() {
    674674                        media.view.Button.prototype.initialize.apply( this, arguments );
    675                         this.$el.hide();
     675
    676676                        this.listenTo( this.controller, 'bulk-edit:activate bulk-edit:deactivate', _.bind( this.visibility, this ) );
     677                        this.listenTo( this.controller.state().get('selection'), 'add remove reset', _.bind( this.disabled, this ) );
    677678                },
    678679
    679680                click: function() {
    680681                        media.view.Button.prototype.click.apply( this, arguments );
     682
    681683                        while (this.controller.state().get('selection').length > 0) {
    682684                                this.controller.state().get('selection').at(0).destroy();
    683685                        }
    684686                },
    685687
     688                /**
     689                 * Only enable the button if attachments have been selected.
     690                 */
     691                disabled: function() {
     692                        var attachmentsSelected = this.controller.state().get( 'selection' ).length;
     693                        this.$el.prop( 'disabled', ! attachmentsSelected );
     694                },
     695
     696                /**
     697                 * Set the visibility and disabled attribute after the element has been
     698                 * rendered.
     699                 *
     700                 * @returns {this} Returns itself to allow chaining.
     701                 */
     702                render: function() {
     703                        media.view.Button.prototype.render.apply( this, arguments );
     704
     705                        this.disabled();
     706                        this.visibility();
     707
     708                        return this;
     709                },
     710
     711                /**
     712                 * Toggle the visibility of the button based on the mode of the controller.
     713                 */
    686714                visibility: function() {
    687                         var bulkEditActive = this.controller.activeModes.where( { id: 'bulk-edit' } ).length;
     715                        var bulkEditActive = this.controller.isModeActive( 'bulk-edit' );
    688716                        if ( bulkEditActive ) {
    689717                                this.$el.show();
    690718                        } else {
  • 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 eab3c87..10b827a 100644
    a b  
    41624162         * @augments Backbone.View
    41634163         */
    41644164        media.view.Button = media.View.extend({
    4165                 tagName:    'a',
     4165                tagName:    'button',
    41664166                className:  'media-button',
    4167                 attributes: { href: '#' },
    41684167
    41694168                events: {
    41704169                        'click': 'click'
     
    42264225                 * @param {Object} event
    42274226                 */
    42284227                click: function( event ) {
    4229                         if ( '#' === this.attributes.href ) {
    4230                                 event.preventDefault();
    4231                         }
    4232 
    42334228                        if ( this.options.click && ! this.model.get('disabled') ) {
    42344229                                this.options.click.apply( this, arguments );
    42354230                        }
     
    56585653                                }).render() );
    56595654
    56605655                                this.toolbar.set( 'bulkSelectionToggleButton', new media.view.BulkSelectionToggleButton({
    5661                                         text: 'Bulk Edit',
     5656                                        text: l10n.bulkSelect,
    56625657                                        controller: this.controller,
    56635658                                        priority: -70
    56645659                                }).render() );
    56655660
    56665661                                this.toolbar.set( 'BulkDeleteButton', new media.view.BulkDeleteButton({
    5667                                         text: 'Bulk Delete',
     5662                                        text: l10n.deleteSelected,
    56685663                                        controller: this.controller,
    56695664                                        priority: -69
    56705665                                }).render() );
  • src/wp-includes/media.php

    diff --git a/src/wp-includes/media.php b/src/wp-includes/media.php
    index a1e5b1f..9f5b222 100644
    a b function wp_enqueue_media( $args = array() ) { 
    28912891                'uploadImagesTitle' => __( 'Upload Images' ),
    28922892
    28932893                // Library
    2894                 'mediaLibraryTitle'  => __( 'Media Library' ),
    2895                 'insertMediaTitle'   => __( 'Insert Media' ),
    2896                 'createNewGallery'   => __( 'Create a new gallery' ),
    2897                 'createNewPlaylist'   => __( 'Create a new playlist' ),
    2898                 'createNewVideoPlaylist'   => __( 'Create a new video playlist' ),
    2899                 'returnToLibrary'    => __( '← Return to library' ),
    2900                 'allMediaItems'      => __( 'All media items' ),
    2901                 'allMediaTypes'      => __( 'All media types' ),
    2902                 'noItemsFound'       => __( 'No items found.' ),
    2903                 'insertIntoPost'     => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ),
    2904                 'uploadedToThisPost' => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ),
    2905                 'warnDelete' =>      __( "You are about to permanently delete this item.\n  'Cancel' to stop, 'OK' to delete." ),
     2894                'mediaLibraryTitle'       => __( 'Media Library' ),
     2895                'insertMediaTitle'        => __( 'Insert Media' ),
     2896                'createNewGallery'        => __( 'Create a new gallery' ),
     2897                'createNewPlaylist'       => __( 'Create a new playlist' ),
     2898                'createNewVideoPlaylist'  => __( 'Create a new video playlist' ),
     2899                'returnToLibrary'         => __( '← Return to library' ),
     2900                'allMediaItems'           => __( 'All media items' ),
     2901                'allMediaTypes'           => __( 'All media types' ),
     2902                'noItemsFound'            => __( 'No items found.' ),
     2903                'insertIntoPost'          => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ),
     2904                'uploadedToThisPost'      => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ),
     2905                'warnDelete'              => __( "You are about to permanently delete this item.\n  'Cancel' to stop, 'OK' to delete." ),
     2906                'warnDeleteMultiple'      => __( "You are about to permanently delete thes items.\n  'Cancel' to stop, 'OK' to delete." ),
     2907                'bulkSelect'              => __( 'Bulk Select' ),
     2908                'deleteSelected'          => __( 'Delete Selected' ),
     2909
    29062910
    29072911                // From URL
    29082912                'insertFromUrlTitle' => __( 'Insert from URL' ),