Fixed sample deletion on experiments level. Minor refactoring. [SCI-848]

This commit is contained in:
Matej Zrimšek 2017-01-06 12:56:14 +01:00
parent 09ef3b3ad5
commit 5d104981fd
6 changed files with 21 additions and 16 deletions

View file

@ -4,7 +4,7 @@ module SampleActions
def delete_samples def delete_samples
check_destroy_samples_permissions check_destroy_samples_permissions
if params[:sample_ids].present? if params[:sample_ids].present?
counter_user = 0 counter_user = 0
counter_other_users = 0 counter_other_users = 0
@ -14,30 +14,32 @@ module SampleActions
if sample and can_delete_sample(sample) if sample and can_delete_sample(sample)
sample.destroy sample.destroy
counter_user += 1 counter_user += 1
else else
counter_other_users += 1 counter_other_users += 1
end end
end end
if counter_user > 0 if counter_user > 0
if counter_other_users > 0 if counter_other_users > 0
flash[:success] = t("samples.destroy.contains_other_samples_flash", flash[:success] = t('samples.destroy.contains_other_samples_flash',
sample_number: counter_user, other_samples_number: counter_other_users) sample_number: counter_user, other_samples_number: counter_other_users)
else else
flash[:success] = t("samples.destroy.success_flash", flash[:success] = t('samples.destroy.success_flash',
sample_number: counter_user) sample_number: counter_user)
end end
else else
flash[:notice] = t("samples.destroy.no_deleted_samples_flash", flash[:notice] = t('samples.destroy.no_deleted_samples_flash',
other_samples_number: counter_other_users) other_samples_number: counter_other_users)
end end
else else
flash[:notice] = t("samples.destroy.no_sample_selected_flash") flash[:notice] = t('samples.destroy.no_sample_selected_flash')
end end
if params[:controller] == "my_modules" if params[:controller] == "my_modules"
redirect_to samples_my_module_path(@my_module) redirect_to samples_my_module_path(@my_module)
elsif params[:controller] == "projects" elsif params[:controller] == "projects"
redirect_to samples_project_path(@project) redirect_to samples_project_path(@project)
elsif params[:controller] == "experiments"
redirect_to samples_experiment_path(@experiment)
end end
end end

View file

@ -1,13 +1,13 @@
class ExperimentsController < ApplicationController class ExperimentsController < ApplicationController
include SampleActions
include PermissionHelper include PermissionHelper
include OrganizationsHelper include OrganizationsHelper
before_action :set_experiment, before_action :set_experiment,
except: [:new, :create] except: [:new, :create]
before_action :set_project, before_action :set_project,
only: [:new, :create, :samples_index, only: [:new, :create, :samples_index, :samples, :module_archive,
:samples, :module_archive, :clone_modal, :clone_modal, :move_modal, :delete_samples]
:move_modal]
before_action :check_view_permissions, before_action :check_view_permissions,
only: [:canvas, :module_archive] only: [:canvas, :module_archive]
before_action :check_module_archive_permissions, before_action :check_module_archive_permissions,
@ -20,6 +20,9 @@ class ExperimentsController < ApplicationController
# except parameter could be used but it is not working. # except parameter could be used but it is not working.
layout :choose_layout layout :choose_layout
# Action defined in SampleActions
DELETE_SAMPLES = I18n.t('samples.delete_samples')
def new def new
@experiment = Experiment.new @experiment = Experiment.new
respond_to do |format| respond_to do |format|

View file

@ -30,7 +30,7 @@ class MyModulesController < ApplicationController
UNASSIGN_SAMPLES = 'Unassign' UNASSIGN_SAMPLES = 'Unassign'
# Action defined in SampleActions # Action defined in SampleActions
DELETE_SAMPLES = 'Delete' DELETE_SAMPLES = I18n.t('samples.delete_samples')
def show def show
respond_to do |format| respond_to do |format|

View file

@ -21,7 +21,7 @@ class ProjectsController < ApplicationController
layout :choose_layout layout :choose_layout
# Action defined in SampleActions # Action defined in SampleActions
DELETE_SAMPLES = I18n.t("samples.delete_samples") DELETE_SAMPLES = I18n.t('samples.delete_samples')
def index def index
if params[:organization] if params[:organization]

View file

@ -1,5 +1,4 @@
module SamplesHelper module SamplesHelper
def can_add_samples def can_add_samples
module_page? && can_add_samples_to_module(@my_module) module_page? && can_add_samples_to_module(@my_module)
end end
@ -31,7 +30,8 @@ module SamplesHelper
assign_samples_my_module_path(@my_module) assign_samples_my_module_path(@my_module)
elsif project_page? elsif project_page?
delete_samples_project_path(@project) delete_samples_project_path(@project)
elsif experiment_page?
delete_samples_experiment_path(@experiment)
end end
end end
end end

View file

@ -182,7 +182,7 @@ Rails.application.routes.draw do
post 'samples_index' post 'samples_index'
post :delete_samples, post :delete_samples,
constraints: CommitParamRouting.new( constraints: CommitParamRouting.new(
MyModulesController::DELETE_SAMPLES ExperimentsController::DELETE_SAMPLES
), ),
action: :delete_samples action: :delete_samples
end end