diff --git a/awx/ui/client/lib/components/components.strings.js b/awx/ui/client/lib/components/components.strings.js
index 07346e966b..0299111786 100644
--- a/awx/ui/client/lib/components/components.strings.js
+++ b/awx/ui/client/lib/components/components.strings.js
@@ -46,7 +46,11 @@ function ComponentsStrings (BaseString) {
ns.truncate = {
DEFAULT: t.s('Copy full revision to clipboard.'),
COPIED: t.s('Copied to clipboard.')
- }
+ };
+
+ ns.capacityBar = {
+ IS_OFFLINE: t.s('Unavailable to run jobs.')
+ };
}
ComponentsStrings.$inject = ['BaseStringService'];
diff --git a/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.block.less b/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.block.less
index 06b595066e..1caba245f0 100644
--- a/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.block.less
+++ b/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.block.less
@@ -1,8 +1,10 @@
capacity-bar {
width: 50%;
- margin-right: 10px;
+ margin-right: 25px;
min-width: 100px;
+ display: flex;
+ align-items: center;
.CapacityBar {
background-color: @default-bg;
@@ -13,6 +15,7 @@ capacity-bar {
width: 100%;
border-radius: 100vw;
overflow: hidden;
+ margin-right: 10px;
}
.CapacityBar-remaining {
@@ -23,4 +26,16 @@ capacity-bar {
.CapacityBar-consumed {
flex: 0 0 auto;
}
+
+ .CapacityBar--offline {
+ border-color: @d7grey;
+
+ .CapacityBar-remaining {
+ background-color: @d7grey;
+ }
+ }
+
+ .Capacity-details--percentage {
+ color: @default-data-txt;
+ }
}
diff --git a/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.directive.js b/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.directive.js
index 76dcf08323..872e2ac0be 100644
--- a/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.directive.js
+++ b/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.directive.js
@@ -1,16 +1,39 @@
-export default ['templateUrl',
- function (templateUrl) {
+export default ['templateUrl', 'ComponentsStrings',
+ function (templateUrl, strings) {
return {
scope: {
- capacity: '='
+ capacity: '=',
+ totalCapacity: '='
},
templateUrl: templateUrl('instance-groups/capacity-bar/capacity-bar'),
restrict: 'E',
link: function(scope) {
+ scope.isOffline = false;
+
+ scope.$watch('totalCapacity', function(val) {
+ if (val === 0) {
+ scope.isOffline = true;
+ scope.offlineTip = strings.get(`capacityBar.IS_OFFLINE`);
+ } else {
+ scope.isOffline = false;
+ scope.offlineTip = null;
+ }
+ }, true);
+
scope.$watch('capacity', function() {
- scope.CapacityStyle = {
- 'flex-grow': scope.capacity * 0.01
- };
+ if (scope.totalCapacity !== 0) {
+ scope.CapacityStyle = {
+ 'flex-grow': scope.capacity * 0.01
+ };
+
+ scope.consumedCapacity = `${scope.capacity}%`;
+ } else {
+ scope.CapacityStyle = {
+ 'flex-grow': 1
+ };
+
+ scope.consumedCapacity = null;
+ }
}, true);
}
};
diff --git a/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.partial.html b/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.partial.html
index b1b925fb06..d80ff84bc0 100644
--- a/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.partial.html
+++ b/awx/ui/client/src/instance-groups/capacity-bar/capacity-bar.partial.html
@@ -1,4 +1,11 @@
-
\ No newline at end of file
+
+{{ consumedCapacity }}
diff --git a/awx/ui/client/src/instance-groups/instance-group.block.less b/awx/ui/client/src/instance-groups/instance-group.block.less
index 4fa4a1b49d..22b81417ea 100644
--- a/awx/ui/client/src/instance-groups/instance-group.block.less
+++ b/awx/ui/client/src/instance-groups/instance-group.block.less
@@ -24,10 +24,6 @@
margin: 0 10px 0 0;
width: 100px;
}
-
- .Capacity-details--percentage {
- color: @default-data-txt;
- }
}
.RunningJobs-details {
diff --git a/awx/ui/client/src/instance-groups/instance-group.partial.html b/awx/ui/client/src/instance-groups/instance-group.partial.html
index 9acec0d42f..df3be6f2ca 100644
--- a/awx/ui/client/src/instance-groups/instance-group.partial.html
+++ b/awx/ui/client/src/instance-groups/instance-group.partial.html
@@ -8,8 +8,7 @@
Used Capacity
-
-
{{ instanceGroupCapacity }}%
+
Running Jobs
@@ -31,4 +30,4 @@
-
\ No newline at end of file
+
diff --git a/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.partial.html b/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.partial.html
index 6076c7f886..9c40fe931f 100644
--- a/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.partial.html
+++ b/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.partial.html
@@ -8,8 +8,7 @@
Used Capacity
-
-
{{ instanceCapacity }}%
+
Running Jobs
@@ -30,4 +29,4 @@
-
\ No newline at end of file
+
diff --git a/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.route.js b/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.route.js
index def896523a..7e9be9a9de 100644
--- a/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.route.js
+++ b/awx/ui/client/src/instance-groups/instances/instance-jobs/instance-jobs.route.js
@@ -13,6 +13,7 @@ export default {
controller: function($scope, $rootScope, instance) {
$scope.instanceName = instance.hostname;
$scope.instanceCapacity = instance.consumed_capacity;
+ $scope.instanceTotalCapacity = instance.capacity;
$scope.instanceJobsRunning = instance.jobs_running;
$rootScope.breadcrumb.instance_name = instance.hostname;
}
@@ -34,4 +35,4 @@ export default {
});
}]
}
-};
\ No newline at end of file
+};
diff --git a/awx/ui/client/src/instance-groups/instances/instances-list.partial.html b/awx/ui/client/src/instance-groups/instances/instances-list.partial.html
index fa408780b6..da8f052423 100644
--- a/awx/ui/client/src/instance-groups/instances/instances-list.partial.html
+++ b/awx/ui/client/src/instance-groups/instances/instances-list.partial.html
@@ -35,7 +35,7 @@
- {{ instance.consumed_capacity }}%
+
|
diff --git a/awx/ui/client/src/instance-groups/instances/instances.route.js b/awx/ui/client/src/instance-groups/instances/instances.route.js
index 43153cb9fc..8890171b58 100644
--- a/awx/ui/client/src/instance-groups/instances/instances.route.js
+++ b/awx/ui/client/src/instance-groups/instances/instances.route.js
@@ -10,6 +10,7 @@ export default {
controller: function($scope, $rootScope, instanceGroup) {
$scope.instanceGroupName = instanceGroup.name;
$scope.instanceGroupCapacity = instanceGroup.consumed_capacity;
+ $scope.instanceGroupTotalCapacity = instanceGroup.capacity;
$scope.instanceGroupJobsRunning = instanceGroup.jobs_running;
$rootScope.breadcrumb.instance_group_name = instanceGroup.name;
}
@@ -31,4 +32,4 @@ export default {
});
}]
}
-};
\ No newline at end of file
+};
diff --git a/awx/ui/client/src/instance-groups/list/instance-groups-list.partial.html b/awx/ui/client/src/instance-groups/list/instance-groups-list.partial.html
index 1a5f8bad1a..f3d470afd9 100644
--- a/awx/ui/client/src/instance-groups/list/instance-groups-list.partial.html
+++ b/awx/ui/client/src/instance-groups/list/instance-groups-list.partial.html
@@ -47,7 +47,7 @@
- {{ instance_group.consumed_capacity }}%
+
|