/*globals wp */ /** * wp.media.view.DeleteSelectedButton * * A button that handles bulk Delete/Trash logic * * @class * @augments wp.media.view.Button * @augments wp.media.View * @augments wp.Backbone.View * @augments Backbone.View */ var Button = wp.media.view.Button, l10n = wp.media.view.l10n, DeleteSelected; DeleteSelected = Button.extend({ initialize: function() { Button.prototype.initialize.apply( this, arguments ); if ( this.options.filters ) { this.listenTo( this.options.filters.model, 'change', this.filterChange ); } this.listenTo( this.controller, 'selection:toggle', this.toggleDisabled ); }, filterChange: function( model ) { if ( 'trash' === model.get( 'status' ) ) { this.model.set( 'text', l10n.untrashSelected ); } else if ( wp.media.view.settings.mediaTrash ) { this.model.set( 'text', l10n.trashSelected ); } else { this.model.set( 'text', l10n.deleteSelected ); } }, toggleDisabled: function() { this.model.set( 'disabled', ! this.controller.state().get( 'selection' ).length ); }, render: function() { Button.prototype.render.apply( this, arguments ); if ( this.controller.isModeActive( 'select' ) ) { this.$el.addClass( 'delete-selected-button' ); } else { this.$el.addClass( 'delete-selected-button hidden' ); } this.toggleDisabled(); return this; } }); module.exports = DeleteSelected;