Module: Skyline::TreeHelper
- Defined in:
- app/helpers/skyline/tree_helper.rb
Instance Method Summary collapse
- #media_dir_tree(dirs, roots, options = {}) ⇒ Object
- #node_tree(node_collection, nodes, options = {}) ⇒ Object
- #page_tree(pages, roots, options = {}) ⇒ Object
Instance Method Details
#media_dir_tree(dirs, roots, options = {}) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/helpers/skyline/tree_helper.rb', line 26 def media_dir_tree(dirs,roots,={}) node_content = Proc.new do |node| content_tag("span",node.name) end node_title = Proc.new do |node| node.name end node_url = Proc.new do |node| skyline_media_dir_media_files_path(node) end .reverse_merge! :id_prefix => "media", :node_content => node_content, :node_url => node_url, :node_title => node_title node_tree(dirs,roots,) end |
#node_tree(node_collection, nodes, options = {}) ⇒ Object
43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
# File 'app/helpers/skyline/tree_helper.rb', line 43 def node_tree(node_collection,nodes,={}) node_url = Proc.new{|node| "" } node_content = Proc.new{|node| node } node_title = Proc.new{|node| "" } .reverse_merge! :id_prefix => "node", :node_content => node_content, :node_url => node_url, :node_title => node_title, :selected => nil, :open => [] = [] nodes ||= [] nodes.each do |node| selected = [:selected].present? ? [:selected].id == node.id : false li = link_to([:node_content].call(node), [:node_url].call(node), :class => (selected ? "selected" : nil), :title => [:node_title].call(node)) li << node_tree(node_collection,node_collection[node.id],) if node_collection.has_key?(node.id) << content_tag("li",li , :id => "#{[:id_prefix]}_#{node.id}", :class => ([:open].include?(node))) end content_tag("ul",.join("\n")); end |
#page_tree(pages, roots, options = {}) ⇒ Object
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/helpers/skyline/tree_helper.rb', line 3 def page_tree(pages, roots, = {}) node_content = Proc.new do |page| css_class = case when page["locked"] == "1" then "locked" when page.published? && page.identical_to_publication? then "published" when page.published? then "changed" else nil end content_tag("span", page.title, :class => css_class) end node_title = Proc.new do |page| page.title end node_url = Proc.new do |page| edit_skyline_article_path(page["id"]) end .reverse_merge! :id_prefix => "article", :node_content => node_content, :node_url => node_url, :node_title => node_title node_tree(pages,roots,) end |