Module: Cms::Admin::PagesHelper

Defined in:
app/helpers/cms/admin/pages_helper.rb

Instance Method Summary collapse

Instance Method Details

#make_tree_recursive(tree, parent_id = nil, nested = false) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'app/helpers/cms/admin/pages_helper.rb', line 20

def make_tree_recursive(tree, parent_id=nil, nested=false)
  ret = "<ul id=\"tree_#{parent_id || 'root'}\" class=\"#{parent_id ? '' : 'tree'}\">"
  tree.each do |node|
    if node.parent_id == parent_id
      ret += "<li id=\"nav_#{node.id}\">"
      ret += yield node
      ret += node.children.empty? ? '' : make_tree_recursive(tree, node.id, true) {|n| yield n}
      ret += '</li>'
    end
  end
  ret += '</ul>'
  ret
end

#sortable_tree(collection, model) ⇒ Object



3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'app/helpers/cms/admin/pages_helper.rb', line 3

def sortable_tree(collection, model)
  make_tree_recursive(collection) do |item|
    controls = %{
      #{link_to('', send("edit_cms_admin_#{model}_path", item), {:class => 'edit'} )} 
      #{link_to('', send("cms_admin_#{model}_path", item), {:method => :delete, :confirm => t('form_global.delete_warning'), :class => 'delete'})}
    }
    toggle = item.children.empty? ? '<span class="spacer">&nbsp;</span>': link_to_function(image_tag('icons/folder.png'), "$(this).next('ul').toggle()")

    buffer = <<-"end;"
      #{toggle}
      <span class="tree-controls">#{controls}<a class="move">t('form_global.delete_warning')</a></span>
      <span>#{item.title} (/#{item.path})</span>
    end;
 
  end
end