You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by mr...@apache.org on 2017/11/27 23:29:36 UTC

[24/30] ambari git commit: Merge trunk with feature branch and fix some UT compilation issues (mradhakrishnan)

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/create.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/create.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/create.html
index c5410c1..82f90b3 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/create.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/create.html
@@ -15,110 +15,237 @@
 * See the License for the specific language governing permissions and
 * limitations under the License.
 -->
-<form class="form-horizontal" role="form" name="form.instanceCreateForm" novalidate>
+<form role="form" id="create-instance-form" name="form.instanceCreateForm" novalidate>
 <div class="modal-header">
-  <h3 class="modal-title">{{'views.createViewInstance' | translate}}</h3>
+  <h1 class="modal-title">
+    <span ng-if="!instanceClone">
+      {{'views.create' | translate}}
+    </span>
+    <span ng-if="instanceClone">
+      {{'views.clone' | translate}}
+    </span>
+  </h1>
 </div>
-<div class="modal-body createViewModal">
-  <div class="view-header">
-    <img src="http://placehold.it/64x64" alt="" class="icon-big">
-    <img src="http://placehold.it/32x32" alt="" class="icon-small">
-    <div class="description">
-      <h3>{{view.ViewVersionInfo.view_name}}</h3>
-      <span>{{view.ViewVersionInfo.label}} | Version: {{view.ViewVersionInfo.version}}</span>
+<div class="modal-body" ng-hide="isLoading">
+
+  <div class="row">
+
+    <div class="form-group col-sm-6" ng-class="{ 'has-error': form.instanceCreateForm.view.$error.required && form.instanceCreateForm.submitted }">
+      <label for="view">
+        {{'views.createInstance.selectView' | translate}}<span>*</span>&nbsp;
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+      <select
+        ng-disabled="instanceClone"
+        class="form-control"
+        id="view"
+        name="view"
+        ng-model="formData.view"
+        ng-change="updateVersionOptions()"
+        ng-options="item.label for item in viewOptions"
+        required>
+      </select>
+      <span class="help-block validation-block" ng-show='form.instanceCreateForm.view.$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
+    </div>
+
+    <div class="form-group col-sm-6" ng-class="{ 'has-error': form.instanceCreateForm.version.$error.required && form.instanceCreateForm.submitted }">
+      <label for="version">
+        {{'views.createInstance.selectVersion' | translate}}<span>*</span>&nbsp;
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+      <select
+        ng-disabled="instanceClone"
+        class="form-control"
+        id="version"
+        name="version"
+        ng-model="formData.version"
+        ng-change="updateSettingsList()"
+        ng-options="item.label for item in versionOptions">
+      </select>
+      <span class="help-block validation-block" ng-show='form.instanceCreateForm.version.$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
     </div>
   </div>
-  
-    <div class="panel panel-default">
-      <div class="panel-heading">
-        <h3 class="panel-title">{{'common.details' | translate}}</h3>
-      </div>
-      <div class="panel-body">
-        <div class="form-group" 
-        ng-class="{'has-error' : ( (form.instanceCreateForm.instanceNameInput.$error.required || form.instanceCreateForm.instanceNameInput.$error.pattern) && form.instanceCreateForm.submitted) || instanceExists }"
-        >
-          <label for="" class="control-labe col-sm-2">{{'views.instanceName' | translate}}</label>
-          <div class="col-sm-10">
-            <input type="text" class="form-control" name="instanceNameInput" ng-pattern="nameValidationPattern" required ng-model="instance.instance_name">
 
-            <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.instanceNameInput.$error.required && form.instanceCreateForm.submitted'>
-              {{'common.alerts.fieldRequired' | translate}}
-            </div>
-            <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.instanceNameInput.$error.pattern && form.instanceCreateForm.submitted'>
-              {{'common.alerts.noSpecialChars' | translate}}
-            </div>
-            <div class="alert alert-danger no-margin-bottom top-margin" ng-show='instanceExists'>
-              {{'views.alerts.instanceExists' | translate}}
-            </div>
-          </div>
-        </div>
-        <div class="form-group"
-        ng-class="{'has-error' : ( (form.instanceCreateForm.displayLabel.$error.required || form.instanceCreateForm.displayLabel.$error.pattern) && form.instanceCreateForm.submitted)}">
-          <label for="" class="control-labe col-sm-2">{{'common.displayLabel' | translate}}</label>
-          <div class="col-sm-10">
-            <input type="text" class="form-control" name="displayLabel" ng-model="instance.label" required ng-pattern="nameValidationPattern">
+  <div class="details-section">
+    <h2>{{'common.details' | translate}}</h2>
+    <div class="form-group"
+         ng-class="{ 'has-error': (form.instanceCreateForm.instanceName.$error.required || form.instanceCreateForm.instanceName.$error.pattern || isInstanceExists) && form.instanceCreateForm.submitted }">
+      <label for="instanceName">
+        {{'views.instanceName' | translate}}<span>*</span>&nbsp;
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+      <input type="text" class="form-control"
+             ng-model="formData.instanceName"
+             name="instanceName"
+             id="instanceName"
+             ng-change="checkIfInstanceExist()"
+             ng-pattern="nameValidationPattern" required>
+      <span class="help-block validation-block"
+            ng-show='form.instanceCreateForm.instanceName.$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
+      <span class="help-block validation-block"
+            ng-show='form.instanceCreateForm.instanceName.$error.pattern && form.instanceCreateForm.submitted'>
+      {{'common.alerts.noSpecialChars' | translate}}
+    </span>
+      <span class="help-block validation-block" ng-show='isInstanceExists && form.instanceCreateForm.submitted'>
+        {{'views.alerts.instanceExists' | translate}}
+      </span>
+    </div>
 
-            <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.displayLabel.$error.required && form.instanceCreateForm.submitted'>
-              {{'common.alerts.fieldRequired' | translate}}
-            </div>
-            <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm.displayLabel.$error.pattern && form.instanceCreateForm.submitted'>
-              {{'common.alerts.noSpecialChars' | translate}}
-            </div>
-          </div>
-        </div>
-      </div>
-      <div class="form-group">
-          <div class="col-sm-10 col-sm-offset-2">
-            <button class="btn btn-default" ng-click="isAdvancedClosed = !isAdvancedClosed">{{'views.advanced' | translate}}</button>
-          </div>
-      </div>
-      <div collapse="isAdvancedClosed">
-        <div class="form-group">
-          <div class="col-sm-10 col-sm-offset-2">
-            <div class="checkbox">
-              <label>
-                <input type="checkbox" ng-model='instance.visible'> {{'views.visible' | translate}}
-              </label>
-            </div>
-          </div>
-        </div>
-        <div class="form-group">
-          <div class="col-sm-10 col-sm-offset-2">
-            <label for="" class="control-label col-sm-2">{{'views.icon' | translate}}</label>
-            <div class="col-sm-10">
-              <input type="text" class="form-control" name="iconUrl" ng-model="instance.icon_path">
-            </div>
-          </div>
-        </div>
-        <div class="form-group">
-          <div class="col-sm-10 col-sm-offset-2">
-            <label for="" class="control-label col-sm-2">{{'views.icon64' | translate}}</label>
-            <div class="col-sm-10">
-              <input type="text" class="form-control" name="icon64Url" ng-model="instance.icon64_path">
-            </div>
-          </div>
-        </div>
-      </div>
+    <div class="form-group" ng-class="{ 'has-error': form.instanceCreateForm.displayName.$error.required && form.instanceCreateForm.submitted }">
+      <label for="displayName">
+        {{'views.displayName' | translate}}<span>*</span>&nbsp;
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+      <input type="text" class="form-control" required
+             name="displayName"
+             ng-model="formData.displayName"
+             id="displayName">
+      <span class="help-block validation-block" ng-show='form.instanceCreateForm.displayName.$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
     </div>
 
-    <div class="panel panel-default">
-      <div class="panel-heading">
-        <h3 class="panel-title">{{'views.configuration' | translate}}</h3>
-      </div>
-      <div class="panel-body">
-      <div class="form-group" ng-repeat="parameter in instance.properties"
-        ng-class="{'has-error' : (form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted)}" >
-        <label for="" class="col-sm-3 control-label">{{parameter.description}}</label>
-        <div class="col-sm-9">
-          <input type="text" class="form-control"  name="{{parameter.name}}" ng-required="parameter.required" ng-model="parameter.value">
-          <div class="alert alert-danger no-margin-bottom top-margin" ng-show='form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted'>
-            {{'common.alerts.fieldRequired' | translate}}
-          </div>
+    <div class="form-group" ng-class="{ 'has-error': form.instanceCreateForm.description.$error.required && form.instanceCreateForm.submitted }">
+      <label for="description">
+        {{'views.description' | translate}}<span>*</span>&nbsp;
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+      <input type="text" class="form-control" required
+             name="description"
+             ng-model="formData.description"
+             id="description">
+      <span class="help-block validation-block" ng-show='form.instanceCreateForm.description.$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
+    </div>
+
+    <div class="form-group checkbox">
+      <input type="checkbox" class="form-control"
+             name="visible"
+             ng-model="formData.visible"
+             id="visible">
+      <label for="visible">
+        {{'views.visible' | translate}}
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+    </div>
+  </div>
+
+  <div class="settings-section" ng-show="nonClusterSettingsCount">
+    <h2>{{'views.settings' | translate}}</h2>
+    <div class="form-group"
+         ng-repeat="parameter in formData.settings | filter: { clusterConfig: false }"
+         ng-class="{ 'has-error': (form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted) || form.instanceCreateForm[parameter.name].validationError }">
+      <label ng-attr-for="{{parameter.name}}">
+        {{parameter.label || parameter.displayName}}{{parameter.required ? '*' : ''}}
+      </label>
+      <input class="form-control"
+             type="{{parameter.masked ? 'password' : 'text'}}"
+             ng-required="parameter.required"
+             ng-change="form.instanceCreateForm[parameter.name].validationError=''"
+             ng-attr-name="{{parameter.name}}"
+             popover="{{parameter.description}}"
+             popover-title="{{parameter.name}}"
+             popover-trigger="mouseenter"
+             placeholder="{{parameter.placeholder}}"
+             ng-model="parameter.value"
+             ng-attr-id="{{parameter.name}}">
+      <span class="help-block validation-block" ng-show='form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
+      <span class="help-block validation-block" ng-show='form.instanceCreateForm[parameter.name].validationError'>
+        {{form.instanceCreateForm[parameter.name].validationMessage}}
+      </span>
+    </div>
+  </div>
+
+  <div class="cluster-type-section">
+    <h2>{{'views.clusterConfiguration' | translate}}</h2>
+    <div class="form-group">
+      <label for="clusterType">
+        {{'views.createInstance.clusterType' | translate}}?&nbsp;
+        <i class="fa fa-question-circle" aria-hidden="true"></i>
+      </label>
+      <div>
+        <div class="btn-group" role="group" id="clusterType">
+          <button type="button" class="btn btn-default"
+                  ng-class="clusterType === 'LOCAL_AMBARI' && 'active'"
+                  ng-click="switchClusterType('LOCAL_AMBARI')">
+            {{'common.local' | translate}}
+          </button>
+          <button type="button" class="btn btn-default"
+                  ng-class="clusterType === 'REMOTE_AMBARI' && 'active'"
+                  ng-click="switchClusterType('REMOTE_AMBARI')">
+            {{'common.remote' | translate}}
+          </button>
+          <button type="button" class="btn btn-default"
+                  ng-if="clusterSettingsCount && clusterConfigurable"
+                  ng-class="clusterType === 'NONE' && 'active'"
+                  ng-click="switchClusterType('NONE')">
+            {{'views.custom' | translate}}
+          </button>
         </div>
       </div>
+    </div>
+    <div class="row">
+      <div class="form-group col-sm-6" ng-class="{ 'has-error': form.instanceCreateForm.clusterName.$error.required && form.instanceCreateForm.submitted }">
+        <label for="clusterName">
+          {{'views.clusterName' | translate}}<span>*</span>&nbsp;
+          <i class="fa fa-question-circle" aria-hidden="true"></i>
+        </label>
+        <select
+          ng-required="clusterType !== 'NONE'"
+          ng-disabled="clusterType === 'NONE'"
+          name="clusterName"
+          ng-options="item.label for item in clusterOptions"
+          class="form-control"
+          ng-model="formData.clusterName"
+          id="clusterName">
+        </select>
+        <span class="help-block validation-block" ng-show='form.instanceCreateForm.clusterName.$error.required && form.instanceCreateForm.submitted'>
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
+      </div>
+    </div>
+    <div class="cluster-configurations-section" ng-show="clusterSettingsCount && clusterConfigurable">
+      <div class="form-group"
+           ng-repeat="parameter in formData.settings | filter: { clusterConfig: true }"
+           ng-class="{ 'has-error': (form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted) || form.instanceCreateForm[parameter.name].validationError }">
+        <label ng-attr-for="{{parameter.name}}">
+          {{parameter.label || parameter.displayName}}{{parameter.required ? '*' : ''}}
+        </label>
+        <input class="form-control"
+               ng-disabled="clusterType !== 'NONE'"
+               type="{{parameter.masked ? 'password' : 'text'}}"
+               ng-required="clusterType === 'NONE' && parameter.required"
+               ng-change="form.instanceCreateForm[parameter.name].validationError=''"
+               ng-attr-name="{{parameter.name}}"
+               popover="{{parameter.description}}"
+               popover-title="{{parameter.name}}"
+               popover-trigger="mouseenter"
+               placeholder="{{parameter.placeholder}}"
+               ng-model="parameter.value"
+               ng-attr-id="{{parameter.name}}">
+        <span class="help-block validation-block" ng-show="form.instanceCreateForm[parameter.name].$error.required && form.instanceCreateForm.submitted && (clusterType === 'NONE')">
+        {{'common.alerts.fieldRequired' | translate}}
+      </span>
+        <span class="help-block validation-block" ng-show='form.instanceCreateForm[parameter.name].validationError'>
+        {{form.instanceCreateForm[parameter.name].validationMessage}}
+      </span>
       </div>
     </div>
-  
+  </div>
+
+
+</div>
+<div ng-if="isLoading" class="spinner-container">
+  <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i>
 </div>
 <div class="modal-footer">
   <button class="btn btn-default" ng-click="cancel()">{{'common.controls.cancel' | translate}}</button>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/edit.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/edit.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/edit.html
deleted file mode 100644
index aab526e..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/modals/edit.html
+++ /dev/null
@@ -1,138 +0,0 @@
-<!--
-* 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="modal-header">
-  <h3 class="modal-title">{{'views.edit' | translate}} {{instance.ViewInstanceInfo.view_name}}: {{instance.ViewInstanceInfo.label}}</h3>
-</div>
-<div class="modal-body">
-  <div class="panel panel-default">
-    <div class="panel-heading clearfix">
-      <h3 class="panel-title pull-left">{{'views.settings' | translate}}</h3>
-      <div class="pull-right">
-        <a href ng-click="edit.editSettingsDisabled = !edit.editSettingsDisabled" ng-show="edit.editSettingsDisabled"> <span class="glyphicon glyphicon-cog"></span> {{'views.edit' | translate}}</a>
-      </div>
-    </div>
-    <div class="panel-body">
-      <form class="form-horizontal">
-        <fieldset ng-disabled="edit.editSettingsDisabled">
-          <div class="form-group">
-            <label for="" class="col-sm-2 control-label">{{'views.instanceId' | translate}}</label>
-            <label for="" class="col-sm-10 control-label text-left">{{instance.ViewInstanceInfo.instance_name}}</label>
-          </div>
-          <div class="form-group">
-            <label for="" class="col-sm-2 control-label">{{'views.displayName' | translate}}</label>
-            <div class="col-sm-10"><input type="text" class="form-control" placeholder="{{'views.displayName' | translate}}" ng-model="settings.label"></div>
-          </div>
-          <div class="form-group">
-            <div class="col-sm-offset-2 col-sm-10">
-              <div class="checkbox">
-                <label>
-                  <input type="checkbox" ng-model="settings.visible"> {{'views.visible' | translate}}
-                </label>
-              </div>
-            </div>
-          </div>
-          <div class="form-group" ng-hide="edit.editSettingsDisabled">
-            <div class="col-sm-offset-2 col-sm-10">
-              <button class="btn btn-default pull-right left-margin" ng-click="cancelSettings()">{{'common.controls.cancel' | translate}}</button>
-              <button class="btn btn-primary pull-right" ng-click="saveSettings()">{{'common.controls.save' | translate}}</button>
-            </div>
-          </div>
-        </fieldset>
-      </form>
-    </div>
-  </div>
-
-  <div class="panel panel-default views-permissions-panel" style="">
-    <div class="panel-heading clearfix">
-      <h3 class="panel-title pull-left">{{'views.permissions' | translate}}</h3>
-      <div class="pull-right">
-        <a href ng-click="edit.editPermissionDisabled = !edit.editPermissionDisabled" ng-show="edit.editPermissionDisabled"> <span class="glyphicon glyphicon-cog"></span> {{'views.edit' | translate}}</a>
-      </div>
-    </div>
-    <div class="panel-body">
-      <form class="form-horizontal">
-        <div class="form-group">
-          <div class="col-sm-2"></div>
-          <label class="col-sm-5 control-label text-left">{{'common.users' | translate}}</label>
-          <label class="col-sm-5 control-label text-left">{{'common.groups' | translate}}</label>
-        </div>
-        <div class="form-group" ng-repeat="permission in permissions">
-          <label class="col-sm-2 control-label">{{permission.PermissionInfo.permission_name}}</label>
-          <div class="col-sm-5" ng-switch="edit.editPermissionDisabled">
-            <textarea name="" id="" cols="30" rows="4" class="form-control" ng-model="permissionsEdit[permission.PermissionInfo.permission_name].USER" ng-switch-when="false"></textarea>
-            <div class="well" ng-switch-when="true">
-              <span ng-repeat="user in permission.USER">
-                <link-to route="users.show" id="{{user}}">{{user}}</link-to>
-                <button type="button" class="close remove-button" 
-                  ng-click="removePermission(permission.name, 'USER', user)"><span aria-hidden="true">&times;</span><span class="sr-only">{{'common.controls.close' | translate}}</span></button>
-                {{$last ? '' :', '}}
-              </span>
-            </div>
-          </div>
-          <div class="col-sm-5" ng-switch="edit.editPermissionDisabled">
-            <textarea name="" id="" cols="30" rows="4" class="form-control" ng-model="permissionsEdit[permission.PermissionInfo.permission_name].GROUP" ng-switch-when="false"></textarea>
-            <div class="well" ng-switch-when="true">
-              <span ng-repeat="group in permission.GROUP">
-                <link-to route="groups.edit" id="{{group}}" >{{group}}</link-to>
-                <button type="button" class="close remove-button" 
-                  ng-click="removePermission(permission.name, 'GROUP', group)"><span aria-hidden="true">&times;</span><span class="sr-only">{{'common.controls.close' | translate}}</span></button>
-                {{$last ? '' :', '}}
-              </span>
-            </div>
-          </div>
-        </div>
-        <div class="form-group" ng-hide="edit.editPermissionDisabled">
-          <div class="col-sm-offset-2 col-sm-10">
-            <button class="btn btn-default pull-right left-margin" ng-click="cancelPermissions()">{{'common.controls.cancel' | translate}}</button>
-            <button class="btn btn-primary pull-right" ng-click="savePermissions()">{{'common.controls.save' | translate}}</button>
-          </div>
-        </div>
-      </form>
-        
-    </div>
-  </div>
-
-  <div class="panel panel-default">
-    <div class="panel-heading clearfix">
-      <h3 class="panel-title pull-left">{{'views.configuration' | translate}}</h3>
-      <div class="pull-right">
-        <a href ng-click="edit.editConfigurationDisabled = !edit.editConfigurationDisabled" ng-show="edit.editConfigurationDisabled"> <span class="glyphicon glyphicon-cog"></span> {{'views.edit' | translate}}</a>
-      </div>
-    </div>
-    <div class="panel-body">
-      <form action="" class="form-horizontal">
-        <fieldset ng-disabled="edit.editConfigurationDisabled">
-          <div class="form-group" ng-repeat="(propertyName, propertyValue) in configuration">
-            <label for="" class="control-label col-sm-3">{{propertyName}}</label>
-            <div class="col-sm-9"><input type="text" class="form-control" ng-model="configuration[propertyName]"></div>
-          </div>
-          <div class="form-group" ng-hide="edit.editConfigurationDisabled">
-            <div class="col-sm-offset-2 col-sm-10">
-              <button class="btn btn-default pull-right left-margin" ng-click="cancelConfiguration()">{{'common.controls.cancel' | translate}}</button>
-              <button class="btn btn-primary pull-right" ng-click="saveConfiguration()">{{'common.controls.save' | translate}}</button>
-            </div>
-          </div>
-        </fieldset>
-      </form>
-    </div>
-  </div>
-</div>
-<div class="modal-footer">
-  <button class="btn btn-default" ng-click="close()">{{'common.controls.save' | translate}}</button>
-</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
new file mode 100644
index 0000000..04901f1
--- /dev/null
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/ambariViews/viewsList.html
@@ -0,0 +1,151 @@
+<!--
+* 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="views-table">
+
+    <div class="clearfix">
+        <div class="pull-right">
+            <button ng-disabled="views.length === 0" ng-click="createInstance();" class="btn btn-default">
+                {{'views.create' | translate}}
+            </button>
+        </div>
+    </div>
+
+    <table class="table table-striped table-hover">
+        <thead>
+        <tr class="fix-bottom">
+            <th class="col-md-2">
+                <span>{{'common.name' | translate}}</span>
+            </th>
+            <th class="col-md-3">
+                <span>{{'urls.url' | translate}}</span>
+            </th>
+            <th class="col-md-2">
+                <span>{{'views.table.viewType' | translate}}</span>
+            </th>
+            <th class="col-md-2">
+                <span>{{'urls.viewInstance' | translate}}</span>
+            </th>
+            <th class="col-md-2 entity-actions">
+                <span>{{'common.actions' | translate}}</span>
+            </th>
+        </tr>
+        <tr class="fix-top">
+            <th>
+                <div class="search-container">
+                    <input type="text" class="form-control" placeholder="{{'common.any' | translate}}"
+                           ng-model="instanceNameFilter" ng-change="filterInstances()">
+                    <button type="button" class="close clearfilter" ng-show="instanceNameFilter"
+                            ng-click="instanceNameFilter=''; filterInstances()">
+                        <span aria-hidden="true">&times;</span>
+                        <span class="sr-only">{{'common.controls.close' | translate}}</span>
+                    </button>
+                </div>
+            </th>
+            <th>
+                <div class="search-container">
+                    <input type="text" class="form-control" placeholder="{{'common.any' | translate}}"
+                           ng-model="instanceUrlFilter" ng-change="filterInstances()">
+                    <button type="button" class="close clearfilter" ng-show="instanceUrlFilter"
+                            ng-click="instanceUrlFilter=''; filterInstances()">
+                        <span aria-hidden="true">&times;</span>
+                        <span class="sr-only">{{'common.controls.close' | translate}}</span>
+                    </button>
+                </div>
+            </th>
+            <th>
+                <select class="form-control typefilter v-small-input"
+                        ng-model="instanceTypeFilter"
+                        ng-options="item.label for item in typeFilterOptions"
+                        ng-change="filterInstances()">
+                </select>
+            </th>
+            <th></th>
+            <th></th>
+        </tr>
+        </thead>
+
+        <tbody>
+        <tr ng-repeat="instance in instances | filter : { isShowed: true }">
+            <td>
+                <span>{{instance.short_url_name}}</span>
+            </td>
+            <td>
+                <a target="_blank"
+                   href="{{fromSiteRoot('/#/main/view/' + instance.view_name + '/' + instance.short_url)}}">/main/view/{{instance.view_name}}/{{instance.short_url}}
+                    &nbsp;<i class="fa fa-external-link" aria-hidden="true"></i></a>
+            </td>
+            <td>
+                <span>{{instance.view_name}} {{"{"+instance.version+"}"}} </span>
+            </td>
+            <td>
+                <span>{{instance.instance_name}}</span>
+            </td>
+            <td class="entity-actions" ng-switch="instance.versionObj.status">
+                <span ng-switch-when="PENDING">
+                    <i class="viewstatus pending"></i>
+                    {{'views.pending' | translate}}
+                </span>
+                <span ng-switch-when="DEPLOYING">
+                    <div class="viewstatus deploying">
+                        <div class="rect1"></div>
+                        <div class="rect2"></div>
+                        <div class="rect3"></div>
+                    </div>
+                    {{'views.deploying' | translate}}
+                </span>
+
+                <span ng-switch-when="DEPLOYED">
+                    <a  href="#/views/{{instance.view_name}}/versions/{{instance.version}}/instances/{{instance.instance_name}}/edit">
+                        <i class="fa fa-pencil"></i>
+                    </a>
+                    <a href ng-click="cloneInstance(instance);">
+                        <i class="fa fa-copy"></i>
+                    </a>
+                    <a href ng-click="deleteInstance(instance)">
+                        <i class="fa fa-trash-o"></i>
+                    </a>
+                </span>
+                <span ng-switch-when="ERROR" class="error" tooltip="{{'views.alerts.deployError' | translate}}">
+                    <i class="fa fa-exclamation-triangle"></i>
+                    {{'common.error' | translate}}
+                </span>
+            </td>
+        </tr>
+        </tbody>
+    </table>
+    <div ng-if="isLoading" class="spinner-container">
+      <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i>
+    </div>
+    <div class="alert empty-table-alert col-sm-12" ng-show="!tableInfo.filtered && !isLoading">
+        {{'views.emptyTable'| translate}}
+    </div>
+    <div class="col-sm-12 table-bar" ng-show="instances.length >= minInstanceForPagination">
+        <div class="pull-left filtered-info">
+            <span>{{'common.filterInfo' | translate: '{showed: tableInfo.showed, total: tableInfo.filtered, term: urs.urls}'}}</span>
+            <span ng-show="isNotEmptyFilter">- <a href ng-click="clearFilters()">{{'common.controls.clearFilters' | translate}}</a></span>
+        </div>
+        <div class="pull-right left-margin">
+            <pagination class="paginator" total-items="tableInfo.filtered" max-size="maxVisiblePages" items-per-page="instancesPerPage" ng-model="currentPage" ng-change="pageChanged()"></pagination>
+        </div>
+        <div class="pull-right">
+            <select class="form-control" ng-model="instancesPerPage" ng-change="resetPagination()" ng-options="currOption for currOption in [10, 25, 50, 100]"></select>
+        </div>
+    </div>
+
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/authentication/main.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/authentication/main.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/authentication/main.html
index fddedb9..0275a21 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/authentication/main.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/authentication/main.html
@@ -58,10 +58,8 @@
         </div>
       </div>
       <div class="form-group">
+        <input type="checkbox" id="ssl" ng-model="connectivity.ssl" class="col-sm-8">
         <label for="ssl" class="control-label col-sm-4">{{'authentication.connectivity.ssl' | translate}}</label>
-        <div class="col-sm-8">
-          <input type="checkbox" id="ssl" ng-model="connectivity.ssl">
-        </div>
       </div>
       <div class="form-group">
         <label for="trust-store" class="control-label col-sm-4">{{'authentication.connectivity.trustStore.label' | translate}}</label>
@@ -121,12 +119,12 @@
       <form class="form-horizontal" ng-submit="detectAttributes()">
         <div class="form-group col-sm-12">{{'authentication.attributes.detection.label' | translate}}</div>
         <div class="form-group">
+          <input type="radio" id="manual-detection" name="detection" ng-model="attributes.detection" ng-disabled="isAttributeDetectionRunning" value="manual">
           <label for="manual-detection" class="col-sm-12">
-            <input type="radio" id="manual-detection" name="detection" ng-model="attributes.detection" ng-disabled="isAttributeDetectionRunning" value="manual">
             {{'authentication.attributes.detection.options.manual' | translate}}
           </label>
+          <input type="radio" id="auto-detection" name="detection" ng-model="attributes.detection" ng-disabled="isAttributeDetectionRunning" value="auto">
           <label for="auto-detection" class="col-sm-12">
-            <input type="radio" id="auto-detection" name="detection" ng-model="attributes.detection" ng-disabled="isAttributeDetectionRunning" value="auto">
             {{'authentication.attributes.detection.options.auto' | translate}}
           </label>
         </div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/clusterInformation.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/clusterInformation.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/clusterInformation.html
new file mode 100644
index 0000000..ead73c3
--- /dev/null
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/clusterInformation.html
@@ -0,0 +1,87 @@
+<!--
+* 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="cluster-information">
+  <div ng-show="cluster.Clusters.provisioning_state !== 'INSTALLED'">
+    <div class="welcome-header">
+      <h1>{{'main.title' | translate}}</h1>
+      <span>{{'main.noClusterDescription' | translate}}</span>
+    </div>
+    <div class="create-cluster-section">
+      <h2>{{'main.createCluster.title' | translate}}</h2>
+      <div>
+        <span>
+          {{'main.createCluster.description' | translate}}
+        </span>
+      </div>
+      <div><i class="fa fa-cloud" aria-hidden="true"></i></div>
+      <div>
+        <a href="{{fromSiteRoot('/#/installer/step0')}}" class="btn btn-primary">
+          {{'main.createCluster.launchInstallWizard' | translate}}
+        </a>
+      </div>
+    </div>
+  </div>
+
+  <div ng-show="cluster.Clusters.provisioning_state === 'INSTALLED'">
+    <form class="row" name="editClusterNameForm" ng-submit="confirmClusterNameChange()">
+      <div class="form-group col-xs-4 cluster-name"
+           ng-class="{'has-error': editClusterNameForm.clusterName.$invalid}">
+        <label for="clusterName">{{'views.clusterName' | translate}}*</label>
+        <input type="text"
+               class="form-control"
+               id="clusterName"
+               name="clusterName"
+               ng-change="toggleSaveButton()"
+               ng-model="edit.clusterName"
+               required
+               autofocus
+               ng-pattern="/^\w*$/"
+               ng-maxlength="80"
+               tooltip="{{'common.renameClusterTip' | translate}}"
+               tooltip-trigger="focus"
+               tooltip-placement="bottom"
+               ng-class="{edited: isClusterNameEdited}">
+        <button
+          type="submit"
+          ng-class="{'disabled': editClusterNameForm.clusterName.$invalid}"
+          class="btn btn-default pull-right"
+          ng-show="isClusterNameEdited">
+          {{'common.controls.save' | translate}}
+        </button>
+      </div>
+    </form>
+    <div>
+      <div class="row dev-blueprint">
+        <div class="col-sm-11"><span>{{'clusters.devBlueprint' | translate}}</span></div>
+        <div class="col-sm-1">
+          <div class="btn btn-default pull-right" ng-click="downloadBlueprint()">{{"common.download" | translate}}
+          </div>
+        </div>
+      </div>
+      <textarea type="text"
+                rows="20"
+                class="form-control"
+                name="blueprint_text"
+                ng-model="blueprint"
+                ng-disabled="true"
+                ng-readonly="true">
+      </textarea>
+    </div>
+  </div>
+</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/exportBlueprint.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/exportBlueprint.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/exportBlueprint.html
deleted file mode 100644
index 6ccbffe..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/exportBlueprint.html
+++ /dev/null
@@ -1,40 +0,0 @@
-<!--
-* 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="cluster-manage-access-pane" data-ng-init="getBlueprint()" ng-controller="ExportBlueprintCtrl">
-  <div class="clearfix">
-    <ol class="breadcrumb pull-left">
-      <li class="active">{{clusterName}} {{'common.blueprint' | translate}}</li>
-    </ol>
-    <div class="pull-right top-margin-4">
-      <div class="pull-right top-margin-4">
-        <div class="btn btn-default" ng-click="downloadBlueprint()">{{"common.download" | translate}}</div>
-      </div>
-    </div>
-  </div>
-  <hr>
-  <div>
-    <textarea type="text"
-               rows="20"
-               class="form-control"
-               name="blueprint_text"
-               ng-model="blueprint"
-               ng-disabled="true"
-               ng-readonly="true">
-    </textarea>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/manageAccess.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/manageAccess.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/manageAccess.html
deleted file mode 100644
index a399eff..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/manageAccess.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!--
-* 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="cluster-manage-access-pane">
-  <div class="clearfix">
-    <ol class="breadcrumb pull-left">
-      <li class="active">{{clusterName}} {{'common.roles' | translate}}</li>
-    </ol>
-  </div>
-  <hr>
-  <div class="pull-right">
-    <div class="layout-switch-icon-wrapper">
-      <i class="glyphicon glyphicon-th-large layout-switch-icon"></i>
-      <p class="label-block">{{'common.blockViewLabel' | translate}}</p>
-    </div>
-    <div class="layout-switch-icon-wrapper disabled">
-      <i class="glyphicon glyphicon-list layout-switch-icon" ng-click="switchToList()" tooltip-html-unsafe="{{'clusters.switchToList' | translate}}"></i>
-      <p class="label-list">{{'common.listViewLabel' | translate}}</p>
-    </div>
-  </div>
-  <table class="table">
-    <thead>
-      <tr>
-        <th class="col-sm-2" width="20%">
-          <label>{{'common.roles' | translate}}</label>&nbsp;
-          <i class="glyphicon glyphicon-question-sign green-icon cursor-pointer" ng-click="showHelpPage()"></i>
-        </th>
-        <th class="col-sm-5" width="40%"><label>{{'clusters.assignRoles' | translate: '{term: getConstant("common.users")}'}}</label></th>
-        <th class="col-sm-5" width="40%"><label>{{'clusters.assignRoles' | translate: '{term: getConstant("common.groups")}'}}</label></th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr ng-repeat="permission in permissions">
-        <td><label class="" tooltip="{{permission.PermissionInfo.permission_name}}">{{permission.PermissionInfo.permission_label}}</label></td>
-        <td>
-          <div class="" ng-switch="isEditMode">
-            <editable-list items-source="permissionsEdit[permission.PermissionInfo.permission_name].USER" resource-type="User" editable="true"></editable-list>
-          </div>
-        </td>
-        <td>
-          <div class="" ng-switch="isEditMode">
-            <editable-list items-source="permissionsEdit[permission.PermissionInfo.permission_name].GROUP" resource-type="Group" editable="true"></editable-list>
-          </div>
-        </td>
-      </tr>
-    </tbody>
-  </table>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/userAccessList.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/userAccessList.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/userAccessList.html
deleted file mode 100644
index 8b29157..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/clusters/userAccessList.html
+++ /dev/null
@@ -1,102 +0,0 @@
-<!--
-* 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="users-pane">
-  <div class="clearfix">
-    <ol class="breadcrumb pull-left">
-      <li class="active">{{clusterId}} {{'common.roles' | translate}}</li>
-    </ol>
-  </div>
-  <hr>
-  <div class="pull-right">
-    <div class="layout-switch-icon-wrapper disabled">
-      <i class="glyphicon glyphicon-th-large layout-switch-icon" ng-click="switchToBlock()" tooltip-html-unsafe="{{'clusters.switchToBlock' | translate}}"></i>
-      <p class="label-block">{{'common.blockViewLabel' | translate}}</p>
-    </div>
-    <div class="layout-switch-icon-wrapper">
-      <i class="glyphicon glyphicon-list layout-switch-icon"></i>
-      <p class="label-list">{{'common.listViewLabel' | translate}}</p>
-    </div>
-  </div>
-  <ul class="nav nav-pills">
-    <li ng-class="{'active': isUserActive}"><a ng-click="switchToUser()">{{'common.users' | translate}}</a></li>
-    <li ng-class="{'active': !isUserActive}"><a ng-click="switchToGroup()">{{'common.groups' | translate}}</a></li>
-  </ul>
-  <br/>
-  <table class="table table-striped table-hover">
-    <thead>
-    <tr>
-      <th class="role-name-column">
-        <div class="search-container">
-          <label for="">{{'common.name' | translate}}</label>
-          <input type="text" class="form-control namefilter" placeholder="{{'common.any' | translate}}" ng-model="currentNameFilter" ng-change="resetPagination()">
-          <button type="button" class="close clearfilter" ng-show="currentNameFilter" ng-click="currentNameFilter=''; resetPagination()">
-            <span aria-hidden="true">&times;</span><span class="sr-only">{{'common.controls.close' | translate}}</span>
-          </button>
-        </div>
-      </th>
-      <th>
-        <label for="">{{'clusters.role' | translate}}</label>&nbsp;
-        <i class="glyphicon glyphicon-question-sign green-icon cursor-pointer" ng-click="showHelpPage()"></i>
-        <select class="form-control statusfilter"
-                ng-model="currentRoleFilter"
-                ng-options="item.label for item in roleFilterOptions"
-                ng-change="resetPagination()">
-        </select>
-      </th>
-    </tr>
-    </thead>
-    <tbody>
-    <tr ng-repeat="user in users">
-      <td>
-        <a href="#/{{user.url}}">{{user.principal_name}}</a>
-      </td>
-      <td>
-        <div ng-show="!user.editable">{{user.permission_label}}</div>
-        <select class="form-control role-select" ng-show="user.editable" ng-model="user.permission_name"
-                ng-options="role.permission_name as role.permission_label for role in roleValueOptions">
-        </select>
-        <span ng-show="user.principal_type != $parent.currentTypeFilter.value">&nbsp;{{'common.fromGroupMark' | translate}}</span>
-        <span ng-show="user.permission_name != user.original_perm">
-          <button class="btn btn-default btn-xs cancel" ng-click="cancel(user)">
-            <span class="glyphicon glyphicon-remove cancel"></span>
-          </button>
-          <button class="btn btn-primary btn-xs" ng-click="save(user)">
-            <span class="glyphicon glyphicon-ok"></span>
-          </button>
-        </span>
-      </td>
-    </tr>
-    </tbody>
-  </table>
-  <div class="alert alert-info col-sm-12" ng-show="!users.length">
-    {{'common.alerts.nothingToDisplay' | translate: '{term: (isUserActive ? constants.users : constants.groups)}'}}
-  </div>
-  <div class="col-sm-12 table-bar">
-    <div class="pull-left filtered-info">
-      <span>{{'common.filterInfo' | translate: '{showed: tableInfo.showed, total: tableInfo.total, term: (isUserActive ? constants.users : constants.groups)}'}}</span>
-      <span ng-show="isNotEmptyFilter">- <a href ng-click="clearFilters()">{{'common.controls.clearFilters' | translate}}</a></span>
-    </div>
-    <div class="pull-right left-margin">
-      <pagination class="paginator" total-items="totalUsers" max-size="maxVisiblePages" items-per-page="usersPerPage" ng-model="currentPage" ng-change="pageChanged()"></pagination>
-    </div>
-    <div class="pull-right">
-      <select class="form-control" ng-model="usersPerPage" ng-change="usersPerPageChanges()" ng-options="currOption for currOption in [10, 25, 50, 100]"></select>
-    </div>
-  </div>
-</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/create.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/create.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/create.html
deleted file mode 100644
index 9a0e0fb..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/create.html
+++ /dev/null
@@ -1,43 +0,0 @@
-<!--
-* 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.
--->
-<ol class="breadcrumb">
-  <li><a href="#/groups">{{'common.groups' | translate}}</a></li>
-  <li class="active">{{'groups.createLocal' | translate}}</li>
-</ol>
-<hr>
-<form class="form-horizontal" role="form" novalidate name="form" autocomplete="off">
-  <div class="form-group" ng-class="{'has-error' : (form.group_name.$error.required || form.group_name.$error.pattern) && form.submitted}">
-    <label for="groupname" class="col-sm-2 control-label">{{'groups.name' | translate}}</label>
-    <div class="col-sm-10">
-      <input type="text" id="groupname" class="form-control groupname-input" name="group_name" placeholder="{{'groups.name' | translate}}" ng-model="group.group_name" required ng-pattern="/^([a-zA-Z0-9._\s]+)$/" autocomplete="off">
-      <div class="alert alert-danger top-margin" ng-show="form.group_name.$error.required && form.submitted">
-        {{'common.alerts.fieldIsRequired' | translate}}
-      </div>
-      <div class="alert alert-danger top-margin" ng-show="form.group_name.$error.pattern && form.submitted">
-        {{'common.alerts.onlySimpleChars' | translate}}
-      </div>
-    </div>
-  </div>
-  <div class="form-group">
-    <div class="col-sm-offset-2 col-sm-10">
-      <button class="btn btn-primary groupcreate-btn pull-right left-margin" ng-click="createGroup()">{{'common.controls.save' | translate}}</button>
-      <a href ng-click="cancel()" class="btn btn-default pull-right cancel-button">{{'common.controls.cancel' | translate}}</a>
-    </div>
-  </div>
-      
-</form>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/edit.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/edit.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/edit.html
deleted file mode 100644
index 1aafd03..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/edit.html
+++ /dev/null
@@ -1,98 +0,0 @@
-<!--
-* 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="clearfix">
-  <ol class="breadcrumb pull-left">
-    <li><a href="#/groups">{{'common.groups' | translate}}</a></li>
-    <li class="active">{{group.group_name}}</li>
-  </ol>
-  <div class="pull-right top-margin-4">
-  <div ng-switch="group.group_type != 'LOCAL'">
-      <button ng-switch-when="true" class="btn disabled deletegroup-btn deleteuser-btn" tooltip="{{'common.cannotDelete' | translate: '{term: constants.group}'}}">{{'common.delete' | translate: '{term: constants.group}'}}</button>
-      <button ng-switch-when="false" class="btn btn-danger deletegroup-btn" ng-click="deleteGroup(group)">{{'common.delete' | translate: '{term: constants.group}'}}</button>
-    </div>
-      
-  </div>
-</div>
-<hr>
-<form class="form-horizontal group-edit" role="form" novalidate name="form" >
-  <div class="form-group">
-    <label for="" class="col-sm-2 control-label">{{'common.type' | translate}}</label>
-    <div class="col-sm-10">
-      <label for="" class="control-label">{{group.groupTypeName | translate}}</label>
-    </div>
-  </div>
-  <div class="form-group">
-    <label for="members" class="col-sm-2 control-label">{{group.groupTypeName | translate}} {{'groups.members' | translate}}</label>
-    <div class="col-sm-10">
-      <editable-list items-source="group.editingUsers" resource-type="User" editable="group.group_type == 'LOCAL'"></editable-list>
-    </div>
-  </div>
-
-  <div class="form-group">
-      <label for="" class="col-sm-2 control-label">{{'common.privileges' | translate}}</label>
-      <div class="col-sm-10">
-        <table class="table" ng-hide="hidePrivileges">
-          <thead>
-            <tr>
-              <th>{{'common.cluster' | translate}}</th>
-              <th>{{'common.clusterRole' | translate}}</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr ng-repeat="(name, privilege) in privileges.clusters">
-              <td>
-                <span class="glyphicon glyphicon-cloud"></span> 
-                <a href="#/clusters/{{name}}/manageAccess">{{name}}</a>
-              </td>
-              <td>
-                <span tooltip="{{item}}" ng-repeat="item in privilege">{{item | translate}}{{$last ? '' : ', '}}</span>
-              </td>
-            </tr>
-            <tr>
-              <td ng-show="noClusterPriv">{{'common.alerts.noPrivileges' | translate: '{term: constants.cluster}'}}</td>
-            </tr>
-          </tbody>
-          <thead class="view-permission-header">
-            <tr>
-              <th>{{'common.view' | translate}}</th>
-              <th>{{'common.viewPermissions' | translate}}</th>
-            </tr>
-          </thead>
-          <tbody>
-            <tr ng-repeat="(name, privilege) in privileges.views">
-              <td>
-                <span class="glyphicon glyphicon-th"></span>
-                <a href="#/views/{{privilege.view_name}}/versions/{{privilege.version}}/instances/{{name}}/edit">{{name}}</a>
-              </td>
-              <td>
-                <span tooltip="{{item}}" ng-repeat="item in privilege.privileges">{{item | translate}}{{$last ? '' : ', '}}</span>
-              </td>
-              <td>
-                <i class="fa fa-trash-o" aria-hidden="true" ng-click="removePrivilege(name, privilege);"></i>
-              </td>
-            </tr>
-            <tr>
-              <td ng-show="noViewPriv">{{'common.alerts.noPrivileges' | translate: '{term: constants.view}'}}</td>
-            </tr>
-          </tbody>
-        </table>
-        <div class="alert alert-info hide-soft" ng-class="{'visible' : !privileges}">{{'common.alerts.noPrivilegesDescription' | translate: '{term: constants.group.toLowerCase()}'}}</div>
-      </div>
-    </div>
-</form>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/list.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/list.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/list.html
deleted file mode 100644
index 8457065..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/groups/list.html
+++ /dev/null
@@ -1,79 +0,0 @@
-<!--
-* 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="groups-pane">
-  <div class="clearfix">
-    <ol class="breadcrumb pull-left">
-      <li class="active">{{'common.groups' | translate}}</li>
-    </ol>
-    <div class="pull-right top-margin-4">
-      <link-to route="groups.create" class="btn btn-primary creategroup-btn"><span class="glyphicon glyphicon-plus"></span> {{'groups.createLocal' | translate}}</link-to>
-    </div>
-  </div>
-  <hr>
-  <table class="table table-striped table-hover col-sm-12">
-    <thead>
-      <tr>
-        <th class="col-sm-8">
-          <div class="search-container">
-            <label for="">{{'groups.name' | translate}}</label>
-            <input type="text" class="form-control namefilter" placeholder="{{'common.any' | translate}}" ng-model="currentNameFilter" ng-change="resetPagination()">
-            <button type="button" class="close" ng-show="currentNameFilter" ng-click="currentNameFilter=''; resetPagination()"><span aria-hidden="true">&times;</span><span class="sr-only">{{'common.controls.close' | translate}}</span></button>
-          </div>
-        </th>
-        <th class="col-sm-2">
-          <label for="">{{'common.type' | translate}}</label>
-          <select class="form-control typefilter"
-            ng-model="currentTypeFilter"
-            ng-options="item.label for item in typeFilterOptions"
-            ng-change="resetPagination();">
-          </select>
-        </th>
-        <th class="col-sm-2 vertical-top">
-          <label for="">{{'groups.members' | translate}}</label>
-        </th>
-      </tr>
-    </thead>
-    <tbody>
-      <tr ng-repeat="group in groups">
-        <td class="col-sm-8">
-          <link-to route="groups.edit" class="link-to-group" id="{{group.group_name}}">{{group.group_name}}</link-to>
-        </td>
-        <td class="col-sm-2">{{group.groupTypeName | translate}}</td>
-        <td class="col-sm-2">{{'groups.membersPlural' | translate: '{n: group.members && group.members.length || 0}'}}</td>
-      </tr>
-    </tbody>
-  </table>
-  <div ng-if="isLoading" class="spinner-container">
-    <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i>
-  </div>
-  <div class="alert alert-info col-sm-12" ng-show="!groups.length && !isLoading">
-    {{'common.alerts.nothingToDisplay' | translate: '{term: constants.groups}'}}
-  </div>
-  <div class="col-sm-12 table-bar">
-    <div class="pull-left filtered-info">
-      <span>{{'common.filterInfo' | translate: '{showed: tableInfo.showed, total: tableInfo.total, term: constants.groups}'}}</span>
-      <span ng-show="isNotEmptyFilter">- <a href ng-click="clearFilters()">{{'common.controls.clearFilters' | translate}}</a></span>
-    </div>
-    <div class="pull-right left-margin">
-      <pagination class="paginator" total-items="totalGroups" max-size="maxVisiblePages" items-per-page="groupsPerPage" ng-model="currentPage" ng-change="pageChanged()"></pagination>
-    </div>
-    <div class="pull-right">
-      <select class="form-control" ng-model="groupsPerPage" ng-change="groupsPerPageChanges()" ng-options="currOption for currOption in [10, 25, 50, 100]"></select>
-    </div>
-  </div>
-</div>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/leftNavbar.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/leftNavbar.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/leftNavbar.html
deleted file mode 100644
index a7fc18a..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/leftNavbar.html
+++ /dev/null
@@ -1,126 +0,0 @@
-<!--
-* 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="left-navbar" xmlns="http://www.w3.org/1999/html">
-  <div class="panel panel-default">
-    <div class="panel-heading"><span class="glyphicon glyphicon-cloud"></span> {{'common.clusters' | translate}}</div>
-    <div class="panel-body">
-      <div class="cluster-section" ng-show="cluster">
-        <div id="cluster-name"  ng-switch on="editCluster.editingName">
-          <h5 ng-switch-when="false"><div title={{cluster.Clusters.cluster_name}} class="clusterDisplayName">{{clusterDisplayName()}}</div>
-            <i ng-show="cluster.Clusters.provisioning_state == 'INSTALLED'"
-               ng-click="toggleEditName()"
-               class="glyphicon glyphicon-edit pull-right edit-cluster-name renameCluster" tooltip="{{'common.renameCluster' | translate}}">
-            </i>
-          </h5>
-
-          <form ng-keyup="toggleEditName($event)"
-                tabindex="1"
-                name="editClusterNameForm"
-                class="editClusterNameForm"
-                ng-switch-when="true"
-                ng-submit="editCluster.name !== cluster.Clusters.cluster_name && editClusterNameForm.newClusterName.$valid && confirmClusterNameChange()">
-            <div class="form-group"
-                 ng-class="{'has-error': editClusterNameForm.newClusterName.$invalid && !editClusterNameForm.newClusterName.$pristine }">
-              <input
-                  autofocus
-                  type="text"
-                  name="newClusterName"
-                  ng-required="true"
-                  ng-pattern="/^\w*$/"
-                  ng-trim="false"
-                  ng-model="editCluster.name"
-                  class="form-control input-sm"
-                  ng-maxlength="80"
-                  tooltip="{{'common.renameClusterTip' | translate}}"
-                  tooltip-trigger="focus">
-              <button ng-click="toggleEditName()"
-                      class="btn btn-xs">
-                <i class="glyphicon glyphicon-remove"></i>
-              </button>
-              <button
-                  type="submit"
-                  class="btn btn-primary btn-xs"
-                  ng-class="{'disabled': editClusterNameForm.newClusterName.$invalid || editCluster.name == cluster.Clusters.cluster_name}">
-                <i class="glyphicon glyphicon-ok"></i>
-              </button>
-            </div>
-          </form>
-
-        </div>
-
-        <ul class="nav nav-pills nav-stacked" ng-show="cluster.Clusters.provisioning_state == 'INSTALLED' ">
-          <li ng-class="{active: isActive('clusters.manageAccess') || isActive('clusters.userAccessList')}">
-            <a href="#/clusters/{{cluster.Clusters.cluster_name}}/manageAccess" class="permissions">{{'common.roles' | translate}}</a>
-          </li>
-          <li><a href="{{fromSiteRoot('/#/dashboard')}}" class="gotodashboard">{{'common.goToDashboard' | translate}}</a></li>
-          <li ng-class="{active: isActive('clusters.exportBlueprint')}">
-            <a href="#/clusters/{{cluster.Clusters.cluster_name}}/exportBlueprint" class="exportblueprint">{{'common.exportBlueprint' | translate}}</a>
-          </li>
-        </ul>
-        <span class="cluster-installation-progress-label" ng-show="cluster.Clusters.provisioning_state == 'INIT'"><a href="{{fromSiteRoot('/#/')}}">{{'common.clusterCreationInProgress' | translate}}</a></span>
-      </div>
-
-
-      <div ng-hide="cluster">
-        <ul class="nav nav-pills nav-stacked">
-          <li><p class="noclusters">{{'common.noClusters' | translate}}</p></li>
-        </ul>
-      </div>
-      <ul class="nav nav-pills nav-stacked" >
-        <li ng-class="{active: isActive('stackVersions.list')}" ng-show="cluster && totalRepos > 0">
-          <a href="#/stackVersions">{{'common.versions' | translate}}</a>
-        </li>
-        <li ng-class="{active: isActive('remoteClusters.list')}">
-          <a href="#/remoteClusters">{{'common.remoteClusters' | translate}}</a>
-        </li>
-      </ul>
-    </div>
-  </div>
-
-  <div class="panel panel-default">
-    <div class="panel-heading"><span class="glyphicon glyphicon-th"></span> {{'common.views' | translate}}</div>
-    <div class="panel-body">
-      <ul class="nav nav-pills nav-stacked">
-        <li ng-class="{active: isActive('views.list')}"><link-to route="views.list" class="viewslist-link">{{'common.views' | translate}}</link-to></li>
-        <li ng-class="{active: isActive('views.listViewUrls') || isActive('views.createViewUrl') || isActive('views.editViewUrl') }"><link-to route="views.listViewUrls" class="viewslistviewurls-link">{{'common.viewUrls' | translate}}</link-to></li>
-      </ul>
-    </div>
-  </div>
-
-
-  <div class="panel panel-default">
-    <div class="panel-heading"><span class="glyphicon glyphicon-user"></span> {{'common.userGroupManagement' | translate}}</div>
-    <div class="panel-body">
-      <ul class="nav nav-pills nav-stacked">
-        <li ng-class="{active: isActive('users.list')}"><link-to route="users.list" class="userslist-link">{{'common.users' | translate}}</link-to></li>
-        <li ng-class="{active: isActive('groups.list')}"><link-to route="groups.list" class="groupslist-link">{{'common.groups' | translate}}</link-to></li>
-      </ul>
-    </div>
-  </div>
-
-  <div class="panel panel-default" ng-show="settings.isLoginActivitiesSupported || settings.isLDAPConfigurationSupported">
-    <div class="panel-heading"><span class="glyphicon glyphicon-cog"></span> {{'common.settings' | translate}}</div>
-    <div class="panel-body">
-      <ul class="nav nav-pills nav-stacked">
-        <li ng-class="{active: isActive('authentication.main')}" ng-show="settings.isLDAPConfigurationSupported"><link-to route="authentication.main">{{'common.authentication' | translate}}</link-to></li>
-        <li ng-class="{active: isActive('loginActivities.loginMessage')}" ng-show="settings.isLoginActivitiesSupported"><link-to route="loginActivities.loginMessage">{{'common.loginActivities.loginActivities' | translate}}</link-to></li>
-      </ul>
-    </div>
-  </div>
-</div>
-

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/main.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/main.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/main.html
deleted file mode 100644
index 3bdb80e..0000000
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/main.html
+++ /dev/null
@@ -1,96 +0,0 @@
-<!--
-* 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="panel panel-default mainpage">
-  <div class="panel-body">
-    <h1>{{'main.title' | translate}}</h1>
-
-    <div ng-if="isLoaded" id="main-operations-boxes" class="row thumbnails">
-      <p ng-hide="cluster">{{'main.noClusterDescription' | translate}}</p>
-
-      <p ng-show="cluster">{{'main.hasClusterDescription' | translate}}</p>
-
-      <!--Clusters-->
-      <div ng-show="cluster" class="col-sm-11 thumbnail">
-        <h4 class="title">{{'main.operateCluster.title' | translate}}</h4>
-
-        <div class="description">{{'main.operateCluster.description' | translate}}</div>
-        <div class="glyphicon glyphicon-cloud"></div>
-        <div class="buttons">
-        <span ng-class="{active: isActive('clusters.manageAccess')}">
-          <a ng-show="cluster.Clusters.provisioning_state != 'INSTALLED'" href class="btn btn-primary permission-button"
-             ng-disabled="cluster.Clusters.provisioning_state != 'INSTALLED' ">{{'main.operateCluster.manageRoles' |
-            translate}}</a>
-          <a ng-show="cluster.Clusters.provisioning_state == 'INSTALLED'"
-             href="#/clusters/{{cluster.Clusters.cluster_name}}/userAccessList"
-             class="btn btn-primary permission-button"
-             ng-disabled="cluster.Clusters.provisioning_state != 'INSTALLED' ">{{'main.operateCluster.manageRoles' |
-            translate}}</a>
-        </span>
-        <span>
-          <a ng-show="cluster.Clusters.provisioning_state != 'INSTALLED'" href
-             class="btn btn-primary go-dashboard-button"
-             ng-disabled="cluster.Clusters.provisioning_state != 'INSTALLED' ">{{'common.goToDashboard' |
-            translate}}</a>
-          <a ng-show="cluster.Clusters.provisioning_state == 'INSTALLED'"
-             href="{{fromSiteRoot('/#/main/dashboard/metrics')}}" class="btn btn-primary go-dashboard-button"
-             ng-disabled="cluster.Clusters.provisioning_state != 'INSTALLED' ">{{'common.goToDashboard' |
-            translate}}</a>
-        </span>
-        </div>
-      </div>
-      <div ng-hide="cluster" class="col-sm-11 thumbnail">
-        <h4 class="title">{{'main.createCluster.title' | translate}}</h4>
-
-        <div class="description">{{'main.createCluster.description' | translate}}</div>
-        <div class="glyphicon glyphicon-cloud"></div>
-        <div class="buttons"><a href="{{fromSiteRoot('/#/installer/step0')}}"
-                                class="btn btn-primary create-cluster-button">{{'main.createCluster.launchInstallWizard'
-          | translate}}</a></div>
-      </div>
-
-      <!--Manage Users and groups-->
-      <div class="col-sm-5 thumbnail">
-        <h4 class="title">{{'main.manageUsersAndGroups.title' | translate}}</h4>
-
-        <div class="description">{{'main.manageUsersAndGroups.description' | translate}}</div>
-        <div class="glyphicon glyphicon-user"></div>
-        <div class="buttons">
-          <span ng-class="{active: isActive('users.list')}"><link-to route="users.list"
-                                                                     class="btn btn-primary userslist-button">
-            {{'common.users' | translate}}
-          </link-to></span>
-          <span ng-class="{active: isActive('groups.list')}"><link-to route="groups.list"
-                                                                      class="btn btn-primary groupslist-button">
-            {{'common.groups' | translate}}
-          </link-to></span>
-        </div>
-      </div>
-
-      <!--Deploy Views-->
-      <div class="col-sm-5 thumbnail">
-        <h4 class="title">{{'main.deployViews.title' | translate}}</h4>
-
-        <div class="description">{{'main.deployViews.description' | translate}}</div>
-        <div class="glyphicon glyphicon-th"></div>
-        <div ng-class="{active: isActive('views.list')}" class="buttons">
-          <link-to route="views.list" class="btn btn-primary viewslist-button">{{'common.views' | translate}}</link-to>
-        </div>
-      </div>
-    </div>
-  </div>
-</div>

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/AddVersionModal.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/AddVersionModal.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/AddVersionModal.html
index 457be7b..be11e1a 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/AddVersionModal.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/modals/AddVersionModal.html
@@ -20,9 +20,10 @@
 </div>
 <br>
 <div class="clearfix register-version-options" ng-click="selectedLocalOption.index=1">
-    <div class="option-radio-button">
-        <label class="option-label">
-            <input type="radio" ng-model="selectedLocalOption.index" value="1"> {{'versions.uploadFile' | translate}}
+    <div class="option-radio-button checkbox">
+        <input type="radio" id="upload-file" ng-model="selectedLocalOption.index" value="1">
+        <label for="upload-file" class="option-label">
+           {{'versions.uploadFile' | translate}}
         </label>
     </div>
     <div class="col-sm-7 choose-file-input">
@@ -31,9 +32,10 @@
     </div>
 </div>
 <div class="clearfix register-version-options bottom-margin" ng-click="selectedLocalOption.index=2">
-    <div class="option-radio-button">
-        <label class="option-label">
-            <input type="radio" ng-model="selectedLocalOption.index" value="2"> {{'versions.enterURL' | translate}}
+    <div class="option-radio-button checkbox">
+        <input type="radio" id="entire-url" ng-model="selectedLocalOption.index" value="2">
+        <label for="entire-url" class="option-label">
+             {{'versions.enterURL' | translate}}
         </label>
     </div>
     <div class="col-sm-9">

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
index 3bbf09d..59d8acb 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/remoteClusters/list.html
@@ -18,17 +18,12 @@
 
 <div class="users-pane">
   <div class="clearfix">
-    <ol class="breadcrumb pull-left">
-      <li class="active">{{'common.remoteClusters' | translate}}</li>
-    </ol>
-    <div class="pull-right top-margin-4">
-      <a href="#/remoteClusters/create" class="btn btn-primary">
-        <span class="glyphicon glyphicon-plus"></span>
+    <div class="pull-right">
+      <a href="#/remoteClusters/create" class="btn btn-default">
         {{'views.registerRemoteCluster' | translate}}
       </a>
     </div>
   </div>
-  <hr>
   <table class="table table-striped table-hover">
     <thead>
       <tr>
@@ -63,7 +58,7 @@
   <div ng-if="isLoading" class="spinner-container">
     <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i>
   </div>
-  <div class="alert alert-info col-sm-12" ng-show="!remoteClusters.length && !isLoading">
+  <div class="alert empty-table-alert col-sm-12" ng-show="!remoteClusters.length && !isLoading">
     {{'common.alerts.noRemoteClusterDisplay' | translate}}
   </div>
   <div class="col-sm-12 table-bar">

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html
new file mode 100644
index 0000000..98a95cd
--- /dev/null
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/sideNav.html
@@ -0,0 +1,99 @@
+<!--
+* 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="side-nav" class="navigation-bar navigation-bar-fit-height">
+  <div class="navigation-bar-container">
+    <ul class="side-nav-header nav nav-pills nav-stacked">
+      <li class="navigation-header active">
+        <a href="{{fromSiteRoot('/#/main/dashboard')}}" class="ambari-logo">
+          <img src="/img/ambari-logo.png" alt="{{'common.apacheAmbari' | translate}}" title="{{'common.apacheAmbari' | translate}}" data-qa="ambari-logo">
+        </a>
+        <div class="btn-group">
+          <a href="{{fromSiteRoot('/#/main/dashboard')}}" class="ambari-header-link" title="{{'common.apacheAmbari' | translate}}" data-qa="ambari-title">
+            <span class="ambari-header">
+              {{'common.ambari' | translate}}
+            </span>
+          </a>
+        </div>
+      </li>
+    </ul>
+    <ul class="nav side-nav-menu nav-pills nav-stacked">
+      <li class="mainmenu-li active" ng-show="cluster.Clusters.provisioning_state === 'INSTALLED'">
+        <a title="{{'common.dashboard' | translate}}" rel="tooltip" data-placement="right" href="{{fromSiteRoot('/#/dashboard')}}" class="gotodashboard">
+          <i class="navigation-icon fa fa-tachometer" aria-hidden="true"></i>
+          <span class="navigation-menu-item">{{'common.dashboard' | translate}}</span>
+        </a>
+      </li>
+      <li class="mainmenu-li dropdown has-sub-menu">
+        <a title="{{'common.clusterManagement' | translate}}" data-toggle="collapse-sub-menu" rel="tooltip" data-placement="right">
+          <span class="toggle-icon glyphicon glyphicon-menu-down pull-right"></span>
+          <i class="navigation-icon fa fa-cloud" aria-hidden="true"></i>
+          <span class="navigation-menu-item">{{'common.clusterManagement' | translate}}</span>
+        </a>
+        <ul class="sub-menu nav nav-pills nav-stacked">
+          <li class="submenu-li" ng-class="{active: isActive('clusters.clusterInformation')}">
+            <a href="#/clusterInformation" class="clusterInformation">
+              {{'common.clusterInformation' | translate}}
+            </a>
+          </li>
+          <li class="submenu-li"  ng-class="{active: isActive('stackVersions.list')}" ng-show="cluster && totalRepos > 0">
+            <a href="#/stackVersions">{{'common.versions' | translate}}</a>
+          </li>
+          <li class="submenu-li" ng-class="{active: isActive('remoteClusters.list')}">
+            <a href="#/remoteClusters">{{'common.remoteClusters' | translate}}</a>
+          </li>
+        </ul>
+      </li>
+      <li class="mainmenu-li" ng-class="{active: isActive('userManagement.main')}">
+        <link-to route="userManagement.main" class="userslist-link" title="{{'common.users' | translate}}" rel="tooltip" data-placement="right">
+          <i class="navigation-icon fa fa-users" aria-hidden="true"></i>
+          <span class="navigation-menu-item">{{'common.users' | translate}}</span>
+        </link-to>
+      </li>
+      <li class="mainmenu-li" ng-class="{active: isActive('views.list')}">
+        <link-to route="views.list" class="viewslist-link" title="{{'common.views' | translate}}" rel="tooltip" data-placement="right">
+          <i class="navigation-icon fa fa-th" aria-hidden="true"></i>
+          <span class="navigation-menu-item">{{'common.views' | translate}}</span>
+        </link-to>
+      </li>
+      <li class="mainmenu-li dropdown has-sub-menu" ng-show="settings.isLoginActivitiesSupported || settings.isLDAPConfigurationSupported">
+        <a title="{{'common.settings' | translate}}" data-toggle="collapse-sub-menu" rel="tooltip" data-placement="right">
+          <span class="toggle-icon glyphicon glyphicon-menu-down pull-right"></span>
+          <i class="navigation-icon glyphicon glyphicon-cog" aria-hidden="true"></i>
+          <span class="navigation-menu-item">{{'common.settings' | translate}}</span>
+        </a>
+        <ul class="sub-menu nav nav-pills nav-stacked">
+          <li class="submenu-li"  ng-class="{active: isActive('authentication.main')}" ng-show="settings.isLDAPConfigurationSupported">
+            <link-to route="authentication.main">{{'common.authentication' | translate}}</link-to>
+          </li>
+          <li class="submenu-li" ng-class="{active: isActive('loginActivities.loginMessage')}" ng-show="settings.isLoginActivitiesSupported">
+            <link-to route="loginActivities.loginMessage">{{'common.loginActivities.loginActivities' | translate}}</link-to>
+          </li>
+        </ul>
+      </li>
+    </ul>
+    <ul class="side-nav-footer nav nav-pills nav-stacked">
+      <li class="navigation-footer">
+        <a href="#" data-toggle="collapse-side-nav">
+          <span class="navigation-icon fa fa-angle-double-left" aria-hidden="true"></span>
+        </a>
+      </li>
+    </ul>
+  </div>
+</div>
+

http://git-wip-us.apache.org/repos/asf/ambari/blob/e83bf1bd/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
----------------------------------------------------------------------
diff --git a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
index 3e788f8..cf5c516 100644
--- a/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
+++ b/ambari-admin/src/main/resources/ui/admin-web/app/views/stackVersions/list.html
@@ -18,17 +18,12 @@
 
 <div id="stack-versions">
   <div class="clearfix">
-    <ol class="breadcrumb pull-left">
-      <li class="active">{{'common.versions' | translate}}</li>
-    </ol>
-    <div class="pull-right top-margin-4">
-      <a href="#/stackVersions/create" class="btn btn-primary">
-        <span class="glyphicon glyphicon-plus"></span>
+    <div class="pull-right">
+      <a href="#/stackVersions/create" class="btn btn-default">
         {{'versions.register.title' | translate}}
       </a>
     </div>
   </div>
-  <hr/>
   <table class="table table-striped table-hover">
     <thead>
     <tr>
@@ -99,11 +94,11 @@
           <span class="label {{'status-' + repo.status}}">{{'versions.installed' | translate}}:&nbsp;{{repo.installedHosts}}/{{repo.totalHosts}}</span>
         </div>
         <div ng-show="!repo.cluster">
-          <div class="btn-group display-inline-block" dropdown is-open="viewsdropdown.isopen" ng-mouseover="viewsdropdown.isopen=true" ng-mouseout="viewsdropdown.isopen=false" ng-init="viewsdropdown.isopen=false">
+          <div class="btn-group" ng-class="{open: viewsdropdown.isopen}" ng-mouseover="viewsdropdown.isopen=true" ng-mouseout="viewsdropdown.isopen=false" ng-init="viewsdropdown.isopen=false">
             <a class="btn dropdown-toggle">
               <span>{{'versions.installOn' | translate}}</span>
             </a>
-            <ul class="dropdown-menu" ng-show="viewsdropdown.isopen">
+            <ul class="dropdown-menu">
               <li ng-repeat="cluster in dropDownClusters">
                 <a href="javascript:void(null)" ng-click="goToCluster()">
                   <span>{{cluster.Clusters.cluster_name}}</span>
@@ -113,14 +108,19 @@
           </div>
         </div>
       </td>
-      <td class="text-center"><input type="checkbox" data-ng-model="repo.hidden" data-ng-change="toggleVisibility(repo)" data-ng-disabled="!isHideCheckBoxEnabled(repo)"/></td>
+      <td class="text-center">
+        <div class="checkbox">
+          <input ng-attr-id="{{ 'hidden-' + repo.id }}" type="checkbox" class="form-control" data-ng-model="repo.hidden" data-ng-change="toggleVisibility(repo)" data-ng-disabled="!isHideCheckBoxEnabled(repo)"/>
+          <label ng-attr-for="{{ 'hidden-' + repo.id }}"><span></span></label>
+        </div>
+      </td>
     </tr>
     </tbody>
   </table>
   <div ng-if="isLoading" class="spinner-container">
     <i class="fa fa-2x fa-spinner fa-spin" aria-hidden="true"></i>
   </div>
-  <div class="alert alert-info col-sm-12" ng-show="!repos.length && !isLoading">
+  <div class="alert empty-table-alert col-sm-12" ng-show="!repos.length && !isLoading">
     {{'common.alerts.nothingToDisplay' | translate: '{term: getConstant("common.version")}'}}
   </div>
   <div class="col-sm-12 table-bar">