var commit; var Commit = Class.create({ initialize: function(obj) { this.raw = obj.details; var diffStart = this.raw.indexOf("\ndiff "); var messageStart = this.raw.indexOf("\n\n") + 2; if (diffStart > 0) { this.message = this.raw.substring(messageStart, diffStart); this.diff = this.raw.substring(diffStart) } else { this.message = this.raw.substring(messageStart) this.diff = "" } this.header = this.raw.substring(0, messageStart); this.sha = this.header.match(/^commit ([0-9a-f]{40,40})/)[1]; var match = this.header.match(/\nauthor (.*) <(.*@.*)> ([0-9].*)/); this.author_name = match[1]; this.author_email = match[2]; this.author_date = new Date(parseInt(match[3]) * 1000); match = this.header.match(/\ncommitter (.*) <(.*@.*)> ([0-9].*)/); this.committer_name = match[1]; this.committer_email = match[2]; this.committer_date = new Date(parseInt(match[3]) * 1000); this.parents = obj.parents; }, }); var selectCommit = function(a) { Controller.selectCommit_(a); } var showDiffs = function() { $("details").hide(); $("details").innerHTML = commit.diff.escapeHTML(); highlightDiffs(); $("details").show(); } var doeHet = function() { commit = new Commit(CommitObject); $("commitID").innerHTML = commit.sha; $("authorID").innerHTML = commit.author_name + " <" + commit.author_email + ">"; $("date").innerHTML = commit.author_date; $("subjectID").innerHTML =CommitObject.subject; $A($("commit_header").rows).each(function(row) { if (row.innerHTML.match(/Parent:/)) row.remove(); }); commit.parents.each(function(parent) { var new_row = $("commit_header").insertRow(-1); new_row.innerHTML = "Parent:" + parent + ""; }); $("message").innerHTML = commit.message.replace(/\n/g,"
"); if (commit.diff.length < 10000) { showDiffs(); } else { $("details").innerHTML = "This is a large commit. Click here to show the diff."; } }