Browse Source

AMBARI-11233. Checkbox override issue (onechiporenko)

Oleg Nechiporenko 10 years ago
parent
commit
558925301b

+ 2 - 1
ambari-web/app/controllers/wizard/step7_controller.js

@@ -1120,8 +1120,9 @@ App.WizardStep7Controller = Em.Controller.extend(App.ServerValidatorMixin, App.E
     var overrides = serviceConfigProperty.get('overrides') || [];
     var newSCP = App.ServiceConfigProperty.create(serviceConfigProperty);
     var group = this.get('selectedService.configGroups').findProperty('name', this.get('selectedConfigGroup.name'));
+    var valueForOverride = (serviceConfigProperty.get('widget') || serviceConfigProperty.get('displayType') == 'checkbox') ? serviceConfigProperty.get('value') : '';
     newSCP.set('group', group);
-    newSCP.set('value', serviceConfigProperty.get('widget') ? serviceConfigProperty.get('value') : '');
+    newSCP.set('value', valueForOverride);
     newSCP.set('isOriginalSCP', false); // indicated this is overridden value,
     newSCP.set('parentSCP', serviceConfigProperty);
     newSCP.set('isEditable', true);

+ 2 - 2
ambari-web/app/mixins/main/service/configs/config_overridable.js

@@ -30,7 +30,6 @@ App.ConfigOverridable = Em.Mixin.create({
    * @method createOverrideProperty
    */
   createOverrideProperty: function (event) {
-    $('.tooltip').remove();
     var serviceConfigProperty = event.contexts[0];
     var serviceConfigController = this.get('isView') ? this.get('controller') : this;
     var selectedConfigGroup = serviceConfigController.get('selectedConfigGroup');
@@ -63,7 +62,8 @@ App.ConfigOverridable = Em.Mixin.create({
       );
     }
     else {
-      serviceConfigController.addOverrideProperty(serviceConfigProperty, selectedConfigGroup, serviceConfigProperty.get('widget') ? serviceConfigProperty.get('value') : null);
+      var valueForOverride = (serviceConfigProperty.get('widget') || serviceConfigProperty.get('displayType') == 'checkbox') ? serviceConfigProperty.get('value') : null;
+      serviceConfigController.addOverrideProperty(serviceConfigProperty, selectedConfigGroup, valueForOverride);
     }
     Em.$('body>.tooltip').remove();
   },

+ 4 - 4
ambari-web/app/models/configs/objects/service_config_property.js

@@ -425,14 +425,14 @@ App.ServiceConfigProperty = Em.Object.extend({
   _validateOverrides: function () {
     var self = this;
     var isError = false;
-    var value = this.get('value');
+    var value = '' + this.get('value');
     var isOriginalSCP = this.get('isOriginalSCP');
     var supportsFinal = this.get('supportsFinal');
     var isFinal = this.get('isFinal');
     var parentSCP = this.get('parentSCP');
     if (!isOriginalSCP) {
       if (!Em.isNone(parentSCP)) {
-        if (value === parentSCP.get('value')) {
+        if (value === '' + parentSCP.get('value')) {
           if (supportsFinal) {
             if (isFinal === parentSCP.get('isFinal')) {
               this.set('errorMessage', Em.I18n.t('config.override.valueEqualToParentConfig'));
@@ -449,7 +449,7 @@ App.ServiceConfigProperty = Em.Object.extend({
           if (overrides) {
             overrides.forEach(function (override) {
               if (self == override) return;
-              if (value === override.get('value')) {
+              if (value === '' + override.get('value')) {
                 if (supportsFinal) {
                   if (isFinal === parentSCP.get('isFinal')) {
                     self.set('errorMessage', Em.I18n.t('config.override.valueEqualToAnotherOverrideConfig'));
@@ -469,4 +469,4 @@ App.ServiceConfigProperty = Em.Object.extend({
     return isError;
   }
 
-});
+});