aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael G. Schwern <schwern@pobox.com>2013-02-18 14:17:32 +1100
committerMichael G. Schwern <schwern@pobox.com>2013-02-18 14:17:32 +1100
commitcc93e6fc98777418544eccd81f106b42dd915f5b (patch)
tree4013af7e2f9607c07b3358e475b24da6609d2680
parent43751b76d3a3e217b367fa5581ef6032379d1c49 (diff)
downloadmy_new_personal_website-cc93e6fc98777418544eccd81f106b42dd915f5b.tar.xz
my_new_personal_website-cc93e6fc98777418544eccd81f106b42dd915f5b.zip
Use the Github API repo sorting.
The Github API can sort by pushed time, no need to do it manually. http://developer.github.com/v3/repos/#list-user-repositories This is both more efficient, Github does the sorting, but it also fixes a bug. Because the list of results are paginated, if you have more than a page's worth of repositories it will only sort that page. This results in a false view of what has been recently pushed. For a good example, try my github account "schwern" with and without this patch.
-rw-r--r--.themes/classic/source/javascripts/github.js10
1 files changed, 1 insertions, 9 deletions
diff --git a/.themes/classic/source/javascripts/github.js b/.themes/classic/source/javascripts/github.js
index 27a5a235..92d2fda2 100644
--- a/.themes/classic/source/javascripts/github.js
+++ b/.themes/classic/source/javascripts/github.js
@@ -13,7 +13,7 @@ var github = (function(){
return {
showRepos: function(options){
$.ajax({
- url: "https://api.github.com/users/"+options.user+"/repos?callback=?"
+ url: "https://api.github.com/users/"+options.user+"/repos?sort=pushed;callback=?"
, type: 'jsonp'
, error: function (err) { $(options.target + ' li.loading').addClass('error').text("Error loading feed"); }
, success: function(data) {
@@ -23,14 +23,6 @@ var github = (function(){
if (options.skip_forks && data.data[i].fork) { continue; }
repos.push(data.data[i]);
}
- repos.sort(function(a, b) {
- var aDate = new Date(a.pushed_at).valueOf(),
- bDate = new Date(b.pushed_at).valueOf();
-
- if (aDate === bDate) { return 0; }
- return aDate > bDate ? -1 : 1;
- });
-
if (options.count) { repos.splice(options.count); }
render(options.target, repos);
}