Skip to content

Commit e389281

Browse files
committed
Extracted a new component from Base page for TitleBar
1 parent 3433b69 commit e389281

File tree

3 files changed

+60
-39
lines changed

3 files changed

+60
-39
lines changed

lib/active_admin/view_factory.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ class ViewFactory < AbstractViewFactory
88
:site_title => ActiveAdmin::Views::SiteTitle,
99
:utility_navigation => ActiveAdmin::Views::UtilityNav,
1010
:action_items => ActiveAdmin::Views::ActionItems,
11+
:title_bar => ActiveAdmin::Views::TitleBar,
1112
:header => ActiveAdmin::Views::Header,
1213
:dashboard_section => ActiveAdmin::Views::DashboardSection,
1314
:index_scopes => ActiveAdmin::Views::Scopes,

lib/active_admin/views/pages/base.rb

Lines changed: 9 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -49,46 +49,9 @@ def build_header
4949
end
5050

5151
def build_title_bar
52-
div :id => "title_bar" do
53-
build_titlebar_left
54-
build_titlebar_right
55-
end
56-
end
57-
58-
def build_titlebar_left
59-
div :id => "titlebar_left" do
60-
build_breadcrumb
61-
build_title_tag
62-
end
63-
end
64-
65-
def build_titlebar_right
66-
div :id => "titlebar_right" do
67-
build_action_items
68-
end
52+
insert_tag view_factory.title_bar, title, action_items_for_action
6953
end
7054

71-
def build_breadcrumb(separator = "/")
72-
links = breadcrumb_links
73-
return if links.empty?
74-
span :class => "breadcrumb" do
75-
links.each do |link|
76-
text_node link
77-
span(separator, :class => "breadcrumb_sep")
78-
end
79-
end
80-
end
81-
82-
def build_title_tag
83-
h2(title, :id => 'page_title')
84-
end
85-
86-
def build_action_items
87-
if active_admin_config && active_admin_config.action_items?
88-
items = active_admin_config.action_items_for(params[:action], self)
89-
insert_tag view_factory.action_items, items
90-
end
91-
end
9255

9356
def build_page_content
9457
build_flash_messages
@@ -129,7 +92,6 @@ def set_page_title
12992
set_ivar_on_view "@page_title", title
13093
end
13194

132-
13395
# Returns the sidebar sections to render for the current action
13496
def sidebar_sections_for_action
13597
if active_admin_config && active_admin_config.sidebar_sections?
@@ -139,6 +101,14 @@ def sidebar_sections_for_action
139101
end
140102
end
141103

104+
def action_items_for_action
105+
if active_admin_config && active_admin_config.action_items?
106+
active_admin_config.action_items_for(params[:action], self)
107+
else
108+
[]
109+
end
110+
end
111+
142112
# Renders the sidebar
143113
def build_sidebar
144114
div :id => "sidebar" do
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
module ActiveAdmin
2+
module Views
3+
class TitleBar < Component
4+
5+
def build(title, action_items)
6+
super(:id => "title_bar")
7+
@title = title
8+
@action_items = action_items
9+
10+
build_titlebar_left
11+
build_titlebar_right
12+
end
13+
14+
private
15+
16+
def build_titlebar_left
17+
div :id => "titlebar_left" do
18+
build_breadcrumb
19+
build_title_tag
20+
end
21+
end
22+
23+
def build_titlebar_right
24+
div :id => "titlebar_right" do
25+
build_action_items
26+
end
27+
end
28+
29+
def build_breadcrumb(separator = "/")
30+
links = breadcrumb_links
31+
return if links.empty?
32+
span :class => "breadcrumb" do
33+
links.each do |link|
34+
text_node link
35+
span(separator, :class => "breadcrumb_sep")
36+
end
37+
end
38+
end
39+
40+
def build_title_tag
41+
h2(@title, :id => 'page_title')
42+
end
43+
44+
def build_action_items
45+
insert_tag(view_factory.action_items, @action_items) if @action_items.any?
46+
end
47+
48+
end
49+
end
50+
end

0 commit comments

Comments
 (0)