summaryrefslogtreecommitdiffstats
path: root/app/models/user_preference.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/models/user_preference.rb')
-rw-r--r--app/models/user_preference.rb18
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