app/helpers/spina/admin/pages_helper.rb in spina-0.9.0 vs app/helpers/spina/admin/pages_helper.rb in spina-0.10.0

- old
+ new

@@ -35,8 +35,23 @@ def partable_type_partial_namespace(partable_type) partable_type.tableize.sub(/\Aspina\//, '') end + def flatten_nested_hash(hash) + hash.flat_map{|k, v| [k, *flatten_nested_hash(v)]} + end + + def page_ancestry_options(page) + pages = Spina::Page.active + pages = pages.where.not(id: page.subtree.ids) unless page.new_record? + + flatten_nested_hash(pages.arrange(order: :position)).map do |page| + next if page.depth >= Spina.config.max_page_depth - 1 + page_menu_title = page.depth.zero? ? page.menu_title : " #{page.menu_title}".indent(page.depth, '-') + [page_menu_title, page.id] + end.compact + end + end end end