2013-03-12 03:26:14 +08:00
|
|
|
/**
|
|
|
|
A model for a git commit to the discourse repo, fetched from the github.com api.
|
|
|
|
|
|
|
|
@class GithubCommit
|
|
|
|
@extends Discourse.Model
|
|
|
|
@namespace Discourse
|
|
|
|
@module Discourse
|
|
|
|
**/
|
|
|
|
Discourse.GithubCommit = Discourse.Model.extend({
|
|
|
|
gravatarUrl: function(){
|
|
|
|
if( this.get('author') && this.get('author.gravatar_id') ){
|
|
|
|
return("https://www.gravatar.com/avatar/" + this.get('author.gravatar_id') + ".png?s=38&r=pg&d=identicon");
|
|
|
|
} else {
|
2013-03-15 00:28:35 +08:00
|
|
|
return "https://www.gravatar.com/avatar/b30fff48d257cdd17c4437afac19fd30.png?s=38&r=pg&d=identicon";
|
2013-03-12 03:26:14 +08:00
|
|
|
}
|
|
|
|
}.property("commit"),
|
|
|
|
|
|
|
|
commitUrl: function(){
|
|
|
|
return("https://github.com/discourse/discourse/commit/" + this.get('sha'));
|
|
|
|
}.property("sha"),
|
|
|
|
|
|
|
|
timeAgo: function() {
|
|
|
|
return Date.create(this.get('commit.committer.date')).relative();
|
|
|
|
}.property("commit.committer.date")
|
|
|
|
});
|
|
|
|
|
|
|
|
Discourse.GithubCommit.reopenClass({
|
|
|
|
findAll: function() {
|
|
|
|
var result;
|
|
|
|
result = Em.A();
|
2013-04-02 04:28:26 +08:00
|
|
|
Discourse.ajax( "https://api.github.com/repos/discourse/discourse/commits?callback=callback", {
|
2013-03-12 03:26:14 +08:00
|
|
|
dataType: 'jsonp',
|
|
|
|
type: 'get',
|
2013-03-15 00:28:35 +08:00
|
|
|
data: { per_page: 25 },
|
2013-03-12 03:26:14 +08:00
|
|
|
success: function(response, textStatus, jqXHR) {
|
|
|
|
response.data.each(function(commit) {
|
|
|
|
result.pushObject( Discourse.GithubCommit.create(commit) );
|
|
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
});
|