diff options
Diffstat (limited to 'app/models/user_preference.rb')
-rw-r--r-- | app/models/user_preference.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/user_preference.rb b/app/models/user_preference.rb index bf54e5a5b..f492ac139 100644 --- a/app/models/user_preference.rb +++ b/app/models/user_preference.rb @@ -90,4 +90,22 @@ class UserPreference < ActiveRecord::Base def my_page_layout=(arg) self[:my_page_layout] = arg end + + def remove_block(block) + block = block.to_s.underscore + %w(top left right).each do |f| + (my_page_layout[f] ||= []).delete(block) + end + my_page_layout + end + + def add_block(block) + block = block.to_s.underscore + return unless Redmine::MyPage.blocks.key?(block) + + remove_block(block) + # add it on top + my_page_layout['top'] ||= [] + my_page_layout['top'].unshift(block) + end end |