Repository: ambari
Updated Branches:
  refs/heads/trunk c4ca3b890 -> 53e77ef5e


AMBARI-20287 - Filter in Customize Services Page doesn't bring up all 
properties that matches (rzang)


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

Branch: refs/heads/trunk
Commit: 53e77ef5e19ddfd11630323d7e94edf448c27f50
Parents: c4ca3b8
Author: Richard Zang <rz...@apache.org>
Authored: Thu Mar 9 11:51:45 2017 -0800
Committer: Richard Zang <rz...@apache.org>
Committed: Thu Mar 9 11:51:45 2017 -0800

----------------------------------------------------------------------
 .../app/models/configs/theme/sub_section.js     |  2 +-
 .../app/models/configs/theme/sub_section_tab.js |  9 ++++-
 .../configs/service_config_layout_tab_view.js   |  4 +-
 .../configs/theme/sub_section_tab_test.js       | 41 +++++++++++++++++---
 4 files changed, 46 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/53e77ef5/ambari-web/app/models/configs/theme/sub_section.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/theme/sub_section.js 
b/ambari-web/app/models/configs/theme/sub_section.js
index 7274569..591a3e9 100644
--- a/ambari-web/app/models/configs/theme/sub_section.js
+++ b/ambari-web/app/models/configs/theme/sub_section.js
@@ -181,7 +181,7 @@ App.SubSection = DS.Model.extend({
     var configs = this.get('configs').filter(function(c) {
       return !c.get('hiddenBySection') && c.get('isVisible');
     });
-    return configs.length ? configs.everyProperty('isHiddenByFilter', true) : 
false;
+    return configs.length ? configs.everyProperty('isHiddenByFilter', true) && 
!this.get('someSubSectionTabIsVisible'): false;
   }.property('configs.@each.isHiddenByFilter'),
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/53e77ef5/ambari-web/app/models/configs/theme/sub_section_tab.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/models/configs/theme/sub_section_tab.js 
b/ambari-web/app/models/configs/theme/sub_section_tab.js
index 2262882..9062457 100644
--- a/ambari-web/app/models/configs/theme/sub_section_tab.js
+++ b/ambari-web/app/models/configs/theme/sub_section_tab.js
@@ -81,7 +81,10 @@ App.SubSectionTab = DS.Model.extend({
    * If there is no configs, subsection can't be hidden
    * @type {boolean}
    */
-  isHiddenByFilter: Em.computed.everyBy('visibleProperties', 
'isHiddenByFilter', true),
+  isHiddenByFilter: function () {
+    var configs = this.get('visibleProperties');
+    return configs.length ? configs.everyProperty('isHiddenByFilter', true) : 
false;
+  }.property('configs.@each.isHiddenByFilter').volatile(),
 
   /**
    * @type {boolean}
@@ -92,7 +95,9 @@ App.SubSectionTab = DS.Model.extend({
    * Determines if subsection is visible
    * @type {boolean}
    */
-  isVisible: Em.computed.and('!isHiddenByFilter', '!isHiddenByConfig', 
'someConfigIsVisible')
+  isVisible: function() {
+    return !this.get('isHiddenByFilter') && !this.get('isHiddenByConfig') && 
this.get('someConfigIsVisible');
+  }.property('isHiddenByFilter', 'isHiddenByConfig', 
'someConfigIsVisible').volatile()
 
 });
 

http://git-wip-us.apache.org/repos/asf/ambari/blob/53e77ef5/ambari-web/app/views/common/configs/service_config_layout_tab_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/service_config_layout_tab_view.js 
b/ambari-web/app/views/common/configs/service_config_layout_tab_view.js
index 466a88d..ccbb148 100644
--- a/ambari-web/app/views/common/configs/service_config_layout_tab_view.js
+++ b/ambari-web/app/views/common/configs/service_config_layout_tab_view.js
@@ -182,7 +182,9 @@ App.ServiceConfigLayoutTabView = 
Em.View.extend(App.ConfigOverridable, {
    * @param event
    */
   setActiveSubTab: function(event) {
-    if (!event.context) return;
+    if (!event.context || !event.context.get('isVisible')) {
+      return false;
+    }
     try {
       event.context.get('subSection.subSectionTabs').setEach('isActive', 
false);
       event.context.set('isActive', true);

http://git-wip-us.apache.org/repos/asf/ambari/blob/53e77ef5/ambari-web/test/models/configs/theme/sub_section_tab_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/models/configs/theme/sub_section_tab_test.js 
b/ambari-web/test/models/configs/theme/sub_section_tab_test.js
index 0c3b98c..d65cd76 100644
--- a/ambari-web/test/models/configs/theme/sub_section_tab_test.js
+++ b/ambari-web/test/models/configs/theme/sub_section_tab_test.js
@@ -160,10 +160,39 @@ describe('App.SubSectionTab', function () {
 
   });
 
-  App.TestAliases.testAsComputedEveryBy(getModel(), 'isHiddenByFilter', 
'visibleProperties', 'isHiddenByFilter', true);
-
-  App.TestAliases.testAsComputedGt(getModel(), 'someConfigIsVisible', 
'visibleProperties.length', 0);
-
-  App.TestAliases.testAsComputedAnd(getModel(), 'isVisible', 
['!isHiddenByFilter', '!isHiddenByConfig', 'someConfigIsVisible']);
+  describe('#isHiddenByFilter', function () {
+
+    Em.A([
+      {
+        configs: [],
+        e: false,
+        m: 'Can\'t be hidden if there is no configs'
+      },
+      {
+        configs: [Em.Object.create({isHiddenByFilter: true, isVisible: true}), 
Em.Object.create({isHiddenByFilter: true, isVisible: true})],
+        e: true,
+        m: 'All configs are hidden'
+      },
+      {
+        configs: [Em.Object.create({isHiddenByFilter: false, isVisible: 
true}), Em.Object.create({isHiddenByFilter: true, isVisible: true})],
+        e: false,
+        m: 'Some configs are hidden'
+      },
+      {
+        configs: [Em.Object.create({isHiddenByFilter: false, isVisible: 
true}), Em.Object.create({isHiddenByFilter: true, isVisible: true})],
+        e: false,
+        m: 'Some configs are hidden'
+      },
+      {
+        configs: [Em.Object.create({isHiddenByFilter: false, isVisible: 
true}), Em.Object.create({isHiddenByFilter: false, isVisible: true})],
+        e: false,
+        m: 'No configs are hidden'
+      }
+    ]).forEach(function (test) {
+      it(test.m, function () {
+        subSectionTab.set('configs', test.configs);
+        expect(subSectionTab.get('isHiddenByFilter')).to.equal(test.e);
+      })
+    });
 
-});
\ No newline at end of file
+  });});
\ No newline at end of file

Reply via email to