AMBARI-18790. Implement lazy loading for Service configs Advanced tab. 
Additional patch. (akovalenko)


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

Branch: refs/heads/branch-2.5
Commit: bb9859db533be467e4845f743f3c8755f29dedb9
Parents: 4005200
Author: Aleksandr Kovalenko <akovale...@hortonworks.com>
Authored: Mon Jan 23 22:26:40 2017 +0200
Committer: Aleksandr Kovalenko <akovale...@hortonworks.com>
Committed: Mon Jan 23 22:26:40 2017 +0200

----------------------------------------------------------------------
 .../configs/service_configs_by_category_view.js    | 17 +++++++++++++----
 .../notification_configs_view_test.js              |  8 +++-----
 2 files changed, 16 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/bb9859db/ambari-web/app/views/common/configs/service_configs_by_category_view.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/app/views/common/configs/service_configs_by_category_view.js 
b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
index d52b3e1..d7c1f4d 100644
--- a/ambari-web/app/views/common/configs/service_configs_by_category_view.js
+++ b/ambari-web/app/views/common/configs/service_configs_by_category_view.js
@@ -64,6 +64,15 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
    */
   categoryConfigs: [],
 
+  /**
+   * Link to main configs view
+   * @type {Ember.View}
+   */
+  mainView: function () {
+    //todo: Get rid of this logic. Get data from controller instead.
+    return this.get('controller.name') === 'mainServiceInfoConfigsController' 
? this.get('parentView.parentView') : this.get('parentView');
+  }.property('controller.name'),
+
   didInsertElement: function () {
     var self = this;
     // If `this.categoryConfigsAll` is a computed property then don't set it.
@@ -175,9 +184,9 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
     var hasFilteredAdvancedConfigs = 
this.get('categoryConfigs').filter(function (config) {
         return config.get('isHiddenByFilter') === false && 
Em.isNone(config.get('widget'));
       }, this).length > 0;
-    return (isCustomPropertiesCategory && this.get('controller.filter') === '' 
&& !this.get('parentView.parentView.columns').someProperty('selected')) ||
+    return (isCustomPropertiesCategory && this.get('controller.filter') === '' 
&& !this.get('mainView.columns').someProperty('selected')) ||
       hasFilteredAdvancedConfigs;
-  }.property('category.customCanAddProperty', 
'categoryConfigs.@each.isHiddenByFilter', 'categoryConfigs.@each.widget', 
'controller.filter', 'parentView.parentView.columns.@each.selected'),
+  }.property('category.customCanAddProperty', 
'categoryConfigs.@each.isHiddenByFilter', 'categoryConfigs.@each.widget', 
'controller.filter', 'mainView.columns.@each.selected'),
 
   /**
    * Re-order the configs to list content displayType properties at last in 
the category
@@ -320,7 +329,7 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
   collapseCategory: function () {
     if (this.get('state') === 'destroyed') return;
     $('.popover').remove();
-    var filter = this.get('parentView.parentView.filter');
+    var filter = this.get('mainView.filter');
     filter = filter? filter.toLowerCase() : filter; // filter can be undefined 
in some wizard
     var filteredResult = this.get('categoryConfigs');
     var isInitialRendering = !arguments.length || arguments[1] != 
'categoryConfigs';
@@ -643,7 +652,7 @@ App.ServiceConfigsByCategoryView = 
Em.View.extend(App.UserPref, App.ConfigOverri
           var controller = (App.router.get('currentState.name') == 'configs')
             ? App.router.get('mainServiceInfoConfigsController')
             : App.router.get('wizardStep7Controller');
-          this.get('parentView.parentView').onClose();
+          this.get('mainView').onClose();
           controller.set('filter', event.view.get('serviceConfigObj.name'));
         }
       })

http://git-wip-us.apache.org/repos/asf/ambari/blob/bb9859db/ambari-web/test/views/common/configs/custom_category_views/notification_configs_view_test.js
----------------------------------------------------------------------
diff --git 
a/ambari-web/test/views/common/configs/custom_category_views/notification_configs_view_test.js
 
b/ambari-web/test/views/common/configs/custom_category_views/notification_configs_view_test.js
index 681d346..46be186 100644
--- 
a/ambari-web/test/views/common/configs/custom_category_views/notification_configs_view_test.js
+++ 
b/ambari-web/test/views/common/configs/custom_category_views/notification_configs_view_test.js
@@ -31,11 +31,9 @@ function getView() {
     serviceConfigs: [],
     categoryConfigs: [],
     categoryConfigsAll: [],
-    parentView: Em.View.create({
-      parentView: Em.View.create({
-        filter: '',
-        columns: []
-      })
+    mainView: Em.View.create({
+      filter: '',
+      columns: []
     })
   });
 }

Reply via email to