This is an automated email from the ASF dual-hosted git repository.
ishanbha pushed a commit to branch branch-feature-AMBARI-14714-ui
in repository https://gitbox.apache.org/repos/asf/ambari.git
The following commit(s) were added to refs/heads/branch-feature-AMBARI-14714-ui
by this push:
new 430285d Bug fixes (#257)
430285d is described below
commit 430285d786d210f95e6691de3d68ab6e908a1a9e
Author: Jason Golieb <[email protected]>
AuthorDate: Wed Feb 7 01:57:42 2018 -0500
Bug fixes (#257)
---
ambari-web/app/controllers/installer.js | 103 ++++++++++++++-------
.../wizard/verifyProducts_controller.js | 7 ++
.../app/mixins/wizard/assign_master_components.js | 2 +
ambari-web/app/routes/installer.js | 12 ++-
ambari-web/app/views/wizard/selectMpacks_view.js | 9 ++
5 files changed, 94 insertions(+), 39 deletions(-)
diff --git a/ambari-web/app/controllers/installer.js
b/ambari-web/app/controllers/installer.js
index 5712647..c0a82fb 100644
--- a/ambari-web/app/controllers/installer.js
+++ b/ambari-web/app/controllers/installer.js
@@ -278,9 +278,7 @@ App.InstallerController =
App.WizardController.extend(App.Persist, {
stackName: stackName,
stackVersion: stackVersion,
serviceName: serviceName
- },
- success: 'loadMpackServiceInfoSuccess',
- error: 'loadMpackServiceInfoError'
+ }
});
},
@@ -1431,11 +1429,32 @@ App.InstallerController =
App.WizardController.extend(App.Persist, {
sCallback();
},
- clearStackServices: function () {
- const stackServices = App.StackService.find();
- stackServices.forEach(service => {
- Em.run.once(this, () => App.MpackServiceMapper.deleteRecord(service));
- });
+ clearStackServices: function (deleteAll) {
+ var dfd = $.Deferred();
+
+ if (deleteAll) {
+ const stackServices = App.StackService.find();
+ let stackServicesCount = stackServices.content.length;
+
+ if (stackServicesCount > 0) {
+ stackServices.forEach(service => {
+ Em.run.once(this, () => {
+ App.MpackServiceMapper.deleteRecord(service);
+ stackServicesCount--;
+
+ if (stackServicesCount === 0) {
+ dfd.resolve();
+ }
+ });
+ });
+ } else {
+ dfd.resolve();
+ }
+ } else {
+ dfd.resolve();
+ }
+
+ return dfd.promise();
},
getStepSavedState: function (stepName) {
@@ -1494,40 +1513,52 @@ App.InstallerController =
App.WizardController.extend(App.Persist, {
* @return {object} a promise
*/
finishRegisteringMpacks: function (keepStackServices) {
- return this.getMpackStackVersions().fail(this.addErrors).always(data => {
- data.items.forEach(versionDefinition =>
App.stackMapper.map(versionDefinition))
-
- if (!keepStackServices) {
- this.clearStackServices();
- }
+ var dfd = $.Deferred();
+ this.getMpackStackVersions()
+ .fail(errors => {
+ this.addErrors(errors);
+ dfd.reject();
+ })
+ .always(data => {
+ data.items.forEach(versionDefinition =>
App.stackMapper.map(versionDefinition));
+ return this.clearStackServices(!keepStackServices);
+ })
+ .then(() => {
//get info about services from specific stack versions and save to
StackService model
const selectedServices = this.get('content.selectedServices');
- const servicePromises = selectedServices.map(service =>
this.loadMpackServiceInfo(service.stackName, service.stackVersion,
service.name));
-
- return $.when(...servicePromises).then(() => {
- const services = App.StackService.find();
- this.set('content.services', services);
-
- const clients = [];
- services.forEach(service => {
- const client =
service.get('serviceComponents').filterProperty('isClient', true);
- client.forEach(clientComponent => {
- clients.pushObject({
- component_name: clientComponent.get('componentName'),
- display_name: clientComponent.get('displayName'),
- isInstalled: false
- });
+ const servicePromises = selectedServices.map(service =>
+ this.loadMpackServiceInfo(service.stackName, service.stackVersion,
service.name)
+ .then(this.loadMpackServiceInfoSuccess,
this.loadMpackServiceInfoError)
+ );
+
+ return $.when(...servicePromises);
+ })
+ .then(() => {
+ const services = App.StackService.find();
+ this.set('content.services', services);
+
+ const clients = [];
+ services.forEach(service => {
+ const client =
service.get('serviceComponents').filterProperty('isClient', true);
+ client.forEach(clientComponent => {
+ clients.pushObject({
+ component_name: clientComponent.get('componentName'),
+ display_name: clientComponent.get('displayName'),
+ isInstalled: false
});
});
- this.set('content.clients', clients);
- this.save('clients');
-
- //TODO: mpacks - hard coding this for now. We need to get rid of the
concept of "selected stack".
- this.set('content.selectedStack', { name: "HDP", version: "3.0.0" });
- this.save('selectedStack');
});
+ this.set('content.clients', clients);
+ this.save('clients');
+
+ //TODO: mpacks - hard coding this for now. We need to get rid of the
concept of "selected stack".
+ this.set('content.selectedStack', { name: "HDP", version: "3.0.0" });
+ this.save('selectedStack');
+
+ dfd.resolve();
});
+
+ return dfd;
}
-
});
diff --git a/ambari-web/app/controllers/wizard/verifyProducts_controller.js
b/ambari-web/app/controllers/wizard/verifyProducts_controller.js
index 3e3b600..8a60310 100644
--- a/ambari-web/app/controllers/wizard/verifyProducts_controller.js
+++ b/ambari-web/app/controllers/wizard/verifyProducts_controller.js
@@ -138,6 +138,13 @@ App.WizardVerifyProductsController =
App.WizardStepController.extend({
this.verifyRepo(repo).then(this.verifyRepoSucceeded.bind(this),
this.verifyRepoFailed.bind(this));
},
+ isStepDisabled: function (stepIndex, currentIndex) {
+ const normallyDisabled = this._super(stepIndex, currentIndex);
+ const useCustomRepo =
this.get('wizardController.content.downloadConfig.useCustomRepo');
+
+ return normallyDisabled || !useCustomRepo;
+ },
+
isSubmitDisabled: function () {
const repos = this.get('repos');
return App.get('router.btnClickInProgress')
diff --git a/ambari-web/app/mixins/wizard/assign_master_components.js
b/ambari-web/app/mixins/wizard/assign_master_components.js
index 8572d7f..0870378 100644
--- a/ambari-web/app/mixins/wizard/assign_master_components.js
+++ b/ambari-web/app/mixins/wizard/assign_master_components.js
@@ -309,6 +309,8 @@ App.AssignMasterComponents =
Em.Mixin.create(App.HostComponentValidationMixin, A
clearRecommendations: function() {
if (this.get('content.recommendations')) {
this.set('content.recommendations', null);
+ }
+ if (this.get('recommendations')) {
this.set('recommendations', null);
}
},
diff --git a/ambari-web/app/routes/installer.js
b/ambari-web/app/routes/installer.js
index 081d73f..ffa392f 100644
--- a/ambari-web/app/routes/installer.js
+++ b/ambari-web/app/routes/installer.js
@@ -416,7 +416,7 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
if (downloadConfig && downloadConfig.useCustomRepo) {
router.transitionTo('customProductRepos');
} else {
- router.transitionTo('verifyProducts');
+ router.transitionTo('step5');
}
console.timeEnd('downloadMpacks next');
}
@@ -587,7 +587,12 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
backTransition: function (router) {
var controller = router.get('installerController');
controller.clearErrors();
- router.transitionTo('verifyProducts');
+ const downloadConfig = controller.get('content.downloadConfig');
+ if (downloadConfig && downloadConfig.useCustomRepo) {
+ router.transitionTo('verifyProducts');
+ } else {
+ router.transitionTo('downloadMpacks');
+ }
},
next: function (router) {
@@ -597,7 +602,7 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
var controller = router.get('installerController');
var wizardStep5Controller = router.get('wizardStep5Controller');
controller.saveMasterComponentHosts(wizardStep5Controller);
- controller.setDBProperty('recommendations',
wizardStep5Controller.get('content.recommendations'));
+ controller.setDBProperty('recommendations',
wizardStep5Controller.get('content.recommendations') ||
wizardStep5Controller.get('recommendations'));
// Clear subsequent steps if user made changes
if (!wizardStep5Controller.get('isSaved')) {
controller.setDBProperty('slaveComponentHosts', undefined);
@@ -631,6 +636,7 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
console.timeEnd('step6 connectOutlets');
});
},
+
backTransition: function(router) {
var controller = router.get('installerController');
controller.clearErrors();
diff --git a/ambari-web/app/views/wizard/selectMpacks_view.js
b/ambari-web/app/views/wizard/selectMpacks_view.js
index 22e7b92..80d2cf6 100644
--- a/ambari-web/app/views/wizard/selectMpacks_view.js
+++ b/ambari-web/app/views/wizard/selectMpacks_view.js
@@ -23,6 +23,15 @@ App.WizardSelectMpacksView = Em.View.extend({
didInsertElement: function () {
this.get('controller').loadStep();
+
+ //enable initial tooltips
+ $('[data-toggle="tooltip"]').tooltip();
+ //enables tooltips added later
+ const target = document.querySelector('#select-mpacks');
+ const observer = new MutationObserver(() => {
+ $('[data-toggle="tooltip"]').tooltip();
+ });
+ observer.observe(target, { childList: true, subtree: true });
},
toggleMode: function () {
--
To stop receiving notification emails like this one, please contact
[email protected].