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