Make WordPress Core

Ticket #29742: 29742.diff

File 29742.diff, 4.6 KB (added by wonderboymusic, 11 years ago)
  • src/wp-admin/css/media.css

     
    585585        margin-top: 15px;
    586586}
    587587
    588 .attachments-browser .media-toolbar-secondary > .select-mode-toggle-button {
     588.attachments-browser .media-toolbar-secondary > .media-button {
    589589        margin-right: 10px;
    590590}
    591591
  • src/wp-includes/js/media-grid.js

     
    630630
    631631                        children = toolbar.$( '.media-toolbar-secondary > *, .media-toolbar-primary > *');
    632632
     633                        // TODO: the Frame should be doing all of this.
    633634                        if ( this.controller.isModeActive( 'select' ) ) {
    634635                                this.model.set( 'text', l10n.cancelSelection );
    635                                 children.not( '.delete-selected-button' ).hide();
    636                                 toolbar.$( '.select-mode-toggle-button' ).show();
     636                                children.not( '.media-button' ).hide();
     637                                this.$el.show();
    637638                                toolbar.$( '.delete-selected-button' ).removeClass( 'hidden' );
    638639                        } else {
    639640                                this.model.set( 'text', l10n.bulkSelect );
    640                                 this.controller.content.get().$el.removeClass('fixed');
    641                                 toolbar.$el.css('width', '');
     641                                this.controller.content.get().$el.removeClass( 'fixed' );
     642                                toolbar.$el.css( 'width', '' );
    642643                                toolbar.$( '.delete-selected-button' ).addClass( 'hidden' );
    643                                 children.not( '.spinner, .delete-selected-button' ).show();
     644                                children.not( '.spinner, .media-button' ).show();
    644645                                this.controller.state().get( 'selection' ).reset();
    645646                        }
    646647                }
    647648        });
    648649
     650        /**
     651         * A button that handles bulk Delete/Trash logic
     652         *
     653         * @constructor
     654         * @augments wp.media.view.Button
     655         * @augments wp.media.View
     656         * @augments wp.Backbone.View
     657         * @augments Backbone.View
     658         */
    649659        media.view.DeleteSelectedButton = media.view.Button.extend({
    650660                initialize: function() {
    651661                        media.view.Button.prototype.initialize.apply( this, arguments );
     
    676686                        } else {
    677687                                this.$el.addClass( 'delete-selected-button hidden' );
    678688                        }
     689                        this.toggleDisabled();
    679690                        return this;
    680691                }
    681692        });
    682693
    683694        /**
     695         * When MEDIA_TRASH is true, a button that handles bulk Delete Permanently logic
     696         *
     697         * @constructor
     698         * @augments wp.media.view.DeleteSelectedButton
     699         * @augments wp.media.view.Button
     700         * @augments wp.media.View
     701         * @augments wp.Backbone.View
     702         * @augments Backbone.View
     703         */
     704        media.view.DeleteSelectedPermanentlyButton = media.view.DeleteSelectedButton.extend({
     705                initialize: function() {
     706                        media.view.DeleteSelectedButton.prototype.initialize.apply( this, arguments );
     707                        this.listenTo( this.controller, 'select:activate', this.selectActivate );
     708                        this.listenTo( this.controller, 'select:deactivate', this.selectDeactivate );
     709                },
     710
     711                filterChange: function( model ) {
     712                        this.canShow = ( 'trash' === model.get( 'status' ) );
     713                },
     714
     715                selectActivate: function() {
     716                        this.toggleDisabled();
     717                        this.$el.toggleClass( 'hidden', ! this.canShow );
     718                },
     719
     720                selectDeactivate: function() {
     721                        this.toggleDisabled();
     722                        this.$el.addClass( 'hidden' );
     723                },
     724
     725                render: function() {
     726                        media.view.Button.prototype.render.apply( this, arguments );
     727                        this.selectActivate();
     728                        return this;
     729                }
     730        });
     731
     732        /**
    684733         * A filter dropdown for month/dates.
    685734         */
    686735        media.view.DateFilter = media.view.AttachmentFilters.extend({
  • src/wp-includes/js/media-views.js

     
    60796079                                                }
    60806080                                        }
    60816081                                }).render() );
     6082
     6083                                if ( media.view.settings.mediaTrash ) {
     6084                                        this.toolbar.set( 'deleteSelectedPermanentlyButton', new media.view.DeleteSelectedPermanentlyButton({
     6085                                                filters: Filters,
     6086                                                style: 'primary',
     6087                                                disabled: true,
     6088                                                text: l10n.deleteSelected,
     6089                                                controller: this.controller,
     6090                                                priority: -55,
     6091                                                click: function() {
     6092                                                        var removed = [], selection = this.controller.state().get( 'selection' );
     6093
     6094                                                        if ( ! selection.length ) {
     6095                                                                return;
     6096                                                        }
     6097
     6098                                                        if ( ! confirm( l10n.warnBulkDelete ) ) {
     6099                                                                return;
     6100                                                        }
     6101
     6102                                                        selection.each( function( model ) {
     6103                                                                if ( ! model.get( 'nonces' )['delete'] ) {
     6104                                                                        removed.push( model );
     6105                                                                        return;
     6106                                                                }
     6107
     6108                                                                model.destroy();
     6109                                                        } );
     6110
     6111                                                        selection.remove( removed );
     6112                                                        this.controller.trigger( 'selection:action:done' );
     6113                                                }
     6114                                        }).render() );
     6115                                }
     6116
    60826117                        }
    60836118
    60846119                        if ( this.options.search ) {