From b750b14f368bbf78fce19010d239a44f58e30e16 Mon Sep 17 00:00:00 2001 From: Leigh Johnson Date: Mon, 27 Jun 2016 18:29:15 -0400 Subject: [PATCH] add labels field to job list, extend labels directive to allow no-delete mode, resolves #2663 consistent naming whoops --- .../src/job-templates/labels/labelsList.directive.js | 11 +++++++---- .../src/job-templates/labels/labelsList.partial.html | 5 +++-- awx/ui/client/src/lists/AllJobs.js | 11 +++++++---- awx/ui/client/src/shared/generator-helpers.js | 3 ++- 4 files changed, 19 insertions(+), 11 deletions(-) diff --git a/awx/ui/client/src/job-templates/labels/labelsList.directive.js b/awx/ui/client/src/job-templates/labels/labelsList.directive.js index 4e401c4d71..00c8e6b06a 100644 --- a/awx/ui/client/src/job-templates/labels/labelsList.directive.js +++ b/awx/ui/client/src/job-templates/labels/labelsList.directive.js @@ -13,6 +13,7 @@ export default scope: false, templateUrl: templateUrl('job-templates/labels/labelsList'), link: function(scope, element, attrs) { + scope.showDelete = attrs.showDelete === 'true'; scope.seeMoreInactive = true; var getNext = function(data, arr, resolve) { @@ -29,7 +30,7 @@ export default scope.seeMore = function () { var seeMoreResolve = $q.defer(); - Rest.setUrl(scope.job_template.related.labels); + Rest.setUrl(scope[scope.$parent.list.iterator].related.labels); Rest.get() .success(function(data) { if (data.next) { @@ -70,11 +71,13 @@ export default }); }; - scope.$watch("job_template.summary_fields.labels.results", function() { + scope.$watch(scope.$parent.list.iterator+".summary_fields.labels.results", function() { // To keep the array of labels fresh, we need to set up a watcher - otherwise, the // array will get set initially and then never be updated as labels are removed - scope.labels = scope.job_template.summary_fields.labels.results; - scope.count = scope.job_template.summary_fields.labels.count; + if (scope[scope.$parent.list.iterator].summary_fields.labels){ + scope.labels = scope[scope.$parent.list.iterator].summary_fields.labels.results; + scope.count = scope[scope.$parent.list.iterator].summary_fields.labels.count; + } }); } }; diff --git a/awx/ui/client/src/job-templates/labels/labelsList.partial.html b/awx/ui/client/src/job-templates/labels/labelsList.partial.html index 8c2f08f712..325567c656 100644 --- a/awx/ui/client/src/job-templates/labels/labelsList.partial.html +++ b/awx/ui/client/src/job-templates/labels/labelsList.partial.html @@ -1,9 +1,10 @@
+ ng-click="deleteLabel(job_template.id, job_template.name, label.id, label.name)" + ng-show="showDelete">
-
+
{{ label.name }}
diff --git a/awx/ui/client/src/lists/AllJobs.js b/awx/ui/client/src/lists/AllJobs.js index eebb136749..04bbaad493 100644 --- a/awx/ui/client/src/lists/AllJobs.js +++ b/awx/ui/client/src/lists/AllJobs.js @@ -44,7 +44,7 @@ export default }, name: { label: 'Name', - columnClass: 'col-lg-3 col-md-3 col-sm-4 col-xs-6', + columnClass: 'col-lg-2 col-md-3 col-sm-4 col-xs-6', ngClick: "viewJobDetails(all_job)", defaultSearchField: true, awToolTip: "{{ all_job.name | sanitize }}", @@ -54,7 +54,7 @@ export default label: 'Type', ngBind: 'all_job.type_label', link: false, - columnClass: "col-lg-3 col-md-3 hidden-sm hidden-xs", + columnClass: "col-lg-2 hidden-md hidden-sm hidden-xs", columnShow: "showJobType", searchable: true, searchType: 'select', @@ -65,7 +65,7 @@ export default noLink: true, searchable: false, filter: "longDate", - columnClass: "col-lg-3 col-md-3 col-sm-3 hidden-xs", + columnClass: "col-lg-2 col-md-3 col-sm-3 hidden-xs", key: true, desc: true }, @@ -79,7 +79,10 @@ export default }, labels: { label: 'Labels', - searchOnly: true, + type: 'labels', + nosort: true, + showDelete: false, + columnClass: 'List-tableCell col-lg-4 col-md-4 hidden-sm hidden-xs', searchType: 'related', sourceModel: 'labels', sourceField: 'name' diff --git a/awx/ui/client/src/shared/generator-helpers.js b/awx/ui/client/src/shared/generator-helpers.js index c76a2c6ef8..36d00db7c5 100644 --- a/awx/ui/client/src/shared/generator-helpers.js +++ b/awx/ui/client/src/shared/generator-helpers.js @@ -474,11 +474,12 @@ angular.module('GeneratorHelpers', [systemStatus.name]) `; } else if (field.type === 'labels') { + var showDelete = field.showDelete === undefined ? true : field.showDelete; classList = (field.columnClass) ? Attr(field, 'columnClass') : ""; html += ` - + `;