55 lines
1.7 KiB
JavaScript
55 lines
1.7 KiB
JavaScript
jQuery( document ).ready( function ( $ ) {
|
|
|
|
var file_frame;
|
|
|
|
$( document.body ).on( 'click', '.custom_media_upload', function ( event ) {
|
|
var $el = $( this );
|
|
|
|
var file_target_input = $el.parent().find( '.custom_media_input' );
|
|
var file_target_preview = $el.parent().find( '.custom_media_preview' );
|
|
|
|
event.preventDefault();
|
|
|
|
// Create the media frame.
|
|
file_frame = wp.media.frames.media_file = wp.media( {
|
|
// Set the title of the modal.
|
|
title : $el.data( 'choose' ),
|
|
button : {
|
|
text : $el.data( 'update' )
|
|
},
|
|
states : [
|
|
new wp.media.controller.Library( {
|
|
title : $el.data( 'choose' ),
|
|
library : wp.media.query( { type : 'image' } )
|
|
} )
|
|
]
|
|
} );
|
|
|
|
// When an image is selected, run a callback.
|
|
file_frame.on( 'select', function () {
|
|
// Get the attachment from the modal frame.
|
|
var attachment = file_frame.state().get( 'selection' ).first().toJSON();
|
|
|
|
// Initialize input and preview change.
|
|
file_target_input.val( attachment.url ).change();
|
|
file_target_preview.css( { display : 'none' } ).find( 'img' ).remove();
|
|
file_target_preview.css( { display : 'block' } ).append( '<img src="' + attachment.url + '" style="max-width:100%">' );
|
|
} );
|
|
|
|
// Finally, open the modal.
|
|
file_frame.open();
|
|
} );
|
|
|
|
// Media Uploader Preview
|
|
$( 'input.custom_media_input' ).each( function () {
|
|
var preview_image = $( this ).val(),
|
|
preview_target = $( this ).siblings( '.custom_media_preview' );
|
|
|
|
// Initialize image previews.
|
|
if ( preview_image !== '' ) {
|
|
preview_target.find( 'img.custom_media_preview_default' ).remove();
|
|
preview_target.css( { display : 'block' } ).append( '<img src="' + preview_image + '" style="max-width:100%">' );
|
|
}
|
|
} );
|
|
} );
|