blob: c45c3b1c00aeb5fc3969cd4076f897f790b88bbb [file] [log] [blame]
{{!
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
}}
<div id="deploy">
<h2>{{t installer.step9.header}}</h2>
<p class="alert alert-info">{{t installer.step9.body}}</p>
<div id="overallProgress">
<div class="row-fluid">
<div class="span10">
<div {{bindAttr class="view.isStepCompleted::progress-striped view.isStepCompleted::active view.barColor :progress"}}>
<div class="bar" {{bindAttr style="view.barWidth"}}>
</div>
</div>
</div>
<div class="span2">{{view.progressMessage}}</div>
</div>
</div>
<div class="box">
<div class="box-header">
<div class="pull-left">
{{#if controller.showRetry}}
<a class="btn btn-primary" href="#" {{action retry}}>
<i class="icon-repeat icon-white"></i>
{{t common.retry}}
</a>
{{/if}}
</div>
<!-- filter by host level -->
<div id="host-filter" class="pull-right">
<ul class="clearfix">
<li class="first">{{t common.show}}:</li>
{{#each category in view.categories}}
<li {{bindAttr class=":filter-status category.itemClass"}}>
<a {{action selectCategory category target="view"}} href="#">
{{category.label}}
</a>
</li>
{{#unless category.last}}
<li class="divider">|</li>
{{/unless}}
{{/each}}
</ul>
</div>
</div>
<div class="pre-scrollable">
<table id="deploy-status-by-host" class="table table-bordered table-striped">
<thead>
<tr>
<th class="host">
{{t common.host}}
</th>
<th class="status">{{t common.status}}</th>
<!-- given by the parsing function that parses data from bootstrap call -->
<th class="message">{{t common.message}}</th>
<!-- retrieved from local storage initially -->
</tr>
</thead>
<tbody>
{{#if view.pageContent}}
{{#each host in view.pageContent}}
{{#view App.HostStatusView objBinding="host" controllerBinding="controller"}}
<td class="host">
<span title="{{unbound host.name}}" class="trim_hostname">{{host.name}}</span>
</td>
<td>
<div class="progress-bar pull-left">
<div {{bindAttr class="view.isHostCompleted::progress-striped view.isHostCompleted::active view.barColor :progress"}}>
<div class="bar" {{bindAttr style="view.barWidth"}}></div>
</div>
</div>
<div class="progress-percentage pull-left">{{host.progress}}%</div>
</td>
<td class="host-message">
<a {{bindAttr class="view.isFailed:text-error view.isSuccess:text-success view.isWarning:text-warning"}}
href="javascript:void(null)"
data-toggle="modal" {{action hostLogPopup target="view"}}>{{host.message}}</a>
</td>
{{/view}}
{{/each}}
{{else}}
<tr>
<td colspan="3"><p>{{t installer.step3.hosts.noHosts}}</p></td>
</tr>
{{/if}}
</tbody>
</table>
</div>
<div id="hosts">
<div class="page-bar">
<div class="selected-hosts-info pull-left">
{{view.filteredHostsInfo}}
-
<a {{action showAllHosts target="view"}} href="#">{{t tableView.filters.showAll}}</a>
</div>
<div class="items-on-page">
<label>{{t common.show}}: {{view view.rowsPerPageSelectView selectionBinding="view.displayLength"}}</label>
</div>
<div class="info">{{view.paginationInfo}}</div>
<div class="paging_two_button">
{{view view.paginationFirst}}
{{view view.paginationLeft}}
{{view view.paginationRight}}
{{view view.paginationLast}}
</div>
</div>
</div>
</div>
<div>
{{#if view.resultMsg}}
<p {{bindAttr class="view.resultMsgColor :alert"}}>{{view.resultMsg}}
{{#if view.isHostHeartbeatLost}}
<a href="javascript:void(null)"
data-toggle="modal" {{action hostWithInstallFailed target="view"}}>{{t common.showDetails}}</a>
{{/if}}
</p>
{{/if}}
<div class="btn-area">
<button class="btn btn-success pull-right" {{bindAttr disabled="isNextButtonDisabled"}} {{action submit target="controller"}}>
{{#if App.router.nextBtnClickInProgress}}
{{view App.SpinnerView tagName="span" classNames="service-button-spinner"}}
{{/if}}
{{t common.next}} &rarr;
</button>
</div>
</div>
</div>