Просмотр исходного кода

AMBARI-3974. When a custom-config is added, and it has not been saved, should not allow override (alexantonenko)

Alex Antonenko 11 лет назад
Родитель
Сommit
6d5b66759c

+ 2 - 0
ambari-web/app/messages.js

@@ -1115,6 +1115,8 @@ Em.I18n.translations = {
   'services.service.config.stopService.runningHostComponents':'{0} components on {1} hosts are still running',
   'services.service.config.stopService.unknownHostComponents':'{0} components on {1} hosts are in unknown state.  These components might actually be running and need restarting later to make the changes effective.',
   'services.service.config.confirmDirectoryChange':'You are about to make changes to service directories that are core to {0}. Before you proceed, be absolutely certain of the implications and that you have taken necessary manual steps, if any, for the changes. Are you sure you want to proceed?',
+  'services.service.config.configOverride.head':'Config Override',
+  'services.service.config.configOverride.body':'Cannot override a config that has not been saved yet.',
 
   'services.add.header':'Add Service Wizard',
   'services.reassign.header':'Move Master Wizard',

+ 1 - 0
ambari-web/app/models/service_config.js

@@ -166,6 +166,7 @@ App.ServiceConfigProperty = Ember.Object.extend({
   index: null, //sequence number in category
   editDone: false, //Text field: on focusOut: true, on focusIn: false
   serviceValidator: null,
+  isNotSaved: false, // user property was added but not saved
 
   /**
    * On Overridable property error message, change overrideErrorTrigger value to recount number of errors service have

+ 14 - 0
ambari-web/app/views/common/configs/services_config.js

@@ -429,6 +429,7 @@ App.ServiceConfigsByCategoryView = Ember.View.extend({
       filename: '',
       isUserProperty: true,
       isKeyError: false,
+      isNotSaved: true,
       errorMessage: "",
       observeAddPropertyValue: function () {
         var name = this.get('name');
@@ -536,6 +537,19 @@ App.ServiceConfigsByCategoryView = Ember.View.extend({
     var selectedConfigGroup = serviceConfigController.get('selectedConfigGroup');
     var isInstaller = (this.get('controller.name') === 'wizardStep7Controller');
     var configGroups = (isInstaller) ? serviceConfigController.get('selectedService.configGroups') : serviceConfigController.get('configGroups');
+
+    //user property is added, and it has not been saved, not allow override
+    if(serviceConfigProperty.get('isUserProperty') && serviceConfigProperty.get('isNotSaved') && !isInstaller){
+      App.ModalPopup.show({
+        header: Em.I18n.t('services.service.config.configOverride.head'),
+        body: Em.I18n.t('services.service.config.configOverride.body'),
+        onPrimary: function () {
+          this.hide();
+        },
+        secondary: false
+      });
+      return;
+    }
     if (selectedConfigGroup.get('isDefault')) {
       // Launch dialog to pick/create Config-group
       App.config.launchConfigGroupSelectionCreationDialog(this.get('service.serviceName'),