Explorar o código

AMBARI-10937. Filtering configs should not hide tabs. Instead should disable selection. (onechiporenko)

Oleg Nechiporenko %!s(int64=10) %!d(string=hai) anos
pai
achega
172dd8cf4c

+ 13 - 15
ambari-web/app/templates/common/configs/service_config.hbs

@@ -96,22 +96,20 @@
   {{#if view.supportsConfigLayout}}
     <ul class="nav nav-tabs mbm">
       {{#each tab in view.tabs}}
-        {{#unless tab.isHiddenByFilter}}
-          <li {{bindAttr class="tab.isActive:active" }}>
-            <a href="#" {{action "setActiveTab" tab target="view"}} {{bindAttr data-target="tab.headingClass"}} data-toggle="tab">
-              {{tab.displayName}}
-                {{#if tab.isAdvanced}}
-                  {{#if controller.errorsCount}}
-                  <span class="badge badge-important">{{controller.errorsCount}}</span>
-                {{/if}}
-              {{else}}
-                {{#if tab.errorsCount}}
-                  <span class="badge badge-important">{{tab.errorsCount}}</span>
-                {{/if}}
+        <li {{bindAttr class="tab.isActive:active tab.isHiddenByFilter:disabled" }}>
+          <a href="#" {{action "setActiveTab" tab target="view"}} {{bindAttr data-target="tab.headingClass"}} data-toggle="tab">
+            {{tab.displayName}}
+              {{#if tab.isAdvanced}}
+                {{#if controller.errorsCount}}
+                <span class="badge badge-important">{{controller.errorsCount}}</span>
               {{/if}}
-            </a>
-          </li>
-        {{/unless}}
+            {{else}}
+              {{#if tab.errorsCount}}
+                <span class="badge badge-important">{{tab.errorsCount}}</span>
+              {{/if}}
+            {{/if}}
+          </a>
+        </li>
       {{/each}}
     </ul>
     <div class="tab-content service-config-tab-content">

+ 2 - 2
ambari-web/app/templates/common/configs/service_config_wizard.hbs

@@ -51,8 +51,8 @@
 {{#if view.supportsConfigLayout}}
   <ul class="nav nav-tabs mbm">
     {{#each tab in view.tabs}}
-      <li {{bindAttr class="tab.isActive:active" }}>
-        <a href="#" {{bindAttr data-target="tab.headingClass"}} data-toggle="tab">
+      <li {{bindAttr class="tab.isActive:active tab.isHiddenByFilter:disabled" }}>
+        <a href="#" {{action "setActiveTab" tab target="view"}} {{bindAttr data-target="tab.headingClass"}} data-toggle="tab">
           {{tab.displayName}}
           {{#if tab.isAdvanced}}
             {{#if controller.errorsCount}}

+ 8 - 0
ambari-web/app/views/common/configs/service_config_container_view.js

@@ -45,6 +45,14 @@ App.ServiceConfigContainerView = Em.ContainerView.extend({
           didInsertElement: function () {
             $('.loading').empty();
             this._super();
+          },
+          setActiveTab: function (event) {
+            if (event.context.get('isHiddenByFilter')) return false;
+            this.get('tabs').forEach(function (tab) {
+              tab.set('isActive', false);
+            });
+            var currentTab = event.context;
+            currentTab.set('isActive', true);
           }
         }));
       }

+ 1 - 0
ambari-web/app/views/common/configs/service_config_view.js

@@ -92,6 +92,7 @@ App.ServiceConfigView = Em.View.extend({
   ),
 
   setActiveTab: function (event) {
+    if (event.context.get('isHiddenByFilter')) return false;
     this.get('tabs').forEach(function (tab) {
       tab.set('isActive', false);
     });