diff --git a/app/assets/javascripts/experiments/dropdown_actions.js b/app/assets/javascripts/experiments/dropdown_actions.js index a15c27597..7ba6fe909 100644 --- a/app/assets/javascripts/experiments/dropdown_actions.js +++ b/app/assets/javascripts/experiments/dropdown_actions.js @@ -17,7 +17,7 @@ }); validateMoveModal(id); clearModal($(id)); - validateExperimentForm($(id)); + validateExperimentForm(id); }) .on("ajax:error", function() { animateSpinner(null, false); @@ -74,30 +74,35 @@ }); } } + // Reload after successfully updated experiment function validateExperimentForm(element){ - if ( element ) { - var form = element.find("form"); + if ( $(element) ) { + var form = $(element).find("form"); form - .on('ajax:success' , function(){ + .on('ajax:success' , function(e, data){ animateSpinner(form, true); - location.reload(); + if ( element.match(/#new-experiment-modal/) ) { + window.location.replace(data.path); + } else { + location.reload(); + } }) .on('ajax:error', function(e, error){ var msg = JSON.parse(error.responseText); if ( 'name' in msg ) { renderFormError(e, - element.find("#experiment-name"), + $(element).find("#experiment-name"), msg.name.toString(), true); } else if ( 'description' in msg ) { renderFormError(e, - element.find("#experiment-description"), + $(element).find("#experiment-description"), msg.description.toString(), true); } else { renderFormError(e, - element.find("#experiment-name"), + $(element).find("#experiment-name"), error.statusText, true); } diff --git a/app/controllers/experiments_controller.rb b/app/controllers/experiments_controller.rb index 9456ac72f..ba0ce2b62 100644 --- a/app/controllers/experiments_controller.rb +++ b/app/controllers/experiments_controller.rb @@ -62,7 +62,7 @@ class ExperimentsController < ApplicationController experiment: @experiment.name) respond_to do |format| format.json do - render json: {}, status: :ok + render json: { path: canvas_experiment_url(@experiment) }, status: :ok end end else