You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by yu...@apache.org on 2018/06/20 19:35:29 UTC
[ambari] 01/02: AMBARI-24153 Customize Service step issues
This is an automated email from the ASF dual-hosted git repository.
yusaku pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/ambari.git
commit b72fc2f8bbfd17c340f9c94023a83435d73167c5
Author: Andrii Tkach <at...@apache.org>
AuthorDate: Wed Jun 20 15:11:16 2018 +0300
AMBARI-24153 Customize Service step issues
---
.../app/controllers/wizard/step7_controller.js | 11 ++++++--
ambari-web/app/mappers/configs/themes_mapper.js | 4 +--
.../app/views/wizard/step7/databases_tab_view.js | 29 +++++++++++++++++++++-
.../test/mappers/configs/themes_mapper_test.js | 6 +++--
4 files changed, 43 insertions(+), 7 deletions(-)
diff --git a/ambari-web/app/controllers/wizard/step7_controller.js b/ambari-web/app/controllers/wizard/step7_controller.js
index 8acdaf8..0a8e5b2 100644
--- a/ambari-web/app/controllers/wizard/step7_controller.js
+++ b/ambari-web/app/controllers/wizard/step7_controller.js
@@ -77,6 +77,11 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
credentialsTabNextEnabled: false,
/**
+ * Define state of next button on databases tab
+ */
+ databasesTabNextEnabled: false,
+
+ /**
* used in services_config.js view to mark a config with security icon
*/
secureConfigs: require('data/configs/wizards/secure_mapping'),
@@ -2037,12 +2042,14 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
switch (tabName) {
case 'credentials':
return !this.get('credentialsTabNextEnabled');
+ case 'databases':
+ return !this.get('databasesTabNextEnabled');
case 'all-configurations':
return this.get('isSubmitDisabled');
default:
return false;
}
- }.property('tabs.@each.isActive', 'isSubmitDisabled', 'credentialsTabNextEnabled'),
+ }.property('tabs.@each.isActive', 'isSubmitDisabled', 'credentialsTabNextEnabled', 'databasesTabNextEnabled'),
/**
* Set isDisabled state for tabs
@@ -2092,7 +2099,7 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
if (validations !== this.get('validationsCounter')) {
this.ringBell();
}
- this.set('hasErrors', !!validations);
+ this.set('hasErrors', Boolean(validations + configErrorList.get('criticalIssues.length')));
this.set('validationsCounter', validations);
}.observes('changedProperties.length', 'stepConfigs.@each.configsWithErrors.length', 'configErrorList.issues.length', 'configErrorList.criticalIssues.length'),
diff --git a/ambari-web/app/mappers/configs/themes_mapper.js b/ambari-web/app/mappers/configs/themes_mapper.js
index a2519e2..e2b42e8 100644
--- a/ambari-web/app/mappers/configs/themes_mapper.js
+++ b/ambari-web/app/mappers/configs/themes_mapper.js
@@ -205,11 +205,11 @@ App.themesMapper = App.QuickDataMapper.create({
var subSection = App.SubSection.find(subSectionId);
}
- if (configProperty && subSection) {
+ if (configProperty && subSection && subSection.get('isLoaded')) {
if (!subSection.get('configProperties').contains(configProperty.id)) {
subSection.set('configProperties', subSection.get('configProperties').concat(configProperty.id));
}
- } else if (configProperty && subSectionTab) {
+ } else if (configProperty && subSectionTab && subSectionTab.get('isLoaded')) {
if (!subSectionTab.get('configProperties').contains(configProperty.id)) {
subSectionTab.set('configProperties', subSectionTab.get('configProperties').concat(configProperty.id));
}
diff --git a/ambari-web/app/views/wizard/step7/databases_tab_view.js b/ambari-web/app/views/wizard/step7/databases_tab_view.js
index 8ff218f..7ed344f 100644
--- a/ambari-web/app/views/wizard/step7/databases_tab_view.js
+++ b/ambari-web/app/views/wizard/step7/databases_tab_view.js
@@ -64,6 +64,33 @@ App.DatabasesTabOnStep7View = Em.View.extend({
currentTab.set('isActive', true);
}
}));
- }
+ this.setProperties();
+ },
+
+ setProperties: function() {
+ if (this.get('controller.stepConfigsCreated')) {
+ var properties = [];
+ this.get('tabs').forEach((tab) => {
+ if (tab.get('isCategorized')) {
+ tab.get('sections').forEach((section) => {
+ section.get('subSections').forEach((row) => {
+ row.get('configProperties').forEach((id) => {
+ var config = App.configsCollection.getConfig(id);
+ var stepConfig = config && this.get('controller.stepConfigs').findProperty('serviceName', Em.get(config, 'serviceName')).get('configs').findProperty('name', Em.get(config, 'name'));
+ if (stepConfig) {
+ properties.push(stepConfig);
+ }
+ });
+ });
+ });
+ }
+ });
+ this.set('properties', properties);
+ }
+ },
+
+ updateNextDisabled: function () {
+ this.set('controller.databasesTabNextEnabled', !this.get('properties').someProperty('error'));
+ }.observes('properties.@each.error')
});
diff --git a/ambari-web/test/mappers/configs/themes_mapper_test.js b/ambari-web/test/mappers/configs/themes_mapper_test.js
index a4d9924..43efee3 100644
--- a/ambari-web/test/mappers/configs/themes_mapper_test.js
+++ b/ambari-web/test/mappers/configs/themes_mapper_test.js
@@ -385,7 +385,8 @@ describe('App.themeMapper', function () {
it('should set config to subSection', function() {
json.ThemeInfo.theme_data.Theme.configuration.placement.configs[0]["subsection-name"] = 'ss-1';
var subSection = Em.Object.create({
- configProperties: []
+ configProperties: [],
+ isLoaded: true
});
this.mockSection.returns(subSection);
App.themesMapper.mapThemeConfigs(json);
@@ -395,7 +396,8 @@ describe('App.themeMapper', function () {
it('should set config to SubSectionTab', function() {
json.ThemeInfo.theme_data.Theme.configuration.placement.configs[0]["subsection-tab-name"] = 'sst-1';
var subSectionTab = Em.Object.create({
- configProperties: []
+ configProperties: [],
+ isLoaded: true
});
this.mockSectionTab.returns(subSectionTab);
App.themesMapper.mapThemeConfigs(json);