Sha256: d515099e9b911dc77168492dffc2b87e93211c81852ddb459e6c98dc30434f9d

Contents?: true

Size: 950 Bytes

Versions: 4

Compression:

Stored size: 950 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,
               :attribute_id => "#{@resource.table_name}_#{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

4 entries across 4 versions & 1 rubygems

Version Path
typus-3.1.0.rc18 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc17 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc16 app/helpers/admin/resources/data_types/tree_helper.rb
typus-3.1.0.rc15 app/helpers/admin/resources/data_types/tree_helper.rb