瀏覽代碼

AMBARI-12194. Installer allows stepping over step 4 and errors out (alexantonenko)

Alex Antonenko 10 年之前
父節點
當前提交
fb32cd331e

+ 10 - 7
ambari-web/app/routes/installer.js

@@ -174,13 +174,16 @@ module.exports = Em.Route.extend(App.RouterRedirections, {
       router.transitionTo('step2');
     },
     next: function (router, context) {
-      var installerController = router.get('installerController');
-      var wizardStep3Controller = router.get('wizardStep3Controller');
-      installerController.saveConfirmedHosts(wizardStep3Controller);
-      installerController.setDBProperty('bootStatus', true);
-      installerController.setDBProperty('selectedServiceNames', undefined);
-      installerController.setDBProperty('installedServiceNames', undefined);
-      router.transitionTo('step4');
+      if (!router.transitionInProgress) {
+        router.set('transitionInProgress', true);
+        var installerController = router.get('installerController');
+        var wizardStep3Controller = router.get('wizardStep3Controller');
+        installerController.saveConfirmedHosts(wizardStep3Controller);
+        installerController.setDBProperty('bootStatus', true);
+        installerController.setDBProperty('selectedServiceNames', undefined);
+        installerController.setDBProperty('installedServiceNames', undefined);
+        router.transitionTo('step4');
+      }
     },
     exit: function (router) {
       router.get('wizardStep3Controller').set('stopBootstrap', true);

+ 1 - 0
ambari-web/app/views/wizard/step3_view.js

@@ -107,6 +107,7 @@ App.WizardStep3View = App.TableView.extend({
 
   didInsertElement: function () {
     this.get('controller').loadStep();
+    App.get('router').set('transitionInProgress', false);
   },
 
   /**

+ 5 - 1
ambari-web/app/views/wizard/step4_view.js

@@ -21,6 +21,10 @@ var App = require('app');
 
 App.WizardStep4View = Em.View.extend({
 
-  templateName: require('templates/wizard/step4')
+  templateName: require('templates/wizard/step4'),
+
+  didInsertElement: function () {
+    App.get('router').set('transitionInProgress', false);
+  }
 
 });