module ComatoseAdminHelper
# Checks the hidden_meta_fields class variable for a specified field name...
def show_field?(key)
!Comatose.config.hidden_meta_fields.include? key
end
# Used in the Page Form to build an indented drop-down list of pages
def tree_select_box(nodes, selected= nil, hide= nil, label="Parent", add_initial=false)
level = 0
select_box = add_initial ? "\n" : ""
selected = nodes[0].id if selected.nil? and not add_initial
nodes.each {|node| select_box += add_select_tree_node(node, selected, level, hide) }
select_box += ''
end
# Called by tree_select_box
def add_select_tree_node(node, selected, level, hide)
padding = " " * level * 4
padding += '» ' unless level==0
hide_values = Array.new
hide_values << hide if hide
if node.id == selected
select_box = %Q|\n|
else
if hide_values.include?(node.id)
select_box = ''
else
select_box = %Q|\n|
end
end
node.children.each do |child|
select_box += add_select_tree_node(child, selected, level + 1, hide) unless hide_values.include?(node.id)
end
select_box
end
end