jQuery(document).ready(function($){ var business_uncode_upload; var business_uncode_selector; function business_uncode_add_file(event, selector) { var upload = $(".uploaded-file"), frame; var $el = $(this); business_uncode_selector = selector; event.preventDefault(); // If the media frame already exists, reopen it. if ( business_uncode_upload ) { business_uncode_upload.open(); } else { // Create the media frame. business_uncode_upload = wp.media.frames.business_uncode_upload = wp.media({ // Set the title of the modal. title: $el.data('choose'), // Customize the submit button. button: { // Set the text of the button. text: $el.data('update'), // Tell the button not to close the modal, since we're // going to refresh the page when the image is selected. close: false } }); // When an image is selected, run a callback. business_uncode_upload.on( 'select', function() { // Grab the selected attachment. var attachment = business_uncode_upload.state().get('selection').first(); business_uncode_upload.close(); business_uncode_selector.find('.upload').val(attachment.attributes.url); if ( attachment.attributes.type == 'image' ) { business_uncode_selector.find('.screenshot').empty().hide().append(''+ business_uncode_remove.remove +'').slideDown('fast'); } business_uncode_selector.find('.upload-button-wdgt').unbind().addClass('remove-file').removeClass('upload-button-wdgt').val(business_uncode_remove.remove); business_uncode_selector.find('.of-background-properties').slideDown(); business_uncode_selector.find('.remove-image, .remove-file').on('click', function() { business_uncode_remove_file( $(this).parents('.section') ); }); }); } // Finally, open the modal. business_uncode_upload.open(); } function business_uncode_remove_file(selector) { selector.find('.remove-image').hide(); selector.find('.upload').val(''); selector.find('.of-background-properties').hide(); selector.find('.screenshot').slideUp(); selector.find('.remove-file').unbind().addClass('upload-button-wdgt').removeClass('remove-file').val(business_uncode_remove.upload); if ( $('.section-upload .upload-notice').length > 0 ) { $('.upload-button-wdgt').remove(); } selector.find('.upload-button-wdgt').on('click', function(event) { business_uncode_add_file(event, $(this).parents('.section')); }); } $('body').on('click','.remove-image, .remove-file', function() { business_uncode_remove_file( $(this).parents('.section') ); }); $(document).on('click', '.upload-button-wdgt', function( event ) { business_uncode_add_file(event, $(this).parents('.section')); }); /** * Repeater Fields */ function business_uncode_refresh_repeater_values(){ $(".business_uncode-repeater-field-control-wrap").each(function(){ var values = []; var $this = $(this); $this.find(".business_uncode-repeater-field-control").each(function(){ var valueToPush = {}; $(this).find('[data-name]').each(function(){ var dataName = $(this).attr('data-name'); var dataValue = $(this).val(); valueToPush[dataName] = dataValue; }); values.push(valueToPush); }); $this.next('.business_uncode-repeater-collector').val(JSON.stringify(values)).trigger('change'); }); } $('#customize-theme-controls').on('click','.business_uncode-repeater-field-title',function(){ $(this).next().slideToggle(); $(this).closest('.business_uncode-repeater-field-control').toggleClass('expanded'); }); $('#customize-theme-controls').on('click', '.business_uncode-repeater-field-close', function(){ $(this).closest('.business_uncode-repeater-fields').slideUp();; $(this).closest('.business_uncode-repeater-field-control').toggleClass('expanded'); }); $("body").on("click",'.business_uncode-add-control-field', function(){ var $this = $(this).parent(); if(typeof $this != 'undefined') { var field = $this.find(".business_uncode-repeater-field-control:first").clone(); if(typeof field != 'undefined'){ field.find("input[type='text'][data-name]").each(function(){ var defaultValue = $(this).attr('data-default'); $(this).val(defaultValue); }); field.find("textarea[data-name]").each(function(){ var defaultValue = $(this).attr('data-default'); $(this).val(defaultValue); }); field.find("select[data-name]").each(function(){ var defaultValue = $(this).attr('data-default'); $(this).val(defaultValue); }); field.find(".radio-labels input[type='radio']").each(function(){ var defaultValue = $(this).closest('.radio-labels').next('input[data-name]').attr('data-default'); $(this).closest('.radio-labels').next('input[data-name]').val(defaultValue); if($(this).val() == defaultValue){ $(this).prop('checked',true); }else{ $(this).prop('checked',false); } }); field.find(".selector-labels label").each(function(){ var defaultValue = $(this).closest('.selector-labels').next('input[data-name]').attr('data-default'); var dataVal = $(this).attr('data-val'); $(this).closest('.selector-labels').next('input[data-name]').val(defaultValue); if(defaultValue == dataVal){ $(this).addClass('selector-selected'); }else{ $(this).removeClass('selector-selected'); } }); field.find('.range-input').each(function(){ var $dis = $(this); $dis.removeClass('ui-slider ui-slider-horizontal ui-widget ui-widget-content ui-corner-all').empty(); var defaultValue = parseFloat($dis.attr('data-defaultvalue')); $dis.siblings(".range-input-selector").val(defaultValue); $dis.slider({ range: "min", value: parseFloat($dis.attr('data-defaultvalue')), min: parseFloat($dis.attr('data-min')), max: parseFloat($dis.attr('data-max')), step: parseFloat($dis.attr('data-step')), slide: function( event, ui ) { $dis.siblings(".range-input-selector").val(ui.value ); business_uncode_refresh_repeater_values(); } }); }); field.find('.onoffswitch').each(function(){ var defaultValue = $(this).next('input[data-name]').attr('data-default'); $(this).next('input[data-name]').val(defaultValue); if(defaultValue == 'on'){ $(this).addClass('switch-on'); }else{ $(this).removeClass('switch-on'); } }); field.find(".attachment-media-view").each(function(){ var defaultValue = $(this).find('input[data-name]').attr('data-default'); $(this).find('input[data-name]').val(defaultValue); if(defaultValue){ $(this).find(".thumbnail-image").html('').prev('.placeholder').addClass('hidden'); }else{ $(this).find(".thumbnail-image").html('').prev('.placeholder').removeClass('hidden'); } }); field.find(".business_uncode-icon-list").each(function(){ var defaultValue = $(this).next('input[data-name]').attr('data-default'); $(this).next('input[data-name]').val(defaultValue); $(this).prev('.business_uncode-selected-icon').children('i').attr('class','').addClass(defaultValue); $(this).find('li').each(function(){ var icon_class = $(this).find('i').attr('class'); if(defaultValue == icon_class ){ $(this).addClass('icon-active'); }else{ $(this).removeClass('icon-active'); } }); }); field.find(".business_uncode-multi-category-list").each(function(){ var defaultValue = $(this).next('input[data-name]').attr('data-default'); $(this).next('input[data-name]').val(defaultValue); $(this).find('input[type="checkbox"]').each(function(){ if($(this).val() == defaultValue){ $(this).prop('checked',true); }else{ $(this).prop('checked',false); } }); }); field.find('.business_uncode-fields').show(); $this.find('.business_uncode-repeater-field-control-wrap').append(field); field.addClass('expanded').find('.business_uncode-repeater-fields').show(); $('.accordion-section-content').animate({ scrollTop: $this.height() }, 1000); business_uncode_refresh_repeater_values(); } } return false; }); $("#customize-theme-controls").on("click", ".business_uncode-repeater-field-remove",function(){ if( typeof $(this).parent() != 'undefined'){ $(this).closest('.business_uncode-repeater-field-control').slideUp('normal', function(){ $(this).remove(); business_uncode_refresh_repeater_values(); }); } return false; }); $("#customize-theme-controls").on('keyup change', '[data-name]',function(){ business_uncode_refresh_repeater_values(); return false; }); $("#customize-theme-controls").on('change', 'input[type="checkbox"][data-name]',function(){ if($(this).is(":checked")){ $(this).val('yes'); }else{ $(this).val('no'); } business_uncode_refresh_repeater_values(); return false; }); /*Drag and drop to change order*/ $(".business_uncode-repeater-field-control-wrap").sortable({ orientation: "vertical", update: function( event, ui ) { business_uncode_refresh_repeater_values(); } }); // Set all variables to be used in scope var frame; // ADD IMAGE LINK $('.customize-control-repeater').on( 'click', '.business_uncode-upload-button', function( event ){ event.preventDefault(); var imgContainer = $(this).closest('.business_uncode-fields-wrap').find( '.thumbnail-image'), placeholder = $(this).closest('.business_uncode-fields-wrap').find( '.placeholder'), imgIdInput = $(this).siblings('.upload-id'); // Create a new media frame frame = wp.media({ title: 'Select or Upload Image', button: { text: 'Use Image' }, multiple: false // Set to true to allow multiple files to be selected }); // When an image is selected in the media frame... frame.on( 'select', function() { // Get media attachment details from the frame state var attachment = frame.state().get('selection').first().toJSON(); // Send the attachment URL to our custom image input field. imgContainer.html( '' ); placeholder.addClass('hidden'); // Send the attachment id to our hidden input imgIdInput.val( attachment.url ).trigger('change'); }); // Finally, open the modal on click frame.open(); }); // DELETE IMAGE LINK $('.customize-control-repeater').on( 'click', '.business_uncode-delete-button', function( event ){ event.preventDefault(); var imgContainer = $(this).closest('.business_uncode-fields-wrap').find( '.thumbnail-image'), placeholder = $(this).closest('.business_uncode-fields-wrap').find( '.placeholder'), imgIdInput = $(this).siblings('.upload-id'); // Clear out the preview image imgContainer.find('img').remove(); placeholder.removeClass('hidden'); // Delete the image id from the hidden input imgIdInput.val( '' ).trigger('change'); }); $('body').on('click','.selector-labels label', function(){ var $this = $(this); var value = $this.attr('data-val'); $this.siblings().removeClass('selector-selected'); $this.addClass('selector-selected'); $this.closest('.selector-labels').next('input').val(value).trigger('change'); }); $('body').on('change','.business_uncode-type-radio input[type="radio"]', function(){ var $this = $(this); $this.parent('label').siblings('label').find('input[type="radio"]').prop('checked',false); var value = $this.closest('.radio-labels').find('input[type="radio"]:checked').val(); $this.closest('.radio-labels').next('input').val(value).trigger('change'); }); $('body').on('click', '.onoffswitch', function(){ var $this = $(this); if($this.hasClass('switch-on')){ $(this).removeClass('switch-on'); $this.next('input').val('off').trigger('change') }else{ $(this).addClass('switch-on'); $this.next('input').val('on').trigger('change') } }); $('.range-input').each(function(){ var $this = $(this); $this.slider({ range: "min", value: parseFloat($this.attr('data-value')), min: parseFloat($this.attr('data-min')), max: parseFloat($this.attr('data-max')), step: parseFloat($this.attr('data-step')), slide: function( event, ui ) { $this.siblings(".range-input-selector").val(ui.value ); business_uncode_refresh_repeater_values(); } }); }); $('body').on('click', '.business_uncode-icon-list li', function(){ var icon_class = $(this).find('i').attr('class'); $(this).addClass('icon-active').siblings().removeClass('icon-active'); $(this).parent('.business_uncode-icon-list').prev('.business_uncode-selected-icon').children('i').attr('class','').addClass(icon_class); $(this).parent('.business_uncode-icon-list').next('input').val(icon_class).trigger('change'); business_uncode_refresh_repeater_values(); }); $('body').on('click', '.business_uncode-selected-icon', function(){ $(this).next().slideToggle(); }); //MultiCheck box Control JS $( 'body' ).on( 'change', '.business_uncode-type-multicategory input[type="checkbox"]' , function() { var checkbox_values = $( this ).parents( '.business_uncode-type-multicategory' ).find( 'input[type="checkbox"]:checked' ).map(function(){ return $( this ).val(); }).get().join( ',' ); $( this ).parents( '.business_uncode-type-multicategory' ).find( 'input[type="hidden"]' ).val( checkbox_values ).trigger( 'change' ); business_uncode_refresh_repeater_values(); }); $('body').on( 'click', '.vl-bottom-block-layout label[data-val]', function(){ if( $(this).attr('data-val') == 'style2' ){ $(this).closest('.business_uncode-repeater-fields').find('.vl-bottom-block-cat2, .vl-bottom-block-cat3').fadeOut(); }else{ $(this).closest('.business_uncode-repeater-fields').find('.vl-bottom-block-cat1, .vl-bottom-block-cat2, .vl-bottom-block-cat3').fadeIn(); } }); $('.vl-bottom-block-layout').each(function(){ if( $(this).find('input[type="hidden"]').val() == 'style2' ){ $(this).closest('.business_uncode-repeater-fields').find('.vl-bottom-block-cat2, .vl-bottom-block-cat3').fadeOut(); }else{ $(this).closest('.business_uncode-repeater-fields').find('.vl-bottom-block-cat1, .vl-bottom-block-cat2, .vl-bottom-block-cat2').fadeIn(); } }); /******for pulling multiple categories ***/ // Holds the status of whether or not the rest of the code should be run /** * Multiple checkboxes */ $( '.customize-control-checkbox-multiple input[type="checkbox"]' ).on( 'change', function() { checkbox_values = $( this ).parents( '.customize-control' ).find( 'input[type="checkbox"]:checked' ).map( function() { return this.value; } ).get().join( ',' ); $( this ).parents( '.customize-control' ).find( 'input[type="hidden"]' ).val( checkbox_values ).trigger( 'change' ); }); });