Browse Source

AMBARI-6605. FE: UI config groups page should provide filter 'Final Properties'

Srimanth Gunturi 10 years ago
parent
commit
d5bd15bdc6

+ 21 - 8
ambari-web/app/controllers/main/service/info/configs.js

@@ -100,19 +100,32 @@ App.MainServiceInfoConfigsController = Em.Controller.extend({
    */
   filter: '',
 
+  /**
+   * List of filters for config properties to populate filter combobox
+   */
+  propertyFilters: [
+    {
+      attributeName: 'isOverridden',
+      caption: 'common.combobox.dropdown.overridden'
+    },
+    {
+      attributeName: 'isFinal',
+      caption: 'common.combobox.dropdown.final'
+    }
+  ],
+
   /**
    * Dropdown menu items in filter combobox
    */
   filterColumns: function () {
-    var result = [];
-    for (var i = 1; i < 2; i++) {
-      result.push(Ember.Object.create({
-        name: this.t('common.combobox.dropdown.' + i),
+    return this.get('propertyFilters').map(function(filter) {
+      return Ember.Object.create({
+        attributeName: filter.attributeName,
+        name: this.t(filter.caption),
         selected: false
-      }));
-    }
-    return result;
-  }.property(),
+      })
+    }, this);
+  }.property('propertyFilters'),
 
   /**
    * clear and set properties to default value

+ 21 - 9
ambari-web/app/controllers/wizard/step7_controller.js

@@ -179,20 +179,32 @@ App.WizardStep7Controller = Em.Controller.extend({
    */
   filter: '',
 
+  /**
+   * List of filters for config properties to populate filter combobox
+   */
+  propertyFilters: [
+    {
+      attributeName: 'isOverridden',
+      caption: 'common.combobox.dropdown.overridden'
+    },
+    {
+      attributeName: 'isFinal',
+      caption: 'common.combobox.dropdown.final'
+    }
+  ],
+
   /**
    * Dropdown menu items in filter combobox
-   * @type {Ember.Object[]}
    */
   filterColumns: function () {
-    var result = [];
-    for (var i = 1; i < 2; i++) {
-      result.push(Em.Object.create({
-        name: this.t('common.combobox.dropdown.' + i),
+    return this.get('propertyFilters').map(function(filter) {
+      return Ember.Object.create({
+        attributeName: filter.attributeName,
+        name: this.t(filter.caption),
         selected: false
-      }));
-    }
-    return result;
-  }.property(),
+      })
+    }, this);
+  }.property('propertyFilters'),
 
   /**
    * Clear controller's properties:

+ 2 - 1
ambari-web/app/messages.js

@@ -2175,7 +2175,8 @@ Em.I18n.translations = {
   'number.validate.moreThanMaximum': 'value greater than {0}',
 
   'common.combobox.placeholder': 'Filter...',
-  'common.combobox.dropdown.1': 'Overridden properties',
+  'common.combobox.dropdown.overridden': 'Overridden properties',
+  'common.combobox.dropdown.final': 'Final properties',
 
   'quick.links.error.label': 'Hostname is undefined',
   'quick.links.publicHostName': '{0} ({1})',

+ 8 - 11
ambari-web/app/views/common/configs/services_config.js

@@ -331,20 +331,17 @@ App.ServiceConfigsByCategoryView = Ember.View.extend(App.UserPref, {
     if (filter != null) {
       filter = filter.toLowerCase();
     }
-    //var isOnlyModified = this.get('parentView.columns').length && this.get('parentView.columns')[1].get('selected');
-    var isOnlyOverridden = columns!=null ? (columns.length && columns[0].get('selected')) : false;
-    //var isOnlyRestartRequired = this.get('parentView.columns').length && this.get('parentView.columns')[2].get('selected');
+    var selectedFilters = this.get('parentView.columns').filterProperty('selected', true);
     var filteredResult = this.get('categoryConfigs').filter(function (config) {
 
-     /* if (isOnlyModified && !config.get('isNotDefaultValue')) {
-        return false;
-      }
-
-      if (isOnlyRestartRequired && !config.get('isRestartRequired')) {
-        return false;
-      }*/
+      var passesFilters = true;
+      selectedFilters.forEach(function (filter) {
+        if (!config.get(filter.attributeName)) {
+          passesFilters = false;
+        }
+      });
 
-      if (isOnlyOverridden && !config.get('isOverridden')) {
+      if (!passesFilters) {
         return false;
       }