%PDF- %PDF-
| Direktori : /data/old/home/stash/stash/atlassian-stash/static/feature/changeset/difftree/ |
| Current File : //data/old/home/stash/stash/atlassian-stash/static/feature/changeset/difftree/difftree-min.js |
define("feature/changeset/difftree",["aui","jquery","stash/api/util/navbuilder","util/ajax","util/events","model/content-tree-node-types","model/path-and-line","feature/changeset/difftree/difftree-search","exports"],function(I,F,T,P,B,O,Q,L,a){var D="/";var N=1000;var H=200;var U=50;function S(b,d){d=d>=0?d:H;var e=0;function c(h){if(h.metadata.isDirectory){h.state="open";h.data.icon="aui-icon aui-icon-small aui-iconfont-devtools-folder-open";for(var g=0,f=h.children.length,j;g<f&&e<d;g++){j=h.children[g];c(j)}}else{if(h.metadata.isFile){if(h.children&&h.children.length>0){h.state="open"}e+=(h.children?h.children.length:1)}}}c(b);return b}function R(d,c){return d.children?(c.children?(d.data.title.toLowerCase()<c.data.title.toLowerCase()?-1:1):-1):(!c.children?(d.data.title.toLowerCase()<c.data.title.toLowerCase()?-1:1):1)}function Z(b){b.childrenByTypeAndComponent=undefined;for(var d=0,c=b.children.length,f,e;d<c;d++){f=b.children[d];if(f.metadata.isDirectory){e=[f.data.title];while(f.children.length===1&&f.children[0].metadata.isDirectory){f=f.children[0];e.push(f.data.title)}f.data.title=I.escapeHtml(e.join(D));b.children[d]=f;Z(f)}}b.children.sort(R)}function E(p,m){var s={data:{icon:"aui-icon aui-icon-small aui-iconfont-devtools-folder-closed"},state:"closed",metadata:{isDirectory:true},children:[],childrenByTypeAndComponent:{}};for(var h=0,d=p.length,o,c;h<d;h++){o=p[h];c=s;for(var g=0,e=o.path.components.length,n,r,b;g<e;g++){n=o.path.components[g];r=(g+1===e?"F":"D")+n;if(Object.prototype.hasOwnProperty.call(c.childrenByTypeAndComponent,r)){c=c.childrenByTypeAndComponent[r]}else{var f=g+1===e;if(f){var q=!!(o.attributes&&o.attributes.activeComments&&parseInt(o.attributes.activeComments[0],10));b={data:{title:I.escapeHtml(n),icon:"aui-icon aui-icon-small "+(o.nodeType===O.SUBMODULE?"aui-iconfont-devtools-submodule":q?"aui-iconfont-devtools-file-commented":"aui-iconfont-devtools-file"),attr:{id:"change"+h,"class":"difftree-file change-type-"+o.type+(o.conflict?" conflict":""),href:"#"+o.path.toString,title:o.conflict?I.I18n.getText("stash.web.pullrequest.tree.conflicted.file"):q?I.I18n.getText("stash.web.pullrequest.tree.commented.file"):undefined}},metadata:{isFile:true,changeType:o.type,nodeType:o.nodeType,path:o.path,srcPath:o.srcPath,conflict:o.conflict,contentId:o.contentId,executable:o.executable,srcExecutable:o.srcExecutable}}}else{b={data:{title:I.escapeHtml(n),icon:"aui-icon aui-icon-small aui-iconfont-devtools-folder-closed"},state:"closed",metadata:{isDirectory:true},children:[],childrenByTypeAndComponent:{}}}c.children.push(b);c=c.childrenByTypeAndComponent[r]=b}}}Z(s);S(s,m);return s}function V(d,c,b){return T.rest().currentRepo().changes(b).withParams({start:d,limit:c})}function K(e,d,b,c){c=c||{};this._fileLimit=c.maxChanges||N;this._$wrapper=F(e);this._$toolbar=F(d);this._commitRange=b;this._hasOtherParents=!!c.hasOtherParents;this._urlBuilder=c.urlBuilder||V;this._searchUrlBuilder=c.searchUrlBuilder}_.extend(K.prototype,B.createEventMixin("diffTree",{localOnly:true}));K.prototype.init=function(b){this._destroyables=[];this._initiallySelectedPathComponents=b;this._firstCommentAddedHandler=_.bind(this._firstCommentAddedHandler,this);this._lastCommentDeletedHandler=_.bind(this._lastCommentDeletedHandler,this);this._destroyables.push(B.chain().on("stash.feature.comments.firstCommentAdded",this._firstCommentAddedHandler).on("stash.feature.comments.lastCommentDeleted",this._lastCommentDeletedHandler));if(this._searchUrlBuilder){this._destroyables.push(this._addSearch())}if(!this.data){return this.requestData()}else{return this.dataReceived(this.data)}};K.prototype._addSearch=function(){var e=F(stash.feature.difftree.searchWrapper());this._$toolbar.find("h4").replaceWith(e);var d=new L.DiffTreeSearch();e.prepend(d.input.$el);var b=[];var c=this;b.push(d);b.push(B.chainWith(e.find(".search-button-when-collapsed")).on("click",function(){d.focusSearch()}));b.push(B.chainWith(d).on("search-focus",_.bind(this.trigger,this,"search-focus")));b.push({destroy:d.register(function(g){function f(){return c._getFileCount(c.data,U)<U}return P.rest({url:c._searchUrlBuilder({path:"",commitRange:c._commitRange.toJSON()}).withParams({withComments:false}).withParams(g&&(c._commitRange.getPullRequest()||!f())?{filter:g}:{}).build()})},function(){return c.data}).onValue(function(f){c.data_copy=c.data;c._searchEmpty=f.data.children.length===0;B.trigger("internal.stash.feature.diffView.highlightSearch",null,f.search);c.dataReceived(S(f.data)).done(function(){c.data=c.data_copy;c._searchEmpty=null})})});return{destroy:function(){_.invoke(b,"destroy");d.input.$el.remove()}}};K.prototype._getFileCount=function(d,b){function c(e){return _.reduce(e.children,function(g,f){if(g<b){return g+(f.metadata.isFile?1:c(f))}else{return g}},0)}return c(d)};K.prototype._firstCommentAddedHandler=function(){var b=this.getSelectedFile().find("a > ins");b.hide().removeClass("aui-iconfont-devtools-file").addClass("aui-iconfont-devtools-file-commented").fadeIn("slow")};K.prototype._lastCommentDeletedHandler=function(){var b=this.getSelectedFile().find("a > ins");b.hide().removeClass("aui-iconfont-devtools-file-commented").addClass("aui-iconfont-devtools-file").fadeIn("slow")};K.prototype.reset=function(){if(this._request){this._request.abort();this._request=null;this._interrupted=true}if(this._rendering){this._rendering=false;this._interrupted=true}_.invoke(this._destroyables,"destroy")};K.prototype.requestData=function(){var b=this;if(this._request){this._request.abort();this._request=null}this._request=P.rest({url:b._urlBuilder(0,b._fileLimit,b._commitRange).build()});return this._request.always(function(){b._request=null}).then(function(c){if(!c){var d=I.escapeHtml(I.I18n.getText("stash.web.pullrequest.tree.nodata"));b.prependMessage(d,"error");return F.Deferred().reject()}else{b._rendering=true;b._interrupted=false;b.isTruncated=!c.isLastPage;return b.dataReceived(E(c.values)).done(function(){b._rendering=false})}})};function W(c,b){return c.substring(0,b.length)===b}function Y(c,b){return C(c,b)||X(c)}function C(f,h){if(!h){return null}h=h.slice(0);while(f&&f.children){var c=h.shift(),b=!h.length;var d=f.children.length;while(d--){var e=f.children[d],g=e.data.title;if(c===g&&b===Boolean(e.metadata.isFile)){f=e;break}if(!b&&W(g,c+D)){while(h.length>1&&W(g,c+D+h[0])){c+=D;c+=h.shift()}if(g!==c){return null}f=e;break}}if(d<0){return null}}return f&&f.metadata&&f.metadata.isFile?f:null}function X(b){while(b&&b.children){b=b.children[0]}return b&&b.metadata&&b.metadata.isFile?b:null}function G(c,e){if(c===e){return[e]}var d=c.children?c.children.length:0;while(d--){var b=G(c.children[d],e);if(b){b.unshift(c);return b}}return null}K.prototype.prependMessage=function(c,b){this._$wrapper.find(".aui-message").remove();b=b||"warning";this._$wrapper.find(".file-tree").before(aui.message[b]({extraClasses:"diff-tree-scm-message",content:c}))};K.prototype.dataReceived=function(f){var n=this;this.data=f;var o=F.Deferred();function g(){if(!n._interrupted){o.resolve(n)}else{o.reject(n)}}var i=Y(this.data,this._initiallySelectedPathComponents);var e;if(i){e=[i.data.attr.id];var k=G(this.data,i)||[];k.pop();while(k.length){k.pop().state="open"}}else{e=[]}var c=true;var h;this._$wrapper.find(".aui-message").remove();if(this.isTruncated){var d="";if(this._commitRange.getPullRequest()){d=I.escapeHtml(I.I18n.getText("stash.web.pullrequest.tree.truncated",this._fileLimit))}else{var l,j=this._commitRange.getUntilRevision(),b=this._commitRange.getSinceRevision();if(b){l="git diff-tree -C -r "+b.getId()+" "+j.getId()}else{l="git diff-tree -r --root "+j.getId()}d=I.escapeHtml(I.I18n.getText("stash.web.changeset.tree.truncated",this._fileLimit))+'<p class="scm-command">'+I.escapeHtml(l)+"</p>"}this.prependMessage(d,"warning")}if(this.data.children.length){this.$tree=this._$wrapper.children(".file-tree");this.$tree.fadeOut("fast",function(){n.$tree.empty().off(".jstree").jstree("destroy").on("loaded.jstree",function(){setTimeout(function(){c=false;g()},0)}).jstree({json_data:{data:n.data.children,progressive_render:true},core:{html_titles:true,animation:200},ui:{select_limit:1,selected_parent_close:false,initially_select:e},plugins:["json_data","ui"]}).on("before.jstree",function(r,q){if(q.func==="select_node"){var p=F(q.args[0]).parent();if(p.hasClass("jstree-leaf")&&(!h||h[0]!==p[0])){h=p;B.trigger("stash.feature.changeset.difftree.selectedNodeChanged",n,p,c)}else{if(p.length>0){n.$tree.jstree("toggle_node",p);return false}}}}).on("open_node.jstree",function(q,p){var r=p.args[0];if(r.data().isDirectory){var s=r.children("a").children("ins");s.removeClass("aui-iconfont-devtools-folder-closed");s.addClass("aui-iconfont-devtools-folder-open")}B.trigger("stash.feature.changeset.difftree.nodeOpening",n,r)}).on("after_open.jstree",function(q,p){var r=p.args[0];B.trigger("stash.feature.changeset.difftree.nodeOpened",n,r)}).on("close_node.jstree",function(r,q){var p=q.args[0];if(p.data().isDirectory){var s=p.children("a").children("ins");s.removeClass("aui-iconfont-devtools-folder-open");s.addClass("aui-iconfont-devtools-folder-closed")}B.trigger("stash.feature.changeset.difftree.nodeClosing",n,p)}).on("after_close.jstree",function(r,q){var p=q.args[0];B.trigger("stash.feature.changeset.difftree.nodeClosed",n,p)}).on("loaded.jstree",function(q,p){B.trigger("stash.feature.changeset.difftree.treeInitialised",n,n)}).fadeIn("fast")})}else{this.$tree=undefined;var m=this._$wrapper.children(".file-tree");m.fadeOut("fast",function(){m.empty().off(".jstree").jstree("destroy");var p=I.escapeHtml(n._searchEmpty?I.I18n.getText("stash.web.changeset.tree.emptysearch"):n._hasOtherParents?I.I18n.getText("stash.web.changeset.merge.tree.empty"):I.I18n.getText("stash.web.changeset.tree.empty"));n.prependMessage(p,"info");setTimeout(g,0)})}return o.promise().always(function(){n._$wrapper.attr("data-last-updated",new Date().getTime())})};K.prototype.getSelectedFile=function(){return this.$tree?this.$tree.jstree("get_selected"):null};K.prototype._getSelectedFileOrTree=function(){var b=this.getSelectedFile();return b&&b.length>0?b:this.$tree};K.prototype.selectFile=function(e){if(!this.$tree){return }var b=Y(this.data,e),c=this.getSelectedFile(),f=c&&c.data("path"),d=f&&Y(this.data,new Q(f).path.getComponents());if(b&&b!==d){this.$tree.jstree("deselect_all").jstree("select_node","#"+b.data.attr.id)}};K.prototype.openNextFile=function(){if(this.$tree){var b=F.jstree._reference(this.$tree),d=this._getSelectedFileOrTree(),c=M(b,b._get_next,b._get_next(d));if(c&&c.length){c.find("a").focus().click()}}};K.prototype.openPrevFile=function(){if(this.$tree){var b=F.jstree._reference(this.$tree),d=this._getSelectedFileOrTree(),c=J(b,b._get_prev(d));if(c&&c.length){c.find("a").focus().click()}}};function M(c,d,b){if(b&&b.length&&!b.hasClass("jstree-leaf")){c.open_node(b);b=M(c,d,d.call(c,b))}return b}function J(c,b){if(b&&!b.hasClass("jstree-leaf")){if(b.hasClass("jstree-closed")){c.open_node(b);b=M(c,A,A.call(c,b))}else{if(b.length){b=J(c,c._get_prev(b))}}}return b}function A(b){return this._get_children(b).filter(".jstree-last")}a.DiffTree=K;a.computeTree=E;a.flattenTree=Z;a._openTree=S;a.compareTreeNodes=R;a.getNodeToSelect=Y;a.getPathFromRoot=G});