@@ -140,52 +140,34 class MyController < ApplicationController | |||||
140 | # The block is added on top of the page |
|
140 | # The block is added on top of the page | |
141 | # params[:block] : id of the block to add |
|
141 | # params[:block] : id of the block to add | |
142 | def add_block |
|
142 | def add_block | |
143 | block = params[:block].to_s.underscore |
|
143 | @user = User.current | |
144 | if block.present? && Redmine::MyPage.blocks.key?(block) |
|
144 | @user.pref.add_block params[:block] | |
145 | @user = User.current |
|
145 | @user.pref.save | |
146 | layout = @user.pref.my_page_layout |
|
|||
147 | # remove if already present in a group |
|
|||
148 | %w(top left right).each {|f| (layout[f] ||= []).delete block } |
|
|||
149 | # add it on top |
|
|||
150 | layout['top'].unshift block |
|
|||
151 | @user.pref.my_page_layout = layout |
|
|||
152 | @user.pref.save |
|
|||
153 | end |
|
|||
154 | redirect_to my_page_layout_path |
|
146 | redirect_to my_page_layout_path | |
155 | end |
|
147 | end | |
156 |
|
148 | |||
157 | # Remove a block to user's page |
|
149 | # Remove a block to user's page | |
158 | # params[:block] : id of the block to remove |
|
150 | # params[:block] : id of the block to remove | |
159 | def remove_block |
|
151 | def remove_block | |
160 | block = params[:block].to_s.underscore |
|
|||
161 | @user = User.current |
|
152 | @user = User.current | |
162 | # remove block in all groups |
|
153 | @user.pref.remove_block params[:block] | |
163 | layout = @user.pref.my_page_layout |
|
|||
164 | %w(top left right).each {|f| (layout[f] ||= []).delete block } |
|
|||
165 | @user.pref.my_page_layout = layout |
|
|||
166 | @user.pref.save |
|
154 | @user.pref.save | |
167 | redirect_to my_page_layout_path |
|
155 | redirect_to my_page_layout_path | |
168 | end |
|
156 | end | |
169 |
|
157 | |||
170 | # Change blocks order on user's page |
|
158 | # Change blocks order on user's page | |
171 | # params[:group] : group to order (top, left or right) |
|
159 | # params[:group] : group to order (top, left or right) | |
172 |
# params[: |
|
160 | # params[:blocks] : array of block ids of the group | |
173 | def order_blocks |
|
161 | def order_blocks | |
174 | group = params[:group] |
|
162 | group = params[:group] | |
175 | @user = User.current |
|
163 | @user = User.current | |
176 | if group.is_a?(String) |
|
164 | if group.is_a?(String) | |
177 | group_items = (params["blocks"] || []).collect(&:underscore) |
|
165 | group_items = (params["blocks"] || []).collect(&:underscore) | |
178 | group_items.each {|s| s.sub!(/^block_/, '')} |
|
166 | group_items.each {|s| s.sub!(/^block_/, '')} | |
179 | if group_items and group_items.is_a? Array |
|
167 | # remove group blocks if they are presents in other groups | |
180 | layout = @user.pref.my_page_layout |
|
168 | group_items.each {|s| @user.pref.remove_block(s)} | |
181 | # remove group blocks if they are presents in other groups |
|
169 | @user.pref.my_page_layout[group] = group_items | |
182 | %w(top left right).each {|f| |
|
170 | @user.pref.save | |
183 | layout[f] = (layout[f] || []) - group_items |
|
|||
184 | } |
|
|||
185 | layout[group] = group_items |
|
|||
186 | @user.pref.my_page_layout = layout |
|
|||
187 | @user.pref.save |
|
|||
188 | end |
|
|||
189 | end |
|
171 | end | |
190 | head 200 |
|
172 | head 200 | |
191 | end |
|
173 | end |
@@ -90,4 +90,22 class UserPreference < ActiveRecord::Base | |||||
90 | def my_page_layout=(arg) |
|
90 | def my_page_layout=(arg) | |
91 | self[:my_page_layout] = arg |
|
91 | self[:my_page_layout] = arg | |
92 | end |
|
92 | end | |
|
93 | ||||
|
94 | def remove_block(block) | |||
|
95 | block = block.to_s.underscore | |||
|
96 | %w(top left right).each do |f| | |||
|
97 | (my_page_layout[f] ||= []).delete(block) | |||
|
98 | end | |||
|
99 | my_page_layout | |||
|
100 | end | |||
|
101 | ||||
|
102 | def add_block(block) | |||
|
103 | block = block.to_s.underscore | |||
|
104 | return unless Redmine::MyPage.blocks.key?(block) | |||
|
105 | ||||
|
106 | remove_block(block) | |||
|
107 | # add it on top | |||
|
108 | my_page_layout['top'] ||= [] | |||
|
109 | my_page_layout['top'].unshift(block) | |||
|
110 | end | |||
93 | end |
|
111 | end |
General Comments 0
You need to be logged in to leave comments.
Login now