Sha256: 07bde2a4d3638474beb54256f53786dd2d079c480b80b6a166249c57695f39bd

Contents?: true

Size: 878 Bytes

Versions: 8

Compression:

Stored size: 878 Bytes

Contents

module Admin::Resources::DataTypes::TreeHelper

  def table_tree_field(attribute, item)
    item.parent ? item.parent.to_label : "—".html_safe
  end

  def typus_tree_field(attribute, form)
    locals = { :attribute => attribute,
               :form => form,
               :label_text => @resource.human_attribute_name(attribute),
               :values => expand_tree_into_select_field(@resource.roots, "parent_id") }

    render "admin/templates/tree", locals
  end

  def expand_tree_into_select_field(items, attribute)
    String.new.tap do |html|
      items.each do |item|
        html << %{<option #{"selected" if @item.send(attribute) == item.id} value="#{item.id}">#{"&nbsp;" * item.ancestors.size * 2} #{item.to_label}</option>\n}
        html << expand_tree_into_select_field(item.children, attribute) unless item.children.empty?
      end
    end
  end

end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
typus-3.1.0.rc14 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc13 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc12 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc11 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc10 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc9 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc8 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc7 app/helpers/admin/resources/data_types/tree_helper.rb