Sitemap

<% open_details = [] # levels with a currently-open
%> <% @sitemap.each_with_index do |(node, level), index| %> <% while open_details.any? && open_details.last >= level %>
<% open_details.pop %> <% end %>

<%= link_to title_for_node(node), node_path(node) %>

<%= link_to_path("#{node.unique_name} ↗", node.unique_name) %>

<%= link_to 'Show', node_path(node) %> <%= link_to 'Create Child', new_node_path(:parent_id => node.id) %>

<% next_level = @sitemap[index + 1]&.last %> <% if next_level && next_level > level %> > <%= pluralize(@sitemap_descendant_counts[node.id], 'descendant', 'descendants') %> <% open_details.push(level) %> <% end %> <% end %> <% open_details.length.times { %><% } %>