Bladeren bron

AMBARI-1661. For custom advanced properties, a new config with an empty key can be added. (yusaku)

git-svn-id: https://svn.apache.org/repos/asf/incubator/ambari/trunk@1460097 13f79535-47bb-0310-9956-ffa450edef68
Yusaku Sako 12 jaren geleden
bovenliggende
commit
0ee06905f9

+ 3 - 0
CHANGES.txt

@@ -513,6 +513,9 @@ Trunk (unreleased changes):
 
  BUG FIXES
 
+ AMBARI-1661. For custom advanced properties, a new config with an empty key
+ can be added. (yusaku)
+
  AMBARI-1659. Arrows often do not show up on config category expander. (yusaku)
 
  AMBARI-1645. Undo should not be allowed on component hosts. (yusaku)

+ 2 - 1
ambari-web/app/templates/common/configs/addPropertyWindow.hbs

@@ -22,10 +22,11 @@
         {{view.serviceConfigProperty.filename}}
       </div>
     </div>
-    <div class="each-row">
+    <div {{bindAttr class="view.serviceConfigProperty.isKeyEmpty:error :each-row :control-group"}}>
       <label class="control-label">Key</label>
       <div class="controls">
         {{view Ember.TextField valueBinding="view.serviceConfigProperty.name" class="span4"}}
+        <span class="help-inline">{{view.serviceConfigProperty.errorMessage}}</span>
       </div>
     </div>
     <div class="each-row">

+ 28 - 9
ambari-web/app/views/common/configs/services_config.js

@@ -105,13 +105,24 @@ App.ServiceConfigsByCategoryView = Ember.View.extend({
   },
   showAddPropertyWindow: function (event) {
 
-    var serviceConfigObj = {
+    var serviceConfigObj = Ember.Object.create({
       name: '',
       value: '',
       defaultValue: null,
       filename: '',
-      isUserProperty: true
-    };
+      isUserProperty: true,
+      isKeyEmpty:false,
+      errorMessage:"",
+      observeAddPropertyValue:function(){
+        if(this.get("name").trim() != ""){
+          this.set("isKeyEmpty", false);
+          this.set("errorMessage", "");
+        }else{
+          this.set("isKeyEmpty", true);
+          this.set("errorMessage", Em.I18n.t('services.service.config.addPropertyWindow.errorMessage'));
+        }
+      }.observes("name")
+    });
 
     var category = this.get('category');
     serviceConfigObj.displayType = "advanced";
@@ -135,12 +146,20 @@ App.ServiceConfigsByCategoryView = Ember.View.extend({
       primary: 'Add',
       secondary: 'Cancel',
       onPrimary: function () {
-        serviceConfigObj.displayName = serviceConfigObj.name;
-        serviceConfigObj.id = 'site property';
-        serviceConfigObj.serviceName = serviceName;
-        var serviceConfigProperty = App.ServiceConfigProperty.create(serviceConfigObj);
-        self.get('serviceConfigs').pushObject(serviceConfigProperty);
-        this.hide();
+        /**
+         * For the first entrance use this if (serviceConfigObj.name.trim() != "")
+         */
+        if(!serviceConfigObj.isKeyEmpty && serviceConfigObj.name.trim() != ""){
+          serviceConfigObj.displayName = serviceConfigObj.name;
+          serviceConfigObj.id = 'site property';
+          serviceConfigObj.serviceName = serviceName;
+          var serviceConfigProperty = App.ServiceConfigProperty.create(serviceConfigObj);
+          self.get('serviceConfigs').pushObject(serviceConfigProperty);
+          this.hide();
+        }else{
+          serviceConfigObj.set("isKeyEmpty", true);
+          serviceConfigObj.set("errorMessage", Em.I18n.t('services.service.config.addPropertyWindow.errorMessage'));
+        }
       },
       onSecondary: function () {
         this.hide();