/**
 * An element which displays a dialog for manually starting a dockerfile build.
 */
angular.module('quay').directive('dockerfileBuildDialog', function () {
  var directiveDefinitionObject = {
    priority: 0,
    templateUrl: '/static/directives/dockerfile-build-dialog.html',
    replace: false,
    transclude: false,
    restrict: 'C',
    scope: {
      'repository': '=repository',
      'showNow': '=showNow',
      'buildStarted': '&buildStarted'
    },
    controller: function($scope, $element) {
      $scope.building = false;
      $scope.uploading = false;
      $scope.startCounter = 0;

      $scope.handleBuildStarted = function(build) {
        $('#dockerfilebuildModal').modal('hide');
        if ($scope.buildStarted) {
          $scope.buildStarted({'build': build});
        }
      };

      $scope.handleBuildFailed = function(message) {
        $scope.errorMessage = message;
      };

      $scope.startBuild = function() {
        $scope.errorMessage = null;
        $scope.startCounter++;
      };

      $scope.$watch('showNow', function(sn) {
        if (sn && $scope.repository) {
          $('#dockerfilebuildModal').modal({});
        }
      });
    }
  };
  return directiveDefinitionObject;
});