Skip to content
This repository has been archived by the owner on Nov 10, 2017. It is now read-only.

Commit

Permalink
Bug 1067420 - Added polling handling for first resultSet in a repository
Browse files Browse the repository at this point in the history
  • Loading branch information
jeads committed Sep 18, 2014
1 parent b734674 commit 344cc50
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 14 deletions.
2 changes: 1 addition & 1 deletion webapp/app/js/controllers/jobs.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ treeherder.controller('JobsCtrl', [
}

// determine how many resultsets to fetch. default to 10.
var count = 10;
var count = ThResultSetModel.defaultResultSetCount;
if ((_.has($scope.searchParams, "startdate") || _.has($scope.searchParams, "fromchange") &&
(_.has($scope.searchParams, "enddate")) || _.has($scope.searchParams, "tochange"))) {
// just fetch all (up to 1000) the resultsets if an upper AND lower range is specified
Expand Down
32 changes: 19 additions & 13 deletions webapp/app/js/models/resultsets.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
'use strict';

treeherder.factory('ThResultSetModel', [
'$rootScope', '$q', '$location', '$interval', '$timeout',
'$rootScope', '$q', '$location', '$interval',
'thResultSets', 'thSocket', 'ThJobModel', 'thEvents',
'thAggregateIds', 'ThLog', 'thNotify', 'thJobFilters',
'ThRepositoryModel',
function(
$rootScope, $q, $location, $interval, $timeout, thResultSets,
$rootScope, $q, $location, $interval, thResultSets,
thSocket, ThJobModel, thEvents, thAggregateIds, ThLog, thNotify,
thJobFilters, ThRepositoryModel) {

Expand All @@ -25,6 +25,8 @@ treeherder.factory('ThResultSetModel', [
* job map
*/

var defaultResultSetCount = 10;

// the primary data model
var repositories = {};

Expand All @@ -46,20 +48,23 @@ treeherder.factory('ThResultSetModel', [
// Register resultset poller if it's not registered
$interval(function(){

if(repositories[$rootScope.repoName].resultSets.length > 0){
if( (repositories[$rootScope.repoName].resultSets.length > 0) &&
(repositories[repoName].loadingStatus.prepending === false) ){

thResultSets.getResultSetsFromChange(
$rootScope.repoName,
repositories[$rootScope.repoName].resultSets[0].revision

).then(function(data){
var rsData = data.data;
for(var i=0; i < rsData.results.length; i++){
//Identify any resultsets we don't have
if (repositories[$rootScope.repoName].rsMap[rsData.results[i].id] === undefined) {
prependResultSets($rootScope.repoName, rsData);
}
}
prependResultSets($rootScope.repoName, data.data);
});

} else if( (repositories[$rootScope.repoName].resultSets.length === 0) &&
(repositories[$rootScope.repoName].loadingStatus.prepending === false) ){

fetchResultSets(
$rootScope.repoName, defaultResultSetCount);

}
}, resultSetPollInterval);
}
Expand Down Expand Up @@ -115,7 +120,7 @@ treeherder.factory('ThResultSetModel', [
noPollingParameters, searchKeys);

var poll = true;
if(keyIntersection.length != 0){
if(keyIntersection.length !== 0){
poll = false;
}

Expand Down Expand Up @@ -739,7 +744,6 @@ treeherder.factory('ThResultSetModel', [

var prependResultSets = function(repoName, data) {
// prepend the resultsets because they'll be newer.

var added = [];
for (var i = data.results.length - 1; i > -1; i--) {
if (data.results[i].push_timestamp >= repositories[repoName].rsMapOldestTimestamp &&
Expand All @@ -764,6 +768,7 @@ treeherder.factory('ThResultSetModel', [
if(data.results.length > 0){

$log.debug("appendResultSets", data.results);

Array.prototype.push.apply(
repositories[repoName].resultSets, data.results
);
Expand Down Expand Up @@ -924,7 +929,8 @@ treeherder.factory('ThResultSetModel', [
processSocketData: processSocketData,
processUpdateQueues: processUpdateQueues,
setSelectedJob: setSelectedJob,
updateUnclassifiedFailureMap: updateUnclassifiedFailureMap
updateUnclassifiedFailureMap: updateUnclassifiedFailureMap,
defaultResultSetCount: defaultResultSetCount

};

Expand Down

0 comments on commit 344cc50

Please sign in to comment.