File: app/helpers/admin/node_helper.rb

Overview
Module Structure
Code

Overview

Module Structure

  module: <Toplevel Module>
  module: Admin
  module: NodeHelper#1
has properties
method: render_node / 2 #3
method: homepage #14
method: show_all? #18
method: expanded_rows #22
method: expanded #38
method: padding_left / 1 #42
method: children_class #46
method: virtual_class #58
method: expander / 1 #62
method: icon #72
method: node_title #77
method: page_type #81
method: spinner #90

Code

   1  module Admin::NodeHelper
   2 
   3    def render_node(page, locals = {})
   4      @current_node = page
   5      page.extend MenuRenderer
   6      page.view = self
   7      if page.additional_menu_features?
   8        page.extend(*page.menu_renderer_modules)
   9      end
  10      locals.reverse_merge!(:level => 0, :simple => false).merge!(:page => page)
  11      render :partial => 'admin/pages/node', :locals =>  locals
  12    end
  13 
  14    def homepage
  15      @homepage ||= Page.find_by_parent_id(nil)
  16    end
  17 
  18    def show_all?
  19      @controller.action_name == 'remove'
  20    end
  21 
  22    def expanded_rows
  23      unless @expanded_rows
  24        @expanded_rows = case
  25        when rows = cookies[:expanded_rows]
  26          rows.split(',').map { |x| Integer(x) rescue nil }.compact
  27        else
  28          []
  29        end
  30 
  31        if homepage and !@expanded_rows.include?(homepage.id)
  32          @expanded_rows << homepage.id
  33        end
  34      end
  35      @expanded_rows
  36    end
  37 
  38    def expanded
  39      show_all? || expanded_rows.include?(@current_node.id)
  40    end
  41 
  42    def padding_left(level)
  43      (level * 23) + 9
  44    end
  45 
  46    def children_class
  47      unless @current_node.children.empty?
  48        if expanded
  49          " children_visible"
  50        else
  51          " children_hidden"
  52        end
  53      else
  54        " no_children"
  55      end
  56    end
  57 
  58    def virtual_class
  59      @current_node.virtual? ? " virtual": ""
  60    end
  61 
  62    def expander(level)
  63      unless @current_node.children.empty? or level == 0
  64        image((expanded ? "collapse" : "expand"),
  65              :class => "expander", :alt => 'toggle children',
  66              :title => '')
  67      else
  68        ""
  69      end
  70    end
  71 
  72    def icon
  73      icon_name = @current_node.virtual? ? 'virtual_page' : 'page'
  74      image(icon_name, :class => "icon", :alt => '', :title => '')
  75    end
  76 
  77    def node_title
  78      %{<span class="title">#{ h(@current_node.title) }</span>}
  79    end
  80 
  81    def page_type
  82      display_name = @current_node.class.display_name
  83      if display_name == 'Page'
  84        ""
  85      else
  86        %{<span class="info">(#{ h(display_name) })</span>}
  87      end
  88    end
  89 
  90    def spinner
  91      image('spinner.gif',
  92              :class => 'busy', :id => "busy_#{@current_node.id}",
  93              :alt => "",  :title => "",
  94              :style => 'display: none;')
  95    end
  96  end