You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2014/12/20 07:56:36 UTC

ambari git commit: AMBARI-8850. Modify Install Wizard templates for ease of testing. (yusaku)

Repository: ambari
Updated Branches:
  refs/heads/trunk 8f4ff3950 -> dceb41f72


AMBARI-8850. Modify Install Wizard templates for ease of testing. (yusaku)


Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/dceb41f7
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/dceb41f7
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/dceb41f7

Branch: refs/heads/trunk
Commit: dceb41f724ff22eb4d7867040426e05bec2bd73d
Parents: 8f4ff39
Author: Yusaku Sako <yu...@hortonworks.com>
Authored: Fri Dec 19 22:48:44 2014 -0800
Committer: Yusaku Sako <yu...@hortonworks.com>
Committed: Fri Dec 19 22:50:02 2014 -0800

----------------------------------------------------------------------
 ambari-web/app/templates/application.hbs   |   8 +-
 ambari-web/app/templates/wizard/step0.hbs  |  39 +++--
 ambari-web/app/templates/wizard/step1.hbs  | 182 +++++++++++-----------
 ambari-web/app/templates/wizard/step10.hbs |  71 ++++-----
 ambari-web/app/templates/wizard/step2.hbs  |   3 +-
 ambari-web/app/templates/wizard/step4.hbs  |  10 +-
 ambari-web/app/templates/wizard/step5.hbs  | 197 ++++++++++++------------
 ambari-web/app/templates/wizard/step8.hbs  |  99 ++++++------
 8 files changed, 309 insertions(+), 300 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/application.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/application.hbs b/ambari-web/app/templates/application.hbs
index d2dc923..b474a94 100644
--- a/ambari-web/app/templates/application.hbs
+++ b/ambari-web/app/templates/application.hbs
@@ -56,16 +56,16 @@
                   <i class="icon-user"></i>&nbsp;{{App.router.loginName}}&nbsp;<span class="caret"></span>
               </button>
               <ul class="dropdown-menu">
-                  <li><a href="" {{action showAboutPopup target="controller"}}>{{t app.aboutAmbari}}</a></li>
+                  <li><a href="" id="about" {{action showAboutPopup target="controller"}}>{{t app.aboutAmbari}}</a></li>
                 {{#if App.router.clusterInstallCompleted}}
                   {{#if isClusterDataLoaded}}
                     {{#isAccessible upgrade_ONLY_ADMIN}}
-                      <li><a href="" {{action goToAdminView target="controller"}}>{{t app.manageAmbari}}</a></li>
+                      <li><a href="" id="manage-ambari" {{action goToAdminView target="controller"}}>{{t app.manageAmbari}}</a></li>
                     {{/isAccessible}}
                   {{/if}}
                 {{else}}
                   {{#isAccessible upgrade_ONLY_ADMIN}}
-                    <li><a href="" {{action goToAdminView target="controller"}}>{{t app.manageAmbari}}</a></li>
+                    <li><a href="" id="manage-ambari" {{action goToAdminView target="controller"}}>{{t app.manageAmbari}}</a></li>
                   {{/isAccessible}}
                 {{/if}}
                 {{#if isClusterDataLoaded}}
@@ -74,7 +74,7 @@
                   {{/isAccessible}}
                 {{/if}}
                   <li class="break"></li>
-                  <li><a href="" {{action logoff}}>{{t app.signout}}</a></li>
+                  <li><a href="" id="sign-out" {{action logoff}}>{{t app.signout}}</a></li>
               </ul>
             </div>
           {{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step0.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step0.hbs b/ambari-web/app/templates/wizard/step0.hbs
index 5beb63d..4971969 100644
--- a/ambari-web/app/templates/wizard/step0.hbs
+++ b/ambari-web/app/templates/wizard/step0.hbs
@@ -15,28 +15,27 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
+<div id="get-started">
+  <h2>{{t installer.step0.body.header}}</h2>
+  <p class="alert alert-info">
+    {{t installer.step0.body}}
+  </p>
+  <div {{bindAttr class="view.onError:error :control-group"}}>
+    <label class="control-label" for="cluster-name">{{t installer.step0.clusterName}}
+      <a href="javascript:void(null)"
+         rel="popover"
+        {{translateAttr title="installer.step0.clusterName.tooltip.title"
+        data-content="installer.step0.clusterName.tooltip.content"}}>{{t common.learnMore}}</a>
+    </label>
 
-<h2>{{t installer.step0.body.header}}</h2>
-<p class="alert alert-info">
-  {{t installer.step0.body}}
-</p>
-<div {{bindAttr class="view.onError:error :control-group"}}>
-  <label class="control-label" for="cluster-name">{{t installer.step0.clusterName}}
-    <a href="javascript:void(null)"
-       rel="popover"
-      {{translateAttr title="installer.step0.clusterName.tooltip.title"
-      data-content="installer.step0.clusterName.tooltip.content"}}>{{t common.learnMore}}</a>
-  </label>
-
-  <div class="controls">
-    {{view App.WizardStep0ViewClusterNameInput valueBinding="content.cluster.name" placeholder="cluster name" target="controller"}}
-    <p class="help-inline">{{clusterNameError}}</p>
+    <div class="controls">
+      {{view App.WizardStep0ViewClusterNameInput id="cluster-name" valueBinding="content.cluster.name" placeholder="cluster name" target="controller"}}
+      <p class="help-inline">{{clusterNameError}}</p>
+    </div>
   </div>
-</div>
 
-<div class="btn-area">
-  <a class="btn btn-success pull-right" {{bindAttr disabled="invalidClusterName"}} {{action "submit" target="controller"}}>{{t common.next}} &rarr;</a>
+  <div class="btn-area">
+    <a class="btn btn-success pull-right" {{bindAttr disabled="invalidClusterName"}} {{action "submit" target="controller"}}>{{t common.next}} &rarr;</a>
+  </div>
 </div>
 
-
-

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step1.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step1.hbs b/ambari-web/app/templates/wizard/step1.hbs
index 63aeaa0..edd4c91 100644
--- a/ambari-web/app/templates/wizard/step1.hbs
+++ b/ambari-web/app/templates/wizard/step1.hbs
@@ -15,105 +15,107 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-<h2>{{t installer.step1.header}}</h2>
-<p class="alert alert-info">
-  {{t installer.step1.body}}
-</p>
-<p><b>{{t common.stacks}}</b></p>
-<form autocomplete="off">
-  {{#each stack in view.stacks}}
-    <label class="radio">{{view view.stackRadioButton contentBinding="stack"}} {{stack.name}}</label>
-  {{/each}}
-</form>
+<div id="select-stack">
+  <h2>{{t installer.step1.header}}</h2>
+  <p class="alert alert-info">
+    {{t installer.step1.body}}
+  </p>
+  <p><b>{{t common.stacks}}</b></p>
+  <form autocomplete="off">
+    {{#each stack in view.stacks}}
+      <label class="radio">{{view view.stackRadioButton contentBinding="stack"}} {{stack.name}}</label>
+    {{/each}}
+  </form>
 
 
-<div class="accordion" id="advancedRepoAccordion">
-  <div class="accordion-group">
-    <div class="accordion-heading" {{action "onToggleBlock" target="view"}}>
-      <i {{bindAttr class=":pull-left :accordion-toggle view.isRLCollapsed:icon-caret-right:icon-caret-down"}}></i>
-      <a class="accordion-toggle">
-        {{t installer.step1.advancedRepo.title}}
-        {{#if view.isSubmitDisabled}}
-          <span class="badge badge-important">{{view.totalErrorCnt}}</span>
-        {{/if}}
-      </a>
+  <div class="accordion" id="advancedRepoAccordion">
+    <div class="accordion-group">
+      <div class="accordion-heading" {{action "onToggleBlock" target="view"}}>
+        <i {{bindAttr class=":pull-left :accordion-toggle view.isRLCollapsed:icon-caret-right:icon-caret-down"}}></i>
+        <a class="accordion-toggle">
+          {{t installer.step1.advancedRepo.title}}
+          {{#if view.isSubmitDisabled}}
+            <span class="badge badge-important">{{view.totalErrorCnt}}</span>
+          {{/if}}
+        </a>
 
-    </div>
-    <div class="accordion-body collapse in">
-      <div class="accordion-inner">
-        <div class="alert alert-info">{{t installer.step1.advancedRepo.message}}</div>
-        <div class="alert alert-warning">{{t installer.step1.advancedRepo.importantMassage}}</div>
+      </div>
+      <div class="accordion-body collapse in">
+        <div class="accordion-inner">
+          <div class="alert alert-info">{{t installer.step1.advancedRepo.message}}</div>
+          <div class="alert alert-warning">{{t installer.step1.advancedRepo.importantMassage}}</div>
 
-        <div class="repositories-table">
-          <div class="thead">
-            <div class="first-th">&nbsp;</div>
-            <div class="th os-th">{{t common.os}}</div>
-            <div class="th name-th">{{t common.name}}</div>
-            <div class="th url-th">{{t installer.step1.advancedRepo.localRepo.column.baseUrl}}</div>
-          </div>
-          <div class="tbody">
-            {{#each operatingSystem in view.operatingSystems}}
-              <div class="trow">
-                <div class="os-td">
-                  <label>
-                    {{view Ember.Checkbox checkedBinding="operatingSystem.isSelected"}}
-                    <span {{bindAttr class=":os operatingSystem.isSelected::disabled-label"}}>{{operatingSystem.osType}}</span>
-                  </label>
-                </div>
-                <div style="width:83%">
-                  {{#each repository in operatingSystem.repositories}}
-                    <div class="sub-trow">
-                      <div class="name-td">{{repository.repoId}}</div>
-                      <div class="validation-td">
-                        {{#if repository.validation}}
-                          {{view view.popoverView repositoryBinding="repository"}}
-                        {{/if}}
-                      </div>
-                      <div {{bindAttr class=":url-td operatingSystem.isSelected::disabled-textfield repository.emptyError:textfield-error repository.invalidError:textfield-error"}}>
-                        {{view Ember.TextField valueBinding="repository.baseUrl"}}
+          <div class="repositories-table">
+            <div class="thead">
+              <div class="first-th">&nbsp;</div>
+              <div class="th os-th">{{t common.os}}</div>
+              <div class="th name-th">{{t common.name}}</div>
+              <div class="th url-th">{{t installer.step1.advancedRepo.localRepo.column.baseUrl}}</div>
+            </div>
+            <div class="tbody">
+              {{#each operatingSystem in view.operatingSystems}}
+                <div class="trow">
+                  <div {{bindAttr class=":os-td operatingSystem.osType"}}>
+                    <label>
+                      {{view Ember.Checkbox checkedBinding="operatingSystem.isSelected"}}
+                      <span {{bindAttr class=":os operatingSystem.isSelected::disabled-label"}}>{{operatingSystem.osType}}</span>
+                    </label>
+                  </div>
+                  <div style="width:83%">
+                    {{#each repository in operatingSystem.repositories}}
+                      <div class="sub-trow">
+                        <div class="name-td">{{repository.repoId}}</div>
+                        <div class="validation-td">
+                          {{#if repository.validation}}
+                            {{view view.popoverView repositoryBinding="repository"}}
+                          {{/if}}
+                        </div>
+                        <div {{bindAttr class=":url-td repository.repoId operatingSystem.isSelected::disabled-textfield repository.emptyError:textfield-error repository.invalidError:textfield-error"}}>
+                          {{view Ember.TextField valueBinding="repository.baseUrl"}}
+                        </div>
+                        <div class="clear-td">
+                          {{#if repository.clearAll}}
+                            <a {{action "clearGroupLocalRepository" repository target="view" }}>
+                              <i class="icon-remove-sign"></i>
+                            </a>
+                          {{/if}}
+                        </div>
+                        <div class="actions-td">
+                          {{#if repository.undo}}
+                            <a {{action "undoGroupLocalRepository" repository target="view" }}>
+                              <i class="icon-undo"></i>{{t common.undo}}
+                            </a>
+                          {{/if}}
+                        </div>
                       </div>
-                      <div class="clear-td">
-                        {{#if repository.clearAll}}
-                          <a {{action "clearGroupLocalRepository" repository target="view" }}>
-                            <i class="icon-remove-sign"></i>
-                          </a>
-                        {{/if}}
-                      </div>
-                      <div class="actions-td">
-                        {{#if repository.undo}}
-                          <a {{action "undoGroupLocalRepository" repository target="view" }}>
-                            <i class="icon-undo"></i>{{t common.undo}}
-                          </a>
-                        {{/if}}
-                      </div>
-                    </div>
-                  {{/each}}
+                    {{/each}}
+                  </div>
                 </div>
-              </div>
-            {{/each}}
+              {{/each}}
+            </div>
           </div>
-        </div>
-        <div id="skip-validation">
-          <label>{{view Ember.Checkbox checkedBinding="skipValidationChecked" class="checkbox"}}{{t installer.step1.advancedRepo.skipValidation.message}}
-            <i class="icon-question-sign" rel="skip-validation-tooltip"
-               data-toggle="tooltip" {{translateAttr title="installer.step1.advancedRepo.skipValidation.tooltip"}}></i></label>
-        </div>
-        {{#if view.emptyRepoExist}}
-          <div class="alert">{{t installer.step1.attentionNeeded}}</div>
-        {{/if}}
-        {{#if view.invalidUrlExist}}
-          <div class="alert">
-            {{t installer.step1.invalidURLAttention}}
-            <a href="javascript:void(null)" {{action "retryRepoUrls" target="view"}}>{{t installer.step1.retryRepoUrls}}</a>
+          <div id="skip-validation">
+            <label>{{view Ember.Checkbox checkedBinding="skipValidationChecked" class="checkbox"}}{{t installer.step1.advancedRepo.skipValidation.message}}
+              <i class="icon-question-sign" rel="skip-validation-tooltip"
+                 data-toggle="tooltip" {{translateAttr title="installer.step1.advancedRepo.skipValidation.tooltip"}}></i></label>
           </div>
-        {{/if}}
-        {{#if view.allRepoUnchecked}}
-          <div class="alert">{{t installer.step1.checkAtLeastOneAttention}}</div>
-        {{/if}}
+          {{#if view.emptyRepoExist}}
+            <div class="alert">{{t installer.step1.attentionNeeded}}</div>
+          {{/if}}
+          {{#if view.invalidUrlExist}}
+            <div class="alert">
+              {{t installer.step1.invalidURLAttention}}
+              <a href="javascript:void(null)" {{action "retryRepoUrls" target="view"}}>{{t installer.step1.retryRepoUrls}}</a>
+            </div>
+          {{/if}}
+          {{#if view.allRepoUnchecked}}
+            <div class="alert">{{t installer.step1.checkAtLeastOneAttention}}</div>
+          {{/if}}
+        </div>
       </div>
     </div>
   </div>
-</div>
 
-<a class="btn pull-left" {{action back}}>&larr; {{t common.back}}</a>
-<button class="btn btn-success pull-right" {{bindAttr disabled="view.isSubmitDisabled"}} {{action next}}>{{t common.next}} &rarr;</button>
+  <a class="btn pull-left" {{action back}}>&larr; {{t common.back}}</a>
+  <button class="btn btn-success pull-right" {{bindAttr disabled="view.isSubmitDisabled"}} {{action next}}>{{t common.next}} &rarr;</button>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step10.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step10.hbs b/ambari-web/app/templates/wizard/step10.hbs
index f5ebaed..6a28f05 100644
--- a/ambari-web/app/templates/wizard/step10.hbs
+++ b/ambari-web/app/templates/wizard/step10.hbs
@@ -15,39 +15,40 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-
-<h2>{{t installer.step10.header}}</h2>
-{{#if view.serviceRestartText}}
-  <div id="step10-alert-message" class="alert alert-danger">
-    {{{view.serviceRestartText}}}
+<div id="deploy-summary">
+  <h2>{{t installer.step10.header}}</h2>
+  {{#if view.serviceRestartText}}
+    <div id="step10-alert-message" class="alert alert-danger">
+      {{{view.serviceRestartText}}}
+    </div>
+  {{/if}}
+  <div class="alert alert-info">
+    {{t installer.step10.body}}
   </div>
-{{/if}}
-<div class="alert alert-info">
-  {{t installer.step10.body}}
-</div>
-<div id="step10-content" class="well pre-scrollable">
-  <ul>
-    {{#each item in clusterInfo}}
-      <li>
-        <span {{bindAttr class="item.color"}}>{{item.displayStatement}}</span>
-        <ul>
-          {{#each status in item.status}}
-            <li>
-              <span {{bindAttr class="status.color"}}>{{status.displayStatement}}</span>
-              <ul>
-                {{#each statement in status.statements}}
-                  <li>
-                    <span {{bindAttr class="status.color"}}>{{statement.displayStatement}}</span>
-                  </li>
-                {{/each}}
-              </ul>
-            </li>
-          {{/each}}
-        </ul>
-      </li>
-    {{/each}}
-  </ul>
-</div>
-<div class="btn-area">
-  <a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}} {{action complete}}>{{t common.complete}} &rarr;</a>
-</div>
+  <div id="step10-content" class="well pre-scrollable">
+    <ul>
+      {{#each item in clusterInfo}}
+        <li>
+          <span {{bindAttr class="item.color"}}>{{item.displayStatement}}</span>
+          <ul>
+            {{#each status in item.status}}
+              <li>
+                <span {{bindAttr class="status.color"}}>{{status.displayStatement}}</span>
+                <ul>
+                  {{#each statement in status.statements}}
+                    <li>
+                      <span {{bindAttr class="status.color"}}>{{statement.displayStatement}}</span>
+                    </li>
+                  {{/each}}
+                </ul>
+              </li>
+            {{/each}}
+          </ul>
+        </li>
+      {{/each}}
+    </ul>
+  </div>
+  <div class="btn-area">
+    <a class="btn btn-success pull-right" {{bindAttr disabled="isSubmitDisabled"}} {{action complete}}>{{t common.complete}} &rarr;</a>
+  </div>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step2.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step2.hbs b/ambari-web/app/templates/wizard/step2.hbs
index 0260b76..150f653 100644
--- a/ambari-web/app/templates/wizard/step2.hbs
+++ b/ambari-web/app/templates/wizard/step2.hbs
@@ -34,7 +34,8 @@
       </p>
 
       <div class="controls">
-        {{view Ember.TextArea class="span6" valueBinding="content.installOptions.hostNames" rows="5" placeholder="host names"}}
+        {{view Ember.TextArea id="host-names" class="span6" valueBinding="content.installOptions.hostNames" rows="5"
+        placeholder="host names"}}
         {{#if hostsError}}
           <p class="help-inline">{{hostsError}}</p>
         {{/if}}

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step4.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step4.hbs b/ambari-web/app/templates/wizard/step4.hbs
index b21d360..b4c840b 100644
--- a/ambari-web/app/templates/wizard/step4.hbs
+++ b/ambari-web/app/templates/wizard/step4.hbs
@@ -27,9 +27,11 @@
     <tr>
       <th class="span3">{{t common.service}}
         <span style="margin-left:10px">
-          <a href="#" {{action selectAll target="controller"}} {{bindAttr class="isAll:selected:deselected"}}>{{t all}}</a>
+          <a href="#" id="all" {{action selectAll target="controller"}} {{bindAttr
+          class="isAll:selected:deselected"}}>{{t all}}</a>
            |
-          <a href="#" {{action selectMinimum target="controller"}} {{bindAttr class="isMinimum:selected:deselected"}}>{{t none}}</a>
+          <a href="#" id="none" {{action selectMinimum target="controller"}} {{bindAttr
+          class="isMinimum:selected:deselected"}}>{{t none}}</a>
         </span>
       </th>
       <th>{{t common.version}}</th>
@@ -40,7 +42,9 @@
     {{#each controller}}
       {{#unless isHiddenOnSelectServicePage}}
         <tr {{bindAttr class="isSelected:success:"}}>
-          <td><label class="checkbox">{{view Ember.Checkbox disabledBinding="isInstalled" checkedBinding="isSelected"}}{{displayNameOnSelectServicePage}}</label>
+          <td><label class="checkbox">{{view Ember.Checkbox elementIdBinding="serviceName"
+          disabledBinding="isInstalled"
+          checkedBinding="isSelected"}}{{displayNameOnSelectServicePage}}</label>
           </td>
           <td>{{serviceVersion}}</td>
           <td>{{{comments}}}</td>

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step5.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step5.hbs b/ambari-web/app/templates/wizard/step5.hbs
index d08496b..ab43b2c 100644
--- a/ambari-web/app/templates/wizard/step5.hbs
+++ b/ambari-web/app/templates/wizard/step5.hbs
@@ -15,114 +15,115 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
-
-<h2>{{title}}</h2>
-<div class="alert alert-info">
-  {{t installer.step5.body}}
-  {{#if view.coHostedComponentText}}
-    {{{view.coHostedComponentText}}}
-  {{/if}}
-</div>
-{{#each msg in controller.generalErrorMessages}}
-  <div class="alert alert-error">{{msg}}</div>
-{{/each}}
-{{#each msg in controller.generalWarningMessages}}
-    <div class="alert alert-warning">{{msg}}</div>
-{{/each}}
-{{#if controller.isLoaded}}
-  <div class="assign-masters row-fluid">
-    <div class="select-hosts span7">
-      <div class="row-fluid">
-        {{#if showCurrentHost}}
-          <div class="span12 control-group mlc">
-            <div class="row-fluid">
-              <div class="span4"><span class="pull-right control-label">{{t services.reassign.step2.currentHost}}</span>
+<div id="assign-masters">
+  <h2>{{title}}</h2>
+  <div class="alert alert-info">
+    {{t installer.step5.body}}
+    {{#if view.coHostedComponentText}}
+      {{{view.coHostedComponentText}}}
+    {{/if}}
+  </div>
+  {{#each msg in controller.generalErrorMessages}}
+    <div class="alert alert-error">{{msg}}</div>
+  {{/each}}
+  {{#each msg in controller.generalWarningMessages}}
+      <div class="alert alert-warning">{{msg}}</div>
+  {{/each}}
+  {{#if controller.isLoaded}}
+    <div class="assign-masters row-fluid">
+      <div class="select-hosts span7">
+        <div class="row-fluid">
+          {{#if showCurrentHost}}
+            <div class="span12 control-group mlc">
+              <div class="row-fluid">
+                <div class="span4"><span class="pull-right control-label">{{t services.reassign.step2.currentHost}}</span>
+                </div>
+                <div class="span8"><span>{{currentHostId}}</span></div>
               </div>
-              <div class="span8"><span>{{currentHostId}}</span></div>
             </div>
-          </div>
-        {{/if}}
-        <div class="clearfix"></div>
-        <div class="row-fluid">
-          <div class="span12 control-group">
-            <form class="form-horizontal" autocomplete="off">
-              <!-- View for array controller -->
-              {{#each servicesMasters}}
-                <div class="row-fluid">
-                  <div class="span4">
-                    <div class="control-group">
-                      <label class="pts pull-right">
-                        {{display_name}}:
-                      </label>
-                    </div>
-                  </div>
-                  <div class="span8">
-                    {{#if isServiceCoHost}}
-                      <div class="hostName">
-                        {{selectedHost}}<i class="icon-asterisks">&#10037;</i>
+          {{/if}}
+          <div class="clearfix"></div>
+          <div class="row-fluid">
+            <div class="span12 control-group">
+              <form class="form-horizontal" autocomplete="off">
+                <!-- View for array controller -->
+                {{#each servicesMasters}}
+                  <div class="row-fluid">
+                    <div class="span4">
+                      <div class="control-group">
+                        <label class="pts pull-right">
+                          {{display_name}}:
+                        </label>
                       </div>
-                    {{else}}
-                      <div {{bindAttr class="errorMessage:error: warnMessage:warning: :control-group"}}>
-                        {{#if view.shouldUseInputs}}
-                          {{view App.InputHostView
-                          componentBinding="this"
-                          disabledBinding="isInstalled" }}
-                        {{else}}
-                          {{view App.SelectHostView
-                          componentBinding="this"
-                          disabledBinding="isInstalled"
-                          optionValuePath="content.host_name"
-                          optionLabelPath="content.host_info" }}
-                        {{/if}}
-                        {{#if showAddControl}}
-                          {{view App.AddControlView componentNameBinding="component_name"}}
-                        {{/if}}
-                        {{#if showRemoveControl}}
-                          {{view App.RemoveControlView componentNameBinding="component_name" serviceComponentIdBinding="serviceComponentId"}}
-                        {{/if}}
-
-                        <span rel="popover" title="Warning" {{bindAttr data-content="warnMessage"}}>
-                          {{#if warnMessage}}
-                            <i class="icon-warning-sign"></i>
+                    </div>
+                    <div class="span8">
+                      {{#if isServiceCoHost}}
+                        <div class="hostName">
+                          {{selectedHost}}<i class="icon-asterisks">&#10037;</i>
+                        </div>
+                      {{else}}
+                        <div {{bindAttr class="errorMessage:error: warnMessage:warning: :control-group"}}>
+                          {{#if view.shouldUseInputs}}
+                            {{view App.InputHostView
+                            componentBinding="this"
+                            disabledBinding="isInstalled" }}
+                          {{else}}
+                            {{view App.SelectHostView
+                            componentBinding="this"
+                            disabledBinding="isInstalled"
+                            optionValuePath="content.host_name"
+                            optionLabelPath="content.host_info" }}
                           {{/if}}
-                        </span>
-                        <span rel="popover" title="Error" {{bindAttr data-content="errorMessage"}}>
-                          {{#if errorMessage}}
-                            <i class="icon-remove-sign"></i>
+                          {{#if showAddControl}}
+                            {{view App.AddControlView componentNameBinding="component_name"}}
                           {{/if}}
-                        </span>
-                      </div>
-                    {{/if}}
+                          {{#if showRemoveControl}}
+                            {{view App.RemoveControlView componentNameBinding="component_name" serviceComponentIdBinding="serviceComponentId"}}
+                          {{/if}}
+
+                          <span rel="popover" title="Warning" {{bindAttr data-content="warnMessage"}}>
+                            {{#if warnMessage}}
+                              <i class="icon-warning-sign"></i>
+                            {{/if}}
+                          </span>
+                          <span rel="popover" title="Error" {{bindAttr data-content="errorMessage"}}>
+                            {{#if errorMessage}}
+                              <i class="icon-remove-sign"></i>
+                            {{/if}}
+                          </span>
+                        </div>
+                      {{/if}}
+                    </div>
                   </div>
-                </div>
-              {{/each}}
-            </form>
+                {{/each}}
+              </form>
+            </div>
           </div>
         </div>
       </div>
-    </div>
 
-    <div class="host-assignments span5">
-      {{#each masterHostMapping}}
-        <div class="mapping-box round-corners well">
-          <div class="hostString"><span>{{hostInfo}}</span></div>
-          {{#each masterServicesToDisplay}}
-            <span {{bindAttr class="isInstalled:assignedService:newService :round-corners"}}>{{display_name}}</span>
-          {{/each}}
-        </div>
-      {{/each}}
+      <div class="host-assignments span5">
+        {{#each masterHostMapping}}
+          <div class="mapping-box round-corners well">
+            <div class="hostString"><span>{{hostInfo}}</span></div>
+            {{#each masterServicesToDisplay}}
+              <span {{bindAttr class="isInstalled:assignedService:newService :round-corners"}}>{{display_name}}</span>
+            {{/each}}
+          </div>
+        {{/each}}
 
-      {{#if remainingHosts}}
-        <div class="remaining-hosts round-corners well">
-          <span><strong>{{remainingHosts}}</strong> {{t installer.step5.attention}}</span></div>
-      {{/if}}
+        {{#if remainingHosts}}
+          <div class="remaining-hosts round-corners well">
+            <span><strong>{{remainingHosts}}</strong> {{t installer.step5.attention}}</span></div>
+        {{/if}}
+      </div>
+      <div class="clearfix"></div>
     </div>
-    <div class="clearfix"></div>
+  {{else}}
+    <div class="spinner"></div>
+  {{/if}}
+  <div class="btn-area">
+    <a class="btn pull-left" {{action back href="true"}}>&larr; {{t common.back}}</a>
+    <a class="btn btn-success pull-right" {{bindAttr disabled="submitDisabled"}} {{action submit target="controller"}}>{{t common.next}} &rarr;</a>
   </div>
-{{else}}
-  <div class="spinner"></div>
-{{/if}}
-<div class="btn-area">
-  <a class="btn pull-left" {{action back href="true"}}>&larr; {{t common.back}}</a>
-  <a class="btn btn-success pull-right" {{bindAttr disabled="submitDisabled"}} {{action submit target="controller"}}>{{t common.next}} &rarr;</a>
-</div>
+</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/dceb41f7/ambari-web/app/templates/wizard/step8.hbs
----------------------------------------------------------------------
diff --git a/ambari-web/app/templates/wizard/step8.hbs b/ambari-web/app/templates/wizard/step8.hbs
index 71915f8..a713a9d 100644
--- a/ambari-web/app/templates/wizard/step8.hbs
+++ b/ambari-web/app/templates/wizard/step8.hbs
@@ -15,65 +15,66 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 }}
+<div id="deploy-review">
+  <h2>{{t installer.step8.header}}</h2>
 
-<h2>{{t installer.step8.header}}</h2>
-
-<div class="alert alert-info">
-  {{t installer.step8.body}}
-</div>
-
-{{#if controller.securityEnabled}}
-  <div class="alert alert-error">
-    {{t installer.step8.securityWarning}}
-  </div>
-{{/if}}
-
-<div id="step8-content" class="well pre-scrollable">
-  <div id="printReview">
-    <a class="btn btn-info pull-right" {{action printReview target="view"}}>{{t common.print}}</a> <br/>
+  <div class="alert alert-info">
+    {{t installer.step8.body}}
   </div>
-  <div id="step8-info">
-    {{#each item in controller.clusterInfo}}
-      <p>
-        <b>{{item.display_name}}</b> : {{item.config_value}}
-      </p>
-    {{/each}}
 
-    <p><b>{{controller.clusterInfo.repoInfo.display_name}}</b>:</p>
+  {{#if controller.securityEnabled}}
+    <div class="alert alert-error">
+      {{t installer.step8.securityWarning}}
+    </div>
+  {{/if}}
 
-    <div>
-      <ul>
-        {{#each item in controller.clusterInfo.repoInfo}}
-          <li>
-            <p><span class="text text-info">{{item.os_type}} ({{item.repo_id}}): <br/></span>{{item.base_url}}</p>
-          </li>
-        {{/each}}
-      </ul>
+  <div id="step8-content" class="well pre-scrollable">
+    <div id="printReview">
+      <a class="btn btn-info pull-right" {{action printReview target="view"}}>{{t common.print}}</a> <br/>
     </div>
+    <div id="step8-info">
+      {{#each item in controller.clusterInfo}}
+        <p>
+          <b>{{item.display_name}}</b> : {{item.config_value}}
+        </p>
+      {{/each}}
+
+      <p><b>{{controller.clusterInfo.repoInfo.display_name}}</b>:</p>
 
-    <div>
-      {{#if controller.services.length}}
-        <p><b>{{t menu.item.services}}:</b></p>
+      <div>
         <ul>
-          {{#each controller.services}}
+          {{#each item in controller.clusterInfo.repoInfo}}
             <li>
-              <em><b>{{display_name}}</b></em>
-              <ul>
-                {{#each component in this.service_components}}
-                  <li>
-                    <span class="text text-info">{{component.display_name }} : </span>{{component.component_value}}
-                  </li>
-                {{/each}}
-              </ul>
+              <p><span class="text text-info">{{item.os_type}} ({{item.repo_id}}): <br/></span>{{item.base_url}}</p>
             </li>
           {{/each}}
         </ul>
-      {{/if}}
+      </div>
+
+      <div>
+        {{#if controller.services.length}}
+          <p><b>{{t menu.item.services}}:</b></p>
+          <ul>
+            {{#each controller.services}}
+              <li>
+                <em><b>{{display_name}}</b></em>
+                <ul>
+                  {{#each component in this.service_components}}
+                    <li>
+                      <span class="text text-info">{{component.display_name }} : </span>{{component.component_value}}
+                    </li>
+                  {{/each}}
+                </ul>
+              </li>
+            {{/each}}
+          </ul>
+        {{/if}}
+      </div>
     </div>
   </div>
-</div>
-<div class="btn-area">
-  <a class="btn pull-left" {{bindAttr disabled="controller.isBackBtnDisabled"}} {{action back}}>&larr; {{t common.back}}</a>
-  <a class="btn btn-success pull-right"
-     id="spinner" {{bindAttr disabled="controller.isSubmitDisabled"}} {{action submit target="controller"}}>{{t common.deploy}} &rarr;</a>
-</div>
+  <div class="btn-area">
+    <a class="btn pull-left" {{bindAttr disabled="controller.isBackBtnDisabled"}} {{action back}}>&larr; {{t common.back}}</a>
+    <a class="btn btn-success pull-right"
+       id="spinner" {{bindAttr disabled="controller.isSubmitDisabled"}} {{action submit target="controller"}}>{{t common.deploy}} &rarr;</a>
+  </div>
+</div>
\ No newline at end of file