WordPress/wp-includes/js/customize-controls.js
2012-03-06 03:00:26 +00:00

1 line
2.7 KiB
JavaScript

(function(a,c){var b=wp.customize;b.Previewer=b.Messenger.extend({refreshBuffer:250,initialize:function(e,d){c.extend(this,d||{});this.loaded=c.proxy(this.loaded,this);this.loaderUuid=0;this.refresh=(function(f){var g=f.refresh,i=function(){h=null;g.call(f)},h;return function(){if(typeof h!=="number"){if(f.loading){f.loading.remove();delete f.loading;f.loader()}else{return i()}}clearTimeout(h);h=setTimeout(i,f.refreshBuffer)}})(this);this.iframe=b.ensure(e.iframe);this.form=b.ensure(e.form);this.name=this.iframe.prop("name");this.container=this.iframe.parent();b.Messenger.prototype.initialize.call(this,e.url,this.iframe[0].contentWindow);this._formOriginalProps={target:this.form.prop("target"),action:this.form.prop("action")};this.bind("url",function(f){if(this.url()==f||0!==f.indexOf(this.origin()+"/")||-1!==f.indexOf("wp-admin")){return}this.url(f);this.refresh()});this.refresh();this.form.on("keydown",function(f){if(13===f.which){f.preventDefault()}})},loader:function(){if(this.loading){return this.loading}this.loading=c("<iframe />",{name:this.name+"-loading-"+this.loaderUuid++}).appendTo(this.container);return this.loading},loaded:function(){this.iframe.remove();this.iframe=this.loading;delete this.loading;this.iframe.prop("name",this.name);this.targetWindow(this.iframe[0].contentWindow)},refresh:function(){this.loader().one("load",this.loaded);this.submit({target:this.loader().prop("name"),action:this.url()})},submit:function(d){if(d){this.form.prop(d)}this.form.submit();if(d){this.form.prop(this._formOriginalProps)}}});c(function(){if(!b.settings){return}var d=c('[name^="'+b.settings.prefix+'"]'),h,f,g,e;h=new b.Previewer({iframe:"#customize-preview iframe",form:"#customize-controls",url:b.settings.preview});c.each(b.settings.values,function(l,k){var j=d.filter('[name="'+b.settings.prefix+l+'"]'),i=b.set(l,k);i.control=new wp.customize.Element(j);i.control.link(i);i.link(i.control);i.bind(h.refresh)});c(".customize-section-title").click(function(){c(this).parents(".customize-section").toggleClass("open");return false});c("#save").click(function(){h.submit();return false});f=c(".color-picker");g=function(i){return/^[a-fA-F0-9]{3}([a-fA-F0-9]{3})?$/.test(i)?i:null};c(".farbtastic-placeholder",f).each(function(){var j=c(this),n=new b.Element(j.siblings("input")),k=j.parent(),i=k.siblings("a"),m=b(k.siblings("input").prop("name").replace(b.settings.prefix,"")),l,o;m.validate=g;n.link(m);m.link(n);l=c.farbtastic(this,function(p){m.set(p.replace("#",""))});o=function(p){p="#"+p;i.css("background",p);l.setColor(p)};m.bind(o);o(m())});c(".color-picker a").click(function(i){c(this).siblings("div").toggle()});b("background_color").unbind(h.refresh).bind(function(){h.send("setting",["background_color",this()])})})})(wp,jQuery);