You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by al...@apache.org on 2015/03/01 23:22:16 UTC

[2/5] ambari git commit: AMBARI-9864. Double spinner appears after "clear filters" press on Hosts page (alexantonenko)

AMBARI-9864. Double spinner appears after "clear filters" press on Hosts page (alexantonenko)


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

Branch: refs/heads/trunk
Commit: 303628ce396ee3427099d1c8bf2c29fb75d65f54
Parents: 95de72e
Author: Alex Antonenko <hi...@gmail.com>
Authored: Sun Mar 1 20:36:43 2015 +0200
Committer: Alex Antonenko <hi...@gmail.com>
Committed: Mon Mar 2 00:19:40 2015 +0200

----------------------------------------------------------------------
 .../app/mixins/common/table_server_view_mixin.js  | 17 +++++++++++++++++
 ambari-web/app/views/main/host.js                 |  9 ++-------
 .../mixins/common/table_server_view_mixin_test.js | 18 ++++++++++++++++++
 3 files changed, 37 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/303628ce/ambari-web/app/mixins/common/table_server_view_mixin.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/mixins/common/table_server_view_mixin.js b/ambari-web/app/mixins/common/table_server_view_mixin.js
index 111be84..e46bd2e 100644
--- a/ambari-web/app/mixins/common/table_server_view_mixin.js
+++ b/ambari-web/app/mixins/common/table_server_view_mixin.js
@@ -87,6 +87,23 @@ App.TableServerViewMixin = Em.Mixin.create({
       this.refresh();
     }
   },
+
+  /**
+   * success callback for updater request
+   */
+  updaterSuccessCb: function () {
+    clearTimeout(this.get('timeOut'));
+    this.set('filteringComplete', true);
+    this.propertyDidChange('pageContent');
+  },
+
+  /**
+   * error callback for updater request
+   */
+  updaterErrorCb: function () {
+    this.set('requestError', arguments);
+  },
+
   /**
    * synchronize properties of view with controller to generate query parameters
    */

http://git-wip-us.apache.org/repos/asf/ambari/blob/303628ce/ambari-web/app/views/main/host.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/views/main/host.js b/ambari-web/app/views/main/host.js
index c7b7e56..7f49486 100644
--- a/ambari-web/app/views/main/host.js
+++ b/ambari-web/app/views/main/host.js
@@ -91,17 +91,12 @@ App.MainHostView = App.TableView.extend(App.TableServerViewMixin, {
    * called when trigger property(<code>refreshTriggers</code>) is changed
    */
   refresh: function () {
-    var self = this;
     this.set('filteringComplete', false);
     var updaterMethodName = this.get('updater.tableUpdaterMap')[this.get('tableName')];
-    this.get('updater')[updaterMethodName](function () {
-      self.set('filteringComplete', true);
-      self.propertyDidChange('pageContent');
-    }, function() {
-      self.set('requestError', arguments);
-    });
+    this.get('updater')[updaterMethodName](this.updaterSuccessCb.bind(this), this.updaterErrorCb.bind(this));
     return true;
   },
+
   /**
    * reset filters value by column to which filter belongs
    * @param columns {Array}

http://git-wip-us.apache.org/repos/asf/ambari/blob/303628ce/ambari-web/test/mixins/common/table_server_view_mixin_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/mixins/common/table_server_view_mixin_test.js b/ambari-web/test/mixins/common/table_server_view_mixin_test.js
index 51d9d4c..60e0663 100644
--- a/ambari-web/test/mixins/common/table_server_view_mixin_test.js
+++ b/ambari-web/test/mixins/common/table_server_view_mixin_test.js
@@ -162,6 +162,24 @@ describe('App.MainConfigHistoryView', function() {
       expect(view.get('controller.resetStartIndex')).to.be.true;
       expect(view.refresh.calledOnce).to.be.true;
     });
+
+    it('clear filters - refresh() clears timer', function () {
+      this.clock = sinon.useFakeTimers();
+
+      //clear filters simulation
+      view.set('filteringComplete', false);
+      view.updateFilter(0, '', 'string');
+
+      //filters cleared success
+      view.updaterSuccessCb();
+
+      //timeout in updateFilter() runs out
+      this.clock.tick(view.get('filterWaitingTime'));
+
+      //should not call update filter again
+      expect(view.updateFilter.calledOnce).to.be.true;
+      this.clock.restore();
+    })
   });
 
   describe('#resetStartIndex()', function() {