/* global redux_change, wp */ // Add a file via the wp.media function function redux_add_file(event, selector) { event.preventDefault(); var frame; var jQueryel = jQuery(this); // If the media frame already exists, reopen it. if ( frame ) { frame.open(); return; } // Create the media frame. frame = wp.media({ multiple: false, library: { //type: 'image' //Only allow images }, // Set the title of the modal. title: jQueryel.data('choose'), // Customize the submit button. button: { // Set the text of the button. text: jQueryel.data('update') // Tell the button not to close the modal, since we're // going to refresh the page when the image is selected. } }); // When an image is selected, run a callback. frame.on( 'select', function() { // Grab the selected attachment. var attachment = frame.state().get('selection').first(); frame.close(); if ( typeof redux.media[jQuery(selector).attr('data-id')] === 'undefined' ) { redux.media[jQuery(selector).attr('data-id')] = {}; redux.media[jQuery(selector).attr('data-id')].mode = "image"; } if ( redux.media[jQuery(selector).attr('data-id')].mode !== false && attachment.attributes.type !== redux.media[jQuery(selector).attr('data-id')].mode) { return; } selector.find('.upload').val(attachment.attributes.url); selector.find('.upload-id').val(attachment.attributes.id); selector.find('.upload-height').val(attachment.attributes.height); selector.find('.upload-width').val(attachment.attributes.width); redux_change( jQuery(selector).find( '.upload-id' ) ); var thumbSrc = attachment.attributes.url; if (typeof attachment.attributes.sizes !== 'undefined' && typeof attachment.attributes.sizes.thumbnail !== 'undefined') { thumbSrc = attachment.attributes.sizes.thumbnail.url; } else if ( typeof attachment.attributes.sizes !== 'undefined' ) { var height = attachment.attributes.height; for (var key in attachment.attributes.sizes) { var object = attachment.attributes.sizes[key]; if (object.height < height) { height = object.height; thumbSrc = object.url; } } } else { thumbSrc = attachment.attributes.icon; } selector.find('.upload-thumbnail').val(thumbSrc); if ( !selector.find('.upload').hasClass('noPreview') ) { selector.find('.screenshot').empty().hide().append('').slideDown('fast'); } //selector.find('.media_upload_button').unbind(); selector.find('.remove-image').removeClass('hide');//show "Remove" button selector.find('.redux-background-properties').slideDown(); }); // Finally, open the modal. frame.open(); } // Function to remove the image on click. Still requires a save function redux_remove_file(selector) { // This shouldn't have been run... if (!selector.find('.remove-image').addClass('hide')) { return; } selector.find('.remove-image').addClass('hide');//hide "Remove" button selector.find('.upload').val(''); selector.find('.upload-id').val(''); selector.find('.upload-height').val(''); selector.find('.upload-width').val(''); selector.find('.upload-thumbnail').val(''); redux_change( jQuery(selector).find( '.upload-id' ) ); selector.find('.redux-background-properties').hide(); var screenshot = selector.find('.screenshot'); // Hide the screenshot screenshot.slideUp(); selector.find('.remove-file').unbind(); // We don't display the upload button if .upload-notice is present // This means the user doesn't have the WordPress 3.5 Media Library Support if ( jQuery('.section-upload .upload-notice').length > 0 ) { jQuery('.media_upload_button').remove(); } } (function($){ "use strict"; $.redux = $.redux || {}; $(document).ready(function () { $.redux.media(); }); /** * Media Uploader * Dependencies : jquery, wp media uploader * Feature added by : Smartik - http://smartik.ws/ * Date : 05.28.2013 */ $.redux.media = function(){ // Remove the image button $('.remove-image, .remove-file').unbind('click').on('click', function() { redux_remove_file( $(this).parents('fieldset.redux-field:first') ); }); // Upload media button $('.media_upload_button').unbind().on('click', function( event ) { redux_add_file( event, $(this).parents('fieldset.redux-field:first') ); }); }; })(jQuery);