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 = [
{