File: //home/bristolfilton.co.uk/public_html/wp-content/themes/advance/js/advance-widget.js
jQuery(document).on( 'ready widget-updated widget-added', function() {
// Accordion Panels
jQuery(".accordion_advance h4").click(function () {
jQuery(this).next(".pane_advance").slideToggle("slow").siblings(".pane_advance:visible").slideUp("slow");
jQuery(this).toggleClass("current");
jQuery(this).siblings("h4").removeClass("current");
});
});
jQuery(document).ready( function($) {
function media_upload(button_class) {
var _custom_media = true,
_orig_send_attachment = wp.media.editor.send.attachment;
$('body').on('click', button_class, function(e) {
var button_id ='#'+$(this).attr('id');
var self = $(button_id);
var send_attachment_bkp = wp.media.editor.send.attachment;
var button = $(button_id);
var id = button.attr('id').replace('_button', '');
_custom_media = true;
wp.media.editor.send.attachment = function(props, attachment){
if ( _custom_media ) {
$('.custom_media_id').val(attachment.id);
$('.custom_media_url').val(attachment.url);
$('.custom_media_image').attr('src',attachment.url).css('display','block');
} else {
return _orig_send_attachment.apply( button_id, [props, attachment] );
}
}
wp.media.editor.open(button);
return false;
});
}
media_upload('.custom_media_button.button');
});
//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('<img class="media-picker-preview" src="'+attachment.sizes.medium.url+'" /><i class="fa fa-times media-picker-remove"></i>');
}else{
jQuery('#' + row_id).parent().prepend('<img class="media-picker-preview" src="'+attachment.url+'" /><i class="fa fa-times media-picker-remove"></i>');
}
});
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(document).on( 'ready 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" );
});
jQuery(document).ready(function($){
$('.my_meta_control .color-picker').wpColorPicker();
});
//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 ) );
/*
* Attaches the image uploader to the input field
*/
jQuery(document).ready(function($){
// Instantiates the variable that holds the media library frame.
var meta_image_frame;
// Runs when the image button is clicked.
$('#meta-image-button').click(function(e){
// Prevents the default action from occuring.
e.preventDefault();
// If the frame already exists, re-open it.
if ( meta_image_frame ) {
meta_image_frame.open();
return;
}
// Sets up the media library frame
meta_image_frame = wp.media.frames.meta_image_frame = wp.media({
title: meta_image.title,
button: { text: meta_image.button },
library: { type: 'image' }
});
// Runs when an image is selected.
meta_image_frame.on('select', function(){
// Grabs the attachment selection and creates a JSON representation of the model.
var media_attachment = meta_image_frame.state().get('selection').first().toJSON();
// Sends the attachment URL to our custom image input field.
$('#meta-image').val(media_attachment.url);
});
// Opens the media library frame.
meta_image_frame.open();
});
});