diff --git a/static/css/quay.css b/static/css/quay.css
index 82c1e91e8..0f7a8be9c 100644
--- a/static/css/quay.css
+++ b/static/css/quay.css
@@ -1096,12 +1096,6 @@ i.toggle-icon:hover {
border: 1px dashed #ccc;
}
-.new-repo .initialize-repo .init-description {
- color: #444;
- font-size: 12px;
- text-align: center;
-}
-
.new-repo .initialize-repo .file-drop {
margin: 10px;
}
@@ -4915,3 +4909,7 @@ i.slack-icon {
#gen-token input[type="checkbox"] {
margin-right: 10px;
}
+
+.dockerfile-build-form table td {
+ vertical-align: top;
+}
diff --git a/static/directives/dockerfile-build-dialog.html b/static/directives/dockerfile-build-dialog.html
index 4848b341c..5ba1f475f 100644
--- a/static/directives/dockerfile-build-dialog.html
+++ b/static/directives/dockerfile-build-dialog.html
@@ -15,7 +15,7 @@
+ is-ready="hasDockerfile" uploading="uploading" building="building">
-
- Upload a Dockerfile or an archive (.zip
or .tar.gz
) containing a Dockerfile in the root directory
-
-
+
diff --git a/static/js/app.js b/static/js/app.js
index 69f135538..b41e80b10 100644
--- a/static/js/app.js
+++ b/static/js/app.js
@@ -4354,6 +4354,8 @@ quayApp.directive('entitySearch', function () {
if (classes.length > 1) {
classes[classes.length - 1] = 'or ' + classes[classes.length - 1];
+ } else if (classes.length == 0) {
+ return 'No matching entities found
';
}
var class_string = '';
@@ -4439,7 +4441,6 @@ quayApp.directive('entitySearch', function () {
$scope.$watch('namespace', function(namespace) {
if (!namespace) { return; }
-
$scope.isAdmin = UserService.isNamespaceAdmin(namespace);
$scope.isOrganization = !!UserService.getOrganization(namespace);
});
@@ -6229,7 +6230,7 @@ quayApp.directive('dockerfileBuildForm', function () {
scope: {
'repository': '=repository',
'startNow': '=startNow',
- 'hasDockerfile': '=hasDockerfile',
+ 'isReady': '=isReady',
'uploadFailed': '&uploadFailed',
'uploadStarted': '&uploadStarted',
'buildStarted': '&buildStarted',
@@ -6240,6 +6241,8 @@ quayApp.directive('dockerfileBuildForm', function () {
},
controller: function($scope, $element, ApiService) {
$scope.internal = {'hasDockerfile': false};
+ $scope.pull_entity = null;
+ $scope.is_public = true;
var handleBuildFailed = function(message) {
message = message || 'Dockerfile build failed to start';
@@ -6313,8 +6316,12 @@ quayApp.directive('dockerfileBuildForm', function () {
'file_id': fileId
};
+ if (!$scope.is_public && $scope.pull_entity) {
+ data['pull_robot'] = $scope.pull_entity['name'];
+ }
+
var params = {
- 'repository': repo.namespace + '/' + repo.name
+ 'repository': repo.namespace + '/' + repo.name,
};
ApiService.requestRepoBuild(data, params).then(function(resp) {
@@ -6392,9 +6399,13 @@ quayApp.directive('dockerfileBuildForm', function () {
});
};
- $scope.$watch('internal.hasDockerfile', function(d) {
- $scope.hasDockerfile = d;
- });
+ var checkIsReady = function() {
+ $scope.isReady = $scope.internal.hasDockerfile && ($scope.is_public || $scope.pull_entity);
+ };
+
+ $scope.$watch('pull_entity', checkIsReady);
+ $scope.$watch('is_public', checkIsReady);
+ $scope.$watch('internal.hasDockerfile', checkIsReady);
$scope.$watch('startNow', function() {
if ($scope.startNow && $scope.repository && !$scope.uploading && !$scope.building) {
diff --git a/static/partials/new-repo.html b/static/partials/new-repo.html
index f452f3edb..4836576a8 100644
--- a/static/partials/new-repo.html
+++ b/static/partials/new-repo.html
@@ -143,9 +143,9 @@
Upload DockerfileArchive
-
+ is-ready="hasDockerfile" uploading="uploading" building="building">