opf/openproject

View on GitHub
app/components/settings/project_custom_fields/header_component.html.erb

Summary

Maintainability
Test Coverage
<% button_block = lambda do |button|
  button.with_leading_visual_icon(icon: :plus)
  t('settings.project_attributes.label_new_section')
end %>

<%=
  component_wrapper do
    render Primer::OpenProject::PageHeader.new do |header|
      header.with_title(variant: :default) { t("settings.project_attributes.heading") }
      header.with_description { t("settings.project_attributes.heading_description") }
      header.with_breadcrumbs(breadcrumbs_items)
      header.with_action_button(tag: :a,
                                href: new_admin_settings_project_custom_field_path(type: "ProjectCustomField"),
                                scheme: :primary,
                                data: { turbo: "false", test_selector: "new-project-custom-field-button" },
                                mobile_icon: :plus,
                                mobile_label: t("settings.project_attributes.label_new_attribute")) do |button|
        button.with_leading_visual_icon(icon: :plus)
        t("settings.project_attributes.label_new_attribute")
      end

      header.with_action_dialog(mobile_icon: :plus,
                                mobile_label: t('settings.project_attributes.label_new_section'),
                                dialog_arguments: {id: "project-custom-field-section-dialog", title: t('settings.project_attributes.label_new_section', size: :medium_portrait), size: :medium_portrait},
                                button_arguments: {'aria-label': t('settings.project_attributes.label_new_section'), button_block: button_block}) do |dialog|
        dialog.with_body do
          render(Settings::ProjectCustomFieldSections::DialogBodyFormComponent.new)
        end
      end
    end
  end
%>