Ver código fonte

AMBARI-20388. Diff tool shows additional line when comparing configs from custom config group (alexantonenko)

Alex Antonenko 8 anos atrás
pai
commit
0fedb802e9

+ 13 - 3
ambari-web/app/controllers/main/service/info/configs.js

@@ -518,13 +518,23 @@ App.MainServiceInfoConfigsController = Em.Controller.extend(App.AddSecurityConfi
               App.config.createOverride(serviceConfig, overridePlainObject, configGroup);
             } else {
               var isEditable = self.get('canEdit') && configGroup.get('name') === self.get('selectedConfigGroup.name');
-              allConfigs.push(App.config.createCustomGroupConfig({
+              var propValue = config.properties[prop];
+              var newConfig = App.ServiceConfigProperty.create(App.config.createDefaultConfig(prop, fileName, false, {
+                overrides: [],
+                displayType: 'label',
+                value: 'Undefined',
+                isPropertyOverridable: false,
+                overrideValues: [propValue],
+                overrideIsFinalValues: [false]
+              }));
+              newConfig.get('overrides').push(App.config.createCustomGroupConfig({
                 propertyName: prop,
                 filename: fileName,
-                value: config.properties[prop],
-                savedValue: config.properties[prop],
+                value: propValue,
+                savedValue: propValue,
                 isEditable: isEditable
               }, configGroup));
+              allConfigs.push(newConfig);
             }
           }
         });

+ 6 - 4
ambari-web/app/mixins/common/configs/configs_comparator.js

@@ -261,10 +261,12 @@ App.ConfigsComparator = Em.Mixin.create({
       Em.get(serviceConfig, 'compareConfigs').push(compareObject);
       // user custom property or property that was added during upgrade
     } else {
-      var addToComparison = !Em.get(serviceConfig, 'isCustomGroupConfig') && (Em.get(serviceConfig, 'isUserProperty') || !isEmptyProp && !compareConfig && Em.get(serviceConfig, 'isRequiredByAgent') !== false);
-      if (addToComparison) {
-        Em.get(serviceConfig, 'compareConfigs').push(this.getMockComparisonConfig(serviceConfig, this.get('compareServiceVersion.version')));
-        Em.set(serviceConfig, 'hasCompareDiffs', true);
+      if (Em.get(serviceConfig, 'value') !== 'Undefined') {
+        var addToComparison = !Em.get(serviceConfig, 'isCustomGroupConfig') && (Em.get(serviceConfig, 'isUserProperty') || !isEmptyProp && !compareConfig && Em.get(serviceConfig, 'isRequiredByAgent') !== false);
+        if (addToComparison) {
+          Em.get(serviceConfig, 'compareConfigs').push(this.getMockComparisonConfig(serviceConfig, this.get('compareServiceVersion.version')));
+          Em.set(serviceConfig, 'hasCompareDiffs', true);
+        }
       }
     }
 

+ 10 - 0
ambari-web/app/templates/common/configs/service_config_category.hbs

@@ -78,6 +78,16 @@
               {{#if this.isComparison}}
                 {{#unless this.isOriginalSCP}}
                   {{view viewClass serviceConfigBinding="this" categoryConfigsAllBinding="view.categoryConfigsAll" }}
+                  {{#if controller.selectedConfigGroup.isDefault}}
+                    <span
+                      class="label label-info config-controls">{{t dashboard.configHistory.table.version.prefix}}{{controller.selectedVersion}}</span>
+                    {{#if controller.isCurrentSelected}}
+                      <span class="label label-success config-controls">{{t common.current}}</span>
+                    {{/if}}
+                  {{else}}
+                    <span class="label label-info config-controls">{{t common.default}}
+                      &nbsp;{{t services.service.config.configHistory.configGroup}}</span>
+                  {{/if}}
                 {{/unless}}
                 {{view App.ServiceConfigView.SCPComparisonRowsView serviceConfigPropertyBinding="this"}}
               {{else}}

+ 5 - 1
ambari-web/app/views/common/controls_view.js

@@ -867,7 +867,11 @@ App.ServiceConfigLabelView = Ember.View.extend(App.ServiceConfigHostPopoverSuppo
   valueBinding: 'serviceConfig.value',
   unitBinding: 'serviceConfig.unit',
 
-  fullValue: Em.computed.format('{0} {1}', 'value', 'unit'),
+  fullValue: function () {
+    var value = this.get('value');
+    var unit = this.get('unit');
+    return unit ? value + ' ' + unit : value;
+  }.property('value', 'unit'),
 
   template: Ember.Handlebars.compile('<i>{{formatWordBreak view.fullValue}}</i>')
 });