17 lines
1.3 KiB
JavaScript
Executable File
17 lines
1.3 KiB
JavaScript
Executable File
! ( function( $ ) {
|
|
'use strict';wp.customize.controlConstructor['bloghash-select'] = wp.customize.Control.extend({ready: function() {
|
|
var control = this;control.params.is_select2 && ( control.container.find( '.bloghash-select-control' ).select2({placeholder: bloghash_customizer_localized.strings.selectCategory, allowClear: ! 0}), control.container.on( 'select2:opening', '.bloghash-select-control', ( function() {
|
|
control.populate_select2(), control.container.off( 'select2:opening', '.bloghash-select-control' );
|
|
}) ), control.container.on( 'select2:select select2:unselect select2:clear', '.bloghash-select-control', ( function() {
|
|
$( this ).val() || control.setting.set([]);
|
|
}) ) );
|
|
}, populate_select2: function( e ) {
|
|
var self = this,
|
|
options = '',
|
|
selected = '',
|
|
setting = self.setting.get();'' === setting['font-family'] && ( selected = ' selected="selected"' ), $.each( self.params.choices, ( function( id, name ) {
|
|
selected = '', ( setting && self.params.multiple && -1 !== setting.indexOf( id ) || ! self.params.multiple && id === setting ) && ( selected = ' selected="selected"' ), options += '<option value="' + id + '"' + selected + '>' + name + '</option>';
|
|
}) ), self.container.find( '.bloghash-select-control' ).html( options );
|
|
}});
|
|
}( jQuery ) );
|