Module: RelationsHelper

Defined in:
app/helpers/relations_helper.rb

Instance Method Summary collapse

Instance Method Details

#build_relations_tree(page, list, level = 0) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/helpers/relations_helper.rb', line 13

def build_relations_tree(page, list, level = 0)
  label = "#{'-'*level} #{page.title}"
  id = page.id
  list << [label, id]

  return list if page.fields.select{|f| f.name == "exclude_children_from_relations_target"}.any?
  return list if Radiant::Config["relations.exclude_archive_children"] && page.class_name =~ /ArchivePage/

  page.children.each do |p|
    build_relations_tree p, list, level + 1
  end
  list
end

#relation_options(selected = nil) ⇒ Object



2
3
4
5
6
7
8
9
10
11
# File 'app/helpers/relations_helper.rb', line 2

def relation_options(selected = nil)
  options = []
  options << [t('support.select.prompt'), nil]
  if @page && @page.field('relations_target_parent_id')
    options.concat build_tree(Page.find(@page.field('relations_target_parent_id').content), [])
  else
    options.concat build_relations_tree(Page.root, [])
  end
  options_for_select(options, selected)
end