WordPress/wp-includes/js/media/views/button/select-mode-toggle.js
Scott Taylor b191013198 Media JS files:
* In media manifests, ditch IIFEs and global injection, these get dynamically scoped via Browserify
* Remove the `debug` option from `browserify:media`
* Add `jshint:media` to `jshint:corejs`
* Add a trailing newline to all new module files

Props iseulde.
See #28510.

Built from https://develop.svn.wordpress.org/trunk@31385


git-svn-id: http://core.svn.wordpress.org/trunk@31366 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2015-02-09 16:01:29 +00:00

54 lines
1.7 KiB
JavaScript

var Button = require( '../button.js' ),
l10n = wp.media.view.l10n,
SelectModeToggle;
SelectModeToggle = Button.extend({
initialize: function() {
Button.prototype.initialize.apply( this, arguments );
this.listenTo( this.controller, 'select:activate select:deactivate', this.toggleBulkEditHandler );
this.listenTo( this.controller, 'selection:action:done', this.back );
},
back: function () {
this.controller.deactivateMode( 'select' ).activateMode( 'edit' );
},
click: function() {
Button.prototype.click.apply( this, arguments );
if ( this.controller.isModeActive( 'select' ) ) {
this.back();
} else {
this.controller.deactivateMode( 'edit' ).activateMode( 'select' );
}
},
render: function() {
Button.prototype.render.apply( this, arguments );
this.$el.addClass( 'select-mode-toggle-button' );
return this;
},
toggleBulkEditHandler: function() {
var toolbar = this.controller.content.get().toolbar, children;
children = toolbar.$( '.media-toolbar-secondary > *, .media-toolbar-primary > *' );
// TODO: the Frame should be doing all of this.
if ( this.controller.isModeActive( 'select' ) ) {
this.model.set( 'text', l10n.cancelSelection );
children.not( '.media-button' ).hide();
this.$el.show();
toolbar.$( '.delete-selected-button' ).removeClass( 'hidden' );
} else {
this.model.set( 'text', l10n.bulkSelect );
this.controller.content.get().$el.removeClass( 'fixed' );
toolbar.$el.css( 'width', '' );
toolbar.$( '.delete-selected-button' ).addClass( 'hidden' );
children.not( '.spinner, .media-button' ).show();
this.controller.state().get( 'selection' ).reset();
}
}
});
module.exports = SelectModeToggle;