diff --git a/awx/ui/client/lib/components/components.strings.js b/awx/ui/client/lib/components/components.strings.js index ddc765533b..810fe5338a 100644 --- a/awx/ui/client/lib/components/components.strings.js +++ b/awx/ui/client/lib/components/components.strings.js @@ -78,11 +78,6 @@ function ComponentsStrings (BaseString) { FOOTER_COPYRIGHT: t.s('Copyright © 2017 Red Hat, Inc.') }; - ns.capacityBar = { - IS_OFFLINE: t.s('Unavailable to run jobs.'), - IS_OFFLINE_LABEL: t.s('Unavailable') - }; - ns.relaunch = { DEFAULT: t.s('Relaunch using the same parameters'), HOSTS: t.s('Relaunch using host parameters'), diff --git a/awx/ui/client/lib/components/input/lookup.directive.js b/awx/ui/client/lib/components/input/lookup.directive.js index fcee7ad72c..0447d6b448 100644 --- a/awx/ui/client/lib/components/input/lookup.directive.js +++ b/awx/ui/client/lib/components/input/lookup.directive.js @@ -119,14 +119,8 @@ function AtInputLookupController (baseInputController, $q, $state) { vm.searchAfterDebounce(); }; - vm.removeTag = (i) => { - let list; - if (!i.id) { - list = _.remove(scope.state._value, i); - } else { - list = _.remove(scope.state._value, i.id); - } - scope.state._value = list; + vm.removeTag = (tagToRemove) => { + _.remove(scope.state._value, (tag) => tag === tagToRemove); }; } diff --git a/awx/ui/client/lib/components/input/lookup.partial.html b/awx/ui/client/lib/components/input/lookup.partial.html index 271c24212f..e3633aa743 100644 --- a/awx/ui/client/lib/components/input/lookup.partial.html +++ b/awx/ui/client/lib/components/input/lookup.partial.html @@ -1,45 +1,40 @@
-
- +
+ -
- - - +
+ + + + - - - - - - -
-
- -
-
- {{ tag.hostname }} - {{ tag }} -
-
-
-
- - + +
+
+ +
+
+ {{ tag.hostname }} + {{ tag }} +
+
-
+ +
+ +
\ No newline at end of file diff --git a/awx/ui/client/lib/components/list/_index.less b/awx/ui/client/lib/components/list/_index.less index 77997bbbcc..a4daa3248b 100644 --- a/awx/ui/client/lib/components/list/_index.less +++ b/awx/ui/client/lib/components/list/_index.less @@ -99,6 +99,15 @@ } } +.at-RowStatus { + align-self: flex-start; + margin: 0 10px 0 0; +} + +.at-Row-firstColumn { + margin-right: @at-space-4x; +} + .at-Row-actions { display: flex; } @@ -120,6 +129,14 @@ line-height: @at-line-height-list-row-item-header; } +.at-RowItem--isHeaderLink { + color: @at-blue; + cursor: pointer; +} +.at-RowItem--isHeaderLink:hover { + color: @at-blue-hover; +} + .at-RowItem--labels { line-height: @at-line-height-list-row-item-labels; } diff --git a/awx/ui/client/lib/components/tabs/_index.less b/awx/ui/client/lib/components/tabs/_index.less index 4956444576..84b33c2134 100644 --- a/awx/ui/client/lib/components/tabs/_index.less +++ b/awx/ui/client/lib/components/tabs/_index.less @@ -26,3 +26,7 @@ cursor: not-allowed; } } + +.at-TabGroup + .at-Panel-body { + margin-top: 20px; +} \ No newline at end of file diff --git a/awx/ui/client/lib/models/Job.js b/awx/ui/client/lib/models/Job.js deleted file mode 100644 index 9be420b2f9..0000000000 --- a/awx/ui/client/lib/models/Job.js +++ /dev/null @@ -1,21 +0,0 @@ -let Base; - -function JobModel (method, resource, config) { - Base.call(this, 'jobs'); - - this.Constructor = JobModel; - - return this.create(method, resource, config); -} - -function JobModelLoader (BaseModel) { - Base = BaseModel; - - return JobModel; -} - -JobModelLoader.$inject = [ - 'BaseModel' -]; - -export default JobModelLoader; diff --git a/awx/ui/client/lib/services/base-string.service.js b/awx/ui/client/lib/services/base-string.service.js index a14871ae68..6c2622879d 100644 --- a/awx/ui/client/lib/services/base-string.service.js +++ b/awx/ui/client/lib/services/base-string.service.js @@ -60,6 +60,8 @@ function BaseStringService (namespace) { this.CANCEL = t.s('CANCEL'); this.SAVE = t.s('SAVE'); this.OK = t.s('OK'); + this.ON = t.s('ON'); + this.OFF = t.s('OFF'); this.deleteResource = { HEADER: t.s('Delete'), USED_BY: resourceType => t.s('The {{ resourceType }} is currently being used by other resources.', { resourceType }), diff --git a/awx/ui/client/lib/theme/_global.less b/awx/ui/client/lib/theme/_global.less index b62f501c33..6995b224a5 100644 --- a/awx/ui/client/lib/theme/_global.less +++ b/awx/ui/client/lib/theme/_global.less @@ -23,6 +23,7 @@ font-size: 20px; } border-color: transparent; + margin-left: @at-space-2x; } .at-Button--info { diff --git a/awx/ui/client/lib/theme/index.less b/awx/ui/client/lib/theme/index.less index 6b3f241ffd..0a3d936978 100644 --- a/awx/ui/client/lib/theme/index.less +++ b/awx/ui/client/lib/theme/index.less @@ -72,6 +72,7 @@ @import '../../src/home/dashboard/lists/dashboard-list.block.less'; @import '../../src/home/dashboard/dashboard.block.less'; @import '../../src/instance-groups/capacity-bar/capacity-bar.block.less'; +@import '../../src/instance-groups/capacity-adjuster/capacity-adjuster.block.less'; @import '../../src/instance-groups/instance-group.block.less'; @import '../../src/instance-groups/instances/instance-modal.block.less'; @import '../../src/inventories-hosts/inventories/insights/insights.block.less'; diff --git a/awx/ui/client/src/app.js b/awx/ui/client/src/app.js index 069ee2dd80..e95779eb38 100644 --- a/awx/ui/client/src/app.js +++ b/awx/ui/client/src/app.js @@ -316,21 +316,6 @@ angular activateTab(); }); - $transitions.onCreate({}, function(trans) { - console.log('$onCreate ' +trans.to().name); - }); - - $transitions.onBefore({}, function(trans) { - console.log('$onBefore ' +trans.to().name); - }); - $transitions.onError({}, function(trans) { - - console.log('$onError ' +trans.to().name); - }); - $transitions.onExit({}, function(trans) { - console.log('$onExit ' +trans.to().name); - }); - $transitions.onSuccess({}, function(trans) { if(trans.to() === trans.from()) { diff --git a/awx/ui/client/src/instance-groups/add-edit/add-edit-instance-groups.view.html b/awx/ui/client/src/instance-groups/add-edit/add-edit-instance-groups.view.html index a980d74ec8..8567f095ce 100644 --- a/awx/ui/client/src/instance-groups/add-edit/add-edit-instance-groups.view.html +++ b/awx/ui/client/src/instance-groups/add-edit/add-edit-instance-groups.view.html @@ -5,23 +5,19 @@ {{:: vm.strings.get('tab.DETAILS') }} - {{:: vm.strings.get('tab.INSTANCES') }} - {{:: vm.strings.get('tab.JOBS') }} + {{:: vm.strings.get('tab.INSTANCES') }} + {{:: vm.strings.get('tab.JOBS') }} - - - -
diff --git a/awx/ui/client/src/instance-groups/add-edit/add-instance-group.controller.js b/awx/ui/client/src/instance-groups/add-edit/add-instance-group.controller.js index 9fc838115b..bb0b3ea413 100644 --- a/awx/ui/client/src/instance-groups/add-edit/add-instance-group.controller.js +++ b/awx/ui/client/src/instance-groups/add-edit/add-instance-group.controller.js @@ -1,11 +1,10 @@ function AddController ($scope, $state, models, strings) { const vm = this || {}; - const { instanceGroup, instance } = models; vm.mode = 'add'; vm.strings = strings; - vm.panelTitle = "New Instance Group"; + vm.panelTitle = strings.get('state.ADD_BREADCRUMB_LABEL'); vm.tab = { details: { _active: true }, @@ -15,6 +14,7 @@ function AddController ($scope, $state, models, strings) { vm.form = instanceGroup.createFormSchema('post'); + // Default policy instance percentage value is 0 vm.form.policy_instance_percentage._value = 0; vm.form.policy_instance_list._lookupTags = true; diff --git a/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js b/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js index 49b197c6ec..ee0802bbe2 100644 --- a/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js +++ b/awx/ui/client/src/instance-groups/add-edit/edit-instance-group.controller.js @@ -1,6 +1,5 @@ function EditController ($rootScope, $state, models, strings) { const vm = this || {}; - const { instanceGroup, instance } = models; $rootScope.breadcrumb.instance_group_name = instanceGroup.get('name'); @@ -36,7 +35,7 @@ function EditController ($rootScope, $state, models, strings) { vm.form.save = data => { instanceGroup.unset('policy_instance_list'); - data.policy_instance_list = data.policy_instance_list.map(instance => instance.hostname); + data.policy_instance_list = data.policy_instance_list.map(instance => instance.hostname || instance); return instanceGroup.request('put', { data }); }; diff --git a/awx/ui/client/src/instance-groups/add-edit/add-instance-list-policy.controller.js b/awx/ui/client/src/instance-groups/add-edit/instance-list-policy.controller.js similarity index 52% rename from awx/ui/client/src/instance-groups/add-edit/add-instance-list-policy.controller.js rename to awx/ui/client/src/instance-groups/add-edit/instance-list-policy.controller.js index c7819ba797..f70150a79c 100644 --- a/awx/ui/client/src/instance-groups/add-edit/add-instance-list-policy.controller.js +++ b/awx/ui/client/src/instance-groups/add-edit/instance-list-policy.controller.js @@ -1,5 +1,5 @@ function InstanceModalController ($scope, $state, $http, $q, models, strings) { - const { instance } = models; + const { instance, instanceGroup } = models; const vm = this || {}; vm.setInstances = () => { @@ -7,18 +7,34 @@ function InstanceModalController ($scope, $state, $http, $q, models, strings) { instance.isSelected = false; return instance; }); - } + }; + + vm.setRelatedInstances = () => { + vm.instanceGroupName = instanceGroup.get('name'); + vm.relatedInstances = instanceGroup.get('policy_instance_list'); + + vm.instances = instance.get('results').map(instance => { + instance.isSelected = vm.relatedInstances.includes(instance.hostname); + return instance; + }); + }; init(); function init() { vm.strings = strings; - vm.panelTitle = strings.get('instance.PANEL_TITLE'); - vm.setInstances(); - }; + vm.instanceGroupId = instanceGroup.get('id'); + vm.defaultParams = { page_size: '10', order_by: 'hostname' }; + + if (vm.instanceGroupId === undefined) { + vm.setInstances(); + } else { + vm.setRelatedInstances(); + } + } $scope.$watch('vm.instances', function() { - vm.selectedRows = _.filter(vm.instances, 'isSelected') + vm.selectedRows = _.filter(vm.instances, 'isSelected'); vm.deselectedRows = _.filter(vm.instances, 'isSelected', false); }, true); diff --git a/awx/ui/client/src/instance-groups/add-edit/add-instance-list-policy.partial.html b/awx/ui/client/src/instance-groups/add-edit/instance-list-policy.partial.html similarity index 68% rename from awx/ui/client/src/instance-groups/add-edit/add-instance-list-policy.partial.html rename to awx/ui/client/src/instance-groups/add-edit/instance-list-policy.partial.html index 29493add34..218e61421d 100644 --- a/awx/ui/client/src/instance-groups/add-edit/add-instance-list-policy.partial.html +++ b/awx/ui/client/src/instance-groups/add-edit/instance-list-policy.partial.html @@ -1,17 +1,17 @@