diff --git a/awx/ui/static/js/controllers/Projects.js b/awx/ui/static/js/controllers/Projects.js
index 0fa33fd134..b2e4152a3e 100644
--- a/awx/ui/static/js/controllers/Projects.js
+++ b/awx/ui/static/js/controllers/Projects.js
@@ -117,6 +117,22 @@ function ProjectsList ($scope, $rootScope, $location, $log, $routeParams, Rest,
scope.search(list.iterator);
});
+ if (scope.removeStatusOptionsReady) {
+ scope.removeStatusOptionsReady();
+ }
+ scope.removeStatusOptionsReady = scope.$on('statusOptionsReady', function() {
+ list.fields.status.searchOptions = scope.project_status_options;
+ });
+
+ // Load options for status --used in search
+ GetChoices({
+ scope: scope,
+ url: defaultUrl,
+ field: 'status',
+ variable: 'project_status_options',
+ callback: 'statusOptionsReady'
+ });
+
// Load the list of options for Kind
GetChoices({
scope: scope,
@@ -126,7 +142,6 @@ function ProjectsList ($scope, $rootScope, $location, $log, $routeParams, Rest,
callback: 'choicesReady'
});
-
LoadBreadCrumbs();
scope.showActivity = function() { Stream(); }
diff --git a/awx/ui/static/js/lists/Projects.js b/awx/ui/static/js/lists/Projects.js
index 89d65a09f4..e7bf6e338a 100644
--- a/awx/ui/static/js/lists/Projects.js
+++ b/awx/ui/static/js/lists/Projects.js
@@ -30,7 +30,7 @@ angular.module('ProjectsListDefinition', [])
excludeModal: true
},
scm_type: {
- label: 'SCM Type',
+ label: 'Type',
searchType: 'select',
searchOptions: [], // will be set by Options call to projects resource
excludeModal: true,
@@ -43,6 +43,8 @@ angular.module('ProjectsListDefinition', [])
dataPlacement: 'top',
badgeIcon: "\{\{ 'icon-failures-' + project.badge \}\}",
badgePlacement: 'left',
+ searchType: 'select',
+ searchOptions: [], // will be set by Options call to projects resource
excludeModal: true
},
last_updated: {
@@ -63,12 +65,13 @@ angular.module('ProjectsListDefinition', [])
awToolTip: 'Create a new project'
},
help: {
- awPopOver: "
\n- Updating
- An SCM update is in progress.
\n" +
- "- Never Updated
- No SCM update has ever run for the project.
\n" +
- "- Failed
- An error occurred during the most recent SCM update.
\n" +
- "- Successful
- The latest SCM update ran to completion without incident.
\n" +
- "- Missing
- The local project directory is missing.
\n" +
- "- N/A
- The project does not use SCM, so an update status is not available.
\n" +
+ awPopOver: "\n- Updating
- A source control update is in progress.
\n" +
+ "- Never Updated
- This project has not yet been updated from source control.
\n" +
+ "- Failed
- An error occurred during the most recent source control update, click the status " +
+ "text for more information.
\n" +
+ "- Successful
- TThe latest source control update completed successfully.
\n" +
+ "- Missing
- The previously configured local project directory is missing.
\n" +
+ "- N/A
- The project is not linked to source control, so updates are not applicable.
\n" +
"
\n",
dataPlacement: 'left',
dataContainer: 'body',
@@ -76,6 +79,7 @@ angular.module('ProjectsListDefinition', [])
mode: 'all',
'class': 'btn-xs btn-info btn-help',
awToolTip: 'Click for help',
+ awTipPlacement: 'top',
dataTitle: 'Project Status',
iconSize: 'large'
},
diff --git a/awx/ui/static/lib/ansible/directives.js b/awx/ui/static/lib/ansible/directives.js
index 02b9575442..43f90f4e30 100644
--- a/awx/ui/static/lib/ansible/directives.js
+++ b/awx/ui/static/lib/ansible/directives.js
@@ -238,7 +238,13 @@ angular.module('AWDirectives', ['RestServices', 'Utilities', 'AuthService', 'Hos
.directive('awToolTip', function() {
return function(scope, element, attrs) {
var delay = (attrs.delay != undefined && attrs.delay != null) ? attrs.delay : $AnsibleConfig.tooltip_delay;
- var placement = (attrs.placement != undefined && attrs.placement != null) ? attrs.placement : 'left';
+ var placement;
+ if (attrs.awTipPlacement) {
+ placement = attrs.awTipPlacement;
+ }
+ else {
+ placement = (attrs.placement != undefined && attrs.placement != null) ? attrs.placement : 'left';
+ }
$(element).on('hidden.bs.tooltip', function( ) {
// TB3RC1 is leaving behind tooltip elements. This will remove them
// after a tooltip fades away. If not, they lay overtop of other elements and
diff --git a/awx/ui/static/lib/ansible/generator-helpers.js b/awx/ui/static/lib/ansible/generator-helpers.js
index 10f5578da5..b9bef2f41a 100644
--- a/awx/ui/static/lib/ansible/generator-helpers.js
+++ b/awx/ui/static/lib/ansible/generator-helpers.js
@@ -59,6 +59,9 @@ angular.module('GeneratorHelpers', ['GeneratorHelpers'])
case 'dataTitle':
result = "data-title=\"" + value + "\" ";
break;
+ case 'awTipPlacement':
+ result = "aw-tip-placement=\"" + value + "\" ";
+ break;
case 'columnShow':
result = "ng-show=\"" + value + "\" ";
break;
@@ -139,6 +142,7 @@ angular.module('GeneratorHelpers', ['GeneratorHelpers'])
html += (btn.ngHide) ? Attr(btn, 'ngHide') : "";
html += (btn.ngDisabled) ? Attr(btn, 'ngHide') : "";
html += (btn.ngClass) ? Attr(btn, 'ngClass') : "";
+ html += (btn.awTipPlacement) ? Attr(btn, 'awTipPlacement') : "";
html += " >";
html += (btn['img']) ? "

" : "";
html += (btn['icon']) ? Attr(btn,'icon') : "";