Index: Tools/GardeningServer/model/ct-commit-list.html |
diff --git a/Tools/GardeningServer/model/ct-commit-list.html b/Tools/GardeningServer/model/ct-commit-list.html |
index 22780e5466562cfbc92e0797a4cbcf172d5e4e20..f4395bbd86b86fe5ecd4d83a3dd708ef92f8f563 100644 |
--- a/Tools/GardeningServer/model/ct-commit-list.html |
+++ b/Tools/GardeningServer/model/ct-commit-list.html |
@@ -7,57 +7,52 @@ found in the LICENSE file. |
<link rel="import" href="ct-commit-log.html"> |
<script> |
-function CTCommitList(group, commits) { |
- this.commitLog = commits; |
- if (group.failures && group.failures.first()) { |
- this.firstFailing = group.failures.first().firstFailingRevisions; |
- this.lastPassing = group.failures.first().lastPassingRevisions; |
- } |
- this._updateRepositories(); |
+function CTCommitList(commitLog, revisions) { |
+ this._initRevisions(revisions); |
+ this.update(commitLog); |
} |
-CTCommitList.prototype._updateRepositories = function() { |
+CTCommitList.prototype.update = function(commitLog) { |
this.repositories = []; |
- if (!this.commitLog || !this.lastPassing || !this.firstFailing) |
+ if (!commitLog) |
return; |
- var allRepositories = this.commitLog._repositories.names; |
+ var allRepositories = commitLog._repositories.names; |
for (var i = 0; i < allRepositories.length; i++) { |
var repository = allRepositories[i]; |
+ if (!this.revisions[repository]) |
+ continue; |
- var commits = this._commits(repository); |
+ var commits = commitLog.range(repository, this.revisions[repository]); |
if (!commits.length) |
continue; |
this.repositories.push({ |
name: repository, |
- range: this._range(commits), |
+ range: this._displayRange(commits, repository), |
commits: commits, |
expanded: false |
}); |
} |
}; |
-CTCommitList.prototype._commits = function(repository) { |
- var commits = []; |
- |
- if (!this.firstFailing || !this.lastPassing) |
- return []; |
- |
- var firstFailing = Number(this.firstFailing[repository]); |
- var lastPassing = Number(this.lastPassing[repository]); |
- if (firstFailing == lastPassing) |
- return commits; |
- |
- if (lastPassing > firstFailing) { |
- console.warn('Revision range is backwards, which is invalid:', lastPassing, firstFailing); |
- return commits; |
- } |
- |
- return this.commitLog.range(repository, lastPassing + 1, firstFailing); |
+CTCommitList.prototype._initRevisions = function(repoRevisions) { |
+ this.revisions = {}; |
+ repoRevisions.forEach(function(repoRevision) { |
+ var split = repoRevision.split(':'); |
+ var repo = split[0]; |
+ var revision = parseInt(split[1], 10); |
+ if (revision && repo) { |
+ if (!this.revisions[repo]) { |
+ this.revisions[repo] = [revision]; |
+ } else { |
+ this.revisions[repo].push(revision); |
+ } |
+ } |
+ }.bind(this)); |
}; |
-CTCommitList.prototype._range = function(commits) { |
+CTCommitList.prototype._displayRange = function(commits) { |
return commits.first().revision + " : " + commits.last().revision; |
}; |