AMBARI-3799. Advanced repo UI cleanup. (xiwang via yusaku)
diff --git a/ambari-web/app/controllers/installer.js b/ambari-web/app/controllers/installer.js
index 4803680..b669a25 100644
--- a/ambari-web/app/controllers/installer.js
+++ b/ambari-web/app/controllers/installer.js
@@ -426,7 +426,7 @@
     var selectedStack = this.get('content.stacks').findProperty('isSelected', true);
     if (selectedStack && selectedStack.operatingSystems) {
       var os = selectedStack.operatingSystems.findProperty('osType', osType);
-      os.validation = 'icon-remove';
+      os.validation = 'icon-exclamation-sign';
       selectedStack.set('reload', !selectedStack.get('reload'));
       this.set('validationCnt', this.get('validationCnt') - 1);
       this.set('invalidCnt', this.get('invalidCnt') + 1);
diff --git a/ambari-web/app/messages.js b/ambari-web/app/messages.js
index dcb18b1..3cc8bdc 100644
--- a/ambari-web/app/messages.js
+++ b/ambari-web/app/messages.js
@@ -370,10 +370,10 @@
     '<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>',
   'installer.step3.hostWarningsPopup.summary':'{0} on {1}',
   'installer.step3.hostWarningsPopup.firewall':'Firewall Issues',
-  'installer.step3.hostWarningsPopup.repositories':'Repositories Issues',
+  'installer.step3.hostWarningsPopup.repositories':'Repository Issues',
   'installer.step3.hostWarningsPopup.repositories.name':'Repository for OS not available',
   'installer.step3.hostWarningsPopup.repositories.context':'Host ({0}) has a {1} OS type, But the repositories chosen in "Select Stack" step was {2}.',
-  'installer.step3.hostWarningsPopup.repositories.message':'The following registered hosts have different Operating System types from the local repositories chosen in "Select Stack" step. You can go back to "Select Stack" step to select another os group OR remove related host.',
+  'installer.step3.hostWarningsPopup.repositories.message':'The following registered hosts have different Operating System types from the available Repositories chosen in "Select Stack" step. You can go back to "Select Stack" step to select another OS repository <b>or</b> remove the host.',
   'installer.step3.hostWarningsPopup.firewall.message':'Firewall is running on the following hosts. Please configure the firewall to allow communications on the ports documented in the <i>Configuring Ports</i> section of  the <a target=\"_blank\" href=\"http://incubator.apache.org/ambari/current/installing-hadoop-using-ambari/content/\">Ambari documentation</a>',
   'installer.step3.hostWarningsPopup.firewall.name':'<i>iptables</i> Running',
   'installer.step3.hostWarningsPopup.process':'Process Issues',
diff --git a/ambari-web/app/styles/application.less b/ambari-web/app/styles/application.less
index 3043e0a..a74e3af 100644
--- a/ambari-web/app/styles/application.less
+++ b/ambari-web/app/styles/application.less
@@ -4845,6 +4845,10 @@
         padding-top: 0px;
         padding-left: 4px;
         padding-right: 4px;
+        .icon-exclamation-sign {
+          color: #b94a48;
+        }
+
       }
       .clearAll-icon {
         width: 2%;
diff --git a/ambari-web/app/templates/wizard/step1.hbs b/ambari-web/app/templates/wizard/step1.hbs
index 32c644a..75ed2f1 100644
--- a/ambari-web/app/templates/wizard/step1.hbs
+++ b/ambari-web/app/templates/wizard/step1.hbs
@@ -42,15 +42,15 @@
       <div  class="accordion-body collapse in">
         <div class="accordion-inner">
           <div class="alert alert-info">{{t installer.step1.advancedRepo.message}}</div>
-          <div class="alert alert-danger">{{t installer.step1.advancedRepo.importantMassage}}</div>
+          <div class="alert alert-warning">{{t installer.step1.advancedRepo.importantMassage}}</div>
 
           <table class="table">
             <thead>
             <tr>
               <th></th>
               <th class="os">{{t common.os}}</th>
-              <th class="url">{{t installer.step1.advancedRepo.localRepo.column.baseUrl}}</th>
               <th class="validations"></th>
+              <th class="url">{{t installer.step1.advancedRepo.localRepo.column.baseUrl}}</th>
               <th class="actions"></th>
             </tr>
             </thead>
@@ -69,6 +69,11 @@
                       </tbody>
                     </table>
                   </td>
+                  <td class="validation-results">
+                    {{#if repoGroup.validation}}
+                      <i {{bindAttr class="repoGroup.validation"}}></i>
+                    {{/if}}
+                  </td>
                   <td  {{bindAttr class=":url-results repoGroup.checked::disabled-textfield repoGroup.empty-error:textfield-error repoGroup.invalid-error:textfield-error"}}>
                     {{view Ember.TextField valueBinding="repoGroup.baseUrl"}}
                   </td>
@@ -79,11 +84,6 @@
                       </a>
                     {{/if}}
                   </td>
-                  <td class="validation-results">
-                    {{#if repoGroup.validation}}
-                      <i {{bindAttr class="repoGroup.validation"}}></i>
-                    {{/if}}
-                  </td>
                   <td class="action-results">
                     {{#if repoGroup.undo}}
                       <a {{action "undoGroupLocalRepository" repoGroup target="view" }}>
diff --git a/ambari-web/app/views/wizard/step1_view.js b/ambari-web/app/views/wizard/step1_view.js
index 6000428..d9d2b46 100644
--- a/ambari-web/app/views/wizard/step1_view.js
+++ b/ambari-web/app/views/wizard/step1_view.js
@@ -54,7 +54,7 @@
   }.property('emptyRepoExist', 'allRepoUnchecked', 'invalidUrlExist'),
   invalidUrlExist: function () {
     var selectedStack = this.get('controller.content.stacks').findProperty('isSelected', true);
-    var invalidExist = this.get('allRepositoriesGroup').filterProperty('validation', 'icon-remove').length != 0;
+    var invalidExist = this.get('allRepositoriesGroup').filterProperty('validation', 'icon-exclamation-sign').length != 0;
     return (selectedStack.get('invalidCnt') > 0) && invalidExist;
   }.property('controller.content.stacks.@each.invalidCnt', 'allRepositoriesGroup.@each.validation'),
   allRepoUnchecked: function () {
@@ -62,7 +62,7 @@
   }.property('allRepositoriesGroup.@each.checked'),
   totalErrorCnt: function () {
     var emptyCnt = this.get('allRepositoriesGroup').filterProperty('empty-error', true).length;
-    var invalidCnt = this.get('allRepositoriesGroup').filterProperty('validation', 'icon-remove').length;
+    var invalidCnt = this.get('allRepositoriesGroup').filterProperty('validation', 'icon-exclamation-sign').length;
     if (this.get('allRepoUnchecked')) {
       return 1;
     } else if ( emptyCnt || invalidCnt) {
@@ -144,7 +144,7 @@
     group.set('baseUrl', os.baseUrl);
     group.set('defaultBaseUrl', os.defaultBaseUrl);
     group.set('empty-error', !os.baseUrl);
-    group.set('invalid-error', os.validation == 'icon-remove');
+    group.set('invalid-error', os.validation == 'icon-exclamation-sign');
     group.set('validation', os.validation);
     group.set('undo', os.baseUrl != os.defaultBaseUrl);
     group.set('clearAll', os.baseUrl);