module Admin::ItemHelper def render_node_and_children(node) ret = '' if node case node._type when 'Page' dest = admin_page_path(node) when 'Link' dest = admin_link_path(node) end ret << "<ul class='list'>" ret << "<li>" ret << (link_to node.name, dest) ret << ' | ' << (link_to t('admin.edit'), eval("edit_admin_#{node._type.downcase}_path(node)")) if node._type.eql?('Page') ret << ' | ' << (link_to t('admin.new_page'), new_admin_page_path(:parent_id => node.id), :class => 'new_page') if node._type.eql?('Page') ret << ' | ' << (link_to t('admin.new_link'), new_admin_link_path(:parent_id => node.id), :class => 'new_link') if node._type.eql?('Page') ret << ' | ' << (link_to t(:delete), eval("delete_admin_#{node._type.downcase}_path(node, :authenticity_token => form_authenticity_token)"), :confirm => t('sure?'), :class => 'delete') ret << render_children(node) ret << "</li>" ret << "</ul>" end ret.html_safe end def render_children(parent) if children = parent.children ret = '' ret << "<ul>" children.each do |child| ret << render_node_and_children(child) end ret << "</ul>" ret end end end