mirror of
https://github.com/ansible/awx.git
synced 2026-01-11 10:00:01 -03:30
Instance Groups Instances List styling fixes (#3846)
* Instance Groups Instances slider renders properly, and that list wraps properly. * Instance Groups responds properly * assorted container groups ui fixes updated responsiveness of instance groups and instances list fix layout of container group form update help text for container group form elements update text for tech preview top bar * update container group doclink * list styling updates based on feedback
This commit is contained in:
parent
321aa3b01d
commit
b74bf9f266
@ -208,6 +208,7 @@
|
||||
max-width: none !important;
|
||||
width: 100% !important;
|
||||
padding-right: 0px !important;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
.Form-formGroup--checkbox{
|
||||
|
||||
@ -15,7 +15,9 @@
|
||||
title="{{ label || vm.strings.get('code_mirror.label.VARIABLES') }}"
|
||||
tabindex="-1"
|
||||
ng-if="tooltip">
|
||||
<i class="fa fa-question-circle"></i>
|
||||
<span class="at-Popover-icon" ng-class="{ 'at-Popover-icon--defaultCursor': popover.on === 'mouseenter' && !popover.click }">
|
||||
<i class="fa fa-question-circle"></i>
|
||||
</span>
|
||||
</a>
|
||||
<div class="atCodeMirror-toggleContainer FormToggle-container">
|
||||
<div id="{{ name }}_parse_type" class="btn-group">
|
||||
|
||||
@ -202,6 +202,7 @@
|
||||
.at-Row-toggle {
|
||||
align-self: flex-start;
|
||||
margin-right: @at-space-4x;
|
||||
margin-left: 15px;
|
||||
}
|
||||
|
||||
.at-Row-actions {
|
||||
@ -385,29 +386,3 @@
|
||||
margin-right: @at-margin-right-list-row-item-inline-label;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: @at-breakpoint-instances-wrap) {
|
||||
.at-Row-items--instances {
|
||||
margin-bottom: @at-padding-bottom-instances-wrap;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: @at-breakpoint-compact-list) {
|
||||
.at-Row-actions {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.at-RowAction {
|
||||
margin: @at-margin-list-row-action-mobile;
|
||||
}
|
||||
|
||||
.at-RowItem--inline {
|
||||
display: flex;
|
||||
margin-right: inherit;
|
||||
|
||||
.at-RowItem-label {
|
||||
width: @at-width-list-row-item-label;
|
||||
margin-right: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,11 @@
|
||||
.CapacityAdjuster {
|
||||
margin-right: @at-space-4x;
|
||||
margin-top: 15px;
|
||||
margin-left: -10px;
|
||||
position: relative;
|
||||
|
||||
&-valueLabel {
|
||||
bottom: @at-space-5x;
|
||||
top: -10px;
|
||||
color: @at-color-body-text;
|
||||
font-size: @at-font-size;
|
||||
position: absolute;
|
||||
|
||||
@ -5,6 +5,8 @@ capacity-bar {
|
||||
font-size: @at-font-size;
|
||||
min-width: 100px;
|
||||
white-space: nowrap;
|
||||
margin-top: 5px;
|
||||
margin-bottom: 5px;
|
||||
|
||||
.CapacityBar {
|
||||
background-color: @default-bg;
|
||||
@ -42,12 +44,4 @@ capacity-bar {
|
||||
text-align: right;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.Capacity-details--percentage {
|
||||
width: 40px;
|
||||
}
|
||||
|
||||
&:only-child {
|
||||
margin-right: 50px;
|
||||
}
|
||||
}
|
||||
@ -12,6 +12,7 @@ function AddContainerGroupController(ToJSON, $scope, $state, models, strings, i1
|
||||
|
||||
vm.form = instanceGroup.createFormSchema('post');
|
||||
vm.form.name.required = true;
|
||||
delete vm.form.name.help_text;
|
||||
|
||||
vm.form.credential = {
|
||||
type: 'field',
|
||||
@ -22,6 +23,7 @@ function AddContainerGroupController(ToJSON, $scope, $state, models, strings, i1
|
||||
vm.form.credential._route = "instanceGroups.addContainerGroup.credentials";
|
||||
vm.form.credential._model = credential;
|
||||
vm.form.credential._placeholder = strings.get('container.CREDENTIAL_PLACEHOLDER');
|
||||
vm.form.credential.help_text = strings.get('container.CREDENTIAL_HELP_TEXT');
|
||||
vm.form.credential.required = true;
|
||||
|
||||
vm.form.extraVars = {
|
||||
@ -29,6 +31,7 @@ function AddContainerGroupController(ToJSON, $scope, $state, models, strings, i1
|
||||
value: DataSet.data.actions.POST.pod_spec_override.default,
|
||||
name: 'extraVars',
|
||||
toggleLabel: strings.get('container.POD_SPEC_TOGGLE'),
|
||||
tooltip: strings.get('container.EXTRA_VARS_HELP_TEXT')
|
||||
};
|
||||
|
||||
vm.tab = {
|
||||
|
||||
@ -1,8 +1,8 @@
|
||||
<div ui-view="credentials"></div>
|
||||
<a class="containerGroups-messageBar-link" href="https://docs.ansible.com/ansible-tower/latest/html/administration/external_execution_envs.html#container-group-considerations" target="_blank" style="color: white">
|
||||
<a class="containerGroups-messageBar-link" href="https://docs.ansible.com/ansible-tower/latest/html/administration/external_execution_envs.html#container-groups" target="_blank" style="color: white">
|
||||
<div class="Section-messageBar">
|
||||
<i class="Section-messageBar-warning fa fa-warning"></i>
|
||||
<span class="Section-messageBar-text">This feature is tech preview, and is subject to change in a future release. Click here for documentation.</span>
|
||||
<span class="Section-messageBar-text">This feature is currently in tech preview and is subject to change in a future release. Click here for documentation.</span>
|
||||
</div>
|
||||
</a>
|
||||
<at-panel>
|
||||
@ -34,6 +34,7 @@
|
||||
variables="vm.form.extraVars.value"
|
||||
label="{{ vm.form.extraVars.label }}"
|
||||
name="{{ vm.form.extraVars.name }}"
|
||||
tooltip="{{ vm.form.extraVars.tooltip }}"
|
||||
>
|
||||
</at-code-mirror>
|
||||
</div>
|
||||
|
||||
@ -27,6 +27,7 @@ function EditContainerGroupController($rootScope, $scope, $state, models, string
|
||||
vm.switchDisabled = false;
|
||||
vm.form.disabled = !instanceGroup.has('options', 'actions.PUT');
|
||||
vm.form.name.required = true;
|
||||
delete vm.form.name.help_text;
|
||||
vm.form.credential = {
|
||||
type: 'field',
|
||||
label: i18n._('Credential'),
|
||||
@ -38,6 +39,7 @@ function EditContainerGroupController($rootScope, $scope, $state, models, string
|
||||
vm.form.credential._displayValue = EditContainerGroupDataset.data.summary_fields.credential.name;
|
||||
vm.form.credential.required = true;
|
||||
vm.form.credential._value = EditContainerGroupDataset.data.summary_fields.credential.id;
|
||||
vm.form.credential.help_text = strings.get('container.CREDENTIAL_HELP_TEXT');
|
||||
|
||||
vm.tab = {
|
||||
details: {
|
||||
@ -59,7 +61,8 @@ function EditContainerGroupController($rootScope, $scope, $state, models, string
|
||||
label: strings.get('container.POD_SPEC_LABEL'),
|
||||
value: EditContainerGroupDataset.data.pod_spec_override || "---",
|
||||
name: 'extraVars',
|
||||
disabled: true
|
||||
disabled: true,
|
||||
tooltip: strings.get('container.EXTRA_VARS_HELP_TEXT')
|
||||
};
|
||||
vm.switchDisabled = true;
|
||||
} else {
|
||||
@ -67,7 +70,8 @@ function EditContainerGroupController($rootScope, $scope, $state, models, string
|
||||
label: strings.get('container.POD_SPEC_LABEL'),
|
||||
value: EditContainerGroupDataset.data.pod_spec_override || instanceGroup.model.OPTIONS.actions.PUT.pod_spec_override.default,
|
||||
name: 'extraVars',
|
||||
toggleLabel: strings.get('container.POD_SPEC_TOGGLE')
|
||||
toggleLabel: strings.get('container.POD_SPEC_TOGGLE'),
|
||||
tooltip: strings.get('container.EXTRA_VARS_HELP_TEXT')
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -1,135 +1,100 @@
|
||||
.InstanceGroups {
|
||||
.at-Row-actions{
|
||||
justify-content: flex-start;
|
||||
width: 300px;
|
||||
& > capacity-bar:only-child{
|
||||
margin-left: 0px;
|
||||
margin-top: 5px
|
||||
}
|
||||
}
|
||||
.at-RowAction{
|
||||
margin: 0;
|
||||
}
|
||||
.at-Row-links{
|
||||
justify-content: flex-start;
|
||||
.at-Row--instances {
|
||||
.at-Row-content {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.BreadCrumb-menuLinkImage:hover {
|
||||
color: @default-link;
|
||||
.at-Row-toggle {
|
||||
align-self: auto;
|
||||
flex: initial;
|
||||
}
|
||||
|
||||
.List-details {
|
||||
align-self: flex-end;
|
||||
color: @default-interface-txt;
|
||||
.at-Row-itemGroup {
|
||||
display: flex;
|
||||
flex: 0 0 auto;
|
||||
font-size: 12px;
|
||||
margin-right:20px;
|
||||
text-transform: uppercase;
|
||||
flex: 1;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.Capacity-details {
|
||||
.at-Row-items--instances {
|
||||
display: flex;
|
||||
margin-right: 20px;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
|
||||
.Capacity-details--label {
|
||||
color: @default-interface-txt;
|
||||
margin: 0 10px 0 0;
|
||||
width: 100px;
|
||||
}
|
||||
align-content: center;
|
||||
flex: 1;
|
||||
}
|
||||
|
||||
.RunningJobs-details {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
|
||||
.RunningJobs-details--label {
|
||||
margin: 0 10px 0 0;
|
||||
}
|
||||
.at-RowItem--isHeader {
|
||||
min-width: 250px;
|
||||
}
|
||||
|
||||
.List-tableCell--capacityColumn {
|
||||
.at-Row-items--capacity {
|
||||
display: flex;
|
||||
height: 40px;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.List-noItems {
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.List-tableRow .List-titleBadge {
|
||||
margin: 0 0 0 5px;
|
||||
}
|
||||
|
||||
.Panel-docsLink {
|
||||
cursor: pointer;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
padding: 7px;
|
||||
background: @at-white;
|
||||
border-radius: @at-border-radius;
|
||||
height: 30px;
|
||||
width: 30px;
|
||||
margin: 0 20px 0 auto;
|
||||
|
||||
i {
|
||||
font-size: @at-font-size-icon;
|
||||
color: @at-gray-646972;
|
||||
}
|
||||
}
|
||||
|
||||
.Panel-docsLink:hover {
|
||||
background-color: @at-blue;
|
||||
|
||||
i {
|
||||
color: @at-white;
|
||||
}
|
||||
}
|
||||
.at-Row-toggle{
|
||||
margin-top: 20px;
|
||||
padding-left: 15px;
|
||||
}
|
||||
|
||||
.ContainerGroups-codeMirror{
|
||||
margin-bottom: 10px;
|
||||
}
|
||||
|
||||
.at-Row-container{
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.containerGroups-messageBar-link:hover{
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1060px) and (min-width: 769px){
|
||||
.at-Row-links {
|
||||
justify-content: flex-start;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (min-width: 1061px){
|
||||
.at-Row-actions{
|
||||
justify-content: flex-end;
|
||||
& > capacity-bar:only-child {
|
||||
margin-right: 30px;
|
||||
}
|
||||
}
|
||||
.instanceGroupsList-details{
|
||||
display: flex;
|
||||
}
|
||||
.at-Row-links {
|
||||
justify-content: flex-end;
|
||||
display: flex;
|
||||
width: 445px;
|
||||
}
|
||||
.CapacityAdjuster {
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
}
|
||||
|
||||
.at-Row--instanceGroups {
|
||||
.at-Row-content {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
|
||||
.at-Row-itemGroup {
|
||||
display: flex;
|
||||
flex: 1;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
|
||||
.at-Row-items--instanceGroups {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
flex: 1;
|
||||
max-width: 100%;
|
||||
}
|
||||
|
||||
.at-Row-itemHeaderGroup {
|
||||
min-width: 320px;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.at-Row-items--capacity {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
align-items: center;
|
||||
margin-right: 5px;
|
||||
min-width: 215px;
|
||||
}
|
||||
|
||||
.at-Row--instanceSpacer {
|
||||
width: 140px;
|
||||
}
|
||||
|
||||
.at-Row--capacitySpacer {
|
||||
flex: .6;
|
||||
}
|
||||
|
||||
.at-Row-actions {
|
||||
min-width: 50px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 1260px) {
|
||||
.at-Row--instances .at-Row-items--capacity {
|
||||
flex: 1
|
||||
}
|
||||
|
||||
.at-Row--instances .CapacityAdjuster {
|
||||
padding-bottom: 5px;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 600px) {
|
||||
.at-Row--instanceGroups .at-Row-itemHeaderGroup,
|
||||
.at-Row--instanceGroups .at-Row-itemGroup {
|
||||
max-width: 270px;
|
||||
}
|
||||
}
|
||||
|
||||
@ -72,8 +72,9 @@ function InstanceGroupsStrings(BaseString) {
|
||||
CREDENTIAL_PLACEHOLDER: t.s('SELECT A CREDENTIAL'),
|
||||
POD_SPEC_LABEL: t.s('Pod Spec Override'),
|
||||
BADGE_TEXT: t.s('Container Group'),
|
||||
POD_SPEC_TOGGLE: t.s('Customize Pod Spec')
|
||||
|
||||
POD_SPEC_TOGGLE: t.s('Customize Pod Spec'),
|
||||
CREDENTIAL_HELP_TEXT: t.s('Credential to authenticate with Kubernetes or OpenShift. Must be of type \"Kubernetes/OpenShift API Bearer Token\”.'),
|
||||
EXTRA_VARS_HELP_TEXT: t.s('Field for passing a custom Kubernetes or OpenShift Pod specification.')
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -43,35 +43,45 @@
|
||||
</at-list-toolbar>
|
||||
<at-list results='vm.instances'>
|
||||
<at-row ng-repeat="instance in vm.instances"
|
||||
ng-class="{'at-Row--active': (instance.id === vm.activeId)}">
|
||||
ng-class="{'at-Row--active': (instance.id === vm.activeId)}"
|
||||
class="at-Row--instances">
|
||||
<div class="at-Row-toggle">
|
||||
<at-switch on-toggle="vm.toggle(instance)" switch-on="instance.enabled" switch-disabled="vm.rowAction.toggle._disabled"></at-switch>
|
||||
</div>
|
||||
|
||||
<div class="at-Row-items at-Row-items--instances">
|
||||
<at-row-item
|
||||
header-value="{{ instance.hostname }}"
|
||||
header-tag="{{ instance.managed_by_policy ? '' : vm.strings.get('list.MANUAL') }}">
|
||||
</at-row-item>
|
||||
<at-row-item
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_RUNNING_JOBS') }}"
|
||||
label-state="instanceGroups.instanceJobs({instance_group_id: {{vm.instance_group_id}}, instance_id: {{instance.id}}, job_search: {status__in: ['running,waiting']}})"
|
||||
value="{{ instance.jobs_running }}"
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
<at-row-item
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_TOTAL_JOBS') }}"
|
||||
label-state="instanceGroups.instanceJobs({instance_group_id: {{vm.instance_group_id}}, instance_id: {{instance.id}}})"
|
||||
value="{{ instance.jobs_total }}"
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
</div>
|
||||
|
||||
<div class="at-Row-actions">
|
||||
<capacity-adjuster state="instance" disabled="{{vm.rowAction.capacity_adjustment._disabled}}"></capacity-adjuster>
|
||||
<capacity-bar label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_USED_CAPACITY') }}" capacity="instance.consumed_capacity" total-capacity="instance.capacity"></capacity-bar>
|
||||
<div class="at-Row-itemGroup">
|
||||
<div class="at-Row-items at-Row-items--instances">
|
||||
<at-row-item
|
||||
header-value="{{ instance.hostname }}"
|
||||
header-tag="{{ instance.managed_by_policy ? '' : vm.strings.get('list.MANUAL') }}">
|
||||
</at-row-item>
|
||||
<div class="at-Row-nonHeaderItems">
|
||||
<at-row-item
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_RUNNING_JOBS') }}"
|
||||
label-state="instanceGroups.instanceJobs({instance_group_id: {{vm.instance_group_id}}, instance_id: {{instance.id}}, job_search: {status__in: ['running,waiting']}})"
|
||||
value="{{ instance.jobs_running }}"
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
<at-row-item
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_TOTAL_JOBS') }}"
|
||||
label-state="instanceGroups.instanceJobs({instance_group_id: {{vm.instance_group_id}}, instance_id: {{instance.id}}})"
|
||||
value="{{ instance.jobs_total }}"
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
</div>
|
||||
</div>
|
||||
<div class="at-Row-items--capacity">
|
||||
<capacity-adjuster
|
||||
state="instance"
|
||||
disabled="{{vm.rowAction.capacity_adjustment._disabled}}">
|
||||
</capacity-adjuster>
|
||||
<capacity-bar
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_USED_CAPACITY') }}"
|
||||
capacity="instance.consumed_capacity"
|
||||
total-capacity="instance.capacity">
|
||||
</capacity-bar>
|
||||
</div>
|
||||
</div>
|
||||
</at-row>
|
||||
</at-list>
|
||||
|
||||
@ -41,10 +41,11 @@
|
||||
</at-list-toolbar>
|
||||
<at-list results="instance_groups">
|
||||
<at-row ng-repeat="instance_group in instance_groups"
|
||||
ng-class="{'at-Row--active': (instance_group.id === vm.activeId)}" >
|
||||
<div class="at-Row-items">
|
||||
<div class="at-Row-container">
|
||||
<div class="at-Row-content">
|
||||
ng-class="{'at-Row--active': (instance_group.id === vm.activeId)}"
|
||||
class="at-Row--instanceGroups">
|
||||
<div class="at-Row-itemGroup">
|
||||
<div class="at-Row-items at-Row-items--instanceGroups">
|
||||
<div class="at-Row-itemHeaderGroup">
|
||||
<at-row-item
|
||||
ng-if="!instance_group.credential"
|
||||
header-value="{{ instance_group.name }}"
|
||||
@ -67,23 +68,14 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="at-RowItem--labels" ng-if="!instance_group.credential">
|
||||
<div class="LabelList-tagContainer">
|
||||
<div class="LabelList-tag" ng-class="{'LabelList-tag--deletable' : (showDelete && template.summary_fields.user_capabilities.edit)}">
|
||||
<span class="LabelList-name">{{vm.strings.get('instance.BADGE_TEXT') }}</span>
|
||||
</div>
|
||||
<div class="LabelList-tagContainer">
|
||||
<div class="LabelList-tag" ng-class="{'LabelList-tag--deletable' : (showDelete && template.summary_fields.user_capabilities.edit)}">
|
||||
<span class="LabelList-name">{{vm.strings.get('instance.BADGE_TEXT') }}</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="instanceGroupsList-details">
|
||||
<div class="at-Row-links">
|
||||
<at-row-item
|
||||
ng-if="!instance_group.credential"
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_INSTANCES') }}"
|
||||
label-state="instanceGroups.instances({instance_group_id: {{ instance_group.id }}})"
|
||||
value="{{ instance_group.instances }}"
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
<div class="at-Row-nonHeaderItems">
|
||||
<at-row-item
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_RUNNING_JOBS') }}"
|
||||
label-state="instanceGroups.jobs({instance_group_id: {{ instance_group.id }}, job_search: {status__in: ['running,waiting']}})"
|
||||
@ -98,14 +90,38 @@
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
</div>
|
||||
<div class="at-Row-actions" >
|
||||
<capacity-bar ng-show="!instance_group.credential" label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_USED_CAPACITY') }}" capacity="instance_group.consumed_capacity" total-capacity="instance_group.capacity"></capacity-bar>
|
||||
<at-row-action icon="fa-trash" ng-click="vm.deleteInstanceGroup(instance_group)" ng-if="vm.rowAction.trash(instance_group)">
|
||||
</at-row-action>
|
||||
</div>
|
||||
<at-row-item
|
||||
ng-if="!instance_group.credential"
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_INSTANCES') }}"
|
||||
label-state="instanceGroups.instances({instance_group_id: {{ instance_group.id }}})"
|
||||
value="{{ instance_group.instances }}"
|
||||
inline="true"
|
||||
badge="true">
|
||||
</at-row-item>
|
||||
<div
|
||||
ng-if="instance_group.credential"
|
||||
class="at-Row--instanceSpacer">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="at-Row-items--capacity" ng-if="!instance_group.credential">
|
||||
<capacity-bar
|
||||
label-value="{{:: vm.strings.get('list.ROW_ITEM_LABEL_USED_CAPACITY') }}"
|
||||
capacity="instance_group.consumed_capacity"
|
||||
total-capacity="instance_group.capacity">
|
||||
</capacity-bar>
|
||||
</div>
|
||||
<div
|
||||
ng-if="instance_group.credential"
|
||||
class="at-Row--capacitySpacer">
|
||||
</div>
|
||||
</div>
|
||||
<div class="at-Row-actions" >
|
||||
<at-row-action
|
||||
icon="fa-trash"
|
||||
ng-click="vm.deleteInstanceGroup(instance_group)"
|
||||
ng-if="vm.rowAction.trash(instance_group)">
|
||||
</at-row-action>
|
||||
</div>
|
||||
</at-row>
|
||||
</at-list>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user