mirror of
https://github.com/WordPress/WordPress.git
synced 2025-01-06 08:28:07 +01:00
70 lines
1.3 KiB
JavaScript
70 lines
1.3 KiB
JavaScript
|
/*globals _, wp */
|
||
|
|
||
|
/**
|
||
|
* wp.media.view.Toolbar.Select
|
||
|
*
|
||
|
* @class
|
||
|
* @augments wp.media.view.Toolbar
|
||
|
* @augments wp.media.View
|
||
|
* @augments wp.Backbone.View
|
||
|
* @augments Backbone.View
|
||
|
*/
|
||
|
var Toolbar = require( '../toolbar.js' ),
|
||
|
l10n = wp.media.view.l10n,
|
||
|
Select;
|
||
|
|
||
|
Select = Toolbar.extend({
|
||
|
initialize: function() {
|
||
|
var options = this.options;
|
||
|
|
||
|
_.bindAll( this, 'clickSelect' );
|
||
|
|
||
|
_.defaults( options, {
|
||
|
event: 'select',
|
||
|
state: false,
|
||
|
reset: true,
|
||
|
close: true,
|
||
|
text: l10n.select,
|
||
|
|
||
|
// Does the button rely on the selection?
|
||
|
requires: {
|
||
|
selection: true
|
||
|
}
|
||
|
});
|
||
|
|
||
|
options.items = _.defaults( options.items || {}, {
|
||
|
select: {
|
||
|
style: 'primary',
|
||
|
text: options.text,
|
||
|
priority: 80,
|
||
|
click: this.clickSelect,
|
||
|
requires: options.requires
|
||
|
}
|
||
|
});
|
||
|
// Call 'initialize' directly on the parent class.
|
||
|
Toolbar.prototype.initialize.apply( this, arguments );
|
||
|
},
|
||
|
|
||
|
clickSelect: function() {
|
||
|
var options = this.options,
|
||
|
controller = this.controller;
|
||
|
|
||
|
if ( options.close ) {
|
||
|
controller.close();
|
||
|
}
|
||
|
|
||
|
if ( options.event ) {
|
||
|
controller.state().trigger( options.event );
|
||
|
}
|
||
|
|
||
|
if ( options.state ) {
|
||
|
controller.setState( options.state );
|
||
|
}
|
||
|
|
||
|
if ( options.reset ) {
|
||
|
controller.reset();
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
module.exports = Select;
|