mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-17 08:05:21 +01:00
aa464fde32
git-svn-id: http://core.svn.wordpress.org/trunk@22407 1a063a9b-81f0-0310-95a4-ce76da25c4cd
1 line
7.5 KiB
JavaScript
1 line
7.5 KiB
JavaScript
(function(b){var a={add:"ajaxAdd",del:"ajaxDel",dim:"ajaxDim",process:"process",recolor:"recolor"},c;c={settings:{url:ajaxurl,type:"POST",response:"ajax-response",what:"",alt:"alternate",altOffset:0,addColor:null,delColor:null,dimAddColor:null,dimDelColor:null,confirm:null,addBefore:null,addAfter:null,delBefore:null,delAfter:null,dimBefore:null,dimAfter:null},nonce:function(g,f){var d=wpAjax.unserialize(g.attr("href"));return f.nonce||d._ajax_nonce||b("#"+f.element+' input[name="_ajax_nonce"]').val()||d._wpnonce||b("#"+f.element+' input[name="_wpnonce"]').val()||0},parseData:function(i,g){var j=[],f;try{f=b(i).attr("data-wp-lists")||"";f=f.match(new RegExp(g+":[\\S]+"));if(f){j=f[0].split(":")}}catch(h){}return j},pre:function(i,g,d){var f,h;g=b.extend({},this.wpList.settings,{element:null,nonce:0,target:i.get(0)},g||{});if(b.isFunction(g.confirm)){if("add"!=d){f=b("#"+g.element).css("backgroundColor");b("#"+g.element).css("backgroundColor","#FF9966")}h=g.confirm.call(this,i,g,d,f);if("add"!=d){b("#"+g.element).css("backgroundColor",f)}if(!h){return false}}return g},ajaxAdd:function(h,m){h=b(h);m=m||{};var i=this,g=c.parseData(h,"add"),k,d,f,j,l;m=c.pre.call(i,h,m,"add");m.element=g[2]||h.attr("id")||m.element||null;if(g[3]){m.addColor="#"+g[3]}else{m.addColor=m.addColor||"#FFFF33"}if(!m){return false}if(!h.is('[id="'+m.element+'-submit"]')){return !c.add.call(i,h,m)}if(!m.element){return true}m.action="add-"+m.what;m.nonce=c.nonce(h,m);k=b("#"+m.element+" :input").not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');d=wpAjax.validateForm("#"+m.element);if(!d){return false}m.data=b.param(b.extend({_ajax_nonce:m.nonce,action:m.action},wpAjax.unserialize(g[4]||"")));f=b.isFunction(k.fieldSerialize)?k.fieldSerialize():k.serialize();if(f){m.data+="&"+f}if(b.isFunction(m.addBefore)){m=m.addBefore(m);if(!m){return true}}if(!m.data.match(/_ajax_nonce=[a-f0-9]+/)){return true}m.success=function(e){j=wpAjax.parseAjaxResponse(e,m.response,m.element);l=e;if(!j||j.errors){return false}if(true===j){return true}jQuery.each(j.responses,function(){c.add.call(i,this.data,b.extend({},m,{pos:this.position||0,id:this.id||0,oldId:this.oldId||null}))});i.wpList.recolor();b(i).trigger("wpListAddEnd",[m,i.wpList]);c.clear.call(i,"#"+m.element)};m.complete=function(e,n){if(b.isFunction(m.addAfter)){var o=b.extend({xml:e,status:n,parsed:j},m);m.addAfter(l,o)}};b.ajax(m);return false},ajaxDel:function(k,h){k=b(k);h=h||{};var j=this,i=c.parseData(k,"delete"),g,f,d;h=c.pre.call(j,k,h,"delete");h.element=i[2]||h.element||null;if(i[3]){h.delColor="#"+i[3]}else{h.delColor=h.delColor||"#faa"}if(!h||!h.element){return false}h.action="delete-"+h.what;h.nonce=c.nonce(k,h);h.data=b.extend({action:h.action,id:h.element.split("-").pop(),_ajax_nonce:h.nonce},wpAjax.unserialize(i[4]||""));if(b.isFunction(h.delBefore)){h=h.delBefore(h,j);if(!h){return true}}if(!h.data._ajax_nonce){return true}g=b("#"+h.element);if("none"!=h.delColor){g.css("backgroundColor",h.delColor).fadeOut(350,function(){j.wpList.recolor();b(j).trigger("wpListDelEnd",[h,j.wpList])})}else{j.wpList.recolor();b(j).trigger("wpListDelEnd",[h,j.wpList])}h.success=function(e){f=wpAjax.parseAjaxResponse(e,h.response,h.element);d=e;if(!f||f.errors){g.stop().stop().css("backgroundColor","#faa").show().queue(function(){j.wpList.recolor();b(this).dequeue()});return false}};h.complete=function(e,l){if(b.isFunction(h.delAfter)){g.queue(function(){var m=b.extend({xml:e,status:l,parsed:f},h);h.delAfter(d,m)}).dequeue()}};b.ajax(h);return false},ajaxDim:function(i,n){if(b(i).parent().css("display")=="none"){return false}i=b(i);n=n||{};var j=this,g=c.parseData(i,"dim"),h,d,f,l,k,m;n=c.pre.call(j,i,n,"dim");n.element=g[2]||n.element||null;n.dimClass=g[3]||n.dimClass||null;if(g[4]){n.dimAddColor="#"+g[4]}else{n.dimAddColor=n.dimAddColor||"#FFFF33"}if(g[5]){n.dimDelColor="#"+g[5]}else{n.dimDelColor=n.dimDelColor||"#FF3333"}if(!n||!n.element||!n.dimClass){return true}n.action="dim-"+n.what;n.nonce=c.nonce(i,n);n.data=b.extend({action:n.action,id:n.element.split("-").pop(),dimClass:n.dimClass,_ajax_nonce:n.nonce},wpAjax.unserialize(g[6]||""));if(b.isFunction(n.dimBefore)){n=n.dimBefore(n);if(!n){return true}}h=b("#"+n.element);d=h.toggleClass(n.dimClass).is("."+n.dimClass);f=c.getColor(h);h.toggleClass(n.dimClass);l=d?n.dimAddColor:n.dimDelColor;if("none"!=l){h.animate({backgroundColor:l},"fast").queue(function(){h.toggleClass(n.dimClass);b(this).dequeue()}).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","");b(j).trigger("wpListDimEnd",[n,j.wpList])}})}else{b(j).trigger("wpListDimEnd",[n,j.wpList])}if(!n.data._ajax_nonce){return true}n.success=function(e){k=wpAjax.parseAjaxResponse(e,n.response,n.element);m=e;if(!k||k.errors){h.stop().stop().css("backgroundColor","#FF3333")[d?"removeClass":"addClass"](n.dimClass).show().queue(function(){j.wpList.recolor();b(this).dequeue()});return false}};n.complete=function(e,o){if(b.isFunction(n.dimAfter)){h.queue(function(){var p=b.extend({xml:e,status:o,parsed:k},n);n.dimAfter(m,p)}).dequeue()}};b.ajax(n);return false},getColor:function(e){var d=jQuery(e).css("backgroundColor");return d||"#ffffff"},add:function(k,g){k=b(k);var i=b(this),d=false,j={pos:0,id:0,oldId:null},l,h,f;if("string"==typeof g){g={what:g}}g=b.extend(j,this.wpList.settings,g);if(!k.size()||!g.what){return false}if(g.oldId){d=b("#"+g.what+"-"+g.oldId)}if(g.id&&(g.id!=g.oldId||!d||!d.size())){b("#"+g.what+"-"+g.id).remove()}if(d&&d.size()){d.before(k);d.remove()}else{if(isNaN(g.pos)){l="after";if("-"==g.pos.substr(0,1)){g.pos=g.pos.substr(1);l="before"}h=i.find("#"+g.pos);if(1===h.size()){h[l](k)}else{i.append(k)}}else{if("comment"!=g.what||0===b("#"+g.element).length){if(g.pos<0){i.prepend(k)}else{i.append(k)}}}}if(g.alt){if((i.children(":visible").index(k[0])+g.altOffset)%2){k.removeClass(g.alt)}else{k.addClass(g.alt)}}if("none"!=g.addColor){f=c.getColor(k);k.css("backgroundColor",g.addColor).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","")}})}i.each(function(){this.wpList.process(k)});return k},clear:function(h){var g=this,f,d;h=b(h);if(g.wpList&&h.parents("#"+g.id).size()){return}h.find(":input").each(function(){if(b(this).parents(".form-no-clear").size()){return}f=this.type.toLowerCase();d=this.tagName.toLowerCase();if("text"==f||"password"==f||"textarea"==d){this.value=""}else{if("checkbox"==f||"radio"==f){this.checked=false}else{if("select"==d){this.selectedIndex=null}}}})},process:function(e){var f=this,d=b(e||document);d.delegate('form[data-wp-lists^="add:'+f.id+':"]',"submit",function(){return f.wpList.add(this)});d.delegate('a[data-wp-lists^="add:'+f.id+':"], input[data-wp-lists^="add:'+f.id+':"]',"click",function(){return f.wpList.add(this)});d.delegate('[data-wp-lists^="delete:'+f.id+':"]',"click",function(){return f.wpList.del(this)});d.delegate('[data-wp-lists^="dim:'+f.id+':"]',"click",function(){return f.wpList.dim(this)})},recolor:function(){var f=this,e,d;if(!f.wpList.settings.alt){return}e=b(".list-item:visible",f);if(!e.size()){e=b(f).children(":visible")}d=[":even",":odd"];if(f.wpList.settings.altOffset%2){d.reverse()}e.filter(d[0]).addClass(f.wpList.settings.alt).end().filter(d[1]).removeClass(f.wpList.settings.alt)},init:function(){var d=this;d.wpList.process=function(e){d.each(function(){this.wpList.process(e)})};d.wpList.recolor=function(){d.each(function(){this.wpList.recolor()})}}};b.fn.wpList=function(d){this.each(function(){var e=this;this.wpList={settings:b.extend({},c.settings,{what:c.parseData(this,"list")[1]||""},d)};b.each(a,function(g,h){e.wpList[g]=function(i,f){return c[h].call(e,i,f)}})});c.init.call(this);this.wpList.process();return this}})(jQuery); |