From 600ec99c82c7ee9c0f449b04583b9aa6dd66782b Mon Sep 17 00:00:00 2001 From: mlorb Date: Tue, 17 Apr 2018 13:52:43 +0200 Subject: [PATCH] fix project navigation to work with archived pages and correct current team --- app/controllers/experiments_controller.rb | 20 ++++++++------------ app/controllers/my_modules_controller.rb | 7 ++++--- app/controllers/projects_controller.rb | 18 +++++++++++++----- app/views/projects/archive.html.erb | 4 ++-- app/views/shared/_sidebar.html.erb | 2 +- app/views/shared/sidebar/_projects.html.erb | 2 +- 6 files changed, 29 insertions(+), 24 deletions(-) diff --git a/app/controllers/experiments_controller.rb b/app/controllers/experiments_controller.rb index 4bbc30efc..eaf44e2b5 100644 --- a/app/controllers/experiments_controller.rb +++ b/app/controllers/experiments_controller.rb @@ -7,20 +7,19 @@ class ExperimentsController < ApplicationController include Rails.application.routes.url_helpers before_action :set_experiment, - except: [:new, :create] + except: %i(new create) before_action :set_project, - only: [:new, :create, :samples_index, :samples, :module_archive, - :clone_modal, :move_modal, :delete_samples] - before_action :load_projects_by_teams, only: %i(canvas samples) + only: %i(new create samples_index samples module_archive + clone_modal move_modal delete_samples) + before_action :load_projects_by_teams, only: %i(canvas samples module_archive) before_action :check_view_permissions, - only: [:canvas, :module_archive] + only: %i(canvas module_archive) before_action :check_manage_permissions, only: :edit before_action :check_archive_permissions, only: :archive before_action :check_clone_permissions, only: %i(clone_modal clone) before_action :check_move_permissions, only: %i(move_modal move) - # except parameter could be used but it is not working. - layout :choose_layout + layout 'fluid'.freeze # Action defined in SampleActions DELETE_SAMPLES = 'Delete'.freeze @@ -350,7 +349,8 @@ class ExperimentsController < ApplicationController end def load_projects_by_teams - @projects_by_teams = current_user.projects_by_teams + @projects_by_teams = current_user.projects_by_teams(current_team.id, + nil, false) end def check_view_permissions @@ -373,10 +373,6 @@ class ExperimentsController < ApplicationController render_403 unless can_move_experiment?(@experiment) end - def choose_layout - action_name.in?(%w(index archive)) ? 'main' : 'fluid' - end - def experiment_annotation_notification(old_text = nil) smart_annotation_notification( old_text: old_text, diff --git a/app/controllers/my_modules_controller.rb b/app/controllers/my_modules_controller.rb index 508edae24..1e10c3c99 100644 --- a/app/controllers/my_modules_controller.rb +++ b/app/controllers/my_modules_controller.rb @@ -17,8 +17,8 @@ class MyModulesController < ApplicationController before_action :load_repository, only: %i(assign_repository_records unassign_repository_records repository_index) - before_action :load_projects_by_teams, - only: %i(protocols results activities samples repository) + before_action :load_projects_by_teams, only: %i(protocols results activities + samples repository archive) before_action :check_manage_permissions, only: %i(update destroy description due_date) before_action :check_view_info_permissions, only: :show @@ -608,7 +608,8 @@ class MyModulesController < ApplicationController end def load_projects_by_teams - @projects_by_teams = current_user.projects_by_teams + @projects_by_teams = current_user.projects_by_teams(current_team.id, + nil, false) end def check_manage_permissions diff --git a/app/controllers/projects_controller.rb b/app/controllers/projects_controller.rb index f97ff8387..caf923c25 100644 --- a/app/controllers/projects_controller.rb +++ b/app/controllers/projects_controller.rb @@ -9,15 +9,15 @@ class ProjectsController < ApplicationController notifications reports samples experiment_archive delete_samples samples_index) - before_action :load_projects_by_teams, only: %i(index show samples archive) + before_action :load_projects_by_teams, only: %i(index show samples archive + experiment_archive) + before_action :load_archive_vars, only: :archive before_action :check_view_permissions, only: %i(show reports notifications samples experiment_archive samples_index) before_action :check_create_permissions, only: %i(new create) before_action :check_manage_permissions, only: :edit - @filter_by_archived = false - # except parameter could be used but it is not working. layout 'fluid' @@ -36,7 +36,6 @@ class ProjectsController < ApplicationController end def archive - @filter_by_archived = true index end @@ -322,7 +321,16 @@ class ProjectsController < ApplicationController @current_sort = params[:sort].to_s @projects_by_teams = current_user.projects_by_teams(@current_team_id, @current_sort, - @filter_by_archived) + false) + else + @projects_by_teams = [] + end + end + + def load_archive_vars + if current_user.teams.any? + @archived_projects_by_teams = + current_user.projects_by_teams(@current_team_id, @current_sort, true) else @projects_by_teams = [] end diff --git a/app/views/projects/archive.html.erb b/app/views/projects/archive.html.erb index 1b5b1a8bf..89bb349ee 100644 --- a/app/views/projects/archive.html.erb +++ b/app/views/projects/archive.html.erb @@ -1,7 +1,7 @@ <% provide(:head_title, t("projects.archive.head_title")) %> <%= render partial: "shared/sidebar" %> -<% if @projects_by_teams.length > 0 %> +<% if @archived_projects_by_teams.length > 0 %>
@@ -29,7 +29,7 @@
- <% @projects_by_teams.each do |team, projects| %> + <% @archived_projects_by_teams.each do |team, projects| %> <%= render partial: 'projects/archive/team_projects', locals: {team: team, projects: projects} %> <% end %> diff --git a/app/views/shared/_sidebar.html.erb b/app/views/shared/_sidebar.html.erb index d1f177c5e..7b6659915 100644 --- a/app/views/shared/_sidebar.html.erb +++ b/app/views/shared/_sidebar.html.erb @@ -2,7 +2,7 @@
    - <% if project_page? && action_name == 'index' || + <% if project_page? && action_name.in?(%w(index archive)) || sample_types_page_project? || sample_groups_page_project? %> diff --git a/app/views/shared/sidebar/_projects.html.erb b/app/views/shared/sidebar/_projects.html.erb index 991a74683..f22f129b9 100644 --- a/app/views/shared/sidebar/_projects.html.erb +++ b/app/views/shared/sidebar/_projects.html.erb @@ -3,7 +3,7 @@ <% @projects_by_teams.each do |team, projects| %> <% projects.each do |project| %> - <% if (project_page? && action_name == 'show' || + <% if (project_page? && action_name.in?(%w(show experiment_archive)) || sample_types_page_project? || sample_groups_page_project?) && project == @project %>