// JavaScript Document jQuery(document).ready(function($){ $('.my_meta_control .color-picker').wpColorPicker(); }); jQuery(document).on('panelsopen', function(e) { jQuery('.so-panels-dialog-wrapper .so-content .color-picker').wpColorPicker(); }); //REPEATER FIELD OPEN/CLOSE function repeatOpen(repeatparent){ //console.log(repeatparent); var hidden = jQuery('#'+repeatparent).parent().find('input').eq(0).is(":hidden"); var visible = jQuery('#'+repeatparent).parent().find('input').eq(0).is(":visible"); if(hidden){ jQuery('#'+repeatparent).parent().addClass('repeatopen'); } if(visible){ jQuery('#'+repeatparent).parent().removeClass('repeatopen'); } } //COLRPICKER FIELD ( function( $ ){ function initColorPicker( widget ) { widget.find( '.color-picker' ).wpColorPicker( { change: _.throttle( function() { // For Customizer $(this).trigger( 'change' ); }, 2000 ) }); } function onFormUpdate( event, widget ) { initColorPicker( widget ); } $( document ).on( 'widget-added widget-updated', onFormUpdate ); $( document ).ready( function() { $( '#widgets-right .widget:has(.color-picker)' ).each( function () { initColorPicker( $( this ) ); } ); } ); }( jQuery ) ); //BLOCK WIDGET ACCORDION jQuery(window).on( 'load widget-updated widget-added', function() { jQuery('.block_accordion h4').on('click',function() { if(!jQuery(this).parent().hasClass('acc_active')){ jQuery(this).parent().addClass('acc_active'); jQuery(this).next().slideDown(); }else{ jQuery(this).parent().removeClass('acc_active'); jQuery(this).next().slideUp(); } }); }); jQuery(document).ready(function($) { $(".meta_nav a").click(function(event) { event.preventDefault(); $(this).parent().addClass("tabcurrent"); $(this).parent().siblings().removeClass("tabcurrent"); var tab = $(this).attr("href"); $(".my_meta_control").not(tab).css("display", "none"); $(tab).fadeIn(); }); }); jQuery( document ).on( 'load widget-added widget-updated', function () { jQuery(document).on("click", ".remove-field", function(e) { jQuery(this).parent().remove(); }); }); //Widget MEDIAPICKER PLUGIN //MEDIA PICKER FUNCTION function mediaPicker(pickerid){ var custom_uploader; var row_id //e.preventDefault(); row_id = jQuery('#'+pickerid).prev().attr('id'); //If the uploader object has already been created, reopen the dialog if (custom_uploader) { custom_uploader.open(); return; } //CREATE THE MEDIA WINDOW custom_uploader = wp.media.frames.file_frame = wp.media({ title: 'Insert Images', button: { text: 'Insert Images' }, type: 'image', multiple: false }); //"INSERT MEDIA" ACTION. PREVIEW IMAGE AND INSERT VALUE TO INPUT FIELD custom_uploader.on('select', function(){ var selection = custom_uploader.state().get('selection'); selection.map( function( attachment ) { attachment = attachment.toJSON(); //INSERT THE SRC IN INPUT FIELD jQuery('#' + row_id).val(""+attachment.url+"").trigger('change'); //APPEND THE PREVIEW IMAGE jQuery('#' + row_id).parent().find('.media-picker-preview, .media-picker-remove').remove(); if(attachment.sizes.medium){ jQuery('#' + row_id).parent().prepend(''); }else{ jQuery('#' + row_id).parent().prepend(''); } }); jQuery(".media-picker-remove").on('click',function(e) { jQuery(this).parent().find('.media-picker').val('').trigger('change'); jQuery(this).parent().find('.media-picker-preview, .media-picker-remove').remove(); }); }); //OPEN THE MEDIA WINDOW custom_uploader.open(); } jQuery(window).on( 'load widget-updated widget-added', function() { //jQuery(".media-picker-remove").unbind( "click" ); jQuery(".media-picker-remove").on('click',function(e) { jQuery(this).parent().find('.media-picker').val('').trigger('change'); jQuery(this).parent().find('.media-picker-preview, .media-picker-remove').remove(); }); //jQuery( ".media-picker-button").unbind( "click" ); }); /** * WP Editor Widget object */ WPEditorWidget = { /** * @var string */ currentContentId: '', /** * @var string */ currentEditorPage: '', /** * @var int */ wpFullOverlayOriginalZIndex: 0, /** * Show the editor * @param string contentId */ showEditor: function(contentId) { jQuery('#wp-editor-widget-backdrop').show(); jQuery('body.widgets-php #wp-editor-widget-container, body.post-type-page #wp-editor-widget-container, body.fl-builder #wp-editor-widget-container').show(); jQuery('body.wp-customizer #wp-editor-widget-container').fadeIn(100).animate({"left":"0"}); this.currentContentId = contentId; if(jQuery('body').hasClass('wp-customizer')){ this.currentEditorPage = 'wp-customizer'; }else if(jQuery('body').hasClass('widgets-php')){ this.currentEditorPage = 'widgets-php'; }else{ this.currentEditorPage = 'wp-pagescreen'; } if (this.currentEditorPage == "wp-customizer") { this.wpFullOverlayOriginalZIndex = parseInt(jQuery('.wp-full-overlay').css('zIndex')); jQuery('.wp-full-overlay').css({ zIndex: 49000 }); } this.setEditorContent(contentId); }, /** * Hide editor */ hideEditor: function() { jQuery('#wp-editor-widget-backdrop').hide(); jQuery('body.widgets-php #wp-editor-widget-container, body.post-type-page #wp-editor-widget-container, body.fl-builder #wp-editor-widget-container').hide(); jQuery('body.wp-customizer #wp-editor-widget-container').animate({"left":"-650px"}).fadeOut(); if (this.currentEditorPage == "wp-customizer") { jQuery('.wp-full-overlay').css({ zIndex: this.wpFullOverlayOriginalZIndex }); } }, /** * Set editor content */ setEditorContent: function(contentId) { var editor = tinyMCE.EditorManager.get('wpeditorwidget'); var content = jQuery('#'+ contentId).val(); if (typeof editor == "object" && editor !== null) { editor.setContent(content); } jQuery('#wpeditorwidget').val(content); }, /** * Update widget and close the editor */ updateWidgetAndCloseEditor: function() { jQuery('#wpeditorwidget-tmce').trigger('click'); var editor = tinyMCE.EditorManager.get('wpeditorwidget'); if (typeof editor == "undefined" || editor == null || editor.isHidden()) { var content = jQuery('#wpeditorwidget').val(); } else { var content = editor.getContent(); } jQuery('#'+ this.currentContentId).val(content); // customize.php if (this.currentEditorPage == "wp-customizer" && jQuery('#'+ this.currentContentId).attr('class') == 'editorfield') { var controlid = jQuery('#'+ this.currentContentId).data('customize-setting-link'); //console.log(controlid); setTimeout(function(){ wp.customize(controlid, function(obj) { obj.set(editor.getContent()); } ); }, 1000); }else if (this.currentEditorPage == "wp-customizer") { var widget_id = jQuery('#'+ this.currentContentId).closest('div.form').find('input.widget-id').val(); var widget_form_control = wp.customize.Widgets.getWidgetFormControlForWidget( widget_id ) widget_form_control.updateWidget(); } // If Widgets Edit Page else if (this.currentEditorPage == "widgets-php") { wpWidgets.save(jQuery('#'+ this.currentContentId).closest('div.widget'), 0, 1, 0); } // If Page builder else { jQuery('#'+ this.currentContentId).closest('div.form').find('input.widget-id').val(editor.getContent()); } this.hideEditor(); } }; jQuery(window).on( 'load', function() { if (! jQuery( "body" ).hasClass( "widgets-php" ) ) { return; } jQuery( function( $ ) { var sidebarLimits = {"front_sidebar":"6"}; var realSidebars = $( '#widgets-right div.widgets-sortables' ); var availableWidgets = $( '#widget-list' ).children( '.widget' ); var checkLength = function( sidebar, delta ) { var sidebarId = sidebar.id; if ( undefined === sidebarLimits[sidebarId] ) { return; } var widgets = $( sidebar ).sortable( 'toArray' ); //moving the class up a level and changing the name to be display only $( sidebar ).parent().toggleClass( 'sidebar-full-display', sidebarLimits[sidebarId] <= widgets.length + (delta || 0) ); $( sidebar ).parent().toggleClass( 'sidebar-morethanfull-display', sidebarLimits[sidebarId] < widgets.length + (delta || 0) ); //still adding the original class to keep the goodness below working properly $( sidebar ).toggleClass( 'sidebar-full', sidebarLimits[sidebarId] <= widgets.length + (delta || 0) ); var notFullSidebars = $( 'div.widgets-sortables' ).not( '.sidebar-full' ); availableWidgets.draggable( 'option', 'connectToSortable', notFullSidebars ); realSidebars.sortable( 'option', 'connectWith', notFullSidebars ); } // Check existing sidebars on startup realSidebars.map( function() { checkLength( this ); } ); realSidebars.bind( 'sortreceive sortremove', function( event, ui ) { checkLength( this ); } ); realSidebars.bind( 'sortstop', function( event, ui ) { if ( ui.item.hasClass( 'deleting' ) ) { checkLength( this, -1 ); } } ); $(document).on("click", "a.widget-control-remove", function(e) { checkLength( $( this ).closest( 'div.widgets-sortables' )[0], -1 ); } ); wpStandardAddWidget = wpWidgets.addWidget; wpWidgets.addWidget = function( chooser ) { var sidebarId = chooser.find( '.widgets-chooser-selected' ).data('sidebarId'), sidebar = $( '#' + sidebarId ); if( false === sidebar.hasClass('sidebar-full') ) { wpStandardAddWidget( chooser ); realSidebars.map( function() { checkLength( this ); } ); } } } ); });