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