Something went wrong. Try again.
Utensil's technical posts in Chinese (mostly 2005-2020) utensil.tngl.sh/tech
Something went wrong. Try again.
10 kB · 1 line
JavaScript
at site
1var Gitview=function(e){if(this.createFrame=function(){var t=dojo.create("div",{"class":"outer",style:"position:relative;text-align:left;line-height:15px;padding:5px 5px 23px 5px;background:"+this.frameColor+";border-radius:5px;width:"+this.w+";"},this.domNode),o=dojo.create("div",{style:"height:100%;width:"+this.w+";"},t),e=dojo.create("a",{"class":"button icon arrowright",style:"float:right;margin-left:5px"},t,"last"),i=dojo.create("a",{"class":"button icon arrowleft",style:"float:right;"},t,"last");dojo.connect(e,"onclick",this,"nextPage"),dojo.connect(i,"onclick",this,"prevPage"),this.domNode=o},this.createFrameHeader=function(t){var o=dojo.create("table",{style:"height:47px;width:100%;border-spacing:0;border-collapse:collapse;margin:0px;padding:0px;"},this.domNode,"before"),e=dojo.create("tr",{},o),i=dojo.create("td",{style:"width:41px;vertical-align:top;padding:0px;"},e),s=dojo.create("td",{style:"padding:0px;"},e);dojo.create("img",{src:t.avatar_url,style:"width:40px;height:auto;border-radius:2px;position:relative;"},i),dojo.create("span",{innerHTML:t.login+"<br>",style:'font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:13px;color:white;font-weight:bold;margin-left:6px'},s);var r=dojo.create("span",{innerHTML:t.followers+" follower",style:'font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;color:#AAA;margin-left:6px'},s);(1<t.followers||0==t.followers)&&(r.innerHTML+="s");var a=dojo.create("span",{innerHTML:" - "+t.public_repos+" repositor",style:'font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;color:#AAA;'},s);1<t.public_repos||0==t.public_repos?a.innerHTML+="ies":a.innerHTML+="y";var n=dojo.create("span",{innerHTML:"compact",style:'font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:10px;color:#AAA;cursor:hand;cursor:pointer;margin-left:5px;position:absolute;top:38px;right:27px'},this.domNode,"before"),c=dojo.create("span",{innerHTML:"full",style:'font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:10px;color:#AAA;cursor:hand;cursor:pointer;position:absolute;top:38px;right:7px'},this.domNode,"before");dojo.connect(c,"onclick",this,"toggleFull"),dojo.connect(n,"onclick",this,"toggleCompact")},this.createRepoEntry=function(t){if(!t.fork||t.fork&&this.showForks){var o=dojo.create("div",{"class":"entry",style:"text-align:left;border:1px solid #DDD;border-radius:4px;margin-bottom:5px;background:white;"},this.domNode);this.entries.push(o),this.frame||dojo.style(o,"width",this.w),this.compact&&dojo.style(o,"marginBottom","5px"),this._index>=this.count&&dojo.style(o,"display","none");var e=this.createTop(t,o);this.tops.push(e);var i=this.createBottom(t,o);this.bottoms.push(i),this._index++}},this.createTop=function(t,o){var e=dojo.create("div",{"class":"top",style:"height:32px;line-height:38px;border-bottom:1px solid #DDD;"},o);this.compact&&dojo.style(e,"borderBottom","0px");var i=t.fork?"http://logicalcognition.com/files/gitviewFiles/fork.png":"https://a248.e.akamai.net/assets.github.com/images/icons/public.png";dojo.create("img",{src:i,style:"margin-left:6px"},e);var s=dojo.create("a",{innerHTML:t.name,href:"https://github.com/"+this.user+"/"+t.name,style:"color:#4183C4;font-size:14px;font-weight:bold;font-family:arial;position:relative;top:-3px;margin-left:6px;text-decoration:none"},e);dojo.connect(s,"onmouseover",function(t){dojo.style(t.target,"textDecoration","underline")}),dojo.connect(s,"onmouseout",function(t){dojo.style(t.target,"textDecoration","none")});var r=dojo.create("div",{style:"display:inline-block;float:right;color:#666;font-size:11px;font-family:arial;font-weight:bold;"},e);t.language&&dojo.create("span",{innerHTML:t.language,style:"position:relative;top:-3px;"},r);dojo.create("a",{innerHTML:'<img src="http://logicalcognition.com/files/gitviewFiles/repostat_watchers.png"/> <font color="#666;">'+t.watchers+"</font>",href:"https://github.com/"+this.user+"/"+t.name+"/watchers",style:"position:relative;top:-3px;margin-left:10px;text-decoration:none;"},r),dojo.create("a",{innerHTML:'<img src="http://logicalcognition.com/files/gitviewFiles/repostat_forks.png"/> <font color="#666;">'+t.forks+"</font>",href:"https://github.com/"+this.user+"/"+t.name+"/network",style:"position:relative;top:-3px;margin-left:10px;text-decoration:none;margin-right:15px"},r);return e},this.createBottom=function(t,o){var e=dojo.create("div",{"class":"bottom",style:"border-bottom-right-radius:3px;border-bottom-left-radius:3px;padding-bottom:5px;padding-top:5px"},o);dojo.isWebKit?dojo.style(e,"backgroundImage","-webkit-gradient(linear, 0% 0%, 0% 100%, from(#FAFAFA), to(#EFEFEF))"):dojo.isFF&&dojo.style(e,"background","-moz-linear-gradient(center top , #FAFAFA, #EFEFEF) repeat scroll 0 0 transparent");var i=t.description;100<i.length&&(i=i.slice(0,97)+"...");dojo.create("div",{innerHTML:i,style:"font:12px arial;margin-left:10px;height:30px"},e),dojo.create("div",{innerHTML:"Last updated "+this.fixUpdateDate(t.pushed_at),style:"font:11px arial;color:#888;margin-top:5px;margin-left:10px;"},e);this._tmpW||(this._tmpW=o.offsetWidth-35+"px");var s=new Gitgraph({user:this.user,repo:t.name,domNode:e,width:this._tmpW});return dojo.style(s,"marginLeft","auto"),dojo.style(s,"marginRight","auto"),dojo.style(s,"marginTop","5px"),dojo.style(s,"marginBottom","5px"),this.compact&&dojo.style(e,"display","none"),e},this.toggleFull=function(){this.bottoms.forEach(function(t){dojo.style(t,"display","block")}),this.tops.forEach(function(t){dojo.style(t,"borderBottom","1px solid #DDD1px solid #DDD")})},this.toggleCompact=function(){this.bottoms.forEach(function(t){dojo.style(t,"display","none")}),this.tops.forEach(function(t){dojo.style(t,"borderBottom","0px")})},this.nextPage=function(){var t=this._pageMax;this._pageMax=this._pageMax+this.count<=this._repoCount?this._pageMax+this.count:this._repoCount;var o=this._pageMax;if(t!=o)for(var e=0;e<this.entries.length;e++)e<t?dojo.style(this.entries[e],"display","none"):e<o&&dojo.style(this.entries[e],"display","block")},this.prevPage=function(){var o=0;dojo.forEach(this.entries,function(t){"none"!=dojo.style(t,"display")&&o++}),this._pageMax=this._pageMax-o>=this.count?this._pageMax-o:this.count;var t=this._pageMax,e=0<=this._pageMax-this.count?this._pageMax-this.count:0;if(t!=e||0!=t)for(var i=0;i<this.entries.length;i++)t<=i?dojo.style(this.entries[i],"display","none"):e<=i&&dojo.style(this.entries[i],"display","block")},this.fixUpdateDate=function(t){return t},this.loadRepos=function(){var t=JSON.parse(this.store.get("repo_data_"+this.user));if(t&&this.cache){this.repos=t,this.sortRepos(this.repos),this._index=0,this._pageMax=this.count;for(var o=0;o<this.repos.length;o++)this.createRepoEntry(this.repos[o]);this._repoCount=dojo.query(".entry").length}else dojo.io.script.get({url:"https://api.github.com/users/"+e.user+"/repos",callbackParamName:"callback",load:dojo.hitch(this,function(t){this.repos=t.data,this.sortRepos(this.repos);var o=JSON.stringify(t.data);this.store.set("repo_data_"+this.user,o),this._index=0,this._pageMax=this.count;for(var e=0;e<this.repos.length;e++)this.createRepoEntry(this.repos[e]);this._repoCount=dojo.query(".entry").length}),error:function(t){console.error(t)}})},this.loadUser=function(){var t=JSON.parse(this.store.get("user_data_"+this.user));t&&this.cache?(this.createFrame(),this.createFrameHeader(t),this.loadRepos()):dojo.io.script.get({url:"https://api.github.com/users/"+e.user,callbackParamName:"callback",load:dojo.hitch(this,function(t){this.createFrame();var o=JSON.stringify(t.data);this.store.set("user_data_"+this.user,o),this.createFrameHeader(t.data),this.loadRepos()}),error:function(t){console.error(t)}})},this.loadScript=function(t,o){var e=document.getElementsByTagName("head")[0];if(e){var i=document.createElement("script");i.setAttribute("src",t),i.setAttribute("type","text/javascript");var s=function(){"complete"!=this.readyState&&"loaded"!=this.readyState||o()};i.onreadystatechange=s,i.onload=o,e.appendChild(i)}},this.loadTemplate=function(t){var o=document.createElement("link");o.href=t,o.type="text/css",o.rel="stylesheet",o.media="screen",document.getElementsByTagName("head")[0].appendChild(o)},this.sortRepos=function(t){t.sort(function(t,o){var e=new Date(t.pushed_at),i=new Date(o.pushed_at);return e<i?-1:i<e?1:0}),t.reverse()},this.bind=function(t){if("function"!=typeof this)throw new TypeError("Function.prototype.bind - what is trying to be bound is not callable");var o=Array.prototype.slice.call(arguments,1),e=this,i=function(){},s=function(){return e.apply(this instanceof i?this:t||window,o.concat(Array.prototype.slice.call(arguments)))};return i.prototype=this.prototype,s.prototype=new i,s},this.bootstrap=function(){window.dojo?this.kickStart.bind(this)():this.loadScript("http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js",this.kickStart.bind(this))},this.kickStart=function(){dojo.require("dojo.io.script"),dojo.ready(this,function(){this.store=new Persist.Store("Gitview"),this.loadTemplate("http://logicalcognition.com/files/gitviewFiles/gh-buttons.css"),this.frame?this.loadUser():this.loadRepos()})},!e||!e.user)throw new Error("Gitview: missing user and/or domNode arg");this.user=e.user,this.domNode=e.domNode?e.domNode:document.body,this.compact=1==e.compact,this.frame=!(1==e.noFrame),this.showForks=0!=e.showForks,this.cache=0!=e.cache,this.count=e.count?e.count:3,this.w=e.width?e.width:"440px",this.w=this.w.substring(0,this.w.length-2)<300?"350px":this.w,this.frameColor=e.frameColor?e.frameColor:"#444",this.repos=[],this.entries=[],this.bottoms=[],this.tops=[],Function.prototype.bind||(Function.prototype.bind=this.bind),this.loadScript("http://logicalcognition.com/Projects/persist-js/persist-min.js",function(){this.loadScript("http://logicalcognition.com/Projects/Gitgraph/Gitgraph.js",this.bootstrap.bind(this))}.bind(this))};window.jQuery&&(jQuery.fn.gitview=function(t){if(!t||!t.user)throw new Error("Gitview: missing user arg");this.each(function(){new Gitview({user:t.user,domNode:$(this)[0],compact:1==t.compact,noFrame:1==t.noFrame,cache:0!=t.cache,showForks:0!=t.showForks,count:t.count?t.count:3,width:t.width?t.width:"440px",frameColor:t.frameColor?t.frameColor:"#444"})})});