Project

General

Profile

« Previous | Next » 

Revision 2528

Allow underscore in block partial name (#2840).

View differences:

trunk/app/controllers/my_controller.rb
108 108
    session[:page_layout] = @blocks
109 109
    %w(top left right).each {|f| session[:page_layout][f] ||= [] }
110 110
    @block_options = []
111
    BLOCKS.each {|k, v| @block_options << [l(v), k]}
111
    BLOCKS.each {|k, v| @block_options << [l(v), k.dasherize]}
112 112
  end
113 113
  
114 114
  # Add a block to user's page
115 115
  # The block is added on top of the page
116 116
  # params[:block] : id of the block to add
117 117
  def add_block
118
    block = params[:block]
118
    block = params[:block].to_s.underscore
119 119
    render(:nothing => true) and return unless block && (BLOCKS.keys.include? block)
120 120
    @user = User.current
121 121
    # remove if already present in a group
......
128 128
  # Remove a block to user's page
129 129
  # params[:block] : id of the block to remove
130 130
  def remove_block
131
    block = params[:block]
131
    block = params[:block].to_s.underscore
132 132
    # remove block in all groups
133 133
    %w(top left right).each {|f| (session[:page_layout][f] ||= []).delete block }
134 134
    render :nothing => true
......
139 139
  # params[:list-(top|left|right)] : array of block ids of the group
140 140
  def order_blocks
141 141
    group = params[:group]
142
    group_items = params["list-#{group}"]
143
    if group_items and group_items.is_a? Array
144
      # remove group blocks if they are presents in other groups
145
      %w(top left right).each {|f|
146
        session[:page_layout][f] = (session[:page_layout][f] || []) - group_items
147
      }
148
      session[:page_layout][group] = group_items    
142
    if group.is_a?(Array)
143
      group_items = params["list-#{group}"].collect(&:underscore)
144
      if group_items and group_items.is_a? Array
145
        # remove group blocks if they are presents in other groups
146
        %w(top left right).each {|f|
147
          session[:page_layout][f] = (session[:page_layout][f] || []) - group_items
148
        }
149
        session[:page_layout][group] = group_items    
150
      end
149 151
    end
150 152
    render :nothing => true
151 153
  end
trunk/app/views/my/_block.rhtml
1
<div id="block_<%= block_name %>" class="mypage-box">
1
<div id="block_<%= block_name.dasherize %>" class="mypage-box">
2 2

  
3 3
    <div style="float:right;margin-right:16px;z-index:500;">
4 4
    <%= link_to_remote "", {
5 5
        :url => { :action => "remove_block", :block => block_name },
6
        :complete => "removeBlock('block_#{block_name}')" },
6
        :complete => "removeBlock('block_#{block_name.dasherize}')" },
7 7
        :class => "close-icon"
8 8
         %>        
9 9
    </div>

Also available in: Unified diff