+ build-started="handleBuildStarted(build)">
diff --git a/static/js/directives/repo-view/repo-panel-builds.js b/static/js/directives/repo-view/repo-panel-builds.js
index 9426ff1c9..e403e177a 100644
--- a/static/js/directives/repo-view/repo-panel-builds.js
+++ b/static/js/directives/repo-view/repo-panel-builds.js
@@ -221,24 +221,6 @@ angular.module('quay').directive('repoPanelBuilds', function () {
$scope.showTriggerSetupCounter++;
};
- $scope.startTrigger = function(trigger, opt_custom) {
- var parameters = TriggerService.getRunParameters(trigger.service);
- if (parameters.length && !opt_custom) {
- $scope.currentStartTrigger = trigger;
- $scope.showTriggerStartDialogCounter++;
- return;
- }
-
- var params = {
- 'repository': $scope.repository.namespace + '/' + $scope.repository.name,
- 'trigger_uuid': trigger.id
- };
-
- ApiService.manuallyStartBuildTrigger(opt_custom || {}, params).then(function(resp) {
- $scope.handleBuildStarted(resp);
- }, ApiService.errorDisplay('Could not start build'));
- };
-
$scope.deleteTrigger = function(trigger, opt_callback) {
if (!trigger) { return; }
diff --git a/static/js/directives/ui/dockerfile-build-dialog.js b/static/js/directives/ui/dockerfile-build-dialog.js
index e8e45214b..524f0bacd 100644
--- a/static/js/directives/ui/dockerfile-build-dialog.js
+++ b/static/js/directives/ui/dockerfile-build-dialog.js
@@ -13,13 +13,17 @@ angular.module('quay').directive('dockerfileBuildDialog', function () {
'showNow': '=showNow',
'buildStarted': '&buildStarted'
},
- controller: function($scope, $element) {
+ controller: function($scope, $element, ApiService) {
$scope.building = false;
$scope.uploading = false;
$scope.startCounter = 0;
+ $scope.viewTriggers = false;
+ $scope.triggers = null;
+ $scope.startTriggerCounter = 0;
+ $scope.startTrigger = null;
$scope.handleBuildStarted = function(build) {
- $('#dockerfilebuildModal').modal('hide');
+ $element.find('.dockerfilebuildModal').modal('hide');
if ($scope.buildStarted) {
$scope.buildStarted({'build': build});
}
@@ -34,9 +38,38 @@ angular.module('quay').directive('dockerfileBuildDialog', function () {
$scope.startCounter++;
};
+ $scope.showTriggers = function(value) {
+ $scope.viewTriggers = value;
+ };
+
+ $scope.runTriggerNow = function(trigger) {
+ $element.find('.dockerfilebuildModal').modal('hide');
+ $scope.startTrigger = trigger;
+ $scope.startTriggerCounter++;
+ };
+
$scope.$watch('showNow', function(sn) {
if (sn && $scope.repository) {
- $('#dockerfilebuildModal').modal({});
+ $scope.viewTriggers = false;
+ $scope.startTrigger = null;
+
+ $element.find('.dockerfilebuildModal').modal({});
+
+ // Load the triggers (if necessary).
+ if (!$scope.repository || !$scope.repository.can_admin) {
+ $scope.triggersResource = null;
+ $scope.triggers = null;
+ return;
+ }
+
+ var params = {
+ 'repository': $scope.repository.namespace + '/' + $scope.repository.name
+ };
+
+ $scope.triggersResource = ApiService.listBuildTriggersAsResource(params).get(function(resp) {
+ $scope.triggers = resp.triggers;
+ $scope.viewTriggers = $scope.triggers.length > 0;
+ });
}
});
}
diff --git a/static/js/directives/ui/dockerfile-build-form.js b/static/js/directives/ui/dockerfile-build-form.js
index 5ce6b6aec..6d35474a9 100644
--- a/static/js/directives/ui/dockerfile-build-form.js
+++ b/static/js/directives/ui/dockerfile-build-form.js
@@ -24,11 +24,15 @@ angular.module('quay').directive('dockerfileBuildForm', function () {
var MEGABYTE = 1000000;
var MAX_FILE_SIZE = 100 * MEGABYTE;
- $scope.hasDockerFile = false;
- $scope.pullEntity = null;
- $scope.dockerfileState = 'none';
- $scope.privateBaseRepository = null;
- $scope.isReady = false;
+ var resetState = function() {
+ $scope.hasDockerFile = false;
+ $scope.pullEntity = null;
+ $scope.dockerfileState = 'none';
+ $scope.privateBaseRepository = null;
+ $scope.isReady = false;
+ };
+
+ resetState();
$scope.handleFilesChanged = function(files) {
$scope.dockerfileError = '';
@@ -259,6 +263,8 @@ angular.module('quay').directive('dockerfileBuildForm', function () {
$scope.$watch('pullEntity', checkReady);
$scope.$watch('dockerfileState', checkReady);
+ $scope.$watch('repository', resetState);
+
$scope.$watch('startNow', function() {
if ($scope.startNow && $scope.repository && !$scope.uploading && !$scope.building) {
startFileUpload();
diff --git a/static/js/directives/ui/manual-trigger-build-dialog.js b/static/js/directives/ui/manual-trigger-build-dialog.js
index b05d579f6..a0f09cae2 100644
--- a/static/js/directives/ui/manual-trigger-build-dialog.js
+++ b/static/js/directives/ui/manual-trigger-build-dialog.js
@@ -11,7 +11,7 @@ angular.module('quay').directive('manualTriggerBuildDialog', function () {
'repository': '=repository',
'counter': '=counter',
'trigger': '=trigger',
- 'startBuild': '&startBuild'
+ 'buildStarted': '&buildStarted'
},
controller: function($scope, $element, ApiService, TriggerService) {
$scope.parameters = {};
@@ -19,11 +19,19 @@ angular.module('quay').directive('manualTriggerBuildDialog', function () {
$scope.lookaheadItems = {};
$scope.startTrigger = function() {
- $('#startTriggerDialog').modal('hide');
- $scope.startBuild({
- 'trigger': $scope.trigger,
- 'parameters': $scope.parameters
- });
+ $element.find('.startTriggerDialog').modal('hide');
+ var params = {
+ 'repository': $scope.repository.namespace + '/' + $scope.repository.name,
+ 'trigger_uuid': $scope.trigger.id
+ };
+
+ ApiService.manuallyStartBuildTrigger($scope.parameters || {}, params).then(function(resp) {
+ $scope.buildStarted({
+ 'trigger': $scope.trigger,
+ 'parameters': $scope.parameters,
+ 'build': resp
+ });
+ }, ApiService.errorDisplay('Could not start build'));
};
$scope.getPattern = function(field) {
@@ -50,9 +58,9 @@ angular.module('quay').directive('manualTriggerBuildDialog', function () {
});
}
}
- $scope.runParameters = parameters;
- $('#startTriggerDialog').modal('show');
+ $scope.runParameters = parameters;
+ $element.find('.startTriggerDialog').modal('show');
};
$scope.$watch('counter', function(counter) {