From 6143b257d02e97eff52664d459d38bf0e65f4dea Mon Sep 17 00:00:00 2001 From: zmagod Date: Thu, 22 Sep 2016 09:29:38 +0200 Subject: [PATCH 1/2] fixes edit modal [fixes SCI-467] --- .../javascripts/experiments/dropdown_actions.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/assets/javascripts/experiments/dropdown_actions.js b/app/assets/javascripts/experiments/dropdown_actions.js index 3a53f036b..82759ee45 100644 --- a/app/assets/javascripts/experiments/dropdown_actions.js +++ b/app/assets/javascripts/experiments/dropdown_actions.js @@ -17,6 +17,7 @@ }); validateMoveModal(id); clearModal($(id)); + reloadPageAfterUpdate($(id)); }) .on("ajax:error", function() { animateSpinner(null, false); @@ -73,6 +74,17 @@ .clearFormErrors(); } } + // Reload after successfully updated experiment + function reloadPageAfterUpdate(element){ + if ( element ) { + var form = element.find("form"); + form + .on('ajax:success' , function(){ + animateSpinner(form, true); + location.reload(); + }); + } + } // Initialize no description edit link function initEditNoDescription(){ var modal = "#edit-experiment-modal-"; From 4f2df691ba7eb0ea5d6690a08f1b476f2345c191 Mon Sep 17 00:00:00 2001 From: zmagod Date: Thu, 22 Sep 2016 10:18:21 +0200 Subject: [PATCH 2/2] add error validations --- .../experiments/dropdown_actions.js | 23 +++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/experiments/dropdown_actions.js b/app/assets/javascripts/experiments/dropdown_actions.js index 82759ee45..eb093b18a 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)); - reloadPageAfterUpdate($(id)); + validateExperimentForm($(id)); }) .on("ajax:error", function() { animateSpinner(null, false); @@ -75,13 +75,32 @@ } } // Reload after successfully updated experiment - function reloadPageAfterUpdate(element){ + function validateExperimentForm(element){ if ( element ) { var form = element.find("form"); form .on('ajax:success' , function(){ animateSpinner(form, true); location.reload(); + }) + .on('ajax:error', function(e, error){ + var msg = JSON.parse(error.responseText); + if ( 'name' in msg ) { + renderFormError(e, + element.find("#experiment-name"), + msg.name.toString(), + true); + } else if ( 'description' in msg ) { + renderFormError(e, + element.find("#experiment-description"), + msg.description.toString(), + true); + } else { + renderFormError(e, + element.find("#experiment-name"), + error.statusText, + true); + } }); } }