From 9d3d1f8eac1680aef7f50e7c8d2b84823caa53e4 Mon Sep 17 00:00:00 2001 From: aignatov-bio Date: Tue, 9 Feb 2021 15:47:15 +0100 Subject: [PATCH] Connect toolbar actions to buttons [SCI-5465] --- app/assets/javascripts/projects/show.js | 46 ++++++++++++++++----- app/assets/stylesheets/experiments.scss | 3 ++ app/views/experiments/_clone_modal.html.erb | 2 +- app/views/experiments/_move_modal.html.erb | 2 +- app/views/projects/show/_toolbar.html.erb | 27 +++++++++--- config/routes.rb | 7 +++- 6 files changed, 68 insertions(+), 19 deletions(-) diff --git a/app/assets/javascripts/projects/show.js b/app/assets/javascripts/projects/show.js index 0337fb315..357c573e5 100644 --- a/app/assets/javascripts/projects/show.js +++ b/app/assets/javascripts/projects/show.js @@ -208,6 +208,37 @@ }); } + function appendActionModal(modal) { + $('#content-wrapper').append(modal); + modal.modal('show'); + modal.find('.selectpicker').selectpicker(); + // Remove modal when it gets closed + modal.on('hidden.bs.modal', function() { + $(this).remove(); + }); + } + + + function initEditMoveDuplicateToolbarButton() { + let forms = '.edit-experiments-form, .move-experiments-form, .clone-experiments-form'; + $(experimentsPage) + .on('ajax:before', forms, function() { + let buttonForm = $(this); + buttonForm.find('input[name="id"]').remove(); + $('').attr({ + type: 'hidden', + name: 'id', + value: selectedExperiments[0] + }).appendTo(buttonForm); + }) + .on('ajax:success', forms, function(ev, data) { + appendActionModal($(data.html)); + }) + .on('ajax:error', forms, function(ev, data) { + HelperModule.flashAlertMsg(data.responseJSON.message, 'danger'); + }); + } + function init() { $('.workflowimg-container').each(function() { let container = $(this); @@ -229,15 +260,7 @@ }); $('#content-wrapper').on('ajax:success', '.experiment-action-link', function(ev, data) { - // Add and show modal - let modal = $(data.html); - $('#content-wrapper').append(modal); - modal.modal('show'); - modal.find('.selectpicker').selectpicker(); - // Remove modal when it gets closed - modal.on('hidden.bs.modal', function() { - $(this).remove(); - }); + appendActionModal($(data.html)); }); $('#content-wrapper') @@ -245,7 +268,9 @@ animateSpinner(); }) .on('ajax:success', '.experiment-action-form', function() { - location.reload(); + $(this).closest('.modal').modal('hide'); + refreshCurrentView(); + animateSpinner(null, false); }) .on('ajax:error', '.experiment-action-form', function(ev, data) { animateSpinner(null, false); @@ -258,6 +283,7 @@ initProjectsViewModeSwitch(); initExperimentsSelector(); initArchiveRestoreToolbarButtons(); + initEditMoveDuplicateToolbarButton(); initSelectAllCheckbox(); } diff --git a/app/assets/stylesheets/experiments.scss b/app/assets/stylesheets/experiments.scss index 252b3002b..6b7d4672b 100644 --- a/app/assets/stylesheets/experiments.scss +++ b/app/assets/stylesheets/experiments.scss @@ -36,6 +36,9 @@ } } + .edit-experiments-form, + .clone-experiments-form, + .move-experiments-form, .archive-experiments-form, .restore-experiments-form { display: inline-block; diff --git a/app/views/experiments/_clone_modal.html.erb b/app/views/experiments/_clone_modal.html.erb index 655610e19..a272134ce 100644 --- a/app/views/experiments/_clone_modal.html.erb +++ b/app/views/experiments/_clone_modal.html.erb @@ -1,7 +1,7 @@