Module: TypusTreeviewHelper

Defined in:
app/helpers/typus_treeview_helper.rb

Instance Method Summary collapse

Instance Method Details

#treeview(open = false) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# File 'app/helpers/typus_treeview_helper.rb', line 2

def treeview open = false
  model = @object_name.classify.constantize
  if model.respond_to?(:roots) && method = Typus.treeview[@object_name.to_sym]
    res = ''
    res << javascript_include_tag("jquery.treeview")
    res << stylesheet_link_tag("jquery.treeview")
    res << ( :ul, :id => "treeview" do
      model.roots.map do |root|
        treeview_draw(root, method, open)
      end.join.html_safe
    end)
    res << javascript_tag('$(document).ready(function(){$("#treeview").treeview({persist: "location"});});')
    res.html_safe
  end
end

#treeview_draw(node, method, open) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'app/helpers/typus_treeview_helper.rb', line 18

def treeview_draw node, method, open
   :li, :class => open ? nil : "closed" do
    res = ''
    name = method.is_a?(Proc) ? method.call(node) : node.send(method)
    res << (:span, link_to(name, { :action => "edit",
                                              :id => node.id,
                                              :host => request.host,
                                              :port => request.port == 80 ? nil : request.port,
                                              :protocol => request.scheme }))
    if node.children.size > 0
      res << ( :ul do
        node.children.map do |child|
              treeview_draw(child, method, open)
        end.join.html_safe
      end)
    end
    res.html_safe
  end
end