-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathjquery.githubwidget.min.js
1 lines (1 loc) · 3.14 KB
/
jquery.githubwidget.min.js
1
(function(a){a.fn.githubWidget=function(b){var c=a.extend({},a.fn.githubWidget.defaultOptions,b);return this.each(function(){var b=a(this);if(c.username==null){b.html('<span style="color: #ff0000; font-weight: bold;">/!\\ GitHub username is required - [jQueryGithubWidgetPlugin]</span>');return false}var d=a('<div class="ghwidget ghwidget-container" style="width: '+c.width+';" />');var e="https://api.github.com/users/"+c.username;var f="https://api.github.com/users/"+c.username+"/repos";d.html(c.loading);a.ajax({url:e,dataType:"jsonp",cache:true,success:function(e){if(c.displayHeader)d.html(b.setGitHubWidgetHeader(e,c));else d.html("");a.ajax({url:f,dataType:"jsonp",cache:true,success:function(a){d.append(b.setGitHubWidgetBody(a,c))}})}});b.html(d);b.children("a").click(function(){var b=a(this).attr("href");var c=window.open(b);c.focus();return false})})};a.fn.githubWidget.defaultOptions={width:"100%",firstCount:"3",count:"10",displayHeader:true,displayAccountInformations:true,displayDescription:true,displayLastCommit:false,displayActions:true,displayLanguage:true,username:null,loading:"Loading...",followers:"followers",repositories:"repositories",lastCommit:"Last commit:",watchIt:"Watch it!",forkIt:"Fork it!",more:"More..."};a.fn.extend({setGitHubWidgetHeader:function(b,c){b=b.data;var d=a('<div class="ghwidget-header" />');d.prepend('<a href="'+b.html_url+'" title="'+b.login+'"><img src="'+b.avatar_url+'" alt="'+b.login+'" /></a>');d.append('<span class="username"><a href="'+b.html_url+'" title="'+b.login+'">'+b.login+"</a></span>");if(c.displayAccountInformations)d.append('<span class="infos">'+b.followers+" "+c.followers+" - "+b.public_repos+" "+c.repositories+"</span>");return d},setGitHubWidgetBody:function(b,c){b=b.data;var e=a('<div class="ghwidget-body" />');var f=a('<ul class="ghwidget-repositories" />');var g=new Array;var h=new Array;for(d in b){g[b[d].updated_at]=b[d];h.push(b[d].updated_at)}h.sort();h.reverse();var i=0;for(d in h){i++;var j=g[h[d]];if(i>c.firstCount)var k="ghwidget-item-uv";else var k="ghwidget-item-v";if(j.language&&c.displayLanguage)var l="("+j.language+")";else var l="";var m=a('<li class="'+k+'" />');if(c.displayActions){var n=a("<ul />");var o=a('<li class="watch" />');var p=a('<li class="fork" />');var q="https://github.com/"+j.owner.login+"/"+j.name+"/watchers";var r=a('<a class="watch-link" title="'+c.watchIt+'" href="'+q+'" />');r.html("<span></span> "+j.watchers);var s="https://github.com/"+j.owner.login+"/"+j.name;var t=a('<a class="fork-link" title="'+c.forkIt+'" href="'+s+'" />');t.html("<span></span> "+j.forks);o.html(r);p.html(t);n.append(o).append(p);m.append(n)}m.append('<span class="name"><a href="'+j.html_url+'" title="'+j.name+'">'+j.name+"</a> "+l+"</span>");if(c.displayLastCommit){var u=j.updated_at;u=u.replace("T"," ");u=u.replace("Z","");m.append('<span class="lastcommit">'+c.lastCommit+" "+u+"</span>")}if(c.displayDescription)m.append('<span class="infos">'+j.description+"</span>");f.append(m);if(i==c.count)break}e.prepend(f);if(c.firstCount){var v=a('<a class="more" href="#" />');v.html(c.more);e.append(v);v.click(function(){a(".ghwidget-item-uv").fadeIn();a(this).hide();return false})}return e}})})(jQuery)