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

Fix delete migration in migration detail view

Alessandro Pilotti 8 лет назад
Родитель
Сommit
81dd05c122

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

@@ -93,13 +93,18 @@ MigrationActions.loadMigration.shouldEmit = () => {
   return typeof projectId !== "undefined"
 }
 
-MigrationActions.deleteMigration.listen((migration) => {
+MigrationActions.deleteMigration.listen((migration, callback = null) => {
   let projectId = Reflux.GlobalState.userStore.currentUser.project.id
   Api.sendAjaxRequest({
     url: `${servicesUrl.coriolis}/${projectId}/migrations/${migration.id}`,
     method: "DELETE"
   })
-  .then(MigrationActions.deleteMigration.completed(migration), MigrationActions.deleteMigration.failed)
+  .then(() => {
+    MigrationActions.deleteMigration.completed(migration)
+    if (callback) {
+      callback(migration)
+    }
+  }, MigrationActions.deleteMigration.failed)
   .catch(MigrationActions.deleteMigration.failed);
 })
 

+ 4 - 5
src/components/MigrationDetail/MigrationDetail.js

@@ -19,6 +19,7 @@ import React, { Component, PropTypes } from 'react';
 import withStyles from 'isomorphic-style-loader/lib/withStyles';
 import s from './MigrationDetail.scss';
 import Moment from 'react-moment';
+import Location from '../../core/Location';
 import EndpointLink from '../EndpointLink';
 import ConfirmationDialog from '../ConfirmationDialog'
 import MigrationActions from '../../actions/MigrationActions';
@@ -56,15 +57,13 @@ class MigrationDetail extends Component {
     MigrationActions.createMigrationFromReplica(replica)
   }
 
-  deleteMigration() {
+  deleteMigration(e, migration) {
     this.setState({
       confirmationDialog: {
         visible: true,
         onConfirm: () => {
           this.setState({ confirmationDialog: { visible: false } })
-          let item = this.state.migrations.filter(migration => migration.id == this.props.migrationId)[0]
-          MigrationActions.deleteMigration(item)
-          Location.push('/cloud-endpoints')
+          MigrationActions.deleteMigration(migration, () => { Location.push('/migrations') })
         },
         onCancel: () => {
           this.setState({ confirmationDialog: { visible: false } })
@@ -153,7 +152,7 @@ class MigrationDetail extends Component {
             >
               Migrate Replica
             </button>}
-            <button className="wire red" onClick={(e) => this.deleteMigration(e)}>Delete</button>
+            <button className="wire red" onClick={(e) => this.deleteMigration(e, item)}>Delete</button>
           </div>
           <ConfirmationDialog
             visible={this.state.confirmationDialog.visible}