http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff 
b/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff
new file mode 100644
index 0000000..9e61285
Binary files /dev/null and 
b/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff differ

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff2
----------------------------------------------------------------------
diff --git a/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff2 
b/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff2
new file mode 100644
index 0000000..64539b5
Binary files /dev/null and 
b/ambari-web/app/assets/fonts/glyphicons-halflings-regular.woff2 differ

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/config.js b/ambari-web/app/config.js
index 4550eb8..379aed9 100644
--- a/ambari-web/app/config.js
+++ b/ambari-web/app/config.js
@@ -49,10 +49,10 @@ App.singleNodeInstall = false;
 App.singleNodeAlias = document.location.hostname;
 App.minDiskSpace = 2.0; // minimum disk space required for '/' for each host 
before install, unit GB
 App.minDiskSpaceUsrLib = 1.0; // minimum disk space for '/usr/lib' for each 
host before install, unit GB
-App.healthIconClassGreen = 'icon-ok-sign'; // bootstrap icon class for 
healthy/started service/host/host-component
-App.healthIconClassRed = 'icon-warning-sign'; // bootstrap icon class for 
master down/stopped service/host/host-component
-App.healthIconClassOrange = 'icon-minus-sign'; // bootstrap icon class for 
slave down/decommissioned host/host-component
-App.healthIconClassYellow = 'icon-question-sign'; // bootstrap icon class for 
heartbeat lost service/host/host-component
+App.healthIconClassGreen = 'glyphicon glyphicon-ok-sign'; // bootstrap icon 
class for healthy/started service/host/host-component
+App.healthIconClassRed = 'glyphicon glyphicon-warning-sign'; // bootstrap icon 
class for master down/stopped service/host/host-component
+App.healthIconClassOrange = 'glyphicon glyphicon-minus-sign'; // bootstrap 
icon class for slave down/decommissioned host/host-component
+App.healthIconClassYellow = 'glyphicon glyphicon-question-sign'; // bootstrap 
icon class for heartbeat lost service/host/host-component
 App.isManagedMySQLForHiveEnabled = false;
 App.isStormMetricsSupported = true;
 App.healthStatusRed = '#ff0000';

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/application.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/application.js 
b/ambari-web/app/controllers/application.js
index dca689f..4bd09c3 100644
--- a/ambari-web/app/controllers/application.js
+++ b/ambari-web/app/controllers/application.js
@@ -25,15 +25,13 @@ App.ApplicationController = 
Em.Controller.extend(App.UserPref, {
 
   isPollerRunning: false,
 
-  clusterName: function () {
-    return (App.router.get('clusterController.clusterName') || 'My Cluster');
-  }.property('App.router.clusterController.clusterName'),
+  clusterName: Em.computed.alias('App.router.clusterController.clusterName'),
 
   /**
    * set ambari server version from installerController or mainController, 
making sure version shown up all the time
    */
   ambariVersion: function () {
-    return (App.router.get('installerController.ambariServerVersion') || 
App.router.get('mainController.ambariServerVersion') || 
Em.I18n.t('common.notAvailable'));
+    return App.router.get('installerController.ambariServerVersion') || 
App.router.get('mainController.ambariServerVersion') || 
Em.I18n.t('common.notAvailable');
   }.property('App.router.installerController.ambariServerVersion', 
'App.router.mainController.ambariServerVersion'),
 
   clusterDisplayName: Em.computed.truncate('clusterName', 13, 10),
@@ -57,9 +55,58 @@ App.ApplicationController = 
Em.Controller.extend(App.UserPref, {
     return true;
   }.property('App.router.clusterInstallCompleted', 'isClusterDataLoaded'),
 
-  init: function(){
-    this._super();
-  },
+  /**
+   * Determines if "Manage Ambari" menu-item should be shown
+   *
+   * @type {boolean}
+   */
+  showManageAmbari: function () {
+    if (App.router.get('clusterInstallCompleted')) {
+      return this.get('isClusterDataLoaded');
+    }
+    return App.get('isPermissionDataLoaded');
+  }.property('App.router.clusterInstallCompleted', 'isClusterDataLoaded', 
'App.isPermissionDataLoaded'),
+
+  /**
+   * Determines if upgrade label should be shown
+   *
+   * @type {boolean}
+   */
+  showUpgradeLabel: Em.computed.or('App.upgradeInProgress', 
'App.upgradeHolding', 'App.upgradeSuspended'),
+
+  /**
+   * @return {{msg: string, cls: string, icon: string}}
+   */
+  upgradeMap: function () {
+    var upgradeInProgress = App.get('upgradeInProgress');
+    var upgradeHolding = App.get('upgradeHolding');
+    var upgradeSuspended = App.get('upgradeSuspended');
+    var isDowngrade = 
App.router.get('mainAdminStackAndUpgradeController.isDowngrade');
+    var typeSuffix = isDowngrade ? 'downgrade' : 'upgrade';
+
+    if (upgradeInProgress) {
+      return {
+        cls: 'upgrade-in-progress',
+        icon: 'glyphicon-cog',
+        msg: Em.I18n.t('admin.stackVersions.version.' + typeSuffix + 
'.running')
+      }
+    }
+    if (upgradeHolding) {
+      return {
+        cls: 'upgrade-in-holding',
+        icon: 'glyphicon-pause',
+        msg: Em.I18n.t('admin.stackVersions.version.' + typeSuffix + '.pause')
+      }
+    }
+    if (upgradeSuspended) {
+      return {
+        cls: 'upgrade-in-holding',
+        icon: 'glyphicon-pause',
+        msg: Em.I18n.t('admin.stackVersions.version.' + typeSuffix + 
'.suspended')
+      }
+    }
+    return {};
+  }.property('App.upgradeInProgress', 'App.upgradeHolding', 
'App.upgradeSuspended', 
'App.router.mainAdminStackAndUpgradeController.isDowngrade'),
 
   startKeepAlivePoller: function() {
     if (!this.get('isPollerRunning')) {
@@ -81,8 +128,6 @@ App.ApplicationController = 
Em.Controller.extend(App.UserPref, {
   },
 
   showAboutPopup: function() {
-
-    var self = this;
     App.ModalPopup.show({
       header: Em.I18n.t('common.aboutAmbari'),
       secondary: false,

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/admin/service_auto_start.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/admin/service_auto_start.js 
b/ambari-web/app/controllers/main/admin/service_auto_start.js
index b425c78..8f40f25 100644
--- a/ambari-web/app/controllers/main/admin/service_auto_start.js
+++ b/ambari-web/app/controllers/main/admin/service_auto_start.js
@@ -89,11 +89,11 @@ App.MainAdminServiceAutoStartController = 
Em.Controller.extend({
               totalComponents: 1,
               indicator: function () {
                 var percentage = this.get('enabledComponents') / 
this.get('totalComponents');
-                var indicator = "icon-adjust";
+                var indicator = "glyphicon glyphicon-adjust";
                 if (percentage === 1) {
-                  indicator = "icon-circle";
+                  indicator = "glyphicon glyphicon-circle";
                 } else if (percentage === 0) {
-                  indicator = "icon-circle-blank";
+                  indicator = "glyphicon glyphicon-circle-blank";
                 }
                 return indicator;
               }.property('enabledComponents', 'totalComponents')

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js 
b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
index d00a652..01feb14 100644
--- a/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_and_upgrade_controller.js
@@ -115,7 +115,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
     Em.Object.create({
       displayName: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.RU.title'),
       type: 'ROLLING',
-      icon: "icon-dashboard",
+      icon: "glyphicon glyphicon-dashboard",
       description: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.RU.description'),
       selected: false,
       allowed: true,
@@ -128,7 +128,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
     Em.Object.create({
       displayName: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.EU.title'),
       type: 'NON_ROLLING',
-      icon: "icon-bolt",
+      icon: "glyphicon glyphicon-bolt",
       description: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.EU.description'),
       selected: false,
       allowed: true,
@@ -149,20 +149,20 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
       template: 'admin.stackUpgrade.preCheck.warning.message',
       precheckResultsMessageClass: 'ORANGE',
       isPrecheckFailed: false,
-      precheckResultsMessageIconClass: 'icon-warning-sign'
+      precheckResultsMessageIconClass: 'glyphicon glyphicon-warning-sign'
     },
     'BYPASS': {
       template: 'admin.stackUpgrade.preCheck.bypass.message',
       precheckResultsMessageClass: 'RED',
       isPrecheckFailed: false,
-      precheckResultsMessageIconClass: 'icon-remove',
+      precheckResultsMessageIconClass: 'glyphicon glyphicon-remove',
       bypassedFailures: true
     },
     'FAIL': {
       template: 'admin.stackUpgrade.preCheck.fail.message',
       precheckResultsMessageClass: 'RED',
       isPrecheckFailed: true,
-      precheckResultsMessageIconClass: 'icon-remove'
+      precheckResultsMessageIconClass: 'glyphicon glyphicon-remove'
     }
   },
 
@@ -366,7 +366,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
           id: upgradeId
         },
         success: 'loadUpgradeDataSuccessCallback'
-      }).then(deferred.resolve).complete(function () {
+      }).then(deferred.resolve).always(function () {
           self.set('isLoadUpgradeDataPending', false);
         });
     }
@@ -769,7 +769,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
          * @type {string}
          */
         barWidth: 'width: 100%;',
-        progressBarClass: 'progress progress-striped active log_popup',
+        progressBarClass: 'progress log_popup',
 
         /**
          * Popup-message
@@ -950,7 +950,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
             title: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.tolerance.tooltip')
           });
           Em.run.later(this, function () {
-            App.tooltip($(".thumbnail.check-failed"), {
+            App.tooltip($(".img-thumbnail.check-failed"), {
               placement: "bottom",
               title: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.preCheck.failed.tooltip')
             });
@@ -1172,7 +1172,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
       precheckResultsMessage: '',
       recheckResultsMessageClass: 'GREEN',
       isPrecheckFailed: false,
-      precheckResultsMessageIconClass: 'icon-ok',
+      precheckResultsMessageIconClass: 'glyphicon glyphicon-ok',
       bypassedFailures: false
     };
 
@@ -1210,12 +1210,12 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
   addPrecheckMessageTooltip: function() {
     Em.run.later(this, function () {
       // add tooltip for the type with preCheck errors
-      App.tooltip($(".thumbnail.check-failed"), {
+      App.tooltip($(".img-thumbnail.check-failed"), {
         placement: "bottom",
         title: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.preCheck.failed.tooltip')
       });
       // destroy the tooltip for the type wo preCheck errors
-      
$(".thumbnail").not(".check-failed").not(".not-allowed-by-version").tooltip("destroy");
+      
$(".img-thumbnail").not(".check-failed").not(".not-allowed-by-version").tooltip("destroy");
     }, 1000);
   },
 
@@ -1226,7 +1226,7 @@ App.MainAdminStackAndUpgradeController = 
Em.Controller.extend(App.LocalStorage,
       precheckResultsTitle: 
Em.I18n.t('admin.stackVersions.version.upgrade.upgradeOptions.preCheck.msg.failed.title'),
       precheckResultsMessageClass: 'RED',
       isPrecheckFailed: true,
-      precheckResultsMessageIconClass: 'icon-warning-sign',
+      precheckResultsMessageIconClass: 'glyphicon glyphicon-warning-sign',
       action: 'rerunCheck'
     });
   },

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/admin/stack_upgrade_history_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/admin/stack_upgrade_history_controller.js 
b/ambari-web/app/controllers/main/admin/stack_upgrade_history_controller.js
index f05d366..3a78e30 100644
--- a/ambari-web/app/controllers/main/admin/stack_upgrade_history_controller.js
+++ b/ambari-web/app/controllers/main/admin/stack_upgrade_history_controller.js
@@ -87,7 +87,7 @@ App.MainAdminStackUpgradeHistoryController = 
Em.ArrayController.extend({
           id: record.get('requestId')
         },
         success: 'loadUpgradeRecordSuccessCallback'
-      }).then(dfd.resolve).complete(function () {
+      }).then(dfd.resolve).always(function () {
       });
     } else {
       dfd.resolve();

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/alerts/add_alert_definition/step1_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/alerts/add_alert_definition/step1_controller.js
 
b/ambari-web/app/controllers/main/alerts/add_alert_definition/step1_controller.js
index 43e25c8..ae9471c 100644
--- 
a/ambari-web/app/controllers/main/alerts/add_alert_definition/step1_controller.js
+++ 
b/ambari-web/app/controllers/main/alerts/add_alert_definition/step1_controller.js
@@ -27,13 +27,13 @@ App.AddAlertDefinitionStep1Controller = 
Em.Controller.extend({
    * @type {{value: string, isActive: boolean}[]}
    */
   alertDefinitionsTypes: [
-    Em.Object.create({value: 'PORT', isActive: false, icon: 'icon-signal'}),
-    Em.Object.create({value: 'METRIC', isActive: false, icon: 'icon-bolt'}),
-    Em.Object.create({value: 'WEB', isActive: false, icon: 'icon-globe'}),
-    Em.Object.create({value: 'AGGREGATE', isActive: false, icon: 
'icon-plus-sign-alt'}),
-    Em.Object.create({value: 'SCRIPT', isActive: false, icon: 'icon-code'}),
-    Em.Object.create({value: 'SERVER', isActive: false, icon: 'icon-desktop'}),
-    Em.Object.create({value: 'RECOVERY', isActive: false, icon: 
'icon-desktop'})
+    Em.Object.create({value: 'PORT', isActive: false, icon: 'glyphicon 
glyphicon-signal'}),
+    Em.Object.create({value: 'METRIC', isActive: false, icon: 'glyphicon 
glyphicon-bolt'}),
+    Em.Object.create({value: 'WEB', isActive: false, icon: 'glyphicon 
glyphicon-globe'}),
+    Em.Object.create({value: 'AGGREGATE', isActive: false, icon: 'glyphicon 
glyphicon-plus-sign-alt'}),
+    Em.Object.create({value: 'SCRIPT', isActive: false, icon: 'glyphicon 
glyphicon-code'}),
+    Em.Object.create({value: 'SERVER', isActive: false, icon: 'glyphicon 
glyphicon-desktop'}),
+    Em.Object.create({value: 'RECOVERY', isActive: false, icon: 'glyphicon 
glyphicon-desktop'})
   ],
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/alerts/alert_definitions_actions_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/alerts/alert_definitions_actions_controller.js
 
b/ambari-web/app/controllers/main/alerts/alert_definitions_actions_controller.js
index 6ca3e78..36bc232 100644
--- 
a/ambari-web/app/controllers/main/alerts/alert_definitions_actions_controller.js
+++ 
b/ambari-web/app/controllers/main/alerts/alert_definitions_actions_controller.js
@@ -29,25 +29,25 @@ App.MainAlertDefinitionActionsController = 
Em.ArrayController.extend({
   content: [
     /*{
       title: Em.I18n.t('alerts.actions.create'),
-      icon: 'icon-plus',
+      icon: 'glyphicon glyphicon-plus',
       action: 'createNewAlertDefinition',
       showDivider: true
     },*/
     {
       title: Em.I18n.t('alerts.actions.manageGroups'),
-      icon: 'icon-th-large',
+      icon: 'glyphicon glyphicon-th-large',
       action: 'manageAlertGroups',
       showDivider: false
     },
     {
       title: Em.I18n.t('alerts.actions.manageNotifications'),
-      icon: 'icon-envelope-alt',
+      icon: 'glyphicon glyphicon-envelope',
       action: 'manageNotifications',
       showDivider: false
     },
     {
       title: Em.I18n.t('alerts.actions.manageSettings'),
-      icon: 'icon-cogs',
+      icon: 'glyphicon glyphicon-cog',
       action: 'manageSettings',
       showDivider: false
     }
@@ -93,7 +93,8 @@ App.MainAlertDefinitionActionsController = 
Em.ArrayController.extend({
         controllerBinding: 'App.router.manageAlertGroupsController'
       }),
 
-      classNames: ['sixty-percent-width-modal', 'manage-alert-group-popup'],
+      classNames: ['common-modal-wrapper', 'manage-alert-group-popup'],
+      modalDialogClasses: ['modal-lg'],
       primary: Em.I18n.t('common.save'),
 
       onPrimary: function () {
@@ -196,7 +197,8 @@ App.MainAlertDefinitionActionsController = 
Em.ArrayController.extend({
         controllerBinding: 'App.router.manageAlertNotificationsController'
       }),
 
-      classNames: ['sixty-percent-width-modal', 
'manage-configuration-group-popup', 'manage-alert-notifications-popup'],
+      classNames: ['common-modal-wrapper', 'manage-configuration-group-popup'],
+      modalDialogClasses: ['modal-lg'],
 
       secondary: null,
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/alerts/alert_instances_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/alerts/alert_instances_controller.js 
b/ambari-web/app/controllers/main/alerts/alert_instances_controller.js
index 5913070..cbeb71a 100644
--- a/ambari-web/app/controllers/main/alerts/alert_instances_controller.js
+++ b/ambari-web/app/controllers/main/alerts/alert_instances_controller.js
@@ -210,7 +210,8 @@ App.MainAlertInstancesController = Em.Controller.extend({
 
       header: Em.computed.i18nFormat('alerts.fastAccess.popup.header', 
'alertsNumber'),
 
-      classNames: ['sixty-percent-width-modal', 'alerts-popup'],
+      classNames: ['common-modal-wrapper', 'alerts-popup'],
+      modalDialogClasses: ['modal-lg'],
 
       secondary: Em.I18n.t('alerts.fastAccess.popup.body.showmore'),
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/alerts/manage_alert_groups_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/alerts/manage_alert_groups_controller.js 
b/ambari-web/app/controllers/main/alerts/manage_alert_groups_controller.js
index 6ba5957..a501a34 100644
--- a/ambari-web/app/controllers/main/alerts/manage_alert_groups_controller.js
+++ b/ambari-web/app/controllers/main/alerts/manage_alert_groups_controller.js
@@ -389,7 +389,9 @@ App.ManageAlertGroupsController = Em.Controller.extend({
 
     return App.ModalPopup.show({
 
-      classNames: [ 'sixty-percent-width-modal' ],
+      classNames: [ 'common-modal-wrapper' ],
+
+      modalDialogClasses: ['modal-lg'],
 
       header: popupDescription.header,
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/charts/heatmap.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/charts/heatmap.js 
b/ambari-web/app/controllers/main/charts/heatmap.js
index 73d1800..caa3f2d 100644
--- a/ambari-web/app/controllers/main/charts/heatmap.js
+++ b/ambari-web/app/controllers/main/charts/heatmap.js
@@ -269,11 +269,11 @@ App.MainChartsHeatmapController = 
Em.Controller.extend(App.WidgetSectionMixin, {
   rackClass: function () {
     var rackCount = this.get('racks.length');
     if (rackCount < 2) {
-      return "span12";
+      return "col-md-12";
     } else if (rackCount == 2) {
-      return "span6";
+      return "col-md-6";
     } else {
-      return "span4";
+      return "col-md-4";
     }
   }.property('racks.length')
 });

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/service/info/summary.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/summary.js 
b/ambari-web/app/controllers/main/service/info/summary.js
index c16bb3f..6752bbf 100644
--- a/ambari-web/app/controllers/main/service/info/summary.js
+++ b/ambari-web/app/controllers/main/service/info/summary.js
@@ -742,7 +742,8 @@ App.MainServiceInfoSummaryController = 
Em.Controller.extend(App.WidgetSectionMix
     return App.ModalPopup.show({
       header: Em.I18n.t('dashboard.widgets.browser.header'),
 
-      classNames: ['sixty-percent-width-modal', 'widgets-browser-popup'],
+      classNames: ['common-modal-wrapper', 'widgets-browser-popup'],
+      modalDialogClasses: ['modal-lg'],
       onPrimary: function () {
         this.hide();
         self.set('isAllSharedWidgetsLoaded', false);

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js 
b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
index 539d03e..07756f0 100644
--- a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
+++ b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
@@ -806,7 +806,8 @@ App.ManageConfigGroupsController = 
Em.Controller.extend(App.ConfigOverridable, {
         controller: configsController
       }),
 
-      classNames: ['sixty-percent-width-modal', 
'manage-configuration-group-popup'],
+      classNames: ['common-modal-wrapper', 'manage-configuration-group-popup'],
+      modalDialogClasses: ['modal-lg'],
 
       primary: Em.I18n.t('common.save'),
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/wizard/step10_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step10_controller.js 
b/ambari-web/app/controllers/wizard/step10_controller.js
index 8c4b5db..6840c13 100644
--- a/ambari-web/app/controllers/wizard/step10_controller.js
+++ b/ambari-web/app/controllers/wizard/step10_controller.js
@@ -161,7 +161,7 @@ App.WizardStep10Controller = Em.Controller.extend({
       this.get('clusterInfo').pushObject(Em.Object.create({
         id: 2,
         displayStatement: Em.I18n.t('installer.step10.installStatus.failed'),
-        color: 'text-error',
+        color: 'text-danger',
         status: []
       }));
       return false;
@@ -233,7 +233,7 @@ App.WizardStep10Controller = Em.Controller.extend({
     } else {
       this.get('clusterInfo').pushObject(Em.Object.create({
         id: 3,
-        color: 'text-error',
+        color: 'text-danger',
         displayStatement: Em.I18n.t('installer.step10.startStatus.failed'),
         status: []
       }));

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/wizard/step1_controller.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/wizard/step1_controller.js 
b/ambari-web/app/controllers/wizard/step1_controller.js
index a1ebad8..e1cb4ff 100644
--- a/ambari-web/app/controllers/wizard/step1_controller.js
+++ b/ambari-web/app/controllers/wizard/step1_controller.js
@@ -302,7 +302,7 @@ App.WizardStep1Controller = Em.Controller.extend({
             App.showAlertPopup(Em.I18n.t('common.warning'), 
Em.I18n.t('installer.step1.addVersion.stackChanged.popup.body').format(oldStackNameVersion,
 response.stackNameVersion));
           }
           Ember.run.next(function () {
-            $("[rel=skip-validation-tooltip]").tooltip({placement: 'right'});
+            App.tooltip($("[rel=skip-validation-tooltip]"), {html: true, 
placement: 'left'});
             $("[rel=use-redhat-tooltip]").tooltip({placement: 'right'});
           });
         });

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/controllers/wizard/step7/assign_master_controller.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/controllers/wizard/step7/assign_master_controller.js 
b/ambari-web/app/controllers/wizard/step7/assign_master_controller.js
index 399000e..1ee0c45 100644
--- a/ambari-web/app/controllers/wizard/step7/assign_master_controller.js
+++ b/ambari-web/app/controllers/wizard/step7/assign_master_controller.js
@@ -111,7 +111,8 @@ App.AssignMasterOnStep7Controller = 
Em.Controller.extend(App.BlueprintMixin, App
     var configWidgetContext = this.get('configWidgetContext');
     var config = this.get('configWidgetContext.config');
     var popup = App.ModalPopup.show({
-      classNames: ['full-width-modal', 'add-service-wizard-modal'],
+      classNames: ['wizard-modal-wrapper', 'add-service-wizard-modal'],
+      modalDialogClasses: ['modal-xlg'],
       header: 
Em.I18n.t('assign.master.popup.header').format(masterToCreateDisplayName),
       bodyClass: App.AssignMasterOnStep7View.extend({
         controller: self

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/data/host/categories.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/data/host/categories.js 
b/ambari-web/app/data/host/categories.js
index 7e010d5..4d018bc 100644
--- a/ambari-web/app/data/host/categories.js
+++ b/ambari-web/app/data/host/categories.js
@@ -56,7 +56,7 @@ module.exports = [
   {
     value: Em.I18n.t('hosts.host.alerts.label'),
     hostProperty: 'criticalWarningAlertsCount',
-    class: 'icon-exclamation-sign',
+    class: 'glyphicon glyphicon-exclamation-sign',
     isHealthStatus: false,
     healthClass: 'health-status-WITH-ALERTS',
     healthStatus: 'health-status-WITH-ALERTS',
@@ -67,7 +67,7 @@ module.exports = [
   {
     value: Em.I18n.t('common.restart'),
     hostProperty: 'componentsWithStaleConfigsCount',
-    class: 'icon-refresh',
+    class: 'glyphicon glyphicon-refresh',
     isHealthStatus: false,
     healthClass: 'health-status-RESTART',
     healthStatus: 'health-status-RESTART',

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/messages.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index 7150081..6da179a 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -336,7 +336,7 @@ Em.I18n.translations = {
   'common.levels': 'Levels',
   'common.extension': 'Extension',
   'common.logs': 'Logs',
-  'common.warn.message': '<div class="alert alert-warn">{0}</div>',
+  'common.warn.message': '<div class="alert alert-warning">{0}</div>',
   'common.link': 'Link',
   'common.from.version': 'From Version',
   'common.to.version': 'To Version',
@@ -725,8 +725,8 @@ Em.I18n.translations = {
   'installer.step3.hostWarningsPopup.notice':'After manually resolving the 
issues, click <b>Rerun Checks</b>.'+
     '<br>To manually resolve issues on <b>each host</b> run the HostCleanup 
script (Python 2.6 or greater is required):'+
     '<br><div class="code-snippet">python 
/usr/lib/python2.6/site-packages/ambari_agent/HostCleanup.py --silent 
--skip=users</div>' +
-    '<div class="alert alert-warn"><b>Note</b>: Clean up of Firewall and 
Transparent Huge Page issues are not supported by the HostCleanup 
script.</div>' +
-    '<div class="alert alert-warn"><b>Note</b>: To clean up in interactive 
mode, remove <b>--silent</b> option. To clean up all resources, including 
<i>users</i>, remove <b>--skip=users</b> option. Use <b>--help</b> for a list 
of available options.</div>',
+    '<div class="alert alert-warning"><b>Note</b>: Clean up of Firewall and 
Transparent Huge Page issues are not supported by the HostCleanup 
script.</div>' +
+    '<div class="alert alert-warning"><b>Note</b>: To clean up in interactive 
mode, remove <b>--silent</b> option. To clean up all resources, including 
<i>users</i>, remove <b>--skip=users</b> option. Use <b>--help</b> for a list 
of available options.</div>',
   'installer.step3.hostWarningsPopup.summary':'{0} on {1}',
   'installer.step3.hostWarningsPopup.jdk':'JDK Issues',
   'installer.step3.hostWarningsPopup.jdk.name':'JDK not found at <i>{0}</i>',
@@ -859,7 +859,7 @@ Em.I18n.translations = {
   'installer.step5.reassign.header':'Select Target Host',
   'installer.step5.attention':' hosts not running master services',
   'installer.step5.body':'Assign master components to hosts you want to run 
them on.',
-  'installer.step5.body.coHostedComponents':'<i 
class="icon-asterisks">&#10037;</i> {0} will be hosted on the same host.',
+  'installer.step5.body.coHostedComponents':'<i class="glyphicon 
glyphicon-asterisks">&#10037;</i> {0} will be hosted on the same host.',
   'installer.step5.hostInfo':'%@ (%@, %@ cores)',
   'installer.step5.hiveGroup':'HiveServer2, WebHCat Server, MySQL Server',
   'installer.step5.validationIssuesAttention.header': 'Validation Issues',
@@ -867,7 +867,7 @@ Em.I18n.translations = {
   'installer.step5.error.host.invalid': 'The host you choose could (1) have an 
invalid host name; (2) be conflicting with another selection; or (3) be in 
maintenance mode',
 
   'installer.step6.header':'Assign Slaves and Clients',
-  'installer.step6.body':'Assign slave and client components to hosts you want 
to run them on.<br/>Hosts that are assigned master components are shown with <i 
class=icon-asterisks>&#10037;</i>.',
+  'installer.step6.body':'Assign slave and client components to hosts you want 
to run them on.<br/>Hosts that are assigned master components are shown with <i 
class="glyphicon glyphicon-asterisks">&#10037;</i>.',
   'installer.step6.body.clientText': ' <br/>&quot;Client&quot; will install ',
   'installer.step6.error.mustSelectOne':'You must assign at least one host to 
each component.',
   'installer.step6.error.mustSelectOneForHost':'You must assign at least one 
slave/client component to each.',
@@ -1018,7 +1018,7 @@ Em.I18n.translations = {
   'installer.step10.body':'Here is the summary of the install process.',
   'installer.step10.staleServicesRestartRequired':' You may also need to 
restart other services for the newly added ' +
     'services to function properly (for example, HDFS and YARN/MapReduce need 
to be restarted after adding Oozie). After closing this ' +
-    'wizard, please restart all services that have the restart indicator <i 
class="icon-refresh"></i> next to the service name.',
+    'wizard, please restart all services that have the restart indicator <i 
class="glyphicon glyphicon-refresh"></i> next to the service name.',
   'installer.step10.hostsSummary':'The cluster consists of {0} hosts',
   'installer.step10.installedAndStarted':'Installed and started services 
successfully on {0} new ',
   'installer.step10.installed':'Installed services successfully on {0} new ',
@@ -1400,7 +1400,7 @@ Em.I18n.translations = {
     '<div class="alert alert-info">' +
     '<ol start="3">' +
     '<li>Login to the Additional NameNode host <b>{2}</b>.<br>' +
-    '<div class="alert alert-warn"><strong>Important!</strong> Be sure to 
login to the Additional NameNode host.<br>This is a different host from the 
Steps 1 and 2 above.</div>' +
+    '<div class="alert alert-warning"><strong>Important!</strong> Be sure to 
login to the Additional NameNode host.<br>This is a different host from the 
Steps 1 and 2 above.</div>' +
     '</li>' +
     '<li>Initialize the metadata for the Additional NameNode by running:' +
     '<div class="code-snippet">sudo su {0} -l -c \'hdfs namenode 
-bootstrapStandby\'</div></li>' +
@@ -1422,7 +1422,7 @@ Em.I18n.translations = {
     '<li>Once in Safe Mode, create a Checkpoint:' +
     '<div class="code-snippet">sudo su {0} -l -c \'hdfs dfsadmin 
-saveNamespace\'</div></li>' +
     '<li>You will be able to proceed once Ambari detects that the NameNode is 
in Safe Mode and the Checkpoint has been created successfully.</li>'+
-    '<div class="alert alert-warn">If the <b>Next</b> button is enabled before 
you run the <b>"Step 4: Create a Checkpoint"</b> command, it means there is a 
recent Checkpoint already and you may proceed without running the <b>"Step 4: 
Create a Checkpoint"</b> command.</div>' +
+    '<div class="alert alert-warning">If the <b>Next</b> button is enabled 
before you run the <b>"Step 4: Create a Checkpoint"</b> command, it means there 
is a recent Checkpoint already and you may proceed without running the <b>"Step 
4: Create a Checkpoint"</b> command.</div>' +
     '</ol>',
   'admin.highAvailability.wizard.step3.confirm.host.body':'<b>Confirm your 
host selections.</b>',
   'admin.highAvailability.wizard.step3.confirm.config.body':'<div class="alert 
alert-info">' +
@@ -1517,7 +1517,7 @@ Em.I18n.translations = {
   'admin.security.step1.body.instruction2': 'Install and configure the 
Kerberos client on every host in the cluster',
   'admin.security.step1.body.instruction3': 'Create Kerberos principals for 
Hadoop services and hosts',
   'admin.security.step1.body.instruction4': 'Generate keytabs for each 
principal and place on the appropriate hosts',
-  'admin.security.step1.body.instruction5': '<b>Application Timeline 
Server</b> component of YARN service will be <span 
class="text-error"><b>deleted</b></span> as part of enabling security in this 
HDP stack version',
+  'admin.security.step1.body.instruction5': '<b>Application Timeline 
Server</b> component of YARN service will be <span 
class="text-danger"><b>deleted</b></span> as part of enabling security in this 
HDP stack version',
   'admin.security.step2.body.header': 'Configure Kerberos security properties',
   'admin.security.step3.notice': 'You need to create Kerberos principals and 
keytabs before proceeding.<br />'+
   'Download the CSV file and use it to create a script to generate the 
principals and keytabs on specified hosts. ' +
@@ -2237,7 +2237,7 @@ Em.I18n.translations = {
       '<div class="alert alert-info">' +
       '<ol start="3">' +
       '<li>Login to the newly installed NameNode host <b>{2}</b>.<br>' +
-      '<div class="alert alert-warn"><strong>Important!</strong> Be sure to 
login to the newly installed NameNode host.<br>This is a different host from 
the Steps 1 and 2 above.</div>' +
+      '<div class="alert alert-warning"><strong>Important!</strong> Be sure to 
login to the newly installed NameNode host.<br>This is a different host from 
the Steps 1 and 2 above.</div>' +
       '</li>' +
       '<li>Initialize the metadata by running:' +
       "<div class='code-snippet'>sudo su {3} -l -c 'hdfs namenode 
-bootstrapStandby'</div></li>" +
@@ -2283,7 +2283,7 @@ Em.I18n.translations = {
   '<div class="code-snippet">chmod -R 700 {7}/{8}</div></li>' +
   '</ol>' +
   '</div>',
-  'services.reassign.step5.body.securityNotice': '<div class="alert 
alert-info"> <div class="alert alert-warn"> <strong>Note: </strong> Secure 
cluster' +
+  'services.reassign.step5.body.securityNotice': '<div class="alert 
alert-info"> <div class="alert alert-warning"> <strong>Note: </strong> Secure 
cluster' +
     ' requires generating necessary principals for reassigned component and 
creating keytab files with the principal on ' +
     'the target host. The keytab file should be accessible to the service 
user.</div> {0} </div>',
   'services.reassign.step5.body.securityConfigsList': 'Create keytab file 
<b>{0}</b> with principal <b>{1}</b> on <b>{2}</b> host.',
@@ -2642,7 +2642,7 @@ Em.I18n.translations = {
   'charts.horizon.chart.attributes.network':'Network',
   'charts.horizon.chart.attributes.io':'I/O',
 
-  'charts.heatmap.selectMetric':'Select Metric...',
+  'charts.heatmap.selectMetric':'Select Metric',
 
   'charts.heatmap.category.host':'Host',
   'charts.heatmap.item.host.memory':'Memory Used',
@@ -3010,7 +3010,7 @@ Em.I18n.translations = {
   'menu.item.hosts':'Hosts',
   'menu.item.admin':'Admin',
   'menu.item.alerts': 'Alerts',
-  'menu.item.views':'<i class="icon-th"></i>',
+  'menu.item.views':'<i class="glyphicon glyphicon-th"></i>',
   'menu.item.views.noViews':'No Views',
 
   'bulkOperation.loading': 'Loading...',

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/common/configs/configs_saver.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/configs/configs_saver.js 
b/ambari-web/app/mixins/common/configs/configs_saver.js
index 6592203..8127a81 100644
--- a/ambari-web/app/mixins/common/configs/configs_saver.js
+++ b/ambari-web/app/mixins/common/configs/configs_saver.js
@@ -950,6 +950,7 @@ App.ConfigsSaverMixin = Em.Mixin.create({
       header: Em.I18n.t('common.warning'),
       bodyClass: Em.View.extend({
         templateName: require('templates/common/configs/save_configuration'),
+        classNames: ['col-md-12'],
         showSaveWarning: true,
         showPasswordChangeWarning: passwordWasChanged,
         notesArea: Em.TextArea.extend({

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/common/widgets/widget_mixin.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/widgets/widget_mixin.js 
b/ambari-web/app/mixins/common/widgets/widget_mixin.js
index 5ec4dd6..0ccc93e 100644
--- a/ambari-web/app/mixins/common/widgets/widget_mixin.js
+++ b/ambari-web/app/mixins/common/widgets/widget_mixin.js
@@ -458,17 +458,17 @@ App.WidgetMixin = Ember.Mixin.create({
 
     if (this.get('isLoaded')) {
       Em.run.next(function(){
-        App.tooltip(self.$(".corner-icon > .icon-copy"), {title: 
Em.I18n.t('common.clone')});
-        App.tooltip(self.$(".corner-icon > .icon-edit"), {title: 
Em.I18n.t('common.edit')});
-        App.tooltip(self.$(".corner-icon > .icon-save"), {title: 
Em.I18n.t('common.export')});
+        App.tooltip(self.$(".corner-icon > .glyphicon-copy"), {title: 
Em.I18n.t('common.clone')});
+        App.tooltip(self.$(".corner-icon > .glyphicon-edit"), {title: 
Em.I18n.t('common.edit')});
+        App.tooltip(self.$(".corner-icon > .glyphicon-save"), {title: 
Em.I18n.t('common.export')});
       });
     }
   }.observes('isLoaded'),
 
   willDestroyElement: function() {
-    this.$(".corner-icon > .icon-copy").tooltip('destroy');
-    this.$(".corner-icon > .icon-edit").tooltip('destroy');
-    this.$(".corner-icon > .icon-save").tooltip('destroy');
+    this.$(".corner-icon > .glyphicon-copy").tooltip('destroy');
+    this.$(".corner-icon > .glyphicon-edit").tooltip('destroy');
+    this.$(".corner-icon > .glyphicon-save").tooltip('destroy');
   },
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/main/dashboard/widgets/editable.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/main/dashboard/widgets/editable.js 
b/ambari-web/app/mixins/main/dashboard/widgets/editable.js
index c5d3bb4..f330ec3 100644
--- a/ambari-web/app/mixins/main/dashboard/widgets/editable.js
+++ b/ambari-web/app/mixins/main/dashboard/widgets/editable.js
@@ -72,7 +72,8 @@ App.EditableWidgetMixin = Em.Mixin.create({
     var browserVerion = this.getInternetExplorerVersion();
     App.ModalPopup.show( {
       header: Em.I18n.t('dashboard.widgets.popupHeader'),
-      classNames: [ 'sixty-percent-width-modal-edit-widget'],
+      classNames: [ 'modal-edit-widget'],
+      modalDialogClasses: ['modal-lg'],
       bodyClass: Ember.View.extend({
         templateName: require('templates/main/dashboard/edit_widget_popup'),
         configPropertyObj: configObj

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/main/dashboard/widgets/editable_with_limit.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/mixins/main/dashboard/widgets/editable_with_limit.js 
b/ambari-web/app/mixins/main/dashboard/widgets/editable_with_limit.js
index b10d386..df1b645 100644
--- a/ambari-web/app/mixins/main/dashboard/widgets/editable_with_limit.js
+++ b/ambari-web/app/mixins/main/dashboard/widgets/editable_with_limit.js
@@ -81,7 +81,8 @@ App.EditableWithLimitWidgetMixin = Em.Mixin.create({
     var browserVerion = this.getInternetExplorerVersion();
     App.ModalPopup.show({
       header: Em.I18n.t('dashboard.widgets.popupHeader'),
-      classNames: ['sixty-percent-width-modal-edit-widget'],
+      classNames: ['modal-edit-widget'],
+      modalDialogClasses: ['modal-lg'],
       bodyClass: Ember.View.extend({
         templateName: require('templates/main/dashboard/edit_widget_popup'),
         configPropertyObj: configObj

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/main/dashboard/widgets/single_numeric_threshold.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/mixins/main/dashboard/widgets/single_numeric_threshold.js 
b/ambari-web/app/mixins/main/dashboard/widgets/single_numeric_threshold.js
index cbb81b3..12c7d1a 100644
--- a/ambari-web/app/mixins/main/dashboard/widgets/single_numeric_threshold.js
+++ b/ambari-web/app/mixins/main/dashboard/widgets/single_numeric_threshold.js
@@ -79,7 +79,8 @@ App.SingleNumericThresholdMixin = Em.Mixin.create({
     var browserVersion = this.getInternetExplorerVersion();
     App.ModalPopup.show({
         header: Em.I18n.t('dashboard.widgets.popupHeader'),
-        classNames: ['sixty-percent-width-modal-edit-widget'],
+        classNames: ['modal-edit-widget'],
+        modalDialogClasses: ['modal-lg'],
         bodyClass: Ember.View.extend({
           templateName: 
require('templates/main/dashboard/edit_widget_popup_single_threshold'),
           configPropertyObj: configObj

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js 
b/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js
index 38d5b17..d3eb0c5 100644
--- 
a/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js
+++ 
b/ambari-web/app/mixins/main/host/details/host_components/decommissionable.js
@@ -87,12 +87,12 @@ App.Decommissionable = Em.Mixin.create({
 
     //Class when install failed
     if (this.get('workStatus') === App.HostComponentStatus.install_failed) {
-      return 'health-status-color-red icon-cog';
+      return 'health-status-color-red glyphicon glyphicon-cog';
     }
 
     //Class when installing
     if (this.get('workStatus') === App.HostComponentStatus.installing) {
-      return 'health-status-color-blue icon-cog';
+      return 'health-status-color-blue glyphicon glyphicon-cog';
     }
 
     if (this.get('isComponentRecommissionAvailable') && (this.get('isStart') 
|| this.get('workStatus') == 'INSTALLED')) {
@@ -317,7 +317,8 @@ App.Decommissionable = Em.Mixin.create({
 
 
   decommissionView: Em.View.extend({
-
+    classNameBindings: ['parentView.noActionAvailable'],
+    tagName: 'li',
     templateName: require('templates/main/host/decommission'),
 
     text: 
Em.computed.ifThenElse('parentView.isComponentDecommissionAvailable', 
Em.I18n.t('common.decommission'), Em.I18n.t('common.recommission')),

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/main/service/configs/config_overridable.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/main/service/configs/config_overridable.js 
b/ambari-web/app/mixins/main/service/configs/config_overridable.js
index a8bd273..92891be 100644
--- a/ambari-web/app/mixins/main/service/configs/config_overridable.js
+++ b/ambari-web/app/mixins/main/service/configs/config_overridable.js
@@ -102,7 +102,8 @@ App.ConfigOverridable = Em.Mixin.create({
     var serviceName = App.format.role(serviceId, true);
 
     return App.ModalPopup.show({
-      classNames: ['sixty-percent-width-modal'],
+      classNames: ['common-modal-wrapper'],
+      modalDialogClasses: ['modal-lg'],
       header: 
Em.I18n.t('config.group.selection.dialog.title').format(serviceName),
       subTitle: 
Em.I18n.t('config.group.selection.dialog.subtitle').format(serviceName),
       selectExistingGroupLabel: 
Em.I18n.t('config.group.selection.dialog.option.select').format(serviceName),

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/mixins/main/service/configs/widget_popover_support.js 
b/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
index 96a2578..7fd57f7 100644
--- a/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
+++ b/ambari-web/app/mixins/main/service/configs/widget_popover_support.js
@@ -52,7 +52,7 @@ App.WidgetPopoverSupport = Em.Mixin.create({
       this.destroyPopover();
       var leftPopoverTemplate = '<div class="popover 
config-widget-left-popover"><div class="arrow"></div><div 
class="popover-inner"><h3 class="popover-title"></h3><div 
class="popover-content"><p></p></div></div></div>',
         isWidget = !Em.isEmpty(this.$('.original-widget')),
-        popoverSelector = isWidget ? this.$('.original-widget') : 
this.$('.input-append');
+        popoverSelector = isWidget ? this.$('.original-widget') : 
this.$('.input-group');
 
       App.popover(popoverSelector, {
         template: this.get('popoverPlacement') === 'left'? leftPopoverTemplate 
: undefined,
@@ -63,6 +63,7 @@ App.WidgetPopoverSupport = Em.Mixin.create({
         content: this.get('config.description'),
         placement: this.get('popoverPlacement'),
         trigger: 'hover',
+        html: true,
         delay: {
           show: 1000,
           hide: 0
@@ -87,7 +88,7 @@ App.WidgetPopoverSupport = Em.Mixin.create({
   }.observes('config.showAsTextBox'),
 
   movePopover: function (action) {
-    var popoverSelector = Em.isEmpty(this.$('.original-widget')) ? 
this.$('.input-append') : this.$('.original-widget');
+    var popoverSelector = Em.isEmpty(this.$('.original-widget')) ? 
this.$('.input-group') : this.$('.original-widget');
     if (popoverSelector) {
       this.$(popoverSelector).popover(action)
     }

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/mixins/wizard/wizardProgressPageView.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/wizard/wizardProgressPageView.js 
b/ambari-web/app/mixins/wizard/wizardProgressPageView.js
index 8197086..66ff712 100644
--- a/ambari-web/app/mixins/wizard/wizardProgressPageView.js
+++ b/ambari-web/app/mixins/wizard/wizardProgressPageView.js
@@ -69,7 +69,7 @@ App.wizardProgressPageViewMixin = Em.Mixin.create({
    * Class to define task label width
    * @type {String}
    */
-  labelWidth: 'span4',
+  labelWidth: 'col-md-4',
 
   onStatusChange: function () {
     var status = this.get('controller.status');
@@ -100,16 +100,16 @@ App.wizardProgressPageViewMixin = Em.Mixin.create({
       var linkClass = !!this.get('content.requestIds.length') ? 'active-link' 
: 'active-text';
       this.set('linkClass', linkClass);
       if (this.get('content.status') === 'IN_PROGRESS') {
-        this.set('icon', 'icon-cog');
+        this.set('icon', 'glyphicon glyphicon-cog');
         this.set('iconColor', 'text-info');
       } else if (this.get('content.status') === 'FAILED') {
-        this.set('icon', 'icon-exclamation-sign');
-        this.set('iconColor', 'text-error');
+        this.set('icon', 'glyphicon glyphicon-exclamation-sign');
+        this.set('iconColor', 'text-danger');
       } else if (this.get('content.status') === 'COMPLETED') {
-        this.set('icon', 'icon-ok');
+        this.set('icon', 'glyphicon glyphicon-ok');
         this.set('iconColor', 'text-success');
       } else {
-        this.set('icon', 'icon-cog');
+        this.set('icon', 'glyphicon glyphicon-cog');
         this.set('iconColor', '');
         this.set('linkClass', 'not-active-link');
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/alerts/alert_config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/alerts/alert_config.js 
b/ambari-web/app/models/alerts/alert_config.js
index efbfebf..5a4a84e 100644
--- a/ambari-web/app/models/alerts/alert_config.js
+++ b/ambari-web/app/models/alerts/alert_config.js
@@ -163,7 +163,6 @@ App.AlertConfigProperties = {
     name: 'alert_name',
     label: 'Alert Name',
     displayType: 'textField',
-    classNames: 'alert-text-input',
     apiProperty: 'name'
   }),
 
@@ -222,7 +221,6 @@ App.AlertConfigProperties = {
     name: 'description',
     label: 'Description',
     displayType: 'textArea',
-    classNames: 'alert-config-text-area',
     // todo: check value after API will be provided
     apiProperty: 'description'
   }),
@@ -232,7 +230,7 @@ App.AlertConfigProperties = {
     label: 'Check Interval',
     displayType: 'textField',
     unit: 'Minute',
-    classNames: 'alert-interval-input',
+    colWidth: 'col-md-3',
     apiProperty: 'interval',
     isValid: function () {
       var value = this.get('value');
@@ -294,8 +292,6 @@ App.AlertConfigProperties = {
 
     displayType: 'threshold',
 
-    classNames: 'alert-thresholds-input',
-
     apiProperty: [],
 
     init: function () {
@@ -410,7 +406,6 @@ App.AlertConfigProperties = {
     name: 'uri',
     label: 'URI',
     displayType: 'textField',
-    classNames: 'alert-text-input',
     apiProperty: 'source.uri'
   }),
 
@@ -418,7 +413,6 @@ App.AlertConfigProperties = {
     name: 'uri',
     label: 'URI',
     displayType: 'textArea',
-    classNames: 'alert-config-text-area',
     apiProperty: 'source.uri',
     apiFormattedValue: function () {
       var result = {};
@@ -435,7 +429,6 @@ App.AlertConfigProperties = {
     name: 'default_port',
     label: 'Default Port',
     displayType: 'textField',
-    classNames: 'alert-port-input',
     apiProperty: 'source.default_port'
   }),
 
@@ -443,7 +436,6 @@ App.AlertConfigProperties = {
     name: 'path',
     label: 'Path',
     displayType: 'textField',
-    classNames: 'alert-text-input',
     apiProperty: 'source.path'
   }),
 
@@ -451,7 +443,6 @@ App.AlertConfigProperties = {
     name: 'metrics',
     label: 'JMX/Ganglia Metrics',
     displayType: 'textArea',
-    classNames: 'alert-config-text-area',
     apiProperty: Em.computed.ifThenElse('isJMXMetric', 
'source.jmx.property_list', 'source.ganglia.property_list'),
     apiFormattedValue: function () {
       return this.get('value').split(',\n');
@@ -462,7 +453,6 @@ App.AlertConfigProperties = {
     name: 'metrics_string',
     label: 'Format String',
     displayType: 'textArea',
-    classNames: 'alert-config-text-area',
     apiProperty: Em.computed.ifThenElse('isJMXMetric', 'source.jmx.value', 
'source.ganglia.value')
   }),
 
@@ -482,7 +472,7 @@ App.AlertConfigProperties = {
      * Custom css-class for different badges
      * type {string}
      */
-    badgeCssClass: Em.computed.format('alert-state-{0}', 'badge'),
+    badgeCssClass: Em.computed.format('alert-state-{0}', 'badge')
 
   })
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/alerts/alert_definition.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/alerts/alert_definition.js 
b/ambari-web/app/models/alerts/alert_definition.js
index 4da7199..a3c8850 100644
--- a/ambari-web/app/models/alerts/alert_definition.js
+++ b/ambari-web/app/models/alerts/alert_definition.js
@@ -229,14 +229,14 @@ App.AlertDefinition = DS.Model.extend({
    * @type {object}
    */
   typeIcons: {
-    'METRIC': 'icon-bolt',
-    'SCRIPT': 'icon-file-text',
-    'WEB': 'icon-globe',
-    'PORT': 'icon-signin',
-    'AGGREGATE': 'icon-plus',
-    'SERVER': 'icon-desktop',
-    'RECOVERY': 'icon-desktop',
-    'AMS': 'icon-bar-chart'
+    'METRIC': 'glyphicon glyphicon-flash',
+    'SCRIPT': 'glyphicon glyphicon-file',
+    'WEB': 'glyphicon glyphicon-globe',
+    'PORT': 'glyphicon glyphicon-log-in',
+    'AGGREGATE': 'glyphicon glyphicon-plus',
+    'SERVER': 'glyphicon glyphicon-oil',
+    'RECOVERY': 'glyphicon glyphicon-oil',
+    'AMS': 'glyphicon glyphicon-stats'
   },
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/alerts/alert_instance.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/alerts/alert_instance.js 
b/ambari-web/app/models/alerts/alert_instance.js
index b366802..1e2d71e 100644
--- a/ambari-web/app/models/alerts/alert_instance.js
+++ b/ambari-web/app/models/alerts/alert_instance.js
@@ -144,7 +144,7 @@ App.AlertInstance = DS.Model.extend({
    * @type {object}
    */
   typeIcons: {
-    'DISABLED': 'icon-off'
+    'DISABLED': 'glyphicon glyphicon-off'
   },
 
   repeatToleranceReceived: function () {

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/authentication.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/authentication.js 
b/ambari-web/app/models/authentication.js
index 436c184..bac88be 100644
--- a/ambari-web/app/models/authentication.js
+++ b/ambari-web/app/models/authentication.js
@@ -99,6 +99,6 @@ App.AuthenticationForm = App.Form.extend({
   },
   testConfigurationMessage: Em.computed.ifThenElse('testResult', 
Em.I18n.t('admin.authentication.form.test.success'), 
Em.I18n.t('admin.authentication.form.test.fail')),
 
-  testConfigurationClass: Em.computed.ifThenElse('testResult', 'text-success', 
'text-error')
+  testConfigurationClass: Em.computed.ifThenElse('testResult', 'text-success', 
'text-danger')
 
 });
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/host_component.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/host_component.js 
b/ambari-web/app/models/host_component.js
index 11ea659..8f2774e 100644
--- a/ambari-web/app/models/host_component.js
+++ b/ambari-web/app/models/host_component.js
@@ -284,19 +284,19 @@ App.HostComponentActionMap = {
         action: 'restartAllHostComponents',
         context: ctx.get('serviceName'),
         label: Em.I18n.t('restart.service.all'),
-        cssClass: 'icon-repeat',
+        cssClass: 'glyphicon glyphicon-repeat',
         disabled: false
       },
       RUN_SMOKE_TEST: {
         action: 'runSmokeTest',
         label: Em.I18n.t('services.service.actions.run.smoke'),
-        cssClass: 'icon-thumbs-up-alt',
+        cssClass: 'glyphicon glyphicon-thumbs-up',
         disabled: ctx.get('controller.isSmokeTestDisabled')
       },
       REFRESH_CONFIGS: {
         action: 'refreshConfigs',
         label: Em.I18n.t('hosts.host.details.refreshConfigs'),
-        cssClass: 'icon-refresh',
+        cssClass: 'glyphicon glyphicon-refresh',
         disabled: false
       },
       REFRESHQUEUES: {
@@ -304,14 +304,14 @@ App.HostComponentActionMap = {
         customCommand: 'REFRESHQUEUES',
         context : 
Em.I18n.t('services.service.actions.run.yarnRefreshQueues.context'),
         label: 
Em.I18n.t('services.service.actions.run.yarnRefreshQueues.menu'),
-        cssClass: 'icon-refresh',
+        cssClass: 'glyphicon glyphicon-refresh',
         disabled: false
       },
       ROLLING_RESTART: {
         action: 'rollingRestart',
         context: ctx.get('rollingRestartComponent'),
         label: Em.I18n.t('rollingrestart.dialog.title'),
-        cssClass: 'icon-time',
+        cssClass: 'glyphicon glyphicon-time',
         disabled: false
       },
       TOGGLE_PASSIVE: {
@@ -324,21 +324,21 @@ App.HostComponentActionMap = {
       TOGGLE_NN_HA: {
         action: App.get('isHaEnabled') ? 'disableHighAvailability' : 
'enableHighAvailability',
         label: App.get('isHaEnabled') ? 
Em.I18n.t('admin.highAvailability.button.disable') : 
Em.I18n.t('admin.highAvailability.button.enable'),
-        cssClass: App.get('isHaEnabled') ? 'icon-arrow-down' : 'icon-arrow-up',
+        cssClass: App.get('isHaEnabled') ? 'glyphicon glyphicon-arrow-down' : 
'glyphicon glyphicon-arrow-up',
         isHidden: App.get('isHaEnabled'),
         disabled: App.get('isSingleNode') || !NN || NN.get('isNotInstalled')
       },
       TOGGLE_RM_HA: {
         action: 'enableRMHighAvailability',
         label: App.get('isRMHaEnabled') ? 
Em.I18n.t('admin.rm_highAvailability.button.disable') : 
Em.I18n.t('admin.rm_highAvailability.button.enable'),
-        cssClass: App.get('isRMHaEnabled') ? 'icon-arrow-down' : 
'icon-arrow-up',
+        cssClass: App.get('isRMHaEnabled') ? 'glyphicon glyphicon-arrow-down' 
: 'glyphicon glyphicon-arrow-up',
         isHidden: App.get('isRMHaEnabled'),
         disabled: App.get('isSingleNode') || !RM || RM.get('isNotInstalled')
       },
       TOGGLE_RA_HA: {
         action: 'enableRAHighAvailability',
         label: Em.I18n.t('admin.ra_highAvailability.button.enable'),
-        cssClass: 'icon-arrow-up',
+        cssClass: 'glyphicon glyphicon-arrow-up',
         isHidden: App.get('isRAHaEnabled'),
         disabled: App.get('isSingleNode') || !RA || RA.get('isNotInstalled')
       },
@@ -347,14 +347,14 @@ App.HostComponentActionMap = {
         context: '',
         isHidden: !App.isAuthorized('SERVICE.MOVE'),
         label: Em.I18n.t('services.service.actions.reassign.master'),
-        cssClass: 'icon-share-alt'
+        cssClass: 'glyphicon glyphicon-share-alt'
       },
       STARTDEMOLDAP: {
         action: 'startLdapKnox',
         customCommand: 'STARTDEMOLDAP',
         context: 
Em.I18n.t('services.service.actions.run.startLdapKnox.context'),
         label: Em.I18n.t('services.service.actions.run.startLdapKnox.context'),
-        cssClass: 'icon-play-sign',
+        cssClass: 'glyphicon glyphicon-play-sign',
         disabled: false
       },
       STOPDEMOLDAP: {
@@ -362,7 +362,7 @@ App.HostComponentActionMap = {
         customCommand: 'STOPDEMOLDAP',
         context: 
Em.I18n.t('services.service.actions.run.stopLdapKnox.context'),
         label: Em.I18n.t('services.service.actions.run.stopLdapKnox.context'),
-        cssClass: 'icon-stop',
+        cssClass: 'glyphicon glyphicon-stop',
         disabled: false
       },
       RESTART_LLAP: {
@@ -370,20 +370,20 @@ App.HostComponentActionMap = {
         customCommand: 'RESTART_LLAP',
         context: Em.I18n.t('services.service.actions.run.restartLLAP'),
         label: Em.I18n.t('services.service.actions.run.restartLLAP') + ' ∞',
-        cssClass: 'icon-refresh'
+        cssClass: 'glyphicon glyphicon-refresh'
       },
       REBALANCEHDFS: {
         action: 'rebalanceHdfsNodes',
         customCommand: 'REBALANCEHDFS',
         context: 
Em.I18n.t('services.service.actions.run.rebalanceHdfsNodes.context'),
         label: Em.I18n.t('services.service.actions.run.rebalanceHdfsNodes'),
-        cssClass: 'icon-refresh',
+        cssClass: 'glyphicon glyphicon-refresh',
         disabled: false
       },
       DOWNLOAD_CLIENT_CONFIGS: {
         action: ctx.get('controller.isSeveralClients') ? '' : 
'downloadClientConfigs',
         label: Em.I18n.t('services.service.actions.downloadClientConfigs'),
-        cssClass: 'icon-download-alt',
+        cssClass: 'glyphicon glyphicon-download-alt',
         isHidden: !!ctx.get('controller.content.clientComponents') ? 
ctx.get('controller.content.clientComponents').rejectProperty('totalCount', 
0).length == 0 : false,
         disabled: false,
         hasSubmenu: ctx.get('controller.isSeveralClients'),
@@ -393,35 +393,35 @@ App.HostComponentActionMap = {
         action: 'deleteService',
         context: ctx.get('serviceName'),
         label: Em.I18n.t('services.service.actions.deleteService'),
-        cssClass: 'icon-remove'
+        cssClass: 'glyphicon glyphicon-remove'
       },
       IMMEDIATE_STOP_HAWQ_SERVICE: {
         action: 'executeHawqCustomCommand',
         customCommand: 'IMMEDIATE_STOP_HAWQ_SERVICE',
         context: 
Em.I18n.t('services.service.actions.run.immediateStopHawqService.context'),
         label: 
Em.I18n.t('services.service.actions.run.immediateStopHawqService.label'),
-        cssClass: 'icon-stop',
+        cssClass: 'glyphicon glyphicon-stop',
         disabled: !HM || HM.get('workStatus') != 
App.HostComponentStatus.started
       },
       IMMEDIATE_STOP_HAWQ_SEGMENT: {
         customCommand: 'IMMEDIATE_STOP_HAWQ_SEGMENT',
         context: 
Em.I18n.t('services.service.actions.run.immediateStopHawqSegment.context'),
         label: 
Em.I18n.t('services.service.actions.run.immediateStopHawqSegment.label'),
-        cssClass: 'icon-stop'
+        cssClass: 'glyphicon glyphicon-stop'
       },
       RESYNC_HAWQ_STANDBY: {
         action: 'executeHawqCustomCommand',
         customCommand: 'RESYNC_HAWQ_STANDBY',
         context: 
Em.I18n.t('services.service.actions.run.resyncHawqStandby.context'),
         label: 
Em.I18n.t('services.service.actions.run.resyncHawqStandby.label'),
-        cssClass: 'icon-refresh',
+        cssClass: 'glyphicon glyphicon-refresh',
         isHidden : App.get('isSingleNode') || !HS ,
         disabled: !((!!HMComponent && HMComponent.get('startedCount') === 1) 
&& (!!HSComponent && HSComponent.get('startedCount') === 1))
       },
       TOGGLE_ADD_HAWQ_STANDBY: {
         action: 'addHawqStandby',
         label: Em.I18n.t('admin.addHawqStandby.button.enable'),
-        cssClass: 'icon-plus',
+        cssClass: 'glyphicon glyphicon-plus',
         isHidden: App.get('isSingleNode') || HS,
         disabled: false
       },
@@ -429,7 +429,7 @@ App.HostComponentActionMap = {
         action: 'removeHawqStandby',
         context: Em.I18n.t('admin.removeHawqStandby.button.enable'),
         label: Em.I18n.t('admin.removeHawqStandby.button.enable'),
-        cssClass: 'icon-minus',
+        cssClass: 'glyphicon glyphicon-minus',
         isHidden: App.get('isSingleNode') || !HS,
         disabled: !HM || HM.get('workStatus') != 
App.HostComponentStatus.started,
         hideFromComponentView: true
@@ -438,7 +438,7 @@ App.HostComponentActionMap = {
         action: 'activateHawqStandby',
         label: Em.I18n.t('admin.activateHawqStandby.button.enable'),
         context: Em.I18n.t('admin.activateHawqStandby.button.enable'),
-        cssClass: 'icon-arrow-up',
+        cssClass: 'glyphicon glyphicon-arrow-up',
         isHidden: App.get('isSingleNode') || !HS,
         disabled: false,
         hideFromComponentView: true
@@ -448,7 +448,7 @@ App.HostComponentActionMap = {
         customCommand: 'HAWQ_CLEAR_CACHE',
         context: 
Em.I18n.t('services.service.actions.run.clearHawqCache.label'),
         label: Em.I18n.t('services.service.actions.run.clearHawqCache.label'),
-        cssClass: 'icon-refresh',
+        cssClass: 'glyphicon glyphicon-refresh',
         isHidden : false,
         disabled: !HM || HM.get('workStatus') != 
App.HostComponentStatus.started
       },
@@ -457,13 +457,13 @@ App.HostComponentActionMap = {
         customCommand: 'RUN_HAWQ_CHECK',
         context: Em.I18n.t('services.service.actions.run.runHawqCheck.label'),
         label: Em.I18n.t('services.service.actions.run.runHawqCheck.label'),
-        cssClass: 'icon-thumbs-up-alt',
+        cssClass: 'glyphicon glyphicon-thumbs-up',
         isHidden : false,
         disabled: false
       },
       MASTER_CUSTOM_COMMAND: {
         action: 'executeCustomCommand',
-        cssClass: 'icon-play-circle',
+        cssClass: 'glyphicon glyphicon-play-circle',
         isHidden: false,
         disabled: false
       }

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/hosts.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/hosts.js b/ambari-web/app/models/hosts.js
index 9275b3e..edc08be 100644
--- a/ambari-web/app/models/hosts.js
+++ b/ambari-web/app/models/hosts.js
@@ -24,7 +24,7 @@ App.HostInfo = Ember.Object.extend({
   cpu: null,
   memory: null,
   message: 'Information',
-  barColor: 'progress-info',
+  barColor: 'progress-bar-info',
   isChecked: true,
   bootLog:null,
   bootStatus: 'PENDING',
@@ -40,22 +40,22 @@ App.HostInfo = Ember.Object.extend({
     REGISTERING: 'Registering'
   },
 
-  bootBarColor: Em.computed.getByKey('bootBarColorMap', 'bootStatus', 
'progress-info'),
+  bootBarColor: Em.computed.getByKey('bootBarColorMap', 'bootStatus', 
'progress-bar-info'),
 
   bootBarColorMap: {
-    REGISTERED: 'progress-success',
-    FAILED: 'progress-danger',
-    PENDING: 'progress-info',
-    RUNNING: 'progress-info',
-    DONE: 'progress-info',
-    REGISTERING: 'progress-info'
+    REGISTERED: 'progress-bar-success',
+    FAILED: 'progress-bar-danger',
+    PENDING: 'progress-bar-info',
+    RUNNING: 'progress-bar-info',
+    DONE: 'progress-bar-info',
+    REGISTERING: 'progress-bar-info'
   },
 
   bootStatusColor:Em.computed.getByKey('bootStatusColorMap', 'bootStatus', 
'text-info'),
 
   bootStatusColorMap: {
     REGISTERED: 'text-success',
-    FAILED: 'text-error',
+    FAILED: 'text-danger',
     PENDING: 'text-info',
     RUNNING: 'text-info',
     DONE: 'text-info',

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/models/repository.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/repository.js 
b/ambari-web/app/models/repository.js
index 0b7ee69..9caef59 100644
--- a/ambari-web/app/models/repository.js
+++ b/ambari-web/app/models/repository.js
@@ -73,9 +73,9 @@ App.Repository = DS.Model.extend({
 
 App.Repository.validation = {
   PENDING: '',
-  INVALID: 'icon-exclamation-sign',
-  OK: 'icon-ok',
-  INPROGRESS: 'icon-repeat'
+  INVALID: 'glyphicon glyphicon-exclamation-sign',
+  OK: 'glyphicon glyphicon-ok',
+  INPROGRESS: 'glyphicon glyphicon-repeat'
 };
 
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/router.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/router.js b/ambari-web/app/router.js
index 0270771..d671e86 100644
--- a/ambari-web/app/router.js
+++ b/ambari-web/app/router.js
@@ -266,7 +266,7 @@ App.Router = Em.Router.extend({
       success: 'onAuthenticationSuccess',
       error: 'onAuthenticationError'
     }).complete(function (xhr) {
-      if (xhr.isResolved()) {
+      if (xhr.state() === 'resolved') {
         // if server knows the user and user authenticated by UI
         if (auth) {
           dfd.resolve(self.get('loggedIn'));
@@ -478,7 +478,8 @@ App.Router = Em.Router.extend({
 
     if(text && status){
       return App.ModalPopup.show({
-        classNames: ['sixty-percent-width-modal'],
+        classNames: ['common-modal-wrapper'],
+        modalDialogClasses: ['modal-lg'],
         header: Em.I18n.t('login.message.title'),
         bodyClass: Ember.View.extend({
           template: Ember.Handlebars.compile(text)

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/activate_hawq_standby_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/activate_hawq_standby_routes.js 
b/ambari-web/app/routes/activate_hawq_standby_routes.js
index 8ab19db..9ba6073 100644
--- a/ambari-web/app/routes/activate_hawq_standby_routes.js
+++ b/ambari-web/app/routes/activate_hawq_standby_routes.js
@@ -27,7 +27,8 @@ module.exports = App.WizardRoute.extend({
       App.router.set('mainServiceItemController.content', 
App.Service.find().findProperty('serviceName', 'HAWQ'));
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('admin.activateHawqStandby.wizard.header'),
         bodyClass: App.ActivateHawqStandbyWizardView.extend({
           controller: activateHawqStandbyWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/add_alert_definition_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/add_alert_definition_routes.js 
b/ambari-web/app/routes/add_alert_definition_routes.js
index 15d0103..02d8c18 100644
--- a/ambari-web/app/routes/add_alert_definition_routes.js
+++ b/ambari-web/app/routes/add_alert_definition_routes.js
@@ -28,7 +28,8 @@ module.exports = App.WizardRoute.extend({
         var addAlertDefinitionController = 
router.get('addAlertDefinitionController');
         App.router.get('updateController').set('isWorking', false);
         var popup = App.ModalPopup.show({
-          classNames: ['full-width-modal'],
+          classNames: ['wizard-modal-wrapper'],
+          modalDialogClasses: ['modal-xlg'],
           header: Em.I18n.t('alerts.add.header'),
           bodyClass: App.AddAlertDefinitionView.extend({
             controllerBinding: 'App.router.addAlertDefinitionController'

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/add_hawq_standby_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/add_hawq_standby_routes.js 
b/ambari-web/app/routes/add_hawq_standby_routes.js
index d802808..346f506 100644
--- a/ambari-web/app/routes/add_hawq_standby_routes.js
+++ b/ambari-web/app/routes/add_hawq_standby_routes.js
@@ -28,7 +28,8 @@ module.exports = App.WizardRoute.extend({
       App.router.set('mainServiceItemController.content', 
App.Service.find().findProperty('serviceName', 'HAWQ'));
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('admin.addHawqStandby.wizard.header'),
         bodyClass: App.AddHawqStandbyWizardView.extend({
           controller: addHawqStandbyWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/add_host_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/add_host_routes.js 
b/ambari-web/app/routes/add_host_routes.js
index c733a66..f18cc2c 100644
--- a/ambari-web/app/routes/add_host_routes.js
+++ b/ambari-web/app/routes/add_host_routes.js
@@ -33,7 +33,8 @@ module.exports = App.WizardRoute.extend({
         var addHostController = router.get('addHostController');
         App.router.get('updateController').set('isWorking', false);
         var popup = App.ModalPopup.show({
-          classNames: ['full-width-modal'],
+          classNames: ['wizard-modal-wrapper'],
+          modalDialogClasses: ['modal-xlg'],
           header: Em.I18n.t('hosts.add.header'),
           bodyClass: App.AddHostView.extend({
             controllerBinding: 'App.router.addHostController'

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/add_kerberos_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/add_kerberos_routes.js 
b/ambari-web/app/routes/add_kerberos_routes.js
index 1568577..64ed3a3 100644
--- a/ambari-web/app/routes/add_kerberos_routes.js
+++ b/ambari-web/app/routes/add_kerberos_routes.js
@@ -26,7 +26,8 @@ module.exports = App.WizardRoute.extend({
       var kerberosWizardController = router.get('kerberosWizardController');
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('admin.kerberos.wizard.header'),
         bodyClass: App.KerberosWizardView.extend({
           controller: kerberosWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/add_service_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/add_service_routes.js 
b/ambari-web/app/routes/add_service_routes.js
index 692d186..0dafdb7 100644
--- a/ambari-web/app/routes/add_service_routes.js
+++ b/ambari-web/app/routes/add_service_routes.js
@@ -32,8 +32,9 @@ module.exports = App.WizardRoute.extend({
             var addServiceController = router.get('addServiceController');
             App.router.get('updateController').set('isWorking', false);
             var popup = App.ModalPopup.show({
-              classNames: ['full-width-modal', 'add-service-wizard-modal'],
+              classNames: ['wizard-modal-wrapper', 'add-service-wizard-modal'],
               header: Em.I18n.t('services.add.header'),
+              modalDialogClasses: ['modal-xlg'],
               bodyClass: App.AddServiceView.extend({
                 controllerBinding: 'App.router.addServiceController'
               }),

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/create_widget.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/create_widget.js 
b/ambari-web/app/routes/create_widget.js
index 805b572..f014a7f 100644
--- a/ambari-web/app/routes/create_widget.js
+++ b/ambari-web/app/routes/create_widget.js
@@ -24,7 +24,8 @@ module.exports = App.WizardRoute.extend({
       var widgetWizardController = router.get('widgetWizardController');
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('widget.create.wizard.header'),
         bodyClass: App.WidgetWizardView.extend({
           controller: widgetWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/edit_widget.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/edit_widget.js 
b/ambari-web/app/routes/edit_widget.js
index adf3d75..39728eb 100644
--- a/ambari-web/app/routes/edit_widget.js
+++ b/ambari-web/app/routes/edit_widget.js
@@ -23,7 +23,8 @@ module.exports = App.WizardRoute.extend({
     router.get('mainController').dataLoading().done(function () {
       var widgetEditController = router.get('widgetEditController');
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('widget.edit.wizard.header'),
         bodyClass: App.WidgetEditView.extend({
           controller: widgetEditController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/high_availability_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/high_availability_routes.js 
b/ambari-web/app/routes/high_availability_routes.js
index 4ab36e4..9530232 100644
--- a/ambari-web/app/routes/high_availability_routes.js
+++ b/ambari-web/app/routes/high_availability_routes.js
@@ -26,7 +26,8 @@ module.exports = App.WizardRoute.extend({
     highAvailabilityWizardController.dataLoading().done(function () {
         App.router.get('updateController').set('isWorking', false);
         var popup = App.ModalPopup.show({
-          classNames: ['full-width-modal'],
+          classNames: ['wizard-modal-wrapper'],
+          modalDialogClasses: ['modal-xlg'],
           header: Em.I18n.t('admin.highAvailability.wizard.header'),
           bodyClass: App.HighAvailabilityWizardView.extend({
             controller: highAvailabilityWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/main.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/main.js b/ambari-web/app/routes/main.js
index 8d19e0f..59f3cf4 100644
--- a/ambari-web/app/routes/main.js
+++ b/ambari-web/app/routes/main.js
@@ -415,7 +415,8 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
           App.router.get('updateController').set('isWorking', false);
           router.get('mainController').dataLoading().done(function () {
             App.ModalPopup.show({
-              classNames: ['full-width-modal'],
+              classNames: ['wizard-modal-wrapper'],
+              modalDialogClasses: ['modal-xlg'],
               header: Em.I18n.t('admin.removeSecurity.header'),
               bodyClass: App.KerberosDisableView.extend({
                 controllerBinding: 'App.router.kerberosDisableController'

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/ra_high_availability_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/ra_high_availability_routes.js 
b/ambari-web/app/routes/ra_high_availability_routes.js
index 9995937..ac975ab 100644
--- a/ambari-web/app/routes/ra_high_availability_routes.js
+++ b/ambari-web/app/routes/ra_high_availability_routes.js
@@ -30,7 +30,8 @@ module.exports = App.WizardRoute.extend({
     Em.run.next(function () {
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('admin.ra_highAvailability.wizard.header'),
         bodyClass: App.RAHighAvailabilityWizardView.extend({
           controller: rAHighAvailabilityWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/reassign_master_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/reassign_master_routes.js 
b/ambari-web/app/routes/reassign_master_routes.js
index 35bd96f..10ad0e9 100644
--- a/ambari-web/app/routes/reassign_master_routes.js
+++ b/ambari-web/app/routes/reassign_master_routes.js
@@ -35,7 +35,8 @@ module.exports = App.WizardRoute.extend({
         Em.run.next(function () {
           App.router.get('updateController').set('isWorking', false);
           var popup = App.ModalPopup.show({
-            classNames: ['full-width-modal'],
+            classNames: ['wizard-modal-wrapper'],
+            modalDialogClasses: ['modal-xlg'],
             header: Em.I18n.t('services.reassign.header'),
             bodyClass: App.ReassignMasterView.extend({
               controller: reassignMasterController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/remove_hawq_standby_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/remove_hawq_standby_routes.js 
b/ambari-web/app/routes/remove_hawq_standby_routes.js
index 8eb39d9..64250ee 100644
--- a/ambari-web/app/routes/remove_hawq_standby_routes.js
+++ b/ambari-web/app/routes/remove_hawq_standby_routes.js
@@ -29,7 +29,8 @@ module.exports = App.WizardRoute.extend({
     Em.run.next(function() {
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('admin.removeHawqStandby.wizard.header'),
         bodyClass: App.RemoveHawqStandbyWizardView.extend({
           controller: removeHawqStandbyWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/rm_high_availability_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/rm_high_availability_routes.js 
b/ambari-web/app/routes/rm_high_availability_routes.js
index af99c13..d8aa8b3 100644
--- a/ambari-web/app/routes/rm_high_availability_routes.js
+++ b/ambari-web/app/routes/rm_high_availability_routes.js
@@ -28,7 +28,8 @@ module.exports = App.WizardRoute.extend({
       App.router.set('mainServiceItemController.content', 
App.Service.find().findProperty('serviceName', 'YARN'));
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: Em.I18n.t('admin.rm_highAvailability.wizard.header'),
         bodyClass: App.RMHighAvailabilityWizardView.extend({
           controller: rMHighAvailabilityWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/rollbackHA_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/rollbackHA_routes.js 
b/ambari-web/app/routes/rollbackHA_routes.js
index 17d3599..796d439 100644
--- a/ambari-web/app/routes/rollbackHA_routes.js
+++ b/ambari-web/app/routes/rollbackHA_routes.js
@@ -26,7 +26,8 @@ module.exports = App.WizardRoute.extend({
       var rollbackHighAvailabilityWizardController = 
router.get('rollbackHighAvailabilityWizardController');
       App.router.get('updateController').set('isWorking', false);
       var popup = App.ModalPopup.show({
-        classNames: ['full-width-modal'],
+        classNames: ['wizard-modal-wrapper'],
+        modalDialogClasses: ['modal-xlg'],
         header: 
Em.I18n.t('admin.highAvailability.wizard.rollback.header.title'),
         bodyClass: App.RollbackHighAvailabilityWizardView.extend({
           controller: rollbackHighAvailabilityWizardController

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/routes/stack_upgrade_routes.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/routes/stack_upgrade_routes.js 
b/ambari-web/app/routes/stack_upgrade_routes.js
index be92f28..7cf83b6 100644
--- a/ambari-web/app/routes/stack_upgrade_routes.js
+++ b/ambari-web/app/routes/stack_upgrade_routes.js
@@ -34,7 +34,8 @@ module.exports = App.WizardRoute.extend({
           App.router.get('updateController').set('isWorking', false);
 
           return App.ModalPopup.show({
-            classNames: ['full-width-modal'],
+            classNames: ['upgrade-wizard-modal'],
+            modalDialogClasses: ['modal-xlg'],
             header: function () {
               var controller = 
App.router.get('mainAdminStackAndUpgradeController');
               if (controller.get('isDowngrade')) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/2a77e39c/ambari-web/app/styles/alerts.less
----------------------------------------------------------------------
diff --git a/ambari-web/app/styles/alerts.less 
b/ambari-web/app/styles/alerts.less
index e31ea30..eb3f5a3 100644
--- a/ambari-web/app/styles/alerts.less
+++ b/ambari-web/app/styles/alerts.less
@@ -17,27 +17,27 @@
  */
 @import 'common.less';
 
-.alert-state-OK {
+.label.alert-state-OK {
   background-color: @health-status-green;
 }
 
-.alert-state-WARNING {
+.label.alert-state-WARNING {
   background-color: @health-status-orange;
 }
 
-.alert-state-CRITICAL {
+.label.alert-state-CRITICAL {
   background-color: @health-status-red;
 }
 
-.alert-state-DISABLED {
+.label.alert-state-DISABLED {
   color: #000;
 }
 
-.alert-state-UNKNOWN {
+.label.alert-state-UNKNOWN {
   background-color: @health-status-yellow;
 }
 
-.alert-state-PENDING {
+.label.alert-state-PENDING {
   background-color: #999;
 }
 
@@ -69,6 +69,10 @@
   margin-bottom: 10px;
   font-size: 13px \9;
 
+  .filter-input-width {
+    width: ~"calc(100% - 20px)";
+  }
+
   .filter-row {
     th {
       padding: 0;
@@ -95,54 +99,44 @@
     }
   }
 
+  .filter-input-width {
+    width: ~"calc(100% - 20px)";
+  }
+
   .col0,
   td:first-child,
   th:first-child {
     width: 35%;
+
   }
 
   .col1,
   td:first-child + td,
   th:first-child + th {
     width: 15%;
-    .filter-input-width {
-      width: 80%;
-    }
   }
 
   .col2,
   td:first-child + td + td,
   th:first-child + th + th {
     width: 20%;
-    .filter-input-width {
-      width: 80%;
-    }
   }
   .col3,
   td:first-child + td + td + td,
   th:first-child + th + th + th {
     width: 15%;
-    .filter-input-width {
-      width: 80%;
-    }
   }
 
   .col4,
   td:first-child + td + td + td + td,
   th:first-child + th + th + th + th {
     width: 15%;
-    .filter-input-width {
-      width: 80%;
-    }
   }
 
   .col5,
   td:first-child + td + td + td + td + td,
   th:first-child + th + th + th + th + th {
     width: 10%;
-    .filter-input-width {
-      width: 80%;
-    }
   }
 
   .type-icon {
@@ -190,6 +184,12 @@
     white-space: nowrap;
     width: 100%;
   }
+
+  .filter-row {
+    input, select {
+      width: ~"calc(100% - 20px)";
+    }
+  }
 }
 
 #alert-definition-details {
@@ -199,7 +199,7 @@
   .box {
     .box-header {
       .edit-link {
-        margin: 5px;
+        margin: 3px;
       }
     }
     margin-bottom: 0;
@@ -267,7 +267,7 @@
       margin-top: -4px;
       float: left;
       margin-left: 7px;
-    }    
+    }
   }
 
   .error-msg {
@@ -277,7 +277,6 @@
   .edit-buttons {
     text-align: right;
     margin-bottom: 10px;
-    margin-right: 10px;
   }
 
   .text-area-edit {
@@ -301,65 +300,22 @@
 
 .alert-configs {
 
-  label.shifted {
-    width: 170px;
-  }
-
-  .stuck-left {
-    margin-left: 0!important;
-  }
-
-  .controls.shifted {
-    margin-left: 190px;
+  textarea {
+    resize: vertical;
   }
 
-  margin-top: 20px;
-
-  .alert-config-text-area {
-    height: 100px;
-  }
-
-  .alert-text-input {
-    input {
-      width: 98%;
-    }
-  }
-
-  .input-append {
-    padding-right: 13px;
-  }
-
-  .alert-interval-input {
-    input {
-      width: 20%;
-    }
-  }
-
-  .alert-port-input {
-    input {
-      width: 30%;
-    }
-  }
-
-  .badge-container {
-    height: 26px;
-    .alert-threshold-badge,
-    .alert-parameter-badge {
-      line-height: 26px;
-      height: 26px;
-    }
+  .alert-label {
+    line-height: 26px;
+    width: 100%;
+    font-size: 85%;
   }
 
-  .control-group.error{
-    .alert-text-input input{
-      color: #555555;
-      border-color: #ccc;
-    }
+  // ":last-child" used in the Bootstrap affects "script"-tag created by 
Handlebars and not ".input-group-addon"
+  // ":last-of-type" should be used instead
+  .input-group-addon:last-of-type {
+    border-left: 0 !important;
+    border-radius: 0 4px 4px 0;
   }
-  .error-message {
-    color: #b94a48;
-  }
-
 
 }
 
@@ -432,9 +388,6 @@
 
 #create-edit-alert-notification {
   .form-horizontal {
-    .controls {
-      margin-left: 140px;
-    }
     .control-label {
       font-weight: bold;
     }
@@ -449,7 +402,7 @@
     }
   }
 
-  .icon-minus-sign {
+  .glyphicon-minus-sign {
     color: #FF4B4B;
   }
 
@@ -469,13 +422,6 @@
 
 }
 
-.create-edit-alert-notification-popup {
-  .modal {
-    margin-top: 0;
-    top: 5%;
-    width: 600px;
-  }
-}
 
 .service-block .summary-box-header {
   .alerts-crit-count, .alerts-warn-count, .no-alerts-label {
@@ -489,13 +435,13 @@
   cursor: pointer;
 }
 
-.alerts-crit-count {
+.label.alerts-crit-count {
   background: @health-status-red;
 }
-.alerts-warn-count {
+.label.alerts-warn-count {
   background: @health-status-orange;
 }
-.no-alerts-label {
+.label.no-alerts-label {
   background: @health-status-green;
 }
 
@@ -510,13 +456,7 @@
 }
 
 /*****start styles for manage alerts popup*****/
-.sixty-percent-width-modal.manage-alert-group-popup {
-  .modal{
-    max-height: 650px;
-  }
-  .modal-body {
-    max-height: 500px;
-  }
+.manage-alert-group-popup {
   .group-select {
     width: 100%;
     height: 250px;
@@ -541,8 +481,6 @@
 
 .forty-percent-width-modal {
   .modal {
-    width: 40%;
-
     .definition-latest-text {
       overflow-x: auto;
       text-overflow: inherit;
@@ -668,4 +606,4 @@
 .alert-definition-filter-list {
   max-height: 200px;
   overflow-y: scroll;
-}
\ No newline at end of file
+}

Reply via email to