# Methods added to this helper will be available to all templates in the application.
module ApplicationHelper
# #
# Taken From "HowToUseActsAsTree in Ruby"
# http://wiki.rubyonrails.com/rails/pages/HowToUseActsAsTree
# #
def render_tree_select(pages, name, control_id, control_name, blank_record)
ret = ''
ret += "<select name=\""+control_name+"\" id=\""+control_id+"\">"
ret += "<option value=\">"+blank_record+"\">"+blank_record+"</option>" if not blank_record.empty?
for page in pages
ret += "<option value=\"" + page.id.to_s + "\">"
ret += page[name] if page[name]
ret += recurse_tree(page, 0, name) if page.children.size > 0
end
ret += "</select>"
end
# #
# Taken From "HowToUseActsAsTree in Ruby"
# http://wiki.rubyonrails.com/rails/pages/HowToUseActsAsTree
# #
def recurse_tree(page, depth, name)
depth = depth + 1
level = "- " * depth
ret = ''
if page.children.size > 0
page.children.each { |subpage|
if subpage.children.size > 0
ret += '<option value="'+subpage.id.to_s+'">'
ret += h(level + subpage[name])
ret += recurse_tree(subpage, depth, name)
ret += '</option>'
else
ret += '<option value="'+subpage.id.to_s+'">'
ret += h(level + subpage[name])
ret += '</option>'
end
}
ret += ''
end
end
end