Merge pull request #443 from jlmitch5/instanceCapacityBarOffline

update instance capacity bar to be grey when instance or group is off…
This commit is contained in:
jlmitch5
2017-09-22 13:46:52 -04:00
committed by GitHub
11 changed files with 71 additions and 26 deletions

View File

@@ -46,7 +46,11 @@ function ComponentsStrings (BaseString) {
ns.truncate = { ns.truncate = {
DEFAULT: t.s('Copy full revision to clipboard.'), DEFAULT: t.s('Copy full revision to clipboard.'),
COPIED: t.s('Copied to clipboard.') COPIED: t.s('Copied to clipboard.')
} };
ns.capacityBar = {
IS_OFFLINE: t.s('Unavailable to run jobs.')
};
} }
ComponentsStrings.$inject = ['BaseStringService']; ComponentsStrings.$inject = ['BaseStringService'];

View File

@@ -1,8 +1,10 @@
capacity-bar { capacity-bar {
width: 50%; width: 50%;
margin-right: 10px; margin-right: 25px;
min-width: 100px; min-width: 100px;
display: flex;
align-items: center;
.CapacityBar { .CapacityBar {
background-color: @default-bg; background-color: @default-bg;
@@ -13,6 +15,7 @@ capacity-bar {
width: 100%; width: 100%;
border-radius: 100vw; border-radius: 100vw;
overflow: hidden; overflow: hidden;
margin-right: 10px;
} }
.CapacityBar-remaining { .CapacityBar-remaining {
@@ -23,4 +26,16 @@ capacity-bar {
.CapacityBar-consumed { .CapacityBar-consumed {
flex: 0 0 auto; flex: 0 0 auto;
} }
.CapacityBar--offline {
border-color: @d7grey;
.CapacityBar-remaining {
background-color: @d7grey;
}
}
.Capacity-details--percentage {
color: @default-data-txt;
}
} }

View File

@@ -1,16 +1,39 @@
export default ['templateUrl', export default ['templateUrl', 'ComponentsStrings',
function (templateUrl) { function (templateUrl, strings) {
return { return {
scope: { scope: {
capacity: '=' capacity: '=',
totalCapacity: '='
}, },
templateUrl: templateUrl('instance-groups/capacity-bar/capacity-bar'), templateUrl: templateUrl('instance-groups/capacity-bar/capacity-bar'),
restrict: 'E', restrict: 'E',
link: function(scope) { 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.$watch('capacity', function() {
scope.CapacityStyle = { if (scope.totalCapacity !== 0) {
'flex-grow': scope.capacity * 0.01 scope.CapacityStyle = {
}; 'flex-grow': scope.capacity * 0.01
};
scope.consumedCapacity = `${scope.capacity}%`;
} else {
scope.CapacityStyle = {
'flex-grow': 1
};
scope.consumedCapacity = null;
}
}, true); }, true);
} }
}; };

View File

@@ -1,4 +1,11 @@
<div class="CapacityBar"> <div class="CapacityBar"
<div class="CapacityBar-remaining" ng-style="CapacityStyle"></div> ng-class="{'CapacityBar--offline': isOffline}"
<div class="CapacityBar-consumed"></div> aw-tool-tip="{{ offlineTip }}"
data-tip-watch="offlineTip"
data-placement="top"
data-trigger="hover"
data-container="body">
<div class="CapacityBar-remaining" ng-style="CapacityStyle"></div>
<div class="CapacityBar-consumed"></div>
</div> </div>
<span class="Capacity-details--percentage" ng-show="consumedCapacity">{{ consumedCapacity }}</span>

View File

@@ -24,10 +24,6 @@
margin: 0 10px 0 0; margin: 0 10px 0 0;
width: 100px; width: 100px;
} }
.Capacity-details--percentage {
color: @default-data-txt;
}
} }
.RunningJobs-details { .RunningJobs-details {

View File

@@ -8,8 +8,7 @@
<div class="List-details"> <div class="List-details">
<div class="Capacity-details"> <div class="Capacity-details">
<p class="Capacity-details--label" translate>Used Capacity</p> <p class="Capacity-details--label" translate>Used Capacity</p>
<capacity-bar capacity="instanceGroupCapacity"></capacity-bar> <capacity-bar capacity="instanceGroupCapacity" total-capacity="instanceGroupTotalCapacity"></capacity-bar>
<span class="Capacity-details--percentage">{{ instanceGroupCapacity }}%</span>
</div> </div>
<div class="RunningJobs-details"> <div class="RunningJobs-details">
<p class="RunningJobs-details--label" translate>Running Jobs</p> <p class="RunningJobs-details--label" translate>Running Jobs</p>

View File

@@ -8,8 +8,7 @@
<div class="List-details"> <div class="List-details">
<div class="Capacity-details"> <div class="Capacity-details">
<p class="Capacity-details--label" translate>Used Capacity</p> <p class="Capacity-details--label" translate>Used Capacity</p>
<capacity-bar capacity="instanceCapacity"></capacity-bar> <capacity-bar capacity="instanceCapacity" total-capacity="instanceTotalCapacity"></capacity-bar>
<span class="Capacity-details--percentage">{{ instanceCapacity }}%</span>
</div> </div>
<div class="RunningJobs-details"> <div class="RunningJobs-details">
<p class="RunningJobs-details--label" translate>Running Jobs</p> <p class="RunningJobs-details--label" translate>Running Jobs</p>

View File

@@ -13,6 +13,7 @@ export default {
controller: function($scope, $rootScope, instance) { controller: function($scope, $rootScope, instance) {
$scope.instanceName = instance.hostname; $scope.instanceName = instance.hostname;
$scope.instanceCapacity = instance.consumed_capacity; $scope.instanceCapacity = instance.consumed_capacity;
$scope.instanceTotalCapacity = instance.capacity;
$scope.instanceJobsRunning = instance.jobs_running; $scope.instanceJobsRunning = instance.jobs_running;
$rootScope.breadcrumb.instance_name = instance.hostname; $rootScope.breadcrumb.instance_name = instance.hostname;
} }

View File

@@ -35,7 +35,7 @@
</a> </a>
</td> </td>
<td class="List-tableCell List-tableCell--capacityColumn ng-binding"> <td class="List-tableCell List-tableCell--capacityColumn ng-binding">
<capacity-bar capacity="instance.consumed_capacity"></capacity-bar><span>{{ instance.consumed_capacity }}%</span> <capacity-bar capacity="instance.consumed_capacity" total-capacity="instance.capacity">
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@@ -10,6 +10,7 @@ export default {
controller: function($scope, $rootScope, instanceGroup) { controller: function($scope, $rootScope, instanceGroup) {
$scope.instanceGroupName = instanceGroup.name; $scope.instanceGroupName = instanceGroup.name;
$scope.instanceGroupCapacity = instanceGroup.consumed_capacity; $scope.instanceGroupCapacity = instanceGroup.consumed_capacity;
$scope.instanceGroupTotalCapacity = instanceGroup.capacity;
$scope.instanceGroupJobsRunning = instanceGroup.jobs_running; $scope.instanceGroupJobsRunning = instanceGroup.jobs_running;
$rootScope.breadcrumb.instance_group_name = instanceGroup.name; $rootScope.breadcrumb.instance_group_name = instanceGroup.name;
} }

View File

@@ -47,7 +47,7 @@
</a> </a>
</td> </td>
<td class="List-tableCell List-tableCell--capacityColumn ng-binding"> <td class="List-tableCell List-tableCell--capacityColumn ng-binding">
<capacity-bar capacity="instance_group.consumed_capacity"></capacity-bar><span>{{ instance_group.consumed_capacity }}%</span> <capacity-bar capacity="instance_group.consumed_capacity" total-capacity="instance_group.capacity"></capacity-bar>
</td> </td>
</tr> </tr>
</tbody> </tbody>