diff --git a/app/helpers/project_admin_helper.rb b/app/helpers/project_admin_helper.rb index 9e46b92..d3f385c 100644 --- a/app/helpers/project_admin_helper.rb +++ b/app/helpers/project_admin_helper.rb @@ -1,11 +1,23 @@ # frozen_string_literal: true module ProjectAdminHelper + FRAME_ID = 'admin_frame' + TABS_ID = 'admin_tabs' + def project_admin_frame(project, &) - tabs_id = 'project_admin_tabs' - tabs = ProjectAdmin::TabsViewModel.new(project, frame: :project_admin, id: tabs_id) + links = { + 'Data' => edit_project_path(project), + 'Workflows' => project_admin_workflows_path(project) + } + + title = "Project #{project.name}" + admin_frame(links, title:, &) + end + + def admin_frame(links, title:, &) + tabs = ProjectAdmin::TabsViewModel.new(links, id: TABS_ID, frame: FRAME_ID) content = capture(&) if block_given? - render partial: 'project_admin/frame', locals: { id: :project_admin, tabs:, tabs_id:, content: } + render partial: 'project_admin/frame', locals: { id: FRAME_ID, tabs:, tabs_id: TABS_ID, title:, content: } end end diff --git a/app/view_models/project_admin/tabs_view_model.rb b/app/view_models/project_admin/tabs_view_model.rb index a1d16ff..fa528b5 100644 --- a/app/view_models/project_admin/tabs_view_model.rb +++ b/app/view_models/project_admin/tabs_view_model.rb @@ -4,8 +4,8 @@ module ProjectAdmin class TabsViewModel include Rails.application.routes.url_helpers - def initialize(project, id:, frame:) - @project = project + def initialize(links, id:, frame:) + @links = links @id = id @frame = frame end @@ -13,17 +13,8 @@ module ProjectAdmin def render_in(view_context) view_context.render( partial: 'project_admin/tabs', - locals: { project: @project, links:, id: @id, frame: @frame } + locals: { project: @project, id: @id, frame: @frame, links: @links } ) end - - private - - def links - { - 'Data' => edit_project_path(@project), - 'Workflows' => project_admin_workflows_path(@project) - } - end end end diff --git a/app/views/projects/_form.html.slim b/app/views/projects/_form.html.slim index a970dc2..4d26cdc 100644 --- a/app/views/projects/_form.html.slim +++ b/app/views/projects/_form.html.slim @@ -1,4 +1,4 @@ -= form_with model: @project do |form| += form_with model: @project, data: {'turbo-frame': '_top'} do |form| .field = form.label :code = form.text_field :code