| {{! |
| * 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}} → |
| </button> |
| </div> |
| </div> |
| |
| </div> |