瀏覽代碼

AMBARI-4030 In installer, duplicating config-group does not duplicate configs. (ababiichuk)

aBabiichuk 11 年之前
父節點
當前提交
e45779ab3b
共有 1 個文件被更改,包括 15 次插入4 次删除
  1. 15 4
      ambari-web/app/controllers/main/service/manage_config_groups_controller.js

+ 15 - 4
ambari-web/app/controllers/main/service/manage_config_groups_controller.js

@@ -605,7 +605,8 @@ App.InstallerManageConfigGroupsController = App.ManageConfigGroupsController.ext
   /**
   /**
    * add new config group
    * add new config group
    */
    */
-  addConfigGroup: function () {
+  addConfigGroup: function (duplicated) {
+    duplicated = (duplicated === true);
     var self = this;
     var self = this;
     this.addGroupPopup = App.ModalPopup.show({
     this.addGroupPopup = App.ModalPopup.show({
       primary: Em.I18n.t('ok'),
       primary: Em.I18n.t('ok'),
@@ -614,8 +615,8 @@ App.InstallerManageConfigGroupsController = App.ManageConfigGroupsController.ext
       bodyClass: Ember.View.extend({
       bodyClass: Ember.View.extend({
         templateName: require('templates/main/service/new_config_group')
         templateName: require('templates/main/service/new_config_group')
       }),
       }),
-      configGroupName: "",
-      configGroupDesc: "",
+      configGroupName: duplicated ? self.get('selectedConfigGroup.name') + ' Copy' : "",
+      configGroupDesc: duplicated ? self.get('selectedConfigGroup.description') + ' (Copy)' : "",
       warningMessage: '',
       warningMessage: '',
       validate: function () {
       validate: function () {
         var warningMessage = '';
         var warningMessage = '';
@@ -632,6 +633,12 @@ App.InstallerManageConfigGroupsController = App.ManageConfigGroupsController.ext
           return false;
           return false;
         }
         }
         var defaultConfigGroup = self.get('configGroups').findProperty('isDefault');
         var defaultConfigGroup = self.get('configGroups').findProperty('isDefault');
+        var properties = [];
+        if (duplicated) {
+          self.get('selectedConfigGroup.properties').forEach(function(property) {
+            properties.push(App.ServiceConfigProperty.create($.extend(true, {},property)));
+          });
+        }
         var newConfigGroupData = App.ConfigGroup.create({
         var newConfigGroupData = App.ConfigGroup.create({
           id: null,
           id: null,
           name: this.get('configGroupName'),
           name: this.get('configGroupName'),
@@ -641,7 +648,7 @@ App.InstallerManageConfigGroupsController = App.ManageConfigGroupsController.ext
           service: Em.Object.create({id: self.get('serviceName')}),
           service: Em.Object.create({id: self.get('serviceName')}),
           hosts: [],
           hosts: [],
           configSiteTags: [],
           configSiteTags: [],
-          properties: []
+          properties: properties
         });
         });
         self.get('loadedHostsToGroupMap')[newConfigGroupData.get('name')] = [];
         self.get('loadedHostsToGroupMap')[newConfigGroupData.get('name')] = [];
         self.get('configGroups').pushObject(newConfigGroupData);
         self.get('configGroups').pushObject(newConfigGroupData);
@@ -650,6 +657,10 @@ App.InstallerManageConfigGroupsController = App.ManageConfigGroupsController.ext
       }
       }
     });
     });
   },
   },
+
+  duplicateConfigGroup: function() {
+    this.addConfigGroup(true);
+  },
   //always enable Save button in Manage Dialog in Installer
   //always enable Save button in Manage Dialog in Installer
   isHostsModified: true
   isHostsModified: true
 })
 })