(function($){ 'use strict'; $( document ).ready( function( $ ) { $( '.mfc-bg-color-field' ).wpColorPicker(); $( '.mfc-text-color-field' ).wpColorPicker(); } ); })(jQuery); (function($,CategoryImage){ var _uploadFrame; var debugEnabled = false; var $mUploadButton = $('#mfc_category_image_upload_button'); var $mRemoveButton = $('#mfc_category_image_remove_button'); var $mImageHolder = $('#mfc_category_image_imageholder'); var $mAttachment = $('#mfc_category_image_attachment'); //var clearAttachment = function(){ // $mAttachment.val(''); // $mImageHolder.html(''); //}; CategoryImage = $.extend(CategoryImage,{ options:{ holder_max_width:180 }, debug:function( message ){ if(window.console && debugEnabled){ console.log(message); } }, hasCategoryImage:function(){ return ($mAttachment.val()!==''); }, createPlaceHolder:function(_src){ $mImageHolder.html(''); $('#mfc_category_image_image').load(function(){ var $el = $(this); var width = $el.width(); var height = $el.height(); var ratio = 0; var maxWidth = CategoryImage.options.holder_max_width; if(width > maxWidth){ ratio = maxWidth / width; $el.width(maxWidth); $el.height(height * ratio); } $el.fadeIn('fast'); }).attr({ src:_src }); }, toggleRemoveButton:function(){ CategoryImage.debug(CategoryImage.hasCategoryImage()); if(!CategoryImage.hasCategoryImage()){ $mRemoveButton.css('display','none'); }else{ $mRemoveButton.css('display','inline-block'); } }, removePlaceHolder:function(){ $mImageHolder.html(''); }, events:{ onClickShowMediaManager:function(e){ e.preventDefault(); if( _uploadFrame ){ _uploadFrame.open(); return; } var _mediaParams = { title : CategoryImage.label.title, button : { text : CategoryImage.label.button }, library : { type : 'image' }, multiple : false }; if(CategoryImage.hasCategoryImage()){ _mediaParams = $.extend(_mediaParams,{ editing : true }); } _uploadFrame = wp.media.frames.file_frame = wp.media(_mediaParams); _uploadFrame.on('select', CategoryImage.events.onSelectAttachmentFromMediaManager); _uploadFrame.on('open' , CategoryImage.events.onOpenMediaManager); _uploadFrame.open(); }, onClickRemoveAttachment:function(e){ e.preventDefault(); $mAttachment.val(''); CategoryImage.removePlaceHolder(); CategoryImage.toggleRemoveButton(); }, onOpenMediaManager:function(){ if(CategoryImage.hasCategoryImage()){ var selection = _uploadFrame.state().get('selection'); var id = parseInt($mAttachment.val(), 10); CategoryImage.debug(id); var attachment = wp.media.attachment(id); attachment.fetch(); selection.add( attachment ? [ attachment ] : [] ); } }, onSelectAttachmentFromMediaManager:function(){ var _attachment = _uploadFrame.state().get('selection').first().toJSON(); CategoryImage.debug(_attachment); if(_attachment){ CategoryImage.createPlaceHolder(_attachment.url); $mAttachment.val(_attachment.id); } CategoryImage.toggleRemoveButton(); _uploadFrame.close(); } } }); $mUploadButton.on('click',CategoryImage.events.onClickShowMediaManager); $mRemoveButton.on('click',CategoryImage.events.onClickRemoveAttachment); CategoryImage.toggleRemoveButton(); })(jQuery,(typeof CategoryImage === 'undefined' ? {} : CategoryImage));