Module: Admin::NodeHelper

Included in:
PagesController, PagesHelper
Defined in:
app/helpers/admin/node_helper.rb

Instance Method Summary collapse

Instance Method Details

#expandedObject



68
69
70
# File 'app/helpers/admin/node_helper.rb', line 68

def expanded
  show_all? || expanded_rows.include?(@current_node.id)
end

#expanded_rowsObject



47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# File 'app/helpers/admin/node_helper.rb', line 47

def expanded_rows
  unless @expanded_rows
    @expanded_rows = if rows = cookies[:expanded_rows]
                       rows.split(',').map do |x|
                         begin
                                                                    Integer(x)
                         rescue StandardError
                           nil
                                                                  end
                       end .compact
                     else
                       []
    end

    if homepage && !@expanded_rows.include?(homepage.id)
      @expanded_rows << homepage.id
    end
  end
  @expanded_rows
end

#expander(level) ⇒ Object



72
73
74
75
76
77
78
79
80
# File 'app/helpers/admin/node_helper.rb', line 72

def expander(level)
  if @current_node.children.empty? || (level == 0)
    ''
  else
    image((expanded ? 'collapse' : 'expand'),
          class: 'expander', alt: 'toggle children',
          title: '')
  end
end

#format_path(path) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'app/helpers/admin/node_helper.rb', line 28

def format_path(path)
  return '' if path.nil? || path.empty?

  parts = path.split('/').reject(&:empty?)
  return 'Root' if parts.size == 1
  return '/' if parts.size == 2

  formatted_path = parts[1..-2].join('/')
  formatted_path.empty? ? '/' : "/#{formatted_path}"
end

#homepageObject



39
40
41
# File 'app/helpers/admin/node_helper.rb', line 39

def homepage
  @homepage ||= Page.find_by_parent_id(nil)
end

#iconObject



82
83
84
85
# File 'app/helpers/admin/node_helper.rb', line 82

def icon
  icon_name = @current_node.virtual? ? 'virtual_page' : 'page'
  image(icon_name, class: 'icon', alt: '', title: '')
end

#node_titleObject



87
88
89
# File 'app/helpers/admin/node_helper.rb', line 87

def node_title
  %{<span class="title">#{h(@current_node.title)}</span>}.html_safe
end

#page_typeObject



91
92
93
94
95
96
97
98
# File 'app/helpers/admin/node_helper.rb', line 91

def page_type
  display_name = @current_node.class.display_name
  if display_name == 'Page'
    ''
  else
    %{<span class="info">(#{h(display_name)})</span>}.html_safe
  end
end

#prepare_page(page) ⇒ Object



19
20
21
22
23
24
25
26
# File 'app/helpers/admin/node_helper.rb', line 19

def prepare_page(page)
  page.extend MenuRenderer
  page.view = self
  if page.additional_menu_features?
    page.extend(*page.menu_renderer_modules)
  end
  page
end

#render_node(page, index, parent_index = nil, simple = false) ⇒ Object



8
9
10
11
12
# File 'app/helpers/admin/node_helper.rb', line 8

def render_node(page, index, parent_index = nil, simple = false)
  @current_node = prepare_page(page)
  @rendered_html += render_partial(page, index:, parent_index:, simple:)
  index
end

#render_nodes(page, starting_index, parent_index = nil, simple = false) ⇒ Object



2
3
4
5
6
# File 'app/helpers/admin/node_helper.rb', line 2

def render_nodes(page, starting_index, parent_index = nil, simple = false)
  @rendered_html = ''
  render_node page, starting_index, parent_index, simple
  @rendered_html
end

#render_search_node(page, index = 0, parent_index = nil, simple = false) ⇒ Object



14
15
16
17
# File 'app/helpers/admin/node_helper.rb', line 14

def render_search_node(page, index = 0, parent_index = nil, simple = false)
  @current_node = prepare_page(page)
  @rendered_html = render_search_partial(page, index:, parent_index:, simple:, path: format_path(page.path))
end

#show_all?Boolean

Returns:

  • (Boolean)


43
44
45
# File 'app/helpers/admin/node_helper.rb', line 43

def show_all?
  controller.action_name == 'remove'
end

#spinnerObject



100
101
102
103
104
105
# File 'app/helpers/admin/node_helper.rb', line 100

def spinner
  image('spinner.gif',
        class: 'busy', id: "busy_#{@current_node.id}",
        alt: '', title: '',
        style: 'display: none;')
end