Sha256: dd4873c3577fa56ec4fc04049c5d6bf8757d88339900c07711ff5f5e2771a82a

Contents?: true

Size: 1.17 KB

Versions: 3

Compression:

Stored size: 1.17 KB

Contents

module ConstructorPages
  module TreeviewHelper
    def render_tree(roots, &block)
      output = '<ul>'

      roots.each do |root|
        level, last = root.level, nil

        root.self_and_descendants.each do |item|
          if item.level > level
            output += '<ul>'
          elsif item.level < level
            output += '</li>'
            output += '</ul></li>' * (level-item.level)
          elsif !item.root?
            output += '</li>'
          end

          output += '<li>'

          output += capture(item, &block)

          level, last = item.level, item
        end

        output += '</li>'
        output += '</ul></li>' * last.level
      end

      output.html_safe
    end

    def arrow_buttons_for(item)
      output = "<div class='btn-group'>"

      {down: :right, up: :left}.each_pair do |a, b|
        sibling = item.send(b.to_s+'_sibling')
        if sibling and item.move_possible?(sibling)
          output += link_to("<i class='icon-arrow-#{a}'></i>".html_safe, "/admin/#{item.class.to_s.demodulize.downcase.pluralize}/move/#{a}/#{item.id}", class: 'btn btn-mini')
        end
      end

      output += "</div>"
      output.html_safe
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
constructor-pages-0.7.10 app/helpers/constructor_pages/treeview_helper.rb
constructor-pages-0.7.9 app/helpers/constructor_pages/treeview_helper.rb
constructor-pages-0.7.8 app/helpers/constructor_pages/treeview_helper.rb