|
@@ -0,0 +1,148 @@
|
|
|
+{{!
|
|
|
+* 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 class="row-fluid">
|
|
|
+ <div {{bindAttr class="view.content.isActive::not-active-link :span8"}}>
|
|
|
+ {{statusIcon view.content.status}}
|
|
|
+ <a href="#" {{action toggleExpanded view.content controller.upgradeData.upgradeGroups target="view"}}>{{view.content.title}}</a>
|
|
|
+ </div>
|
|
|
+ {{#if view.content.isRunning}}
|
|
|
+ <div class="span3">
|
|
|
+ <div class="progress progress-striped active">
|
|
|
+ <div class="bar" {{bindAttr style="view.content.progressWidth"}}></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="span1">
|
|
|
+ <div>{{view.content.progress}}%</div>
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+</div>
|
|
|
+
|
|
|
+<div {{bindAttr class="view.content.isExpanded::hidden :task-list"}}>
|
|
|
+
|
|
|
+ {{! List of UpgradeItem}}
|
|
|
+ {{#each item in view.content.upgradeItems}}
|
|
|
+ <div class="row-fluid">
|
|
|
+ <div {{bindAttr class="item.isActive::not-active-link :span8"}}>
|
|
|
+ {{statusIcon item.status}}
|
|
|
+ <a href="#" {{action toggleExpanded item view.content.upgradeItems target="view"}}>{{item.context}}</a>
|
|
|
+ </div>
|
|
|
+ {{#if item.isRunning}}
|
|
|
+ <div class="span3">
|
|
|
+ <div class="progress progress-striped active">
|
|
|
+ <div class="bar" {{bindAttr style="item.progressWidth"}}></div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <div class="span1">
|
|
|
+ <div>{{item.progress}}%</div>
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+ </div>
|
|
|
+ {{#if item.isExpanded}}
|
|
|
+
|
|
|
+ {{! List of Tasks}}
|
|
|
+ <div class="task-list">
|
|
|
+ {{#each task in item.tasks}}
|
|
|
+ <div {{bindAttr class="task.isActive::not-active-link"}}>{{statusIcon task.status}}<a href="#" {{action toggleExpanded task item.tasks target="view"}}>{{task.command_detail}}</a></div>
|
|
|
+ {{#if task.isExpanded}}
|
|
|
+ <div class="task-details task-detail-info">
|
|
|
+ <ul class="nav nav-tabs">
|
|
|
+ <li class="active"><a href="#tab1" data-toggle="tab">{{t common.stdout}}</a></li>
|
|
|
+ <li><a href="#tab2" data-toggle="tab">{{t common.stderr}}</a></li>
|
|
|
+ </ul>
|
|
|
+ <div class="tab-content">
|
|
|
+ <div class="tab-pane active" id="tab1">
|
|
|
+ <p>{{task.host_name}}</p>
|
|
|
+ <div class="row-fluid">
|
|
|
+ <p class="pull-left">{{task.output_log}}</p>
|
|
|
+ <div class="manage-controls pull-right">
|
|
|
+ <a title="Click to Copy" {{action copyOutLog task target="view"}} class="task-detail-copy">
|
|
|
+ <i class="icon-copy"></i> {{t common.copy}}
|
|
|
+ </a>
|
|
|
+ <a title="Open in New Window" {{action openLogWindow task.stdout target="view"}} class="task-detail-open-dialog">
|
|
|
+ <i class="icon-external-link"></i> {{t common.open}}
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <pre {{bindAttr class="task.outputLogOpened:hidden :stdout"}}>{{task.stdout}}</pre>
|
|
|
+ {{view Ember.TextArea valueBinding="task.stdout" classBinding="task.outputLogOpened::hidden" readonly="readonly"}}
|
|
|
+ </div>
|
|
|
+ <div class="tab-pane" id="tab2">
|
|
|
+ <p>{{task.host_name}}</p>
|
|
|
+ <div class="row-fluid">
|
|
|
+ <p class="pull-left">{{task.error_log}}</p>
|
|
|
+ <div class="manage-controls pull-right">
|
|
|
+ <a title="Click to Copy" {{action copyErrLog task target="view"}} class="task-detail-copy">
|
|
|
+ <i class="icon-copy"></i> {{t common.copy}}
|
|
|
+ </a>
|
|
|
+ <a title="Open in New Window" {{action openLogWindow task.stderr target="view"}} class="task-detail-open-dialog">
|
|
|
+ <i class="icon-external-link"></i> {{t common.open}}
|
|
|
+ </a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ <pre {{bindAttr class="task.errorLogOpened:hidden :stderr"}}>{{task.stderr}}</pre>
|
|
|
+ {{view Ember.TextArea valueBinding="task.stderr" classBinding="task.errorLogOpened::hidden" readonly="readonly"}}
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+ {{/each}}
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+ {{/each}}
|
|
|
+</div>
|
|
|
+
|
|
|
+{{#unless view.content.isExpanded}}
|
|
|
+ {{#if view.showProgressInfo}}
|
|
|
+ <div class="box details-box">
|
|
|
+ <div>
|
|
|
+ {{t admin.stackUpgrade.dialog.inProgress}}
|
|
|
+ <a href>{{view.runningItem.context}}</a>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+ {{#if view.isFailed}}
|
|
|
+ <div class="box details-box">
|
|
|
+ <div>
|
|
|
+ {{t admin.stackUpgrade.dialog.failed}}
|
|
|
+ <a href>{{view.failedItem.name}}</a>
|
|
|
+ </div>
|
|
|
+ <div class="button-row">
|
|
|
+ <button class="btn btn-danger">{{t admin.stackUpgrade.dialog.stop}}</button>
|
|
|
+ <button class="btn btn-warning">{{t admin.stackUpgrade.dialog.continue}}</button>
|
|
|
+ <button class="btn">{{t common.retry}}</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+ {{#if view.isManualOpened}}
|
|
|
+ <div class="box details-box">
|
|
|
+ <p><strong>{{t admin.stackUpgrade.dialog.manual}}</strong></p>
|
|
|
+
|
|
|
+ <div class="message">
|
|
|
+ {{view Em.Checkbox checkedBinding="view.isManualDone"}}
|
|
|
+ {{t admin.stackUpgrade.dialog.manualDone}}
|
|
|
+ </div>
|
|
|
+ <div class="button-row">
|
|
|
+ <button class="btn btn-danger">{{t admin.stackUpgrade.dialog.stop}}</button>
|
|
|
+ <button
|
|
|
+ class="btn btn-success" {{bindAttr disabled="view.isManualProceedDisabled"}}>{{t common.proceed}}</button>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ {{/if}}
|
|
|
+{{/unless}}
|