Skip to content

Instantly share code, notes, and snippets.

@wlach
Created May 5, 2015 16:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save wlach/061d8a87b12fe32bd79a to your computer and use it in GitHub Desktop.
Save wlach/061d8a87b12fe32bd79a to your computer and use it in GitHub Desktop.
diff --git a/webapp/app/js/graphs.js b/webapp/app/js/graphs.js
index 17ac2f8..a638d69 100644
--- a/webapp/app/js/graphs.js
+++ b/webapp/app/js/graphs.js
@@ -7,11 +7,12 @@
perf.controller('GraphsCtrl', [
'$state', '$stateParams', '$scope', '$rootScope', '$location', '$modal',
'thServiceDomain', '$http', '$q', '$timeout', 'PhSeries',
- 'ThRepositoryModel', 'ThOptionCollectionModel', 'phTimeRanges',
+ 'ThRepositoryModel', 'ThOptionCollectionModel', 'ThResultSetModel',
+ 'phTimeRanges',
function GraphsCtrl($state, $stateParams, $scope, $rootScope, $location,
$modal, thServiceDomain, $http, $q, $timeout, PhSeries,
ThRepositoryModel, ThOptionCollectionModel,
- phTimeRanges) {
+ ThResultSetModel, phTimeRanges) {
var availableColors = [ 'red', 'green', 'blue', 'orange', 'purple' ];
var optionCollectionMap = null;
@@ -100,19 +101,22 @@ perf.controller('GraphsCtrl', [
date: $.plot.formatDate(new Date(t), '%a %b %d, %H:%M:%S')
};
- $http.get(thServiceDomain + '/api/project/' + phSeries.projectName +
- '/resultset/' + dataPoint.resultSetId).then(
- function(response) {
- var revision = response.data.revisions[0].revision;
- $scope.tooltipContent.revision = revision;
- dataPoint.revision = revision;
- });
- $http.get(thServiceDomain + '/api/project/' + phSeries.projectName +
- '/resultset/' + prevResultSetId).then(
- function(response) {
- var prevRevision = response.data.revisions[0].revision;
- $scope.tooltipContent.prevRevision = prevRevision;
- });
+ // Get revision information for both this datapoint and the previous
+ // one
+ _.each([{ resultSetId: dataPoint.resultSetId,
+ scopeKey: 'revision' },
+ { resultSetId: prevResultSetId,
+ scopeKey: 'prevRevision' }],
+ function(resultRevision) {
+ ThResultSetModel.getRevisions(
+ phSeries.projectName, resultRevision.resultSetId).then(
+ function(revisions) {
+ $scope.tooltipContent[resultRevision.scopeKey] =
+ revisions[0];
+ }, function(error) {
+ console.log("Failed to get revision: " + error);
+ });
+ });
// now position it
$timeout(function() {
diff --git a/webapp/app/js/models/resultset.js b/webapp/app/js/models/resultset.js
index 14cc718..cfec85e 100644
--- a/webapp/app/js/models/resultset.js
+++ b/webapp/app/js/models/resultset.js
@@ -133,6 +133,46 @@ treeherder.factory('ThResultSetModel', ['$rootScope', '$http', '$location', '$q'
);
return jobsPromiseList;
},
+
+ getRevisions: function(projectName, resultSetId) {
+ var defer = $q.defer();
+ $http.get(thUrl.getProjectUrl(
+ "/resultset/" + resultSetId, projectName)).then(
+ function(response) {
+ if (response.data.revisions.length > 0) {
+ defer.resolve(
+ _.map(response.data.revisions, function(r) {
+ return r.revision;
+ }));
+ } else {
+ defer.reject("Can't find result set: " +
+ resultSetId);
+ }
+ }, function(error) {
+ defer.reject("Failed to get result set: " + error);
+ });
+
+ return defer.promise;
+ },
+
+ getResultSetId: function(projectName, revision) {
+ var defer = $q.defer();
+ $http.get(thUrl.getProjectUrl(
+ "/resultset/?revision=" + revision, projectName)).then(
+ function(response) {
+ if (response.data.results.length > 0) {
+ defer.resolve(response.data.results[0].id);
+ } else {
+ defer.reject("Can't find result set for revision: " +
+ revision);
+ }
+ }, function(error) {
+ defer.reject("Failed to get result set for revision: " +
+ error);
+ });
+ return defer.promise;
+ },
+
cancelAll: function(resultset_id, repoName) {
var uri = resultset_id + '/cancel_all/';
return $http.post(thUrl.getProjectUrl("/resultset/", repoName) + uri);
diff --git a/webapp/app/perf.html b/webapp/app/perf.html
index 1fb0dc5..c3fdd44 100644
--- a/webapp/app/perf.html
+++ b/webapp/app/perf.html
@@ -42,6 +42,8 @@
<script src="js/services/main.js"></script>
<script src="js/services/log.js"></script>
<script src="js/models/repository.js"></script>
+ <script src="js/models/job.js"></script>
+ <script src="js/models/resultset.js"></script>
<script src="js/perf.js"></script>
<script src="js/compareperf.js"></script>
<script src="js/graphs.js"></script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment