WordPress.org

Make WordPress Core

Ticket #24716: 24716.35.diff

File 24716.35.diff, 2.7 KB (added by ericlewis, 4 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 0ebbc67..982f906 100644
    a b  
    125125                                modal:     false,
    126126                                selection: [],
    127127                                library:   {},
    128                                 multiple:  false,
     128                                multiple:  'add',
    129129                                state:     'library',
    130130                                uploader:  true,
    131131                                mode:      [ 'grid', 'edit' ]
     
    514514                }
    515515        });
    516516
     517
     518        media.view.BulkSelectionControl = media.View.extend({
     519                initialize: function() {
     520                        media.View.prototype.initialize.apply( this, arguments );
     521                        this.views.add( new media.view.BulkSelectionButton({
     522                                text: 'Bulk Edit',
     523                                controller: this.options.controller
     524                        }) );
     525                        this.$el.css( 'display', 'inline' );
     526                        this.listenTo( this.options.controller, 'bulk-edit:activate', this.bulkEditActivate );
     527                        this.listenTo( this.options.controller, 'bulk-edit:deactivate', this.bulkEditDeactivate );
     528                },
     529
     530                bulkEditActivate: function() {
     531
     532                },
     533
     534                bulkEditDeactivate: function() {
     535
     536                }
     537        });
     538
     539
     540        media.view.BulkSelectionButton = media.view.Button.extend({
     541                initialize: function() {
     542                        this.$el.html( 'Bulk Edit' );
     543                        media.view.Button.prototype.initialize.apply( this, arguments );
     544                },
     545
     546                click: function() {
     547                        media.view.Button.prototype.click.apply( this, arguments );
     548                        var activeModes = this.controller.options.mode;
     549                        if ( _.contains( activeModes, 'edit' ) ) {
     550                                activeModes = _.without( activeModes, 'edit' );
     551                                activeModes.push( 'bulk-edit' );
     552                                this.$el.addClass( 'button-primary');
     553                        } else {
     554                                activeModes = _.without( activeModes, 'bulk-edit' );
     555                                activeModes.push( 'edit' );
     556                                this.$el.removeClass( 'button-primary');
     557                                this.controller.state().get('selection').reset();
     558                        }
     559                        this.controller.options.mode = activeModes;
     560                }
     561        });
     562
    517563}(jQuery, _, Backbone, wp));
     564 No newline at end of file
  • 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 6bf147c..5652c8d 100644
    a b  
    46734673                        }
    46744674
    46754675                        // In the grid view, bubble up an edit:attachment event to the controller.
    4676                         if ( _.contains( this.controller.options.mode, 'grid' ) ) {
     4676                        if ( _.contains( this.controller.options.mode, 'edit' ) ) {
    46774677                                this.controller.trigger( 'edit:attachment', this.model );
    46784678                                return;
    46794679                        }
     
    55785578                                        priority: -90
    55795579                                }).render() );
    55805580
     5581                                this.toolbar.set( 'bulkSelectionControls', new media.view.BulkSelectionControl({
     5582                                        controller: this.controller,
     5583                                        priority: -70
     5584                                }).render() );
     5585
    55815586                                this.toolbar.set( 'gridFieldOptions', new media.view.GridFieldOptions({
    55825587                                        controller: this.controller,
    55835588                                        priority: -50