/*-----------------------------------------------------------------------------------*/ /* WooFramework Media Library-driven AJAX File Uploader Module /* JavaScript Functions (2010-11-05) /* /* The code below is designed to work as a part of the WooFramework Media Library-driven /* AJAX File Uploader Module. It is included only on screens where this module is used. /* /* Used with (very) slight modifications for Options Framework. /*-----------------------------------------------------------------------------------*/ (function ($) { optionsframeworkMLU = { /*-----------------------------------------------------------------------------------*/ /* Remove file when the "remove" button is clicked. /*-----------------------------------------------------------------------------------*/ removeFile: function () { $('.mlu_remove_button').live('click', function(event) { var clickedObject = $(this); var theID = $(this).attr('title'); var image_to_remove = $('#image_' + theID); var button_to_hide = $('#reset_' + theID); image_to_remove.fadeOut(500,function(){ $(this).remove(); }); button_to_hide.fadeOut(); clickedObject.parent().prev('input').val(''); return false; }); // Hide the delete button on the first row $('a.delete-inline', "#option-1").hide(); }, // End removeFile /*-----------------------------------------------------------------------------------*/ /* Replace the default file upload field with a customised version. /*-----------------------------------------------------------------------------------*/ recreateFileField: function () { $('input.file').each(function(){ var uploadbutton = ''; $(this).wrap('
'); $(this).addClass('file').css('opacity', 0); //set to invisible $(this).parent().append($('
').append($('').attr('id',$(this).attr('id')+'_file')).val( $(this).val() ).append(uploadbutton)); $(this).bind('change', function() { $('#'+$(this).attr('id')+'_file').val($(this).val()); }); $(this).bind('mouseout', function() { $('#'+$(this).attr('id')+'_file').val($(this).val()); }); }); }, // End recreateFileField /*-----------------------------------------------------------------------------------*/ /* Use a custom function when working with the Media Uploads popup. /* Requires jQuery, Media Upload and Thickbox JavaScripts. /*-----------------------------------------------------------------------------------*/ mediaUpload: function () { jQuery.noConflict(); $( '.media_upload_button' ).removeAttr('style'); var formfield, formID, btnContent = true, tbframe_interval; // On Click $('.media_upload_button').live("click", function () { clickedObject = $(this); formfield = $(this).parent().prev('input').attr('id'); formID = $(this).attr('rel'); imgID = $(this).attr('id'); //Change "insert into post" to "Use this Button" tbframe_interval = setInterval(function() {jQuery('#TB_iframeContent').contents().find('.savesend .button').val('Use This Image');}, 2000); // Display a custom title for each Thickbox popup. var woo_title = ''; if ( $(this).parents('.section').find('.heading') ) { woo_title = $(this).parents('.section').find('.heading').text(); } // End IF Statement tb_show( woo_title, 'media-upload.php?post_id='+formID+'&TB_iframe=1' ); return false; }); window.original_send_to_editor = window.send_to_editor; window.send_to_editor = function(html) { if (formfield) { //clear interval for "Use this Button" so button text resets clearInterval(tbframe_interval); // itemurl = $(html).attr('href'); // Use the URL to the main image. if ( $(html).html(html).find('img').length > 0 ) { itemurl = $(html).html(html).find('img').attr('src'); // Use the URL to the size selected. } else { // It's not an image. Get the URL to the file instead. var htmlBits = html.split("'"); // jQuery seems to strip out XHTML when assigning the string to an object. Use alternate method. itemurl = htmlBits[1]; // Use the URL to the file. var itemtitle = htmlBits[2]; itemtitle = itemtitle.replace( '>', '' ); itemtitle = itemtitle.replace( '', '' ); } // End IF Statement var image = /(^.*\.jpg|jpeg|png|gif|ico*)/gi; var document = /(^.*\.pdf|doc|docx|ppt|pptx|odt*)/gi; var audio = /(^.*\.mp3|m4a|ogg|wav*)/gi; var video = /(^.*\.mp4|m4v|mov|wmv|avi|mpg|ogv|3gp|3g2*)/gi; if (itemurl.match(image)) { btnContent = ''; } else { // No output preview if it's not an image. // btnContent = ''; // Standard generic output if it's not an image. html = 'View File'; btnContent = 'Sorry, but that is not a valid image URL'; } $('#' + formfield).val(itemurl); // $('#' + formfield).next().next('div').slideDown().html(btnContent); $('#' + formfield).siblings('.screenshot').fadeIn().html(btnContent); clickedObject.next('span').fadeIn(); tb_remove(); } else { window.original_send_to_editor(html); } // Clear the formfield value so the other media library popups can work as they are meant to. - 2010-11-11. formfield = ''; } } // End mediaUpload }; // End optionsframeworkMLU Object // Don't remove this, or the sky will fall on your head. /*-----------------------------------------------------------------------------------*/ /* Execute the above methods in the optionsframeworkMLU object. /*-----------------------------------------------------------------------------------*/ $(document).ready(function () { optionsframeworkMLU.removeFile(); optionsframeworkMLU.recreateFileField(); optionsframeworkMLU.mediaUpload(); }); })(jQuery);