discourse/app/assets/javascripts/admin/models/github_commit.js

42 lines
1.3 KiB
JavaScript
Raw Normal View History

2013-03-11 15:26:14 -04: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-14 12:28:35 -04:00
return "https://www.gravatar.com/avatar/b30fff48d257cdd17c4437afac19fd30.png?s=38&r=pg&d=identicon";
2013-03-11 15:26:14 -04:00
}
}.property("commit"),
commitUrl: function(){
return("https://github.com/discourse/discourse/commit/" + this.get('sha'));
}.property("sha"),
timeAgo: function() {
return Discourse.Formatter.relativeAge(new Date(this.get('commit.committer.date'), {format: 'medium', leaveAgo: true}));
2013-03-11 15:26:14 -04:00
}.property("commit.committer.date")
});
Discourse.GithubCommit.reopenClass({
findAll: function() {
var result = Em.A();
Discourse.ajax( "https://api.github.com/repos/discourse/discourse/commits?callback=callback", {
2013-03-11 15:26:14 -04:00
dataType: 'jsonp',
type: 'get',
data: { per_page: 40 }
}).then(function (response) {
_.each(response.data,function(commit) {
result.pushObject( Discourse.GithubCommit.create(commit) );
});
2013-03-11 15:26:14 -04:00
});
return result;
}
});