Class: Plutonium::UI::FrameNavigatorPanel

Inherits:
Component::Base show all
Defined in:
lib/plutonium/ui/frame_navigator_panel.rb

Defined Under Namespace

Classes: PanelContent, PanelItem, PanelLink

Instance Method Summary collapse

Methods included from Component::Behaviour

#around_template

Methods included from Component::Tokens

#classes, #tokens

Methods included from Component::Kit

#BuildActionButton, #BuildBlock, #BuildBreadcrumbs, #BuildColorModeSelector, #BuildDynaFrameContent, #BuildDynaFrameHost, #BuildEmptyCard, #BuildFrameNavigatorPanel, #BuildPageHeader, #BuildPanel, #BuildSkeletonTable, #BuildTabList, #BuildTableInfo, #BuildTablePagination, #BuildTableScopesBar, #BuildTableSearchBar, #method_missing, #respond_to_missing?

Constructor Details

#initialize(title:, src:, panel_id: nil) ⇒ FrameNavigatorPanel

Returns a new instance of FrameNavigatorPanel.



56
57
58
59
60
# File 'lib/plutonium/ui/frame_navigator_panel.rb', line 56

def initialize(title:, src:, panel_id: nil)
  @title = title
  @src = src
  @panel_id = panel_id
end

Dynamic Method Handling

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

Instance Method Details

#view_templateObject



62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/plutonium/ui/frame_navigator_panel.rb', line 62

def view_template
  div(data: {controller: %w[frame-navigator]}) do
    Panel do |panel|
      panel.with_title @title
      panel.with_item PanelItem.new(label: "Home", icon: Phlex::TablerIcons::Home2, data_frame_navigator_target: "homeButton")
      panel.with_item PanelItem.new(label: "Back", icon: Phlex::TablerIcons::ChevronLeft, data_frame_navigator_target: "backButton")
      panel.with_item PanelItem.new(label: "Refresh", icon: Phlex::TablerIcons::RefreshDot, data_frame_navigator_target: "refreshButton")
      panel.with_item PanelLink.new(label: "Maximize", icon: Phlex::TablerIcons::WindowMaximize, href: @src, data_frame_navigator_target: "maximizeLink")
      panel.with_content PanelContent.new(id: @panel_id, src: @src)
    end
  end
end