(function($){ function update_preview( value, parent ) { $( '.icon_preview', parent ).html( '' ); $( '.field_option_font-awesome .fa_live_preview' ).html( '' ); } function initialize_chosen( $select, allow_deselect ) { $select.addClass('chosen_initialized').chosen({ width : '100%', no_results_text : ACFFA.no_results, rtl : ACFFA.is_rtl, allow_single_deselect : allow_deselect }); } $( document ).on( 'acf/setup_fields', function( e, postbox ) { $( postbox ).find('.field[data-field_type="font-awesome"]').each( function() { var $select = $( 'select:visible', this ); if ( $select.length ) { update_preview( $select.val(), $(this) ); if ( ACFFA.chosen ) { initialize_chosen( $select, $select.data('allow_null') ); } } }); }); $( document ).on( 'change', '.field_type select', function() { if ( 'font-awesome' == $( this ).val() ) { if ( ACFFA.chosen ) { var font_awesome_form = $( this ).closest( '.field_form' ); var ajaxLoadWait = setInterval( function() { if ( $( '.chosen-fontawesome', font_awesome_form ).length ) { clearInterval( ajaxLoadWait ); var $select = $( '.chosen-fontawesome:not(.chosen_initialized)', font_awesome_form ); if ( $select.length ) { initialize_chosen( $select, true ); } } }, 100 ); } } }); $( document ).on( 'acf/field_form-open', function( event, field ) { var $select = $( '.chosen-fontawesome:not(.chosen_initialized)', field ); if ( $select.length ) { update_preview( $select.val(), field ); if ( ACFFA.chosen ) { initialize_chosen( $select, true ); } } }); $( document ).on( 'acf/field_form-close', function( event, field ) { if ( ACFFA.chosen ) { var $select = $( '.chosen-fontawesome.chosen_initialized', field ); if ( $select.length ) { $select.removeClass('chosen_initialized').chosen('destroy'); } $duplicate_field = $( field ).next('.field'); if ( $duplicate_field.length && $duplicate_field.hasClass('form_open') ) { if ( $duplicate_field.hasClass('field_type-font-awesome') || $duplicate_field.hasClass('field_type-repeater') || $duplicate_field.hasClass('field_type-flexible_content') ) { var $duplicate_selects = $( '.chosen-fontawesome.chosen_initialized', $duplicate_field ); if ( $duplicate_selects.length ) { $.each( $duplicate_selects, function( index, select_element ) { $( select_element ).removeClass('chosen_initialized').css('display','block').chosen('destroy').next('.chosen-container').remove(); }); } } } } }); $( document ).on( 'change', '.chosen-fontawesome', function( evt, params ) { update_preview( $( this ).val(), $( this ).closest('.field_type-font-awesome') ); }); })(jQuery);