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

Disables "Finish" button in wizard after it is pressed

George Vrancianu 8 лет назад
Родитель
Сommit
da425f4fd2

+ 7 - 2
src/actions/MigrationActions/MigrationActions.js

@@ -226,7 +226,7 @@ MigrationActions.deleteReplicaExecution.listen((replica, executionId, callback =
     .catch(MigrationActions.deleteReplicaExecution.failed);
 })
 
-MigrationActions.addMigration.listen((migration, callback = null) => {
+MigrationActions.addMigration.listen((migration, callback = null, errorCallback = null) => {
   let payload = {}
   let instances = []
 
@@ -274,7 +274,12 @@ MigrationActions.addMigration.listen((migration, callback = null) => {
       if (callback) {
         callback(migration);
       }
-    }, MigrationActions.addMigration.failed)
+    }, (response) => {
+      MigrationActions.addMigration.failed(response)
+      if (errorCallback) {
+        errorCallback(migration);
+      }
+    })
     .catch(MigrationActions.addMigration.failed);
 })
 

+ 3 - 6
src/components/MigrationWizard/MigrationWizard.js

@@ -128,12 +128,7 @@ class MigrationWizard extends Reflux.Component {
 
   finish() {
     let newMigration = this.state
-    // TODO: Integrate tasks
-    newMigration.tasks = {
-      completed: 1,
-      remaining: 12
-    }
-    newMigration.status = "PAUSED"
+    this.setState({ valid: false }) // disables finish button
     newMigration.created = new Date()
 
     MigrationActions.addMigration(newMigration, () => {
@@ -144,6 +139,8 @@ class MigrationWizard extends Reflux.Component {
       } else {
         Location.push('/migrations')
       }
+    }, () => {
+      this.setState({ valid: true }) // re-enable button in case of error
     });
   }