/**
 * An element which displays a progressbar for the given build.
 */
angular.module('quay').directive('buildProgress', function () {
  var directiveDefinitionObject = {
    priority: 0,
    templateUrl: '/static/directives/build-progress.html',
    replace: false,
    transclude: false,
    restrict: 'C',
    scope: {
      'build': '=build'
    },
    controller: function($scope, $element) {
      $scope.getPercentage = function(buildInfo) {
        switch (buildInfo.phase) {
          case 'pulling':
            return buildInfo.status.pull_completion * 100;
            break;

          case 'building':
            return (buildInfo.status.current_command / buildInfo.status.total_commands) * 100;
            break;

          case 'pushing':
            return buildInfo.status.push_completion * 100;
            break;

          case 'priming-cache':
            return buildInfo.status.cache_completion * 100;
            break;

          case 'complete':
            return 100;
            break;

          case 'initializing':
          case 'checking-cache':
          case 'starting':
          case 'waiting':
          case 'cannot_load':
          case 'unpacking':
            return 0;
            break;
        }

        return -1;
      };
    }
  };
  return directiveDefinitionObject;
});