AMBARI-3840 Delete should be disabled if there is no group selected. (atkach)
diff --git a/ambari-web/app/controllers/main/service/item.js b/ambari-web/app/controllers/main/service/item.js
index 5843eba..350318b 100644
--- a/ambari-web/app/controllers/main/service/item.js
+++ b/ambari-web/app/controllers/main/service/item.js
@@ -279,14 +279,17 @@
updateConfigGroupOnServicePage: function () {
var mainServiceInfoConfigsController = App.get('router.mainServiceInfoConfigsController');
var selectedConfigGroup = mainServiceInfoConfigsController.get('selectedConfigGroup');
- var managedConfigGroups = this.get('subViewController.configGroups');
- selectedConfigGroup = managedConfigGroups.findProperty('id', selectedConfigGroup.id);
- if(selectedConfigGroup){
- mainServiceInfoConfigsController.set('selectedConfigGroup', selectedConfigGroup);
- }else{
- mainServiceInfoConfigsController.set('selectedConfigGroup', managedConfigGroups.findProperty('isDefault', true));
+ //check whether selectedConfigGroup was selected
+ if (selectedConfigGroup) {
+ var managedConfigGroups = this.get('subViewController.configGroups');
+ selectedConfigGroup = managedConfigGroups.findProperty('id', selectedConfigGroup.id);
+ if (selectedConfigGroup) {
+ mainServiceInfoConfigsController.set('selectedConfigGroup', selectedConfigGroup);
+ } else {
+ mainServiceInfoConfigsController.set('selectedConfigGroup', managedConfigGroups.findProperty('isDefault', true));
+ }
}
- mainServiceInfoConfigsController.set('configGroups',this.get('subViewController.configGroups'));
+ mainServiceInfoConfigsController.set('configGroups', this.get('subViewController.configGroups'));
},
updateButtons: function(){
var modified = this.get('subViewController.isHostsModified');
diff --git a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
index 2c0018e..acd7f96 100644
--- a/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
+++ b/ambari-web/app/controllers/main/service/manage_config_groups_controller.js
@@ -195,18 +195,18 @@
*/
deleteConfigGroup: function () {
var selectedConfigGroup = this.get('selectedConfigGroup');
- if(selectedConfigGroup.get('name') == "Default") {
+ if (this.get('isDeleteGroupDisabled')) {
return;
}
- App.ajax.send({
- name: 'config_groups.delete_config_group',
- sender: this,
- data: {
- id: selectedConfigGroup.get('id')
- }
- });
- this.get('configGroups').removeObject(selectedConfigGroup);
-
+ App.ajax.send({
+ name: 'config_groups.delete_config_group',
+ sender: this,
+ data: {
+ id: selectedConfigGroup.get('id')
+ }
+ });
+ this.get('configGroups').removeObject(selectedConfigGroup);
+ this.set('selectedConfigGroup', this.get('configGroups').findProperty('isDefault'));
},
/**
@@ -383,5 +383,9 @@
isHostsModified: function () {
var groups = this.get('hostsModifiedConfigGroups');
return groups && groups.length > 0;
- }.property('hostsModifiedConfigGroups', 'hostsModifiedConfigGroups.length')
+ }.property('hostsModifiedConfigGroups', 'hostsModifiedConfigGroups.length'),
+
+ isDeleteGroupDisabled: function () {
+ return this.get('selectedConfigGroup.isDefault');
+ }.property('selectedConfigGroup')
});
diff --git a/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs b/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
index 6194b84..9ee572e 100644
--- a/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
+++ b/ambari-web/app/templates/main/service/manage_configuration_groups_popup.hbs
@@ -30,7 +30,7 @@
}}
<div class="btn-toolbar pull-right">
<button class="btn" {{bindAttr disabled="isHostsModified"}} {{action addConfigGroup target="controller"}}><i class="icon-plus"></i></button>
- <button class="btn" {{bindAttr disabled="view.isRemoveButtonDisabled"}} {{action deleteConfigGroup target="controller"}}><i class="icon-minus"></i></button>
+ <button class="btn" {{bindAttr disabled="isDeleteGroupDisabled"}} {{action deleteConfigGroup target="controller"}}><i class="icon-minus"></i></button>
<div class="btn-group">
<button class="btn" {{bindAttr disabled="isHostsModified"}}><i class="icon-cog"></i></button>
<button class="btn dropdown-toggle" data-toggle="dropdown" {{bindAttr disabled="isHostsModified"}}>