/*global redux_change, redux*/ (function( $ ) { "use strict"; redux.field_objects = redux.field_objects || {}; redux.field_objects.select = redux.field_objects.select || {}; redux.field_objects.select.init = function( selector ) { if ( !selector ) { selector = $( document ).find( '.redux-container-select:visible' ); } $( selector ).each( function() { var el = $( this ); var parent = el; if ( !el.hasClass( 'redux-field-container' ) ) { parent = el.parents( '.redux-field-container:first' ); } if ( parent.is( ":hidden" ) ) { // Skip hidden fields return; } if ( parent.hasClass( 'redux-field-init' ) ) { parent.removeClass( 'redux-field-init' ); } else { return; } el.find( 'select.redux-select-item' ).each( function() { var default_params = { width: 'resolve', triggerChange: true, allowClear: true }; if ( $(this).attr('multiple') == "multiple" ) { default_params.width = "100%"; } if ( $( this ).siblings( '.select2_params' ).size() > 0 ) { var select2_params = $( this ).siblings( '.select2_params' ).val(); select2_params = JSON.parse( select2_params ); default_params = $.extend( {}, default_params, select2_params ); } if ( $( this ).hasClass( 'font-icons' ) ) { default_params = $.extend( {}, { formatResult: redux.field_objects.select.addIcon, formatSelection: redux.field_objects.select.addIcon, escapeMarkup: function( m ) { return m; } }, default_params ); } $( this ).select2( default_params ); if ( $( this ).hasClass( 'select2-sortable' ) ) { default_params = {}; default_params.bindOrder = 'sortableStop'; default_params.sortableOptions = {placeholder: 'ui-state-highlight'}; $( this ).select2Sortable( default_params ); } $( this ).on( "change", function() { redux_change( $( $( this ) ) ); $( this ).select2SortableOrder(); } ); } ); } ); }; redux.field_objects.select.addIcon = function( icon ) { if ( icon.hasOwnProperty( 'id' ) ) { return "" + "  " + icon.text + ""; } }; })( jQuery );