瀏覽代碼

AMBARI-18082. Dependent configs disappear without any warning (akovalenko)

Aleksandr Kovalenko 9 年之前
父節點
當前提交
f0f4b57db7

+ 9 - 10
ambari-web/app/controllers/main/service/info/configs.js

@@ -477,16 +477,15 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.AddSecurityConfi
             if (serviceConfig) {
               var value = App.config.formatPropertyValue(serviceConfig, config.properties[prop]);
               var isFinal = !!(config.properties_attributes && config.properties_attributes.final && config.properties_attributes.final[prop]);
-              if (self.get('selectedConfigGroup.isDefault') || configGroup.get('name') === self.get('selectedConfigGroup.name')) {
-                var overridePlainObject = {
-                  "value": value,
-                  "savedValue": value,
-                  "isFinal": isFinal,
-                  "savedIsFinal": isFinal,
-                  "isEditable": self.get('canEdit') && configGroup.get('name') === self.get('selectedConfigGroup.name')
-                };
-                App.config.createOverride(serviceConfig, overridePlainObject, configGroup);
-              }
+              var overridePlainObject = {
+                "value": value,
+                "isVisible": self.get('selectedConfigGroup.isDefault') || configGroup.get('name') === self.get('selectedConfigGroup.name'),
+                "savedValue": value,
+                "isFinal": isFinal,
+                "savedIsFinal": isFinal,
+                "isEditable": self.get('canEdit') && configGroup.get('name') === self.get('selectedConfigGroup.name')
+              };
+              App.config.createOverride(serviceConfig, overridePlainObject, configGroup);
             } else {
               var isEditable = self.get('canEdit') && configGroup.get('name') === self.get('selectedConfigGroup.name');
               allConfigs.push(App.config.createCustomGroupConfig({

+ 5 - 1
ambari-web/app/mixins/common/configs/enhanced_configs.js

@@ -300,9 +300,13 @@ App.EnhancedConfigsMixin = Em.Mixin.create(App.ConfigWithOverrideRecommendationP
 
   changedDependentGroup: function () {
     var dependentServices = this.get('selectedService.dependentServiceNames');
+    var isInstallWizard = this.get('content.controllerName') === 'installerController';
     var installedServices = App.Service.find().mapProperty('serviceName');
     var services = this.get('stepConfigs').filter(function (stepConfig) {
-      return installedServices.contains(stepConfig.get('serviceName')) && dependentServices.contains(stepConfig.get('serviceName'));
+      if (dependentServices.contains(stepConfig.get('serviceName'))) {
+        return isInstallWizard ? true : installedServices.contains(stepConfig.get('serviceName'));
+      }
+      return false;
     }, this);
     App.showSelectGroupsPopup(this.get('selectedService.serviceName'),
         this.get('selectedService.configGroups').findProperty('name', this.get('selectedConfigGroup.name')),