You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by at...@apache.org on 2014/11/06 12:36:45 UTC

git commit: AMBARI-8180 Broken Config banner. (atkach)

Repository: ambari
Updated Branches:
  refs/heads/trunk ec37a765e -> 4d9685f4f


AMBARI-8180 Broken Config banner. (atkach)


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

Branch: refs/heads/trunk
Commit: 4d9685f4f6c033625fd11b61c575103833d6f362
Parents: ec37a76
Author: Andrii Tkach <at...@hortonworks.com>
Authored: Thu Nov 6 13:36:23 2014 +0200
Committer: Andrii Tkach <at...@hortonworks.com>
Committed: Thu Nov 6 13:36:23 2014 +0200

----------------------------------------------------------------------
 .../controllers/main/service/info/configs.js    | 42 ++++++++++++++++----
 ambari-web/app/utils/ajax/ajax.js               |  4 +-
 ambari-web/app/utils/config.js                  |  6 +--
 .../main/service/info/config_test.js            | 10 +++++
 4 files changed, 49 insertions(+), 13 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/ambari/blob/4d9685f4/ambari-web/app/controllers/main/service/info/configs.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/controllers/main/service/info/configs.js b/ambari-web/app/controllers/main/service/info/configs.js
index 1673831..a2465c2 100644
--- a/ambari-web/app/controllers/main/service/info/configs.js
+++ b/ambari-web/app/controllers/main/service/info/configs.js
@@ -35,6 +35,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
     items: [],
     supportsFinal: []
   },
+  requestInProgress: null,
   selectedServiceConfigTypes: [],
   selectedServiceSupportsFinal: [],
   configGroups: [],
@@ -192,9 +193,21 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
   },
 
   /**
+   * register request to view to track his progress
+   * @param request
+   */
+  trackRequest: function (request) {
+    this.set('requestInProgress', request);
+  },
+
+  /**
    * clear and set properties to default value
    */
   clearStep: function () {
+    if (this.get('requestInProgress') && this.get('requestInProgress').readyState !== 4) {
+      this.get('requestInProgress').abort();
+      this.set('requestInProgress', null);
+    }
     this.set("isApplyingChanges", false);
     this.set('modifiedFileNames', []);
     this.set('isInit', true);
@@ -275,11 +288,12 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
       self.set('configTypesInfo', App.config.getConfigTypesInfoFromService(stackService));
     }
 
-    App.config.loadAdvancedConfig(serviceName, function (properties) {
+    this.trackRequest(App.config.loadAdvancedConfig(serviceName, function (properties, xhr) {
+      if (xhr.statusText === 'abort') return;
       advancedConfigs.pushObjects(properties);
       self.set('advancedConfigs', advancedConfigs);
-      self.loadServiceConfigVersions();
-    });
+      self.trackRequest(self.loadServiceConfigVersions());
+    }));
   },
 
   /**
@@ -315,6 +329,17 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
   },
 
   /**
+   * error callback of loadServiceConfigVersions()
+   * override defaultCallback
+   * @param request
+   * @param ajaxOptions
+   * @param error
+   * @param opt
+   * @param params
+   */
+  loadServiceConfigVersionsError: Em.K,
+
+  /**
    * get selected service config version
    * In case selected version is undefined then take currentDefaultVersion
    * @param version
@@ -332,7 +357,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
       this.set('selectedConfigGroup', switchToGroup);
     }
 
-    App.ajax.send({
+    this.trackRequest(App.ajax.send({
       name: 'service.serviceConfigVersions.get.multiple',
       sender: this,
       data: {
@@ -340,13 +365,14 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
         serviceConfigVersions: versions
       },
       success: 'loadSelectedVersionSuccess'
-    }).complete(function () {
+    }).complete(function (xhr) {
+        if (xhr.statusText === 'abort') return;
         if (self.get('dataIsLoaded')) {
           self.onConfigGroupChange();
         } else {
           self.loadServiceTagsAndGroups();
         }
-      });
+      }));
   },
 
   /**
@@ -395,7 +421,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
    * load config groups of service
    */
   loadServiceTagsAndGroups: function () {
-    App.ajax.send({
+    this.trackRequest(App.ajax.send({
       name: 'config.tags_and_groups',
       sender: this,
       data: {
@@ -403,7 +429,7 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.ServerValidatorM
         urlParams: "&config_groups/ConfigGroup/tag=" + this.get('content.serviceName')
       },
       success: 'loadServiceConfigsSuccess'
-    });
+    }));
   },
 
   loadServiceConfigsSuccess: function (data, opt, params) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/4d9685f4/ambari-web/app/utils/ajax/ajax.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/ajax/ajax.js b/ambari-web/app/utils/ajax/ajax.js
index 0e744bf..275f3d9 100644
--- a/ambari-web/app/utils/ajax/ajax.js
+++ b/ambari-web/app/utils/ajax/ajax.js
@@ -2079,10 +2079,10 @@ var ajax = Em.Object.extend({
         config.sender[config.beforeSend](opt, xhr, params);
       }
     };
-    opt.success = function (data) {
+    opt.success = function (data, textStatus, request) {
       console.log("TRACE: The url is: " + opt.url);
       if (config.success) {
-        config.sender[config.success](data, opt, params);
+        config.sender[config.success](data, opt, params, request);
       }
     };
     opt.error = function (request, ajaxOptions, error) {

http://git-wip-us.apache.org/repos/asf/ambari/blob/4d9685f4/ambari-web/app/utils/config.js
----------------------------------------------------------------------
diff --git a/ambari-web/app/utils/config.js b/ambari-web/app/utils/config.js
index 248cf67..3d1b8d8 100644
--- a/ambari-web/app/utils/config.js
+++ b/ambari-web/app/utils/config.js
@@ -872,7 +872,7 @@ App.config = Em.Object.create({
     });
   },
 
-  loadAdvancedConfigSuccess: function (data, opt, params) {
+  loadAdvancedConfigSuccess: function (data, opt, params, request) {
     console.log("TRACE: In success function for the loadAdvancedConfig; url is ", opt.url);
     var properties = [];
     if (data.items.length) {
@@ -906,12 +906,12 @@ App.config = Em.Object.create({
         }
       }, this);
     }
-    params.callback(properties);
+    params.callback(properties, request);
   },
 
   loadAdvancedConfigError: function (request, ajaxOptions, error, opt, params) {
     console.log('ERROR: failed to load stack configs for', params.serviceName);
-    params.callback([]);
+    params.callback([], request);
   },
 
   /**

http://git-wip-us.apache.org/repos/asf/ambari/blob/4d9685f4/ambari-web/test/controllers/main/service/info/config_test.js
----------------------------------------------------------------------
diff --git a/ambari-web/test/controllers/main/service/info/config_test.js b/ambari-web/test/controllers/main/service/info/config_test.js
index 2cca645..fd1d1dd 100644
--- a/ambari-web/test/controllers/main/service/info/config_test.js
+++ b/ambari-web/test/controllers/main/service/info/config_test.js
@@ -1282,6 +1282,16 @@ describe("App.MainServiceInfoConfigsController", function () {
     });
   });
 
+  describe("#trackRequest()", function () {
+    after(function(){
+      mainServiceInfoConfigsController.set('requestInProgress', null);
+    });
+    it("should set requestInProgress", function () {
+      mainServiceInfoConfigsController.trackRequest({'request': {}});
+      expect(mainServiceInfoConfigsController.get('requestInProgress')).to.eql({'request': {}});
+    });
+  });
+
   describe("#setValuesForOverrides", function() {
     var tests = [
       {