Selaa lähdekoodia

AMBARI-11193. Configs: edited a toggle and control reverts (Richard Zang via srimanth)

Srimanth Gunturi 10 vuotta sitten
vanhempi
commit
c7a0ca812c

+ 6 - 5
ambari-web/app/templates/common/configs/widgets/controls.hbs

@@ -16,12 +16,13 @@
 * limitations under the License.
 }}
 
+
+{{#if view.supportSwitchToCheckBox}}
+  <div {{bindAttr class="view.config.showAsTextBox::hide :left :widget-config-raw"}}>
+    {{view App.PlainConfigTextField serviceConfigBinding="view.config" disabledBinding="view.canNotEdit"}}
+  </div>
+{{/if}}
 {{#if view.canEdit}}
-  {{#if view.supportSwitchToCheckBox}}
-    <div {{bindAttr class="view.config.showAsTextBox::hide :left :widget-config-raw"}}>
-      {{view App.PlainConfigTextField serviceConfigBinding="view.config"}}
-    </div>
-  {{/if}}
   <div class="widget-config-controls">
     <div {{bindAttr class=":widget-col :left view.config.isNotDefaultValue::not-show"}}>
       <a href="#"

+ 1 - 1
ambari-web/app/templates/common/configs/widgets/plain_config_text_field.hbs

@@ -17,6 +17,6 @@
 }}
 
 <div class="input-append">
-  {{view Em.TextField valueBinding="view.value" class="span9" placeholderBinding="view.placeholder"}}
+  {{view Em.TextField valueBinding="view.value" class="span9" placeholderBinding="view.placeholder" disabledBinding="view.disabled"}}
   <span {{bindAttr class=":add-on view.unit::hidden"}}>{{view.unit}}</span>
 </div>

+ 12 - 0
ambari-web/app/views/common/configs/widgets/config_widget_view.js

@@ -50,6 +50,8 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
    */
   canEdit: true,
 
+  canNotEdit: Em.computed.not('canEdit'),
+
   /**
    * Config label class attribute. Displays validation status of config.
    * @type {string}
@@ -323,6 +325,7 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
         self.set('isHover', false);
       });
     }
+    this.initIncompatibleWidgetAsTextBox();
   },
 
   /**
@@ -384,6 +387,15 @@ App.ConfigWidgetView = Em.View.extend(App.SupportsDependentConfigs, App.WidgetPo
     return this.get('config.isValid');
   },
 
+  /**
+   * Initialize widget with incompatible value as textbox
+   */
+  initIncompatibleWidgetAsTextBox : function() {
+    if (!this.isValueCompatibleWithWidget()) {
+      this.get('config').set('showAsTextBox', true);
+    }
+  },
+
   /**
    * Returns <code>true</code> if raw value can be used by widget or widget view is activated.
    * @returns {Boolean}