Class: Plutonium::UI::Table::Components::Toolbar

Inherits:
Component::Base show all
Defined in:
lib/plutonium/ui/table/components/toolbar.rb

Overview

Modern index toolbar combining view switcher, filter/group controls, inline search, and column config / overflow icon buttons into a single tight strip rendered above the table when shell == :modern.

Instance Method Summary collapse

Methods included from Component::Behaviour

#around_template

Methods included from Component::Tokens

#classes, #tokens

Methods included from Component::Kit

#BuildActionButton, #BuildActionsDropdown, #BuildBlock, #BuildBreadcrumbs, #BuildBulkActionsToolbar, #BuildColorModeSelector, #BuildDynaFrameContent, #BuildDynaFrameHost, #BuildEmptyCard, #BuildFrameNavigatorPanel, #BuildModalCentered, #BuildModalSlideover, #BuildPageHeader, #BuildPanel, #BuildRowActionsDropdown, #BuildSkeletonTable, #BuildTabList, #BuildTableFilterPills, #BuildTableInfo, #BuildTablePagination, #BuildTableScopesBar, #BuildTableScopesPills, #BuildTableSearchBar, #BuildTableToolbar, #BuildTableViewSwitcher, #method_missing, #respond_to_missing?

Constructor Details

#initialize(query:, search_url:, search_param: :q, search_value: nil, views: [:table], current_view: :table, view_cookie_name: nil, view_cookie_path: "/") ⇒ Toolbar

Returns a new instance of Toolbar.



11
12
13
14
15
16
17
18
19
20
# File 'lib/plutonium/ui/table/components/toolbar.rb', line 11

def initialize(query:, search_url:, search_param: :q, search_value: nil, views: [:table], current_view: :table, view_cookie_name: nil, view_cookie_path: "/")
  @query = query
  @search_url = search_url
  @search_param = search_param
  @search_value = search_value
  @views = views
  @current_view = current_view
  @view_cookie_name = view_cookie_name
  @view_cookie_path = view_cookie_path
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method in the class Plutonium::UI::Component::Kit

Instance Method Details

#render?Boolean

Returns:

  • (Boolean)


22
23
24
# File 'lib/plutonium/ui/table/components/toolbar.rb', line 22

def render?
  @views.size > 1 || has_filters? || has_search?
end

#view_templateObject



26
27
28
29
30
31
32
33
34
35
# File 'lib/plutonium/ui/table/components/toolbar.rb', line 26

def view_template
  div(class: "flex items-center gap-2 px-4 py-2 border-b border-[var(--pu-border)] bg-[var(--pu-surface-alt)]") do
    switcher = ViewSwitcher.new(views: @views, current: @current_view, cookie_name: @view_cookie_name, cookie_path: @view_cookie_path)
    render switcher
    render_divider if switcher.render?
    render_filter_button
    div(class: "flex-1")
    render_search if has_search?
  end
end