mirror of
https://github.com/WordPress/WordPress.git
synced 2024-11-06 10:50:56 +01:00
13378a55ed
git-svn-id: http://core.svn.wordpress.org/trunk@23815 1a063a9b-81f0-0310-95a4-ce76da25c4cd
1 line
12 KiB
JavaScript
1 line
12 KiB
JavaScript
window.wp=window.wp||{};(function(a){wp.revisions={views:{},Model:Backbone.Model.extend({idAttribute:"ID",urlRoot:ajaxurl+"?action=revisions-data&show_autosaves=true&show_split_view=true&nonce="+wpRevisionsSettings.nonce,defaults:{ID:0,revision_date_author:"",revision_date_author_short:"",revisiondiff:'<div class="diff-loading"><div class="spinner"></div></div>',restoreaction:"",revision_from_date_author:"",revision_toload:false,lines_added:0,lines_deleted:0,scope_of_changes:"none",previous_revision_id:0},url:function(){if(1===REVAPP._compareOneOrTwo){return this.urlRoot+"&single_revision_id="+this.id+"&compare_to="+this.get("previous_revision_id")+"&post_id="+wpRevisionsSettings.post_id}else{return this.urlRoot+"&single_revision_id="+this.id}}}),app:_.extend({},Backbone.Events),App:Backbone.Router.extend({_revisions:null,_leftHandleRevisions:null,_rightHandleRevisions:null,_revisionsInteractions:null,_revisionsOptions:null,_leftDiff:1,_rightDiff:1,_autosaves:true,_showSplitView:true,_compareOneOrTwo:1,_leftModelLoading:false,_rightModelLoading:false,_tickmarkView:null,routes:{},reloadToLoadRevisions:function(d,e){var b=this,f=d.where({revision_toload:true}),c=0;_.each(f,function(g){if(g.get("ID")==wpRevisionsSettings.revision_id){b._rightDiff=b._revisions.indexOf(g)+1}});_.each(f,function(g){g.urlRoot=d.url;_.delay(function(){g.fetch({update:true,add:false,remove:false,success:function(i){i.set("revision_toload","false");if(0===d.where({revision_toload:true}).length){b.stopModelLoadingSpinner()}b._tickmarkView.render();var h=i.get("lines_added")+i.get("lines_deleted"),j="vsmall";if(h>1&&h<=3){j="small"}else{if(h>3&&h<=5){j="med"}else{if(h>5&&h<=10){j="large"}else{if(h>10){j="vlarge"}}}}i.set("scope_of_changes",j);if(0!==b._rightDiff&&i.get("ID")===b._revisions.at(b._rightDiff-1).get("ID")){b._revisionView.render()}}})},c);c=c+150})},startLeftModelLoading:function(){this._leftModelLoading=true;a(".revisiondiffcontainer").addClass("leftmodelloading")},stopLeftModelLoading:function(){this._leftModelLoading=false},startRightModelLoading:function(){this._rightModelLoading=true;a(".revisiondiffcontainer").addClass("rightmodelloading")},stopRightModelLoading:function(){this._rightModelLoading=false},stopModelLoadingSpinner:function(){a(".revisiondiffcontainer").removeClass("rightmodelloading");a(".revisiondiffcontainer").removeClass("leftmodelloading")},reloadModel:function(){if(2===this._compareOneOrTwo){this.reloadLeftRight()}else{this.reloadModelSingle()}},reloadModelSingle:function(){var b=this;b._revisions.url=ajaxurl+"?action=revisions-data&compare_to="+wpRevisionsSettings.post_id+"&show_autosaves="+b._autosaves+"&show_split_view="+b._showSplitView+"&nonce="+wpRevisionsSettings.nonce;b.startRightModelLoading();b._revisions.fetch({success:function(){console.log("loaded");var c=b._revisions.length;b._revisionView.model=b._revisions;b._revisionView.render();b.reloadToLoadRevisions(b._revisions);b._tickmarkView.model=b._revisions;b._tickmarkView.render();a("#slider").slider("option","max",c-1);a("#slider").slider("value",b._rightDiff-1).trigger("slide")},error:function(){b.stopRightModelLoading()}})},reloadLeft:function(){var b=this;b.startLeftModelLoading();b._leftHandleRevisions=new wp.revisions.Collection();b._leftHandleRevisions.url=ajaxurl+"?action=revisions-data&compare_to="+b._revisions.at(b._rightDiff-1).get("ID")+"&post_id="+wpRevisionsSettings.post_id+"&show_autosaves="+REVAPP._autosaves+"&show_split_view="+REVAPP._showSplitView+"&nonce="+wpRevisionsSettings.nonce+"&right_handle_at="+(b._rightDiff);b._leftHandleRevisions.fetch({success:function(){b.stopLeftModelLoading();b.reloadToLoadRevisions(b._leftHandleRevisions);b._tickmarkView.model=b._leftHandleRevisions;a("#slider").slider("option","max",b._revisions.length);if(b._rightDiff>b._revisions.length){b._rightDiff=b._revisions.length}},error:function(){b.stopLeftModelLoading()}})},reloadRight:function(){var b=this;b.startRightModelLoading();b._rightHandleRevisions=new wp.revisions.Collection();b._rightHandleRevisions.url=ajaxurl+"?action=revisions-data&compare_to="+(b._revisions.at(b._leftDiff).get("ID")-1)+"&post_id="+wpRevisionsSettings.post_id+"&show_autosaves="+REVAPP._autosaves+"&show_split_view="+REVAPP._showSplitView+"&nonce="+wpRevisionsSettings.nonce;b._rightHandleRevisions.fetch({success:function(){b.stopRightModelLoading();b.reloadToLoadRevisions(b._rightHandleRevisions);b._tickmarkView.model=b._rightHandleRevisions;a("#slider").slider("option","max",b._revisions.length);a("#slider").slider("values",[REVAPP._leftDiff,REVAPP._rightDiff]).trigger("slide")},error:function(c){b.stopRightModelLoading()}})},reloadLeftRight:function(){this.startRightModelLoading();this.startLeftModelLoading();this.reloadLeft();this.reloadRight()},initialize:function(c){var b=this;if(this._revisions===null){b._revisions=new wp.revisions.Collection();b.startRightModelLoading();b._revisions.fetch({success:function(){b.stopRightModelLoading();b.completeApplicationSetup()}})}return this},addTooltip:function(c,b){c.attr("title","").tooltip({track:false,position:{my:"left-30 top-66",at:"top left",using:function(d,e){a(this).css(d);a("<div>").addClass("arrow").addClass(e.vertical).addClass(e.horizontal).appendTo(a(this))}},show:false,hide:false,content:function(){return b}})},completeApplicationSetup:function(){this._revisionView=new wp.revisions.views.View({model:this._revisions});this._revisionView.render();a("#slider").slider("option","max",this._revisions.length-1);this.reloadToLoadRevisions(this._revisions);this._revisionsInteractions=new wp.revisions.views.Interact({model:this._revisions});this._revisionsInteractions.render();this._tickmarkView=new wp.revisions.views.Tickmarks({model:this._revisions});this._tickmarkView.render();this._tickmarkView.resetTicks()}})};wp.revisions.Collection=Backbone.Collection.extend({model:wp.revisions.Model,url:ajaxurl+"?action=revisions-data&compare_to="+wpRevisionsSettings.post_id+"&show_autosaves=true&show_split_view=true&nonce="+wpRevisionsSettings.nonce,initialize:function(){}});_.extend(wp.revisions.views,{Tickmarks:Backbone.View.extend({el:a("#diff-slider-ticks")[0],tagName:"diff-slider-ticks-view",className:"diff-slider-ticks-container",template:wp.template("revision-ticks"),model:wp.revisions.Model,resetTicks:function(){var f=a("#slider").slider("option","max");var e=a("#slider").width();var c=(2===REVAPP._compareOneOrTwo)?1:0;var b=Math.floor(e/(f-c));b=(b>50)?50:b;b=(b<10)?10:b;e=b*(f-c)+1;a("#slider").width(e);a(".diff-slider-ticks-wrapper").width(e);a("#diffslider").width(e);a("#diff-slider-ticks").width(e);var d=a(".revision-tick").width();if(b!==d){a(".revision-tick").each(function(){a(this).css("margin-right",b-1+"px")});if(2===REVAPP._compareOneOrTwo){a(".revision-tick").first().remove()}a(".revision-tick").last().css("margin-right","0")}},render:function(){var b=this;if(null!==b.model){var c="";_.each(b.model.models,function(d){c=c+b.template(d.toJSON())});b.$el.html(c)}b.resetTicks();return b}}),View:Backbone.View.extend({el:a("#backbonerevisionsdiff")[0],tagName:"revisionvview",className:"revisionview-container",template:wp.template("revision"),comparetwochecked:"",draggingLeft:false,render:function(){var c="";if(2===REVAPP._compareOneOrTwo){this.comparetwochecked="checked";if(this.draggingLeft){if(this.model.at(REVAPP._leftDiff)){c=this.template(_.extend(this.model.at(REVAPP._leftDiff).toJSON(),{comparetwochecked:this.comparetwochecked}))}}else{var b=REVAPP._rightDiff;if(this.model.at(b)){c=this.template(_.extend(this.model.at(b).toJSON(),{comparetwochecked:this.comparetwochecked}))}}}else{this.comparetwochecked="";if(this.model.at(REVAPP._rightDiff-1)){c=this.template(_.extend(this.model.at(REVAPP._rightDiff-1).toJSON(),{comparetwochecked:this.comparetwochecked}))}}this.$el.html(c);if(this.model.length<3){a("div#comparetworevisions").hide()}if(this.model.length<2){a("div#diffslider").hide();a("div.diff-slider-ticks-wrapper").hide()}if(2===REVAPP._compareOneOrTwo){REVAPP.addTooltip(a("a.ui-slider-handle.left-handle"),(REVAPP._rightDiff>=REVAPP._revisions.length)?"":REVAPP._revisions.at(REVAPP._leftDiff).get("revision_date_author_short"));REVAPP.addTooltip(a("a.ui-slider-handle.right-handle"),(REVAPP._rightDiff>=REVAPP._revisions.length)?"":REVAPP._revisions.at(REVAPP._rightDiff).get("revision_date_author_short"))}else{REVAPP.addTooltip(a("a.ui-slider-handle"),(REVAPP._rightDiff>=REVAPP._revisions.length)?"":REVAPP._revisions.at(REVAPP._rightDiff).get("revision_date_author_short"))}if(REVAPP._rightDiff===REVAPP._revisions.length){a(".restore-button").hide()}else{a(".restore-button").show()}return this},events:{"click #comparetwo":"clickcomparetwo"},clickcomparetwo:function(){self=this;if(a("input#comparetwo").is(":checked")){REVAPP._compareOneOrTwo=2;if(1===REVAPP._rightDiff){REVAPP._rightDiff=2}REVAPP._revisionView.draggingLeft=false;wpRevisionsSettings.revision_id="";REVAPP.reloadLeftRight();REVAPP._revisionView.model=REVAPP._rightHandleRevisions}else{REVAPP._compareOneOrTwo=1;REVAPP._revisionView.draggingLeft=false;REVAPP.reloadModelSingle()}REVAPP._revisionsInteractions.render();REVAPP._tickmarkView.render()}}),Interact:Backbone.View.extend({el:a("#backbonerevisionsinteract")[0],tagName:"revisionvinteract",className:"revisionvinteract-container",template:wp.template("revisionvinteract"),initialize:function(){},render:function(){var b=this;var d=this.template;this.$el.html(d);var c=REVAPP._revisions.length;slider=a("#slider");if(1===REVAPP._compareOneOrTwo){slider.slider({value:REVAPP._rightDiff-1,min:0,max:c-1,step:1,slide:function(e,f){REVAPP._rightDiff=(f.value+1);REVAPP._revisionView.render()}});a(".revisiondiffcontainer").removeClass("comparetwo")}else{slider.slider({values:[REVAPP._leftDiff,REVAPP._rightDiff+1],min:1,max:c+1,step:1,range:true,start:function(f,g){var e=a(g.handle).index();switch(e){case 1:if(REVAPP._leftModelLoading){return false}REVAPP._revisionView.draggingLeft=true;if(REVAPP._revisionView.model!==REVAPP._leftHandleRevisions&&null!==REVAPP._leftHandleRevisions){REVAPP._revisionView.model=REVAPP._leftHandleRevisions;REVAPP._tickmarkView.model=REVAPP._leftHandleRevisions;REVAPP._tickmarkView.render()}REVAPP._leftDiffStart=g.values[0];break;case 2:if(REVAPP._rightModelLoading||0===REVAPP._rightHandleRevisions.length){return false}if(REVAPP._revisionView.model!==REVAPP._rightHandleRevisions&&null!==REVAPP._rightHandleRevisions){REVAPP._revisionView.model=REVAPP._rightHandleRevisions;REVAPP._tickmarkView.model=REVAPP._rightHandleRevisions;REVAPP._tickmarkView.render()}REVAPP._revisionView.draggingLeft=false;REVAPP._rightDiffStart=g.values[1];break}},slide:function(f,g){if(g.values[0]===g.values[1]){return false}var e=a(g.handle).index();switch(e){case 1:if(REVAPP._leftModelLoading){return false}REVAPP._leftDiff=g.values[0];break;case 2:if(REVAPP._rightModelLoading){return false}REVAPP._rightDiff=g.values[1];break}if(0===REVAPP._leftDiff){a(".revisiondiffcontainer").addClass("currentversion")}else{a(".revisiondiffcontainer").removeClass("currentversion")}REVAPP._revisionView.render()},stop:function(f,g){if(2===REVAPP._compareOneOrTwo){var e=a(g.handle).index();switch(e){case 1:if(REVAPP._leftDiffStart!==g.values[0]){REVAPP.reloadRight()}break;case 2:if(REVAPP._rightDiffStart!==g.values[1]){REVAPP.reloadLeft()}break}}}});a(".revisiondiffcontainer").addClass("comparetwo");a("#diffslider a.ui-slider-handle").first().addClass("left-handle").next().addClass("right-handle")}return this},events:{"click #next":"nextRevision","click #previous":"previousRevision"},nextRevision:function(){if(REVAPP._rightDiff<this.model.length){REVAPP._rightDiff=REVAPP._rightDiff+1}REVAPP._revisionView.render();a("#slider").slider("value",REVAPP._rightDiff-1).trigger("slide")},previousRevision:function(){if(REVAPP._rightDiff>1){REVAPP._rightDiff=REVAPP._rightDiff-1}REVAPP._revisionView.render();a("#slider").slider("value",REVAPP._rightDiff-1).trigger("slide")}})});REVAPP=new wp.revisions.App()}(jQuery)); |