github.com/justinjmoses/evergreen@v0.0.0-20170530173719-1d50e381ff0d/public/static/js/build_variant_history.js (about)

     1  mciModule.controller('BuildVariantHistoryController',['$scope', '$filter','$window', 'mciBuildVariantHistoryRestService', 'notificationService', function($scope, $filter, $window,
     2    mciBuildVariantHistoryRestService, notifier) {
     3    $scope.buildVariant = $window.buildVariant;
     4    $scope.project = $window.project;
     5    $scope.taskNames = $window.taskNames;
     6    $scope.versionsByRevision = {};
     7    $scope.versions = [];
     8    $scope.tasksByTaskNameByCommit = [];
     9    $scope.lastVersionId = '';
    10  
    11    var buildVersionsByRevisionMap = function(versions) {
    12      _.each(versions, function(version) {
    13        $scope.versions.push(version);
    14        $scope.versionsByRevision[version.revision] = version;
    15      });
    16    };
    17  
    18    var buildTasksByTaskNameCommitMap = function(tasksByCommit) {
    19      _.each(tasksByCommit, function(revisionToTasks) {
    20        var taskNameTaskMap = {};
    21        _.each(revisionToTasks.tasks, function(task) {
    22          taskNameTaskMap[task.display_name] = task;
    23        });
    24  
    25        $scope.tasksByTaskNameByCommit.push({
    26          _id: revisionToTasks._id,
    27          tasksByTaskName: taskNameTaskMap
    28        });
    29      });
    30    };
    31  
    32    /* Populate initial page data */
    33    buildVersionsByRevisionMap($window.versions);
    34    buildTasksByTaskNameCommitMap($window.tasksByCommit);
    35  
    36    var numVersions = $scope.versions.length;
    37    if (numVersions > 0) {
    38      $scope.lastVersionId = $scope.versions[numVersions - 1].id;
    39    }
    40  
    41    $scope.getGridClass = function(cell) {
    42      if (cell) {
    43        return $filter('statusFilter')(cell);
    44      }
    45  
    46      return "skipped";
    47    };
    48  
    49    $scope.loadMore = function() {
    50      mciBuildVariantHistoryRestService.getBuildVariantHistory(
    51        $scope.project,
    52        $scope.buildVariant, {
    53          format: 'json',
    54          before: $scope.lastVersionId,
    55        }, {
    56          success: function(data, status) {
    57            if (data.Versions) {
    58              buildVersionsByRevisionMap(data.Versions);
    59              $scope.lastVersionId = $scope.versions[$scope.versions.length - 1].id;
    60            }
    61  
    62            if (data.Tasks) {
    63              buildTasksByTaskNameCommitMap(data.Tasks);
    64            }
    65          },
    66  
    67          error: function(jqXHR, status, errorThrown) {
    68            notifier.pushNotification('Error getting build variant history: ' + jqXHR,'errorHeader');
    69          }
    70        }
    71      );
    72    };
    73  }]);