54 lines
1.4 KiB
JavaScript
54 lines
1.4 KiB
JavaScript
/*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;
|