jQuery(document).ready(function ($) { /** * Repeater Fields */ function cl_refresh_repeater_values() { $(".cl-repeater-field-control-wrap").each(function () { var values = []; var $this = $(this); $this.find(".cl-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('.cl-repeater-collector').val(JSON.stringify(values)).trigger('change'); }); } $('#customize-theme-controls').on('click', '.cl-repeater-field-title', function () { $(this).next().slideToggle(); $(this).closest('.cl-repeater-field-control').toggleClass('expanded'); }); $('#customize-theme-controls').on('click', '.cl-repeater-field-close', function () { $(this).closest('.cl-repeater-fields').slideUp(); ; $(this).closest('.cl-repeater-field-control').toggleClass('expanded'); }); $("body").on("click", '.cl-add-control-field', function () { var $this = $(this).parent(); if (typeof $this != 'undefined') { var field = $this.find(".cl-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("select[data-name]").each(function () { var defaultValue = $(this).attr('data-default'); $(this).val(defaultValue); }); field.find(".cl-repeater-icon-list").each(function () { var defaultValue = $(this).next('input[data-name]').attr('data-default'); $(this).next('input[data-name]').val(defaultValue); $(this).prev('.cl-repeater-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(".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('.cl-fields').show(); $this.find('.cl-repeater-field-control-wrap').append(field); field.addClass('expanded').find('.cl-repeater-fields').show(); $('.accordion-section-content').animate({scrollTop: $this.height()}, 1000); cl_refresh_repeater_values(); } } return false; }); $("#customize-theme-controls").on("click", ".cl-repeater-field-remove", function () { if (typeof $(this).parent() != 'undefined') { $(this).closest('.cl-repeater-field-control').slideUp('normal', function () { $(this).remove(); cl_refresh_repeater_values(); }); } return false; }); $("#customize-theme-controls").on('keyup change', '[data-name]', function () { cl_refresh_repeater_values(); return false; }); // Set all variables to be used in scope var frame; // ADD IMAGE LINK $('.customize-control-repeater').on( 'click', '.cl-upload-button', function( event ){ event.preventDefault(); var imgContainer = $(this).closest('.cl-fields-wrap').find( '.thumbnail-image'), placeholder = $(this).closest('.cl-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', '.cl-delete-button', function( event ){ event.preventDefault(); var imgContainer = $(this).closest('.cl-fields-wrap').find( '.thumbnail-image'), placeholder = $(this).closest('.cl-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', '.cl-selected-icon', function () { $(this).next().slideToggle(); }); /*Drag and drop to change order*/ $(".cl-repeater-field-control-wrap").sortable({ orientation: "vertical", update: function (event, ui) { cl_refresh_repeater_values(); } }); $('body').on('click', '.cl-repeater-icon-list li', function () { var icon_class = $(this).find('i').attr('class'); $(this).addClass('icon-active').siblings().removeClass('icon-active'); $(this).parent('.cl-repeater-icon-list').prev('.cl-repeater-selected-icon').children('i').attr('class', '').addClass(icon_class); $(this).parent('.cl-repeater-icon-list').next('input').val(icon_class).trigger('change'); cl_refresh_repeater_values(); }); $('body').on('click', '.cl-repeater-selected-icon', function () { $(this).next().slideToggle(); }); /** * Select Multiple Category */ $('.customize-control-checkbox-multiple input[type="checkbox"]').on('change', function () { var checkbox_values = $(this).parents('.customize-control').find('input[type="checkbox"]:checked').map( function () { return $(this).val(); } ).get().join(','); $(this).parents('.customize-control').find('input[type="hidden"]').val(checkbox_values).trigger('change'); } ); /** * Switch Enable/Disable Control. */ $('body').on('click', '.onoffswitch', function () { var $this = $(this); if ($this.hasClass('switch-on')) { $(this).removeClass('switch-on'); $this.next('input').val('disable').trigger('change') } else { $(this).addClass('switch-on'); $this.next('input').val('enable').trigger('change') } }); //Homepage Section Sortable function businessroy_sections_order(container) { var sections = $(container).sortable('toArray'); var sec_ordered = []; $.each(sections, function (index, sec_id) { sec_id = sec_id.replace("accordion-section-", ""); sec_ordered.push(sec_id); }); $.ajax({ url: ajaxurl, type: 'post', dataType: 'html', data: { 'action': 'businessroy_sections_reorder', 'sections': sec_ordered, } }).done(function (data) { $.each(sec_ordered, function (key, value) { wp.customize.section(value).priority(key); }); $(container).find( '.businessroy-drag-spinner' ).hide(); wp.customize.previewer.refresh(); }); } $('#sub-accordion-panel-businessroy_frontpage_settings').sortable({ axis: 'y', helper: 'clone', cursor: 'move', items: '> li.control-section:not(#accordion-section-businessroy_slider_section)', delay: 150, update: function (event, ui) { $('#sub-accordion-panel-businessroy_frontpage_settings').find( '.businessroy-drag-spinner' ).show(); businessroy_sections_order('#sub-accordion-panel-businessroy_frontpage_settings'); $( '.wp-full-overlay-sidebar-content' ).scrollTop( 0 ); } }); //Scroll to section $('body').on('click', '#sub-accordion-panel-businessroy_frontpage_settings .control-subsection .accordion-section-title', function(event) { var section_id = $(this).parent('.control-subsection').attr('id'); Businessroy_scrollToSection( section_id ); }); }); function Businessroy_scrollToSection( section_id ){ var preview_section_id = "banner-slider"; var $contents = jQuery('#customize-preview iframe').contents(); switch ( section_id ) { case 'sub-accordion-section-businessroy_slider_section': preview_section_id = "banner-slider"; break; case 'accordion-section-businessroy_promoservice_section': preview_section_id = "businessroyfeature"; break; case 'accordion-section-businessroy_aboutus_section': preview_section_id = "about_us_front"; break; case 'accordion-section-businessroy_video_calltoaction_section': preview_section_id = "calltoactionvideo_promo_wrapper"; break; case 'accordion-section-businessroy_service_section': preview_section_id = "businessroyservices"; break; case 'accordion-section-businessroy_calltoaction_section': preview_section_id = "calltoaction_promo_wrapper"; break; case 'accordion-section-businessroy_recentwork_section': preview_section_id = "businessroyportfolio"; break; case 'accordion-section-businessroy_counter_section': preview_section_id = "businessroycounter_wrap"; break; case 'accordion-section-businessroy_blog_section': preview_section_id = "businessroyblog"; break; case 'accordion-section-businessroy_testimonial_section': preview_section_id = "businessroytestimonial"; break; case 'accordion-section-businessroy_team_section': preview_section_id = "businessroyteam"; break; } if( $contents.find('#'+preview_section_id).length > 0 ){ $contents.find("html, body").animate({ scrollTop: $contents.find( "#" + preview_section_id ).offset().top }, 1000); } }