diff --git a/app/assets/javascripts/results/result_assets.js b/app/assets/javascripts/results/result_assets.js index 35477a682..e89abec70 100644 --- a/app/assets/javascripts/results/result_assets.js +++ b/app/assets/javascripts/results/result_assets.js @@ -35,18 +35,18 @@ } function applyEditResultAssetCallback() { - $('.edit-result-asset').on('ajax:success', function(e, data) { + $('.edit-result-asset').off('ajax:success ajax:error').on('ajax:success', function(e, data) { var $result = $(this).closest('.result'); var $form = $(data.html); var $prevResult = $result; $result.after($form); - $result.remove(); + $prevResult.hide(); - _formAjaxResultAsset($form); + _formAjaxResultAsset($form, $prevResult); // Cancel button $form.find('.cancel-edit').click(function () { - $form.after($prevResult); + $prevResult.show(); $form.remove(); applyEditResultAssetCallback(); Results.toggleResultEditButtons(true); @@ -60,8 +60,9 @@ }); } - function _formAjaxResultAsset($form) { + function _formAjaxResultAsset($form, $prevResult) { $form.on('ajax:success', function(e, data) { + if ($prevResult) $prevResult.remove(); $form.after(data.html); var $newResult = $form.next(); initFormSubmitLinks($newResult); diff --git a/app/assets/javascripts/results/result_tables.js.erb b/app/assets/javascripts/results/result_tables.js.erb index 08b67c9b4..f6a9f4f2d 100644 --- a/app/assets/javascripts/results/result_tables.js.erb +++ b/app/assets/javascripts/results/result_tables.js.erb @@ -41,9 +41,10 @@ } // Apply ajax callback to form - function _formAjaxResultTable($form) { + function _formAjaxResultTable($form, $prevResult) { $form.on('ajax:success', function(e, data) { var $result; + if ($prevResult) $prevResult.remove(); $form.after(data.html); $result = $(this).next(); initFormSubmitLinks($result); @@ -64,20 +65,20 @@ // Edit result table button behaviour function applyEditResultTableCallback() { - $('.edit-result-table').on('ajax:success', function(e, data) { + $('.edit-result-table').off('ajax:success ajax:error').on('ajax:success', function(e, data) { var $result = $(this).closest('.result'); var $form = $(data.html); var $prevResult = $result; $result.after($form); - $result.remove(); + $prevResult.hide(); - _formAjaxResultTable($form); + _formAjaxResultTable($form, $prevResult); _initEditableHandsOnTable($form); _onSubmitExtractTable($form); // Cancel button $form.find('.cancel-edit').click(function () { - $form.after($prevResult); + $prevResult.show(); $form.remove(); applyEditResultTableCallback(); Results.toggleResultEditButtons(true); diff --git a/app/assets/javascripts/results/result_texts.js b/app/assets/javascripts/results/result_texts.js index 1645e9b9c..55df6bb43 100644 --- a/app/assets/javascripts/results/result_texts.js +++ b/app/assets/javascripts/results/result_texts.js @@ -40,7 +40,7 @@ // Edit result text button behaviour function applyEditResultTextCallback() { - $('.edit-result-text').off().on('ajax:success', function(e, data) { + $('.edit-result-text').off('ajax:success ajax:error').on('ajax:success', function(e, data) { var $result = $(this).closest('.result'); var $form = $(data.html); var $prevResult = $result;