
Automatically set focus to the reason field in the maintenance popup Use filters like noValue and date: 'medium' to improve display of node data Ensure event handlers are cleaned up when the node-list is destroyed Change-Id: I15eee5beb933ff5623d21d418dbd771ab3cfc043
201 lines
6.6 KiB
HTML
201 lines
6.6 KiB
HTML
<div class="row">
|
|
|
|
<!-- General -->
|
|
<div class="col-md-6 status detail">
|
|
<h4 translate>General</h4>
|
|
<hr class="header_rule">
|
|
<dl class="dl-horizontal">
|
|
<dt translate>Node ID</dt>
|
|
<dd>{$ ctrl.node.uuid | noValue $}</dd>
|
|
<dt translate>Chassis ID</dt>
|
|
<dd>{$ ctrl.node.chassis_uuid | noValue $}</dd>
|
|
<dt translate>Created At</dt>
|
|
<dd>{$ ctrl.node.created_at | date:'medium' | noValue $}</dd>
|
|
<dt translate>Extra</dt>
|
|
<dd>{$ ctrl.node.extra | noValue $}</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<!-- Ports -->
|
|
<div class="col-md-6 status detail">
|
|
<h4 translate>Ports</h4>
|
|
<hr class="header_rule">
|
|
<table hz-table ng-cloak
|
|
st-table="ctrl.ports"
|
|
st-safe-src="ctrl.portsSrc"
|
|
class="table table-striped table-rsp table-detail">
|
|
<thead>
|
|
<tr>
|
|
<th colspan="4" class="action-col">
|
|
<action-list dropdown class="pull-right">
|
|
<action button-type="split-button"
|
|
action-classes="'btn btn-default btn-sm'"
|
|
callback="ctrl.createPort">
|
|
{$ 'Create port' | translate $}
|
|
</action>
|
|
<menu>
|
|
<action button-type="menu-item"
|
|
callback="ctrl.deletePorts"
|
|
item="tCtrl.selected"
|
|
disabled="tCtrl.selected.length === 0">
|
|
<span class="fa fa-trash"></span>
|
|
{$ 'Delete ports' | translate $}
|
|
</action>
|
|
</menu>
|
|
</action-list>
|
|
</th>
|
|
</tr>
|
|
<tr>
|
|
<th class="multi_select_column">
|
|
<input type="checkbox"
|
|
hz-select-all="ctrl.ports"/>
|
|
</th>
|
|
<th translate class="rsp-p1" style="white-space:nowrap">
|
|
MAC Address
|
|
</th>
|
|
<th translate class="rsp-p2" style="width:100%;">
|
|
Extra
|
|
</th>
|
|
<th translate class="actions_column">
|
|
Actions
|
|
</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr ng-repeat="port in ctrl.ports">
|
|
<td class="multi_select_column">
|
|
<input type="checkbox"
|
|
hz-select="port"
|
|
ng-model="tCtrl.selections[port.id].checked"/>
|
|
<td ng-if="vif_port_id = ctrl.getVifPortId(port)"
|
|
class="rsp-p1">
|
|
<a href="/dashboard/admin/networks/ports/{$ vif_port_id $}/detail">
|
|
{$ port.address $}
|
|
</a>
|
|
</td>
|
|
<td ng-if="!vif_port_id" class="rsp-p1">
|
|
{$ port.address $}
|
|
</td>
|
|
<td>
|
|
<dl class="dl-horizontal">
|
|
<dt style="width:auto;" ng-repeat-start="(id, value) in port.extra">
|
|
{$ id $}
|
|
</dt>
|
|
<dd>
|
|
{$ value $}
|
|
</dd>
|
|
<p ng-repeat-end></p>
|
|
</dl>
|
|
</td>
|
|
<td class="actions_column">
|
|
<action-list>
|
|
<action action-classes="'btn btn-default btn-sm'"
|
|
callback="ctrl.deletePort"
|
|
item="port">
|
|
<span class="fa fa-trash"></span>
|
|
</action>
|
|
</action-list>
|
|
</td>
|
|
</tr>
|
|
<tr hz-no-items
|
|
items="ctrl.ports"
|
|
message="ctrl.noPortsText">
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<!-- Properties -->
|
|
<div class="col-md-6 status detail">
|
|
<h4 translate>Properties</h4>
|
|
<hr class="header_rule">
|
|
<dl class="dl-horizontal">
|
|
<dt ng-repeat-start="(propertyName, propertyValue) in ctrl.node.properties">
|
|
{$ propertyName $}</dt>
|
|
<dd ng-repeat-end>{$ propertyValue | noValue $}</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<!-- Driver Info -->
|
|
<div class="col-md-6 status detail">
|
|
<h4 translate>Driver Info</h4>
|
|
<hr class="header_rule">
|
|
<div ng-switch="ctrl.node.driver">
|
|
<dl ng-switch-when="pxe_ssh" class="dl-horizontal">
|
|
<dt translate>Driver</dt>
|
|
<dd>{$ ctrl.node.driver | noValue $}</dd>
|
|
<dt translate>SSH Port</dt>
|
|
<dd>{$ ctrl.node.driver_info.ssh_port | noValue $}</dd>
|
|
<dt translate>SSH Username</dt>
|
|
<dd>{$ ctrl.node.driver_info.ssh_username | noValue $}</dd>
|
|
<dt translate>Deploy Kernel</dt>
|
|
<dd>
|
|
<a ng-if="deploy_kernel_is_uuid = ctrl.isUuid(ctrl.node.driver_info.deploy_kernel)"
|
|
href="/dashboard/admin/images/{$ ctrl.node.driver_info.deploy_kernel $}/detail">
|
|
{$ ctrl.node.driver_info.deploy_kernel | noValue $}
|
|
</a>
|
|
<span ng-if="!deploy_kernel_is_uuid">
|
|
{$ ctrl.node.driver_info.deploy_kernel | noValue $}
|
|
</span>
|
|
</dd>
|
|
<dt translate>Deploy Ramdisk</dt>
|
|
<dd>
|
|
<a ng-if="deploy_ramdisk_is_uuid = ctrl.isUuid(ctrl.node.driver_info.deploy_ramdisk)"
|
|
href="/dashboard/admin/images/{$ ctrl.node.driver_info.deploy_ramdisk $}/detail">
|
|
{$ ctrl.node.driver_info.deploy_ramdisk | noValue $}
|
|
</a>
|
|
<span ng-if="!deploy_ramdisk_is_uuid">
|
|
{$ ctrl.node.driver_info.deploy_ramdisk | noValue $}
|
|
</span>
|
|
</dd>
|
|
</dl>
|
|
<dl ng-switch-default class="dl-horizontal">
|
|
<dt ng-repeat-start="(id, value) in ctrl.node.driver_info">{$ id $}</dt>
|
|
<dd ng-repeat-end>{$ value $}</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row">
|
|
<!-- Capabilities -->
|
|
<div class="col-md-6 status detail">
|
|
<h4 translate>Capabilities</h4>
|
|
<hr class="header_rule">
|
|
<dl class="dl-horizontal">
|
|
<dd>{$ ctrl.node.capabilities $}</dd>
|
|
</dl>
|
|
</div>
|
|
|
|
<!-- Instance Info -->
|
|
<div class="col-md-6 status detail">
|
|
<h4 translate>Instance Info</h4>
|
|
<hr class="header_rule"/>
|
|
<div ng-switch="ctrl.node.driver">
|
|
<dl ng-switch-when="pxe_ssh" class="dl-horizontal">
|
|
<dt translate>Instance Name</dt>
|
|
<dd>{$ ctrl.node.instance_info.display_name | noValue $}</dd>
|
|
<dt translate>Ramdisk</dt>
|
|
<dd>
|
|
<a href="/dashboard/admin/images/{$ ctrl.node.instance_info.ramdisk $}/detail">
|
|
{$ ctrl.node.instance_info.ramdisk | noValue $}
|
|
</a>
|
|
</dd>
|
|
<dt translate>Kernel</dt>
|
|
<dd>
|
|
<a href="/dashboard/admin/images/{$ ctrl.node.instance_info.kernel $}/detail">
|
|
{$ ctrl.node.instance_info.kernel | noValue $}
|
|
</a>
|
|
</dd>
|
|
</dl>
|
|
<dl ng-switch-default class="dl-horizontal">
|
|
<dt ng-repeat-start="(id, value) in ctrl.node.instance_info">{$ id $}</dt>
|
|
<dd ng-repeat-end>{$ value | noValue $}</dd>
|
|
</dl>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|