mirror of
https://github.com/scinote-eln/scinote-web.git
synced 2025-11-17 14:32:34 +08:00
Implement layout breadcrumbs for Experiments and Tasks [SCI-8087]
This commit is contained in:
parent
6cf3782339
commit
eda4f140ee
2 changed files with 77 additions and 0 deletions
|
|
@ -77,6 +77,7 @@ class ExperimentsController < ApplicationController
|
|||
end
|
||||
|
||||
def canvas
|
||||
@breadcrumbs_items = breadcrumbs_items
|
||||
redirect_to module_archive_experiment_path(@experiment) if @experiment.archived_branch?
|
||||
@project = @experiment.project
|
||||
@active_modules = @experiment.my_modules.active.order(:name)
|
||||
|
|
@ -89,6 +90,7 @@ class ExperimentsController < ApplicationController
|
|||
end
|
||||
|
||||
def table
|
||||
@breadcrumbs_items = breadcrumbs_items
|
||||
@project = @experiment.project
|
||||
@experiment.current_view_state(current_user)
|
||||
@my_module_visible_table_columns = current_user.my_module_visible_table_columns
|
||||
|
|
@ -372,6 +374,7 @@ class ExperimentsController < ApplicationController
|
|||
end
|
||||
|
||||
def module_archive
|
||||
@breadcrumbs_items = breadcrumbs_items
|
||||
@project = @experiment.project
|
||||
@my_modules = @experiment.archived_branch? ? @experiment.my_modules : @experiment.my_modules.archived
|
||||
@my_modules = @my_modules.with_granted_permissions(current_user, MyModulePermissions::READ_ARCHIVED)
|
||||
|
|
@ -658,4 +661,38 @@ class ExperimentsController < ApplicationController
|
|||
end
|
||||
end
|
||||
end
|
||||
|
||||
def breadcrumbs_items
|
||||
experiment = @experiment
|
||||
project = experiment.project
|
||||
current_folder = project&.project_folder
|
||||
breadcrumbs_items = []
|
||||
folders = helpers.tree_ordered_parent_folders(current_folder)
|
||||
|
||||
breadcrumbs_items.push({
|
||||
label: t('projects.index.breadcrumbs_root'),
|
||||
url: projects_path,
|
||||
class: 'project-folder-link'
|
||||
})
|
||||
|
||||
folders&.each do |project_folder|
|
||||
breadcrumbs_items.push({
|
||||
label: project_folder.name,
|
||||
url: project_folder_path(project_folder),
|
||||
class: 'project-folder-link'
|
||||
})
|
||||
end
|
||||
|
||||
breadcrumbs_items.push({
|
||||
label: project.name,
|
||||
url: project_path(project)
|
||||
})
|
||||
|
||||
breadcrumbs_items.push({
|
||||
label: experiment.name,
|
||||
url: my_modules_experiment_path(experiment)
|
||||
})
|
||||
|
||||
breadcrumbs_items
|
||||
end
|
||||
end
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ class MyModulesController < ApplicationController
|
|||
before_action :check_update_state_permissions, only: :update_state
|
||||
before_action :set_inline_name_editing, only: %i(protocols results activities archive)
|
||||
before_action :load_experiment_my_modules, only: %i(protocols results activities archive)
|
||||
before_action :set_breadcrumbs_items, only: %i(results protocols activities signatures)
|
||||
|
||||
layout 'fluid'.freeze
|
||||
|
||||
|
|
@ -607,4 +608,43 @@ class MyModulesController < ApplicationController
|
|||
my_module: link_to(@my_module.name, protocols_my_module_url(@my_module)))
|
||||
)
|
||||
end
|
||||
|
||||
def set_breadcrumbs_items
|
||||
my_module = @my_module
|
||||
experiment = my_module.experiment
|
||||
project = experiment.project
|
||||
current_folder = project&.project_folder
|
||||
breadcrumbs_items = []
|
||||
folders = helpers.tree_ordered_parent_folders(current_folder)
|
||||
|
||||
breadcrumbs_items.push({
|
||||
label: t('projects.index.breadcrumbs_root'),
|
||||
url: projects_path,
|
||||
class: 'project-folder-link'
|
||||
})
|
||||
|
||||
folders&.each do |project_folder|
|
||||
breadcrumbs_items.push({
|
||||
label: project_folder.name,
|
||||
url: project_folder_path(project_folder),
|
||||
class: 'project-folder-link'
|
||||
})
|
||||
end
|
||||
|
||||
breadcrumbs_items.push({
|
||||
label: project.name,
|
||||
url: project_path(project)
|
||||
})
|
||||
|
||||
breadcrumbs_items.push({
|
||||
label: experiment.name,
|
||||
url: my_modules_experiment_path(experiment)
|
||||
})
|
||||
breadcrumbs_items.push({
|
||||
label: my_module.name,
|
||||
url: my_module_path(my_module)
|
||||
})
|
||||
|
||||
@breadcrumbs_items = breadcrumbs_items
|
||||
end
|
||||
end
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue