Merge "Further Theming fixes for Launch Instances"

This commit is contained in:
Jenkins 2016-05-06 09:41:12 +00:00 committed by Gerrit Code Review
commit b2d641e81f
12 changed files with 103 additions and 172 deletions

View File

@ -115,14 +115,6 @@ $em-per-priority: floor($table-col-avg-width / $font-size-base) * 3;
border-bottom: $table-border; border-bottom: $table-border;
} }
tr.expanded td {
border-bottom: $table-border;
&[rowspan='2'].action-col {
border-bottom: none;
}
}
tr.expanded:nth-last-child(-n+3) [rowspan='2'].action-col { tr.expanded:nth-last-child(-n+3) [rowspan='2'].action-col {
border-bottom: $table-border; border-bottom: $table-border;
} }
@ -140,21 +132,6 @@ $em-per-priority: floor($table-col-avg-width / $font-size-base) * 3;
} }
} }
.detail-row td {
padding: 0;
&.detail .detail-expanded {
border-top: none;
padding: $detail-row-padding $table-padding;
white-space: normal;
word-wrap: break-word;
}
}
.expanded + tr td {
border-top: none;
}
.expander { .expander {
cursor: pointer; cursor: pointer;
max-width: $expander-width; max-width: $expander-width;

View File

@ -23,13 +23,15 @@
</div> </div>
<div hz-if-nova-extensions='["ConfigDrive"]'> <div hz-if-nova-extensions='["ConfigDrive"]'>
<div class="checkbox"> <div class="form-group">
<label for="config-drive" translate> <div class="themable-checkbox">
<input type="checkbox" <input type="checkbox"
id="config-drive" id="config-drive"
ng-model="model.newInstanceSpec.config_drive"> ng-model="model.newInstanceSpec.config_drive">
Configuration Drive <label for="config-drive">
</label> <span translate>Configuration Drive</span>
</label>
</div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -99,8 +99,7 @@ limitations under the License.
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row"> <tr ng-repeat-end class="detail-row">
<td></td> <td colspan="9" class="detail">
<td colspan="7" class="detail">
<span class="h5" translate>Impact on your quota</span> <span class="h5" translate>Impact on your quota</span>
<div class="row"> <div class="row">
<div class="col-xs-4"> <div class="col-xs-4">
@ -127,7 +126,6 @@ limitations under the License.
</div> </div>
</div> </div>
</td> </td>
<td></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -214,8 +212,7 @@ limitations under the License.
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row"> <tr ng-repeat-end class="detail-row">
<td></td> <td colspan="9" class="detail">
<td colspan="7" class="detail">
<span class="h5" translate>Impact on your quota</span> <span class="h5" translate>Impact on your quota</span>
<div class="row"> <div class="row">
<div class="col-xs-4"> <div class="col-xs-4">
@ -242,7 +239,6 @@ limitations under the License.
</div> </div>
</div> </div>
</td> </td>
<td></td>
</tr> </tr>
</tbody> </tbody>
</table> </table>

View File

@ -1,4 +1,4 @@
<dl class="dl-horizontal key-pair-details"> <dl class="key-pair-details">
<dt translate>Public Key</dt> <dt translate>Public Key</dt>
<dd> <dd>
<pre><code>{$ row.public_key $}</code></pre> <pre><code>{$ row.public_key $}</code></pre>

View File

@ -58,9 +58,9 @@
</td> </td>
<td class="rsp-p1">{$ row.name $}</td> <td class="rsp-p1">{$ row.name $}</td>
<td class="rsp-p2">{$ row.fingerprint $}</td> <td class="rsp-p2">{$ row.fingerprint $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.deallocate" item="row"> callback="trCtrl.deallocate" item="row">
<span class="fa fa-minus"></span> <span class="fa fa-minus"></span>
</action> </action>
@ -68,11 +68,7 @@
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row"> <tr ng-repeat-end class="detail-row">
<td></td> <td class="detail" colspan="4" ng-include="ctrl.tableDetails"></td>
<td class="detail" colspan="3">
<dl class="dl-horizontal" ng-include="ctrl.tableDetails">
</dl>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
@ -112,9 +108,9 @@
</td> </td>
<td class="rsp-p1">{$ row.name$}</td> <td class="rsp-p1">{$ row.name$}</td>
<td class="rsp-p1">{$ row.fingerprint $}</td> <td class="rsp-p1">{$ row.fingerprint $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.allocate" item="row"> callback="trCtrl.allocate" item="row">
<span class="fa fa-plus"></span> <span class="fa fa-plus"></span>
</action> </action>
@ -122,8 +118,7 @@
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row" ng-if="!trCtrl.allocatedIds[row.id]"> <tr ng-repeat-end class="detail-row" ng-if="!trCtrl.allocatedIds[row.id]">
<td></td> <td class="detail" colspan="4" ng-include="ctrl.tableDetails">
<td class="detail" colspan="3" ng-include="ctrl.tableDetails">
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -52,9 +52,9 @@
<td class="rsp-p1">{$ row.shared | yesno $}</td> <td class="rsp-p1">{$ row.shared | yesno $}</td>
<td class="rsp-p1">{$ row.admin_state | decode:ctrl.networkAdminStates $}</td> <td class="rsp-p1">{$ row.admin_state | decode:ctrl.networkAdminStates $}</td>
<td class="rsp-p1">{$ row.status | decode:ctrl.networkStatuses $}</td> <td class="rsp-p1">{$ row.status | decode:ctrl.networkStatuses $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.deallocate" item="row"> callback="trCtrl.deallocate" item="row">
<span class="fa fa-minus"></span> <span class="fa fa-minus"></span>
</action> </action>
@ -62,8 +62,7 @@
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row"> <tr ng-repeat-end class="detail-row">
<td colspan="2"></td> <td colspan="9" class="detail">
<td colspan="7" class="detail">
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt translate>ID</dt> <dt translate>ID</dt>
<dd>{$ row.id $}</dd> <dd>{$ row.id $}</dd>
@ -72,17 +71,17 @@
<dt translate>External Network</dt> <dt translate>External Network</dt>
<dd>{$ row['router:external'] | yesno $}</dd> <dd>{$ row['router:external'] | yesno $}</dd>
</dl> </dl>
<div><b translate>Provider Network</b></div> <span class="h5" translate>Provider Network</span>
<div class="row" class="detail"> <div class="row" class="detail">
<dl class="col-sm-3"> <dl class="col-sm-4">
<dt translate>Type</dt> <dt translate>Type</dt>
<dd translate>{$ row['provider:network_type'] $}</dd> <dd translate>{$ row['provider:network_type'] $}</dd>
</dl> </dl>
<dl class="col-sm-3"> <dl class="col-sm-4">
<dt translate>Segmentation ID</dt> <dt translate>Segmentation ID</dt>
<dd>{$ row['provider:segmentation_id'] $}</dd> <dd>{$ row['provider:segmentation_id'] $}</dd>
</dl> </dl>
<dl class="col-sm-3"> <dl class="col-sm-4">
<dt translate>Physical Network</dt> <dt translate>Physical Network</dt>
<dd>{$ row['provider:physical_network'] $}</dd> <dd>{$ row['provider:physical_network'] $}</dd>
</dl> </dl>
@ -94,10 +93,9 @@
</allocated> </allocated>
<available> <available>
<hz-magic-search-context filter-facets="ctrl.networkFacets"> <hz-magic-search-context filter-facets="ctrl.networkFacets">
<hz-magic-search-bar> <hz-magic-search-bar></hz-magic-search-bar>
</hz-magic-search-bar> <table st-magic-search st-table="ctrl.tableDataMulti.displayedAvailable" st-safe-src="ctrl.tableDataMulti.available"
<table st-magic-search st-table="ctrl.tableDataMulti.displayedAvailable" st-safe-src="ctrl.tableDataMulti.available" hz-table class="table table-striped table-rsp table-detail">
hz-table class="table table-striped table-rsp table-detail">
<thead> <thead>
<tr> <tr>
<th class="expander"></th> <th class="expander"></th>
@ -129,14 +127,14 @@
<td class="rsp-p1">{$ row.shared | yesno $}</td> <td class="rsp-p1">{$ row.shared | yesno $}</td>
<td class="rsp-p1">{$ row.admin_state | decode:ctrl.networkAdminStates $}</td> <td class="rsp-p1">{$ row.admin_state | decode:ctrl.networkAdminStates $}</td>
<td class="rsp-p1">{$ row.status | decode:ctrl.networkStatuses $}</td> <td class="rsp-p1">{$ row.status | decode:ctrl.networkStatuses $}</td>
<td class="action-col"> <td class="actions_column">
<action-list button-tooltip="row.warningMessage" <action-list button-tooltip="row.warningMessage"
bt-model="ctrl.tooltipModel" bt-disabled="!row.disabled" bt-model="ctrl.tooltipModel" bt-disabled="!row.disabled"
warning-classes="'invalid'"> warning-classes="'invalid'">
<notifications> <notifications>
<span class="fa fa-exclamation-circle invalid" ng-show="row.disabled"></span> <span class="fa fa-exclamation-circle invalid" ng-show="row.disabled"></span>
</notifications> </notifications>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.allocate" item="row" disabled="row.disabled"> callback="trCtrl.allocate" item="row" disabled="row.disabled">
<span class="fa fa-plus"></span> <span class="fa fa-plus"></span>
</action> </action>
@ -144,8 +142,7 @@
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row" ng-if="!trCtrl.allocatedIds[row.id]"> <tr ng-repeat-end class="detail-row" ng-if="!trCtrl.allocatedIds[row.id]">
<td></td> <td colspan="9" class="detail">
<td colspan="7" class="detail">
<dl class="dl-horizontal"> <dl class="dl-horizontal">
<dt translate>ID</dt> <dt translate>ID</dt>
<dd>{$ row.id $}</dd> <dd>{$ row.id $}</dd>
@ -154,17 +151,17 @@
<dt translate>External Network</dt> <dt translate>External Network</dt>
<dd>{$ row['router:external'] | yesno $}</dd> <dd>{$ row['router:external'] | yesno $}</dd>
</dl> </dl>
<div><b translate>Provider Network</b></div> <span class="h5" translate>Provider Network</span>
<div class="row"> <div class="row">
<dl class="col-sm-3"> <dl class="col-sm-4">
<dt translate>Type</dt> <dt translate>Type</dt>
<dd>{$ row['provider:network_type'] $}</dd> <dd translate>{$ row['provider:network_type'] $}</dd>
</dl> </dl>
<dl class="col-sm-3"> <dl class="col-sm-4">
<dt translate>Segmentation ID</dt> <dt translate>Segmentation ID</dt>
<dd>{$ row['provider:segmentation_id'] $}</dd> <dd>{$ row['provider:segmentation_id'] $}</dd>
</dl> </dl>
<dl class="col-sm-3"> <dl class="col-sm-4">
<dt translate>Physical Network</dt> <dt translate>Physical Network</dt>
<dd>{$ row['provider:physical_network'] $}</dd> <dd>{$ row['provider:physical_network'] $}</dd>
</dl> </dl>

View File

@ -15,7 +15,7 @@
<th class="rsp-p2" translate>IP</th> <th class="rsp-p2" translate>IP</th>
<th st-sort="admin_state" class="rsp-p1" translate>Admin State</th> <th st-sort="admin_state" class="rsp-p1" translate>Admin State</th>
<th st-sort="status" class="rsp-p1" translate>Status</th> <th st-sort="status" class="rsp-p1" translate>Status</th>
<th class="action-col"></th> <th class="actions_column"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -45,9 +45,9 @@
</td> </td>
<td class="rsp-p1">{$ item.admin_state | decode:ctrl.portAdminStates $}</td> <td class="rsp-p1">{$ item.admin_state | decode:ctrl.portAdminStates $}</td>
<td class="rsp-p1">{$ item.status | decode:ctrl.portStatuses $}</td> <td class="rsp-p1">{$ item.status | decode:ctrl.portStatuses $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.deallocate" item="item"> callback="trCtrl.deallocate" item="item">
<span class="fa fa-minus"></span> <span class="fa fa-minus"></span>
</action> </action>
@ -93,7 +93,7 @@
<th class="rsp-p2" translate>IP</th> <th class="rsp-p2" translate>IP</th>
<th st-sort="admin_state" class="rsp-p1" translate>Admin State</th> <th st-sort="admin_state" class="rsp-p1" translate>Admin State</th>
<th st-sort="status" class="rsp-p1" translate>Status</th> <th st-sort="status" class="rsp-p1" translate>Status</th>
<th class="action-col"></th> <th class="actions_column"></th>
</tr> </tr>
</thead> </thead>
<tbody> <tbody>
@ -118,9 +118,9 @@
</td> </td>
<td class="rsp-p1">{$ item.admin_state | decode:ctrl.portAdminStates $}</td> <td class="rsp-p1">{$ item.admin_state | decode:ctrl.portAdminStates $}</td>
<td class="rsp-p1">{$ item.status | decode:ctrl.portStatuses $}</td> <td class="rsp-p1">{$ item.status | decode:ctrl.portStatuses $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.allocate" item="item"> callback="trCtrl.allocate" item="item">
<span class="fa fa-plus"></span> <span class="fa fa-plus"></span>
</action> </action>

View File

@ -1,4 +1,4 @@
<table st-table="row.security_group_rules" class="table table-rsp security-group-details"> <table st-table="row.security_group_rules" class="table table-condensed table-rsp security-group-details">
<thead> <thead>
<tr> <tr>
<th st-sort="direction" st-sort-default translate>Direction</th> <th st-sort="direction" st-sort-default translate>Direction</th>

View File

@ -33,9 +33,9 @@
</td> </td>
<td class="rsp-p1">{$ row.name $}</td> <td class="rsp-p1">{$ row.name $}</td>
<td class="rsp-p2">{$ row.description $}</td> <td class="rsp-p2">{$ row.description $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.deallocate" item="row"> callback="trCtrl.deallocate" item="row">
<span class="fa fa-minus"></span> <span class="fa fa-minus"></span>
</action> </action>
@ -85,9 +85,9 @@
</td> </td>
<td class="rsp-p1">{$ row.name$}</td> <td class="rsp-p1">{$ row.name$}</td>
<td class="rsp-p1">{$ row.description $}</td> <td class="rsp-p1">{$ row.description $}</td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.allocate" item="row"> callback="trCtrl.allocate" item="row">
<span class="fa fa-plus"></span> <span class="fa fa-plus"></span>
</action> </action>
@ -95,8 +95,7 @@
</td> </td>
</tr> </tr>
<tr ng-repeat-end class="detail-row" ng-if="!trCtrl.allocatedIds[row.id]"> <tr ng-repeat-end class="detail-row" ng-if="!trCtrl.allocatedIds[row.id]">
<td></td> <td class="detail" colspan="4" ng-include="ctrl.tableDetails">
<td class="detail" colspan="3" ng-include="ctrl.tableDetails">
</td> </td>
</tr> </tr>
</tbody> </tbody>

View File

@ -1,43 +1,34 @@
<td></td> <td colspan="{$ ::ctrl.tableHeadCells.length +2 $}" class="detail">
<td colspan="{$ ::ctrl.tableHeadCells.length $}" class="detail">
<div class="row"> <div class="row">
<dl class="col-sm-2"> <dl class="col-xs-4">
<dt translate>Min Disk</dt> <dt translate>Min Disk (GB)</dt>
<dd> <dd>
{$ (row.properties ? row.min_disk : row.volume_image_metadata.min_disk) || '--' $} {$ (row.properties ? row.min_disk : row.volume_image_metadata.min_disk) || '--' $}
</dd> </dd>
</dl> </dl>
<dl class="col-sm-2"> <dl class="col-xs-4">
<dt translate>Min RAM</dt> <dt translate>Min RAM (MB)</dt>
<dd> <dd>
{$ (row.properties ? row.min_ram : row.volume_image_metadata.min_ram) || '--' $} {$ (row.properties ? row.min_ram : row.volume_image_metadata.min_ram) || '--' $}
</dd> </dd>
</dl> </dl>
</div> </div>
<div class="row" <div ng-if="model.metadataDefs.image || model.metadataDefs.volume">
ng-if="model.metadataDefs.image || model.metadataDefs.volume"> <div ng-if="row.properties && model.metadataDefs.image">
<metadata-display
<div class="col-sm-12"> available="::model.metadataDefs.image"
<div ng-if="row.properties && model.metadataDefs.image"> existing="::row.properties">
<metadata-display </metadata-display>
available="::model.metadataDefs.image"
existing="::row.properties">
</metadata-display>
</div>
<div ng-if="row.volume_image_metadata && model.metadataDefs.volume">
<metadata-display
available="::model.metadataDefs.volume"
existing="::row.volume_image_metadata">
</metadata-display>
</div>
</div> </div>
<div ng-if="row.volume_image_metadata && model.metadataDefs.volume">
<metadata-display
available="::model.metadataDefs.volume"
existing="::row.volume_image_metadata">
</metadata-display>
</div>
</div> </div>
</td> </td>
<td></td>

View File

@ -133,32 +133,32 @@
// Mapping for dynamic table headers // Mapping for dynamic table headers
var tableHeadCellsMap = { var tableHeadCellsMap = {
image: [ image: [
{ text: gettext('Name'), style: { width: '30%' }, sortable: true, sortDefault: true }, { text: gettext('Name'), sortable: true, sortDefault: true },
{ text: gettext('Updated'), style: { width: '15%' }, sortable: true }, { text: gettext('Updated'), sortable: true },
{ text: gettext('Size'), style: { width: '15%' }, classList: ['number'], sortable: true }, { text: gettext('Size'), classList: ['number'], sortable: true },
{ text: gettext('Type'), sortable: true }, { text: gettext('Type'), sortable: true },
{ text: gettext('Visibility'), sortable: true } { text: gettext('Visibility'), sortable: true }
], ],
snapshot: [ snapshot: [
{ text: gettext('Name'), style: { width: '30%' }, sortable: true, sortDefault: true }, { text: gettext('Name'), sortable: true, sortDefault: true },
{ text: gettext('Updated'), style: { width: '15%' }, sortable: true }, { text: gettext('Updated'), sortable: true },
{ text: gettext('Size'), style: { width: '15%' }, classList: ['number'], sortable: true }, { text: gettext('Size'), classList: ['number'], sortable: true },
{ text: gettext('Type'), sortable: true }, { text: gettext('Type'), sortable: true },
{ text: gettext('Visibility'), sortable: true } { text: gettext('Visibility'), sortable: true }
], ],
volume: [ volume: [
{ text: gettext('Name'), style: { width: '25%' }, sortable: true, sortDefault: true }, { text: gettext('Name'), sortable: true, sortDefault: true },
{ text: gettext('Description'), style: { width: '20%' }, sortable: true }, { text: gettext('Description'), sortable: true },
{ text: gettext('Size'), style: { width: '15%' }, classList: ['number'], sortable: true }, { text: gettext('Size'), classList: ['number'], sortable: true },
{ text: gettext('Type'), style: { width: '20%' }, sortable: true }, { text: gettext('Type'), sortable: true },
{ text: gettext('Availability Zone'), style: { width: '20%' }, sortable: true } { text: gettext('Availability Zone'), sortable: true }
], ],
volume_snapshot: [ volume_snapshot: [
{ text: gettext('Name'), style: { width: '25%' }, sortable: true, sortDefault: true }, { text: gettext('Name'), sortable: true, sortDefault: true },
{ text: gettext('Description'), style: { width: '20%' }, sortable: true }, { text: gettext('Description'), sortable: true },
{ text: gettext('Size'), style: { width: '15%' }, classList: ['number'], sortable: true }, { text: gettext('Size'), classList: ['number'], sortable: true },
{ text: gettext('Created'), style: { width: '15%' }, sortable: true }, { text: gettext('Created'), sortable: true },
{ text: gettext('Status'), style: { width: '20%' }, sortable: true } { text: gettext('Status'), sortable: true }
] ]
}; };
@ -171,26 +171,21 @@
{ key: 'name', classList: ['hi-light'] }, { key: 'name', classList: ['hi-light'] },
{ key: 'updated_at', filter: dateFilter, filterArg: 'short' }, { key: 'updated_at', filter: dateFilter, filterArg: 'short' },
{ key: 'size', filter: bytesFilter, classList: ['number'] }, { key: 'size', filter: bytesFilter, classList: ['number'] },
{ key: 'disk_format', style: { 'text-transform': 'uppercase' }, { key: 'disk_format', filter: diskFormatFilter, filterRawData: true },
filter: diskFormatFilter, filterRawData: true }, { key: 'is_public', filter: decodeFilter, filterArg: _visibilitymap }
{ key: 'is_public', filter: decodeFilter, filterArg: _visibilitymap,
style: { 'text-transform': 'capitalize' } }
], ],
snapshot: [ snapshot: [
{ key: 'name', classList: ['hi-light'] }, { key: 'name', classList: ['hi-light'] },
{ key: 'updated_at', filter: dateFilter, filterArg: 'short' }, { key: 'updated_at', filter: dateFilter, filterArg: 'short' },
{ key: 'size', filter: bytesFilter, classList: ['number'] }, { key: 'size', filter: bytesFilter, classList: ['number'] },
{ key: 'disk_format', style: { 'text-transform': 'uppercase' }, { key: 'disk_format', filter: diskFormatFilter, filterRawData: true },
filter: diskFormatFilter, filterRawData: true }, { key: 'is_public', filter: decodeFilter, filterArg: _visibilitymap }
{ key: 'is_public', filter: decodeFilter, filterArg: _visibilitymap,
style: { 'text-transform': 'capitalize' } }
], ],
volume: [ volume: [
{ key: 'name', classList: ['hi-light'] }, { key: 'name', classList: ['hi-light'] },
{ key: 'description' }, { key: 'description' },
{ key: 'size', filter: gbFilter, classList: ['number'] }, { key: 'size', filter: gbFilter, classList: ['number'] },
{ key: 'volume_image_metadata', filter: diskFormatFilter, { key: 'volume_image_metadata', filter: diskFormatFilter },
style: { 'text-transform': 'uppercase' } },
{ key: 'availability_zone' } { key: 'availability_zone' }
], ],
volume_snapshot: [ volume_snapshot: [
@ -198,7 +193,7 @@
{ key: 'description' }, { key: 'description' },
{ key: 'size', filter: gbFilter, classList: ['number'] }, { key: 'size', filter: gbFilter, classList: ['number'] },
{ key: 'created_at', filter: dateFilter, filterArg: 'short' }, { key: 'created_at', filter: dateFilter, filterArg: 'short' },
{ key: 'status', style: { 'text-transform': 'capitalize' } } { key: 'status' }
] ]
}; };

View File

@ -103,29 +103,23 @@
hz-table hz-table
st-safe-src="ctrl.tableData.allocated" st-safe-src="ctrl.tableData.allocated"
st-table="ctrl.tableData.displayAllocated"> st-table="ctrl.tableData.displayAllocated">
<!-- transfer table, allocated table head --> <!-- transfer table, allocated table head -->
<thead> <thead>
<tr> <tr>
<th class="expander"></th> <th class="expander"></th>
<th ng-class="ctrl.tableHeadCells[0].classList" <th ng-class="ctrl.tableHeadCells[0].classList">
ng-style="ctrl.tableHeadCells[0].style">
{$ ctrl.tableHeadCells[0].text $} {$ ctrl.tableHeadCells[0].text $}
</th> </th>
<th ng-class="ctrl.tableHeadCells[1].classList" <th ng-class="ctrl.tableHeadCells[1].classList">
ng-style="ctrl.tableHeadCells[1].style">
{$ ctrl.tableHeadCells[1].text $} {$ ctrl.tableHeadCells[1].text $}
</th> </th>
<th ng-class="ctrl.tableHeadCells[2].classList" <th ng-class="ctrl.tableHeadCells[2].classList">
ng-style="ctrl.tableHeadCells[2].style">
{$ ctrl.tableHeadCells[2].text $} {$ ctrl.tableHeadCells[2].text $}
</th> </th>
<th ng-class="ctrl.tableHeadCells[3].classList" <th ng-class="ctrl.tableHeadCells[3].classList">
ng-style="ctrl.tableHeadCells[3].style">
{$ ctrl.tableHeadCells[3].text $} {$ ctrl.tableHeadCells[3].text $}
</th> </th>
<th ng-class="ctrl.tableHeadCells[4].classList" <th ng-class="ctrl.tableHeadCells[4].classList">
ng-style="ctrl.tableHeadCells[4].style">
{$ ctrl.tableHeadCells[4].text $} {$ ctrl.tableHeadCells[4].text $}
</th> </th>
<th class="action"></th> <th class="action"></th>
@ -149,24 +143,19 @@
hz-expand-detail hz-expand-detail
title="{$ ::trCtrl.helpText.expandDetailsText $}"></span> title="{$ ::trCtrl.helpText.expandDetailsText $}"></span>
</td> </td>
<td ng-class="ctrl.tableBodyCells[0].classList" <td ng-class="ctrl.tableBodyCells[0].classList">
ng-style="ctrl.tableBodyCells[0].style">
{$ ctrl.tableBodyCells[0].filter ? ctrl.tableBodyCells[0].filter(row[ctrl.tableBodyCells[0].key], ctrl.tableBodyCells[0].filterArg) : row[ctrl.tableBodyCells[0].key] $} {$ ctrl.tableBodyCells[0].filter ? ctrl.tableBodyCells[0].filter(row[ctrl.tableBodyCells[0].key], ctrl.tableBodyCells[0].filterArg) : row[ctrl.tableBodyCells[0].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[1].classList" <td ng-class="ctrl.tableBodyCells[1].classList">
ng-style="ctrl.tableBodyCells[1].style">
{$ ctrl.tableBodyCells[1].filter ? ctrl.tableBodyCells[1].filter(row[ctrl.tableBodyCells[1].key], ctrl.tableBodyCells[1].filterArg) : row[ctrl.tableBodyCells[1].key] $} {$ ctrl.tableBodyCells[1].filter ? ctrl.tableBodyCells[1].filter(row[ctrl.tableBodyCells[1].key], ctrl.tableBodyCells[1].filterArg) : row[ctrl.tableBodyCells[1].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[2].classList" <td ng-class="ctrl.tableBodyCells[2].classList">
ng-style="ctrl.tableBodyCells[2].style">
{$ ctrl.tableBodyCells[2].filter ? ctrl.tableBodyCells[2].filter(row[ctrl.tableBodyCells[2].key], ctrl.tableBodyCells[2].filterArg) : row[ctrl.tableBodyCells[2].key] $} {$ ctrl.tableBodyCells[2].filter ? ctrl.tableBodyCells[2].filter(row[ctrl.tableBodyCells[2].key], ctrl.tableBodyCells[2].filterArg) : row[ctrl.tableBodyCells[2].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[3].classList" <td ng-class="ctrl.tableBodyCells[3].classList">
ng-style="ctrl.tableBodyCells[3].style">
{$ ctrl.tableBodyCells[3].filter ? ctrl.tableBodyCells[3].filter(ctrl.tableBodyCells[3].filterRawData ? row : row[ctrl.tableBodyCells[3].key], ctrl.tableBodyCells[3].filterArg) : row[ctrl.tableBodyCells[3].key] $} {$ ctrl.tableBodyCells[3].filter ? ctrl.tableBodyCells[3].filter(ctrl.tableBodyCells[3].filterRawData ? row : row[ctrl.tableBodyCells[3].key], ctrl.tableBodyCells[3].filterArg) : row[ctrl.tableBodyCells[3].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[4].classList" <td ng-class="ctrl.tableBodyCells[4].classList">
ng-style="ctrl.tableBodyCells[4].style">
<span ng-if="model.newInstanceSpec.source_type.type === 'volume' && row.availability_zone !== model.newInstanceSpec.availability_zone" <span ng-if="model.newInstanceSpec.source_type.type === 'volume' && row.availability_zone !== model.newInstanceSpec.availability_zone"
class="invalid fa fa-exclamation-triangle" class="invalid fa fa-exclamation-triangle"
popover="{$ ::trCtrl.helpText.volumeAZHelpText $}" popover="{$ ::trCtrl.helpText.volumeAZHelpText $}"
@ -175,9 +164,9 @@
popover-placement="top"></span> popover-placement="top"></span>
{$ ctrl.tableBodyCells[4].filter ? ctrl.tableBodyCells[4].filter(row[ctrl.tableBodyCells[4].key], ctrl.tableBodyCells[4].filterArg) : row[ctrl.tableBodyCells[4].key] $} {$ ctrl.tableBodyCells[4].filter ? ctrl.tableBodyCells[4].filter(row[ctrl.tableBodyCells[4].key], ctrl.tableBodyCells[4].filterArg) : row[ctrl.tableBodyCells[4].key] $}
</td> </td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.deallocate" callback="trCtrl.deallocate"
item="row"> item="row">
<span class="fa fa-minus"></span> <span class="fa fa-minus"></span>
@ -209,31 +198,26 @@
<th class="expander"></th> <th class="expander"></th>
<th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[0].sortDefault $}" <th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[0].sortDefault $}"
ng-class="ctrl.tableHeadCells[0].classList" ng-class="ctrl.tableHeadCells[0].classList"
ng-style="ctrl.tableHeadCells[0].style"
st-sort="{$ ctrl.tableHeadCells[0].sortable && ctrl.tableBodyCells[0].key $}"> st-sort="{$ ctrl.tableHeadCells[0].sortable && ctrl.tableBodyCells[0].key $}">
{$ ctrl.tableHeadCells[0].text $} {$ ctrl.tableHeadCells[0].text $}
</th> </th>
<th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[1].sortDefault $}" <th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[1].sortDefault $}"
ng-class="ctrl.tableHeadCells[1].classList" ng-class="ctrl.tableHeadCells[1].classList"
ng-style="ctrl.tableHeadCells[1].style"
st-sort="{$ ctrl.tableHeadCells[1].sortable && ctrl.tableBodyCells[1].key $}"> st-sort="{$ ctrl.tableHeadCells[1].sortable && ctrl.tableBodyCells[1].key $}">
{$ ctrl.tableHeadCells[1].text $} {$ ctrl.tableHeadCells[1].text $}
</th> </th>
<th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[2].sortDefault $}" <th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[2].sortDefault $}"
ng-class="ctrl.tableHeadCells[2].classList" ng-class="ctrl.tableHeadCells[2].classList"
ng-style="ctrl.tableHeadCells[2].style"
st-sort="{$ ctrl.tableHeadCells[2].sortable && ctrl.tableBodyCells[2].key $}"> st-sort="{$ ctrl.tableHeadCells[2].sortable && ctrl.tableBodyCells[2].key $}">
{$ ctrl.tableHeadCells[2].text $} {$ ctrl.tableHeadCells[2].text $}
</th> </th>
<th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[3].sortDefault $}" <th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[3].sortDefault $}"
ng-class="ctrl.tableHeadCells[3].classList" ng-class="ctrl.tableHeadCells[3].classList"
ng-style="ctrl.tableHeadCells[3].style"
st-sort="{$ ctrl.tableHeadCells[3].sortable && ctrl.tableBodyCells[3].key $}"> st-sort="{$ ctrl.tableHeadCells[3].sortable && ctrl.tableBodyCells[3].key $}">
{$ ctrl.tableHeadCells[3].text $} {$ ctrl.tableHeadCells[3].text $}
</th> </th>
<th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[4].sortDefault $}" <th ng-attr-st-sort-default="{$ ctrl.tableHeadCells[4].sortDefault $}"
ng-class="ctrl.tableHeadCells[4].classList" ng-class="ctrl.tableHeadCells[4].classList"
ng-style="ctrl.tableHeadCells[4].style"
st-sort="{$ ctrl.tableHeadCells[4].sortable && ctrl.tableBodyCells[4].key $}"> st-sort="{$ ctrl.tableHeadCells[4].sortable && ctrl.tableBodyCells[4].key $}">
{$ ctrl.tableHeadCells[4].text $} {$ ctrl.tableHeadCells[4].text $}
</th> </th>
@ -259,24 +243,19 @@
title="{$ ::trCtrl.helpText.expandDetailsText $}"> title="{$ ::trCtrl.helpText.expandDetailsText $}">
</span> </span>
</td> </td>
<td ng-class="ctrl.tableBodyCells[0].classList" <td ng-class="ctrl.tableBodyCells[0].classList">
ng-style="ctrl.tableBodyCells[0].style">
{$ ctrl.tableBodyCells[0].filter ? ctrl.tableBodyCells[0].filter(row[ctrl.tableBodyCells[0].key], ctrl.tableBodyCells[0].filterArg) : row[ctrl.tableBodyCells[0].key] $} {$ ctrl.tableBodyCells[0].filter ? ctrl.tableBodyCells[0].filter(row[ctrl.tableBodyCells[0].key], ctrl.tableBodyCells[0].filterArg) : row[ctrl.tableBodyCells[0].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[1].classList" <td ng-class="ctrl.tableBodyCells[1].classList">
ng-style="ctrl.tableBodyCells[1].style">
{$ ctrl.tableBodyCells[1].filter ? ctrl.tableBodyCells[1].filter(row[ctrl.tableBodyCells[1].key], ctrl.tableBodyCells[1].filterArg) : row[ctrl.tableBodyCells[1].key] $} {$ ctrl.tableBodyCells[1].filter ? ctrl.tableBodyCells[1].filter(row[ctrl.tableBodyCells[1].key], ctrl.tableBodyCells[1].filterArg) : row[ctrl.tableBodyCells[1].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[2].classList" <td ng-class="ctrl.tableBodyCells[2].classList">
ng-style="ctrl.tableBodyCells[2].style">
{$ ctrl.tableBodyCells[2].filter ? ctrl.tableBodyCells[2].filter(row[ctrl.tableBodyCells[2].key], ctrl.tableBodyCells[2].filterArg) : row[ctrl.tableBodyCells[2].key] $} {$ ctrl.tableBodyCells[2].filter ? ctrl.tableBodyCells[2].filter(row[ctrl.tableBodyCells[2].key], ctrl.tableBodyCells[2].filterArg) : row[ctrl.tableBodyCells[2].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[3].classList" <td ng-class="ctrl.tableBodyCells[3].classList">
ng-style="ctrl.tableBodyCells[3].style">
{$ ctrl.tableBodyCells[3].filter ? ctrl.tableBodyCells[3].filter(ctrl.tableBodyCells[3].filterRawData ? row : row[ctrl.tableBodyCells[3].key], ctrl.tableBodyCells[3].filterArg) : row[ctrl.tableBodyCells[3].key] $} {$ ctrl.tableBodyCells[3].filter ? ctrl.tableBodyCells[3].filter(ctrl.tableBodyCells[3].filterRawData ? row : row[ctrl.tableBodyCells[3].key], ctrl.tableBodyCells[3].filterArg) : row[ctrl.tableBodyCells[3].key] $}
</td> </td>
<td ng-class="ctrl.tableBodyCells[4].classList" <td ng-class="ctrl.tableBodyCells[4].classList">
ng-style="ctrl.tableBodyCells[4].style">
<span ng-if="model.newInstanceSpec.source_type.type === 'volume' && row.availability_zone !== model.newInstanceSpec.availability_zone" <span ng-if="model.newInstanceSpec.source_type.type === 'volume' && row.availability_zone !== model.newInstanceSpec.availability_zone"
class="invalid fa fa-exclamation-triangle" class="invalid fa fa-exclamation-triangle"
popover="{$ ::trCtrl.helpText.volumeAZHelpText $}" popover="{$ ::trCtrl.helpText.volumeAZHelpText $}"
@ -285,9 +264,9 @@
popover-placement="top"></span> popover-placement="top"></span>
{$ ctrl.tableBodyCells[4].filter ? ctrl.tableBodyCells[4].filter(row[ctrl.tableBodyCells[4].key], ctrl.tableBodyCells[4].filterArg) : row[ctrl.tableBodyCells[4].key] $} {$ ctrl.tableBodyCells[4].filter ? ctrl.tableBodyCells[4].filter(row[ctrl.tableBodyCells[4].key], ctrl.tableBodyCells[4].filterArg) : row[ctrl.tableBodyCells[4].key] $}
</td> </td>
<td class="action-col"> <td class="actions_column">
<action-list> <action-list>
<action action-classes="'btn btn-sm btn-default'" <action action-classes="'btn btn-default'"
callback="trCtrl.allocate" callback="trCtrl.allocate"
item="row"> item="row">
<span class="fa fa-plus"></span> <span class="fa fa-plus"></span>