Переглянути джерело

AMBARI-12124. Add Host wizard: Configurations step is empty (alexantonenko)

Alex Antonenko 10 роки тому
батько
коміт
aed83dd775

+ 14 - 0
ambari-web/app/controllers/main/host/add_controller.js

@@ -68,6 +68,12 @@ App.AddHostController = App.WizardController.extend({
       wizardControllerName: this.get('name'),
       localdb: App.db.data
     });
+    var self = this;
+    Em.run.next(function(){
+      if (self.isConfigGroupsEmpty()) {
+        self.disableStep(4);
+      }
+    });   
   },
 
   /**
@@ -91,6 +97,14 @@ App.AddHostController = App.WizardController.extend({
     this.setDBProperty('hosts', dbHosts);
   },
 
+  disableStep: function(step) {
+    this.get('isStepDisabled').findProperty('step', step).set('value', true);
+  },
+
+  isConfigGroupsEmpty: function() {
+    return !this.get('content.configGroups') || !this.get('content.configGroups').length; 
+  },
+
   /**
    * Load services data. Will be used at <code>Select services(step4)</code> step
    */

+ 13 - 1
ambari-web/app/controllers/wizard/step6_controller.js

@@ -87,6 +87,19 @@ App.WizardStep6Controller = Em.Controller.extend(App.BlueprintMixin, {
     return this.get('content.controllerName') === 'installerController';
   }.property('content.controllerName'),
 
+  isAllCheckboxesEmpty: function() {
+    var hosts = this.get('hosts');
+    for (var i = 0; i < hosts.length; i++) {
+      var checkboxes = hosts[i].checkboxes;
+      for (var j = 0; j < checkboxes.length; j++) {
+        if (checkboxes[j].checked) {
+          return false;
+        }
+      }
+    }
+    return true;
+  },
+
   /**
    * Check if <code>addServiceWizard</code> used
    * @type {bool}
@@ -533,7 +546,6 @@ App.WizardStep6Controller = Em.Controller.extend(App.BlueprintMixin, {
       return component.get("isSlave") && component.get("isShownOnInstallerSlaveClientPage") === false ||
         component.get("isClient") && component.get("isRequiredOnAllHosts");
     }).mapProperty("componentName");
-
     if (this.get('isInstallerWizard') || this.get('isAddServiceWizard')) {
       masterBlueprint = self.getCurrentMastersBlueprint();
 

+ 12 - 2
ambari-web/app/routes/add_host_routes.js

@@ -197,7 +197,13 @@ module.exports = App.WizardRoute.extend({
       wizardStep6Controller.callValidation(function() {
         wizardStep6Controller.showValidationIssuesAcceptBox(function() {
           addHostController.saveSlaveComponentHosts(wizardStep6Controller);
-          router.transitionTo('step4');
+          if (wizardStep6Controller.isAllCheckboxesEmpty()) {
+            router.transitionTo('step5');
+            addHostController.set('content.configGroups', []);
+            addHostController.saveServiceConfigGroups();
+          } else {
+            router.transitionTo('step4');
+          }
         });
       });
     }
@@ -246,7 +252,11 @@ module.exports = App.WizardRoute.extend({
       });
     },
     back: function(router){
-      if(!router.get('wizardStep8Controller.isBackBtnDisabled')) {
+      var addHostController = router.get('addHostController');
+
+      if (addHostController.isConfigGroupsEmpty() && !router.get('wizardStep8Controller.isBackBtnDisabled')) {
+        router.transitionTo('step3');
+      } else if (!router.get('wizardStep8Controller.isBackBtnDisabled')) {
         router.transitionTo('step4');
       }
     },