Class: UserPreference
Overview
Redmine - project management software Copyright (C) 2006-2016
Jean-Philippe Lang
This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the Free
Software Foundation; either version 2 of the License, or (at your option)
any later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc., 51
Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
Constant Summary
- TEXTAREA_FONT_OPTIONS =
['monospace', 'proportional']
Instance Method Summary
collapse
#delete_unsafe_attributes, included, #safe_attribute?, #safe_attribute_names, #safe_attributes=
Constructor Details
#initialize(attributes = nil, *args) ⇒ UserPreference
Returns a new instance of UserPreference
37
38
39
40
41
42
43
44
45
46
|
# File 'app/models/user_preference.rb', line 37
def initialize(attributes=nil, *args)
super
if new_record? && !(attributes && attributes.key?(:hide_mail))
self.hide_mail = Setting.default_users_hide_mail?
end
if new_record? && !(attributes && attributes.key?(:no_self_notified))
self.no_self_notified = true
end
self.others ||= {}
end
|
Instance Method Details
#[](attr_name) ⇒ Object
52
53
54
55
56
57
58
|
# File 'app/models/user_preference.rb', line 52
def [](attr_name)
if has_attribute? attr_name
super
else
others ? others[attr_name] : nil
end
end
|
#[]=(attr_name, value) ⇒ Object
60
61
62
63
64
65
66
67
68
69
|
# File 'app/models/user_preference.rb', line 60
def []=(attr_name, value)
if has_attribute? attr_name
super
else
h = (read_attribute(:others) || {}).dup
h.update(attr_name => value)
write_attribute(:others, h)
value
end
end
|
#activity_scope ⇒ Object
80
|
# File 'app/models/user_preference.rb', line 80
def activity_scope; Array(self[:activity_scope]) ; end
|
#activity_scope=(value) ⇒ Object
81
|
# File 'app/models/user_preference.rb', line 81
def activity_scope=(value); self[:activity_scope]=value ; end
|
#add_block(block) ⇒ Object
115
116
117
118
119
120
121
122
123
|
# File 'app/models/user_preference.rb', line 115
def add_block(block)
block = block.to_s.underscore
return unless Redmine::MyPage.blocks.key?(block)
remove_block(block)
my_page_layout['top'] ||= []
my_page_layout['top'].unshift(block)
end
|
71
|
# File 'app/models/user_preference.rb', line 71
def ; self[:comments_sorting] end
|
72
|
# File 'app/models/user_preference.rb', line 72
def (order); self[:comments_sorting]=order end
|
#my_page_layout ⇒ Object
86
87
88
|
# File 'app/models/user_preference.rb', line 86
def my_page_layout
self[:my_page_layout] ||= Redmine::MyPage.default_layout.deep_dup
end
|
#my_page_layout=(arg) ⇒ Object
90
91
92
|
# File 'app/models/user_preference.rb', line 90
def my_page_layout=(arg)
self[:my_page_layout] = arg
end
|
#my_page_settings(block = nil) ⇒ Object
94
95
96
97
98
99
100
101
|
# File 'app/models/user_preference.rb', line 94
def my_page_settings(block=nil)
s = self[:my_page_settings] ||= {}
if block
s[block] ||= {}
else
s
end
end
|
#my_page_settings=(arg) ⇒ Object
103
104
105
|
# File 'app/models/user_preference.rb', line 103
def my_page_settings=(arg)
self[:my_page_settings] = arg
end
|
#no_self_notified ⇒ Object
77
|
# File 'app/models/user_preference.rb', line 77
def no_self_notified; (self[:no_self_notified] == true || self[:no_self_notified] == '1'); end
|
#no_self_notified=(value) ⇒ Object
78
|
# File 'app/models/user_preference.rb', line 78
def no_self_notified=(value); self[:no_self_notified]=value; end
|
#remove_block(block) ⇒ Object
107
108
109
110
111
112
113
|
# File 'app/models/user_preference.rb', line 107
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
|
#set_others_hash ⇒ Object
48
49
50
|
# File 'app/models/user_preference.rb', line 48
def set_others_hash
self.others ||= {}
end
|
#textarea_font ⇒ Object
83
|
# File 'app/models/user_preference.rb', line 83
def textarea_font; self[:textarea_font] end
|
#textarea_font=(value) ⇒ Object
84
|
# File 'app/models/user_preference.rb', line 84
def textarea_font=(value); self[:textarea_font]=value; end
|
#update_block_settings(block, settings) ⇒ Object
125
126
127
128
|
# File 'app/models/user_preference.rb', line 125
def update_block_settings(block, settings)
block_settings = my_page_settings(block).merge(settings.symbolize_keys)
my_page_settings[block] = block_settings
end
|
#warn_on_leaving_unsaved ⇒ Object
74
|
# File 'app/models/user_preference.rb', line 74
def warn_on_leaving_unsaved; self[:warn_on_leaving_unsaved] || '1'; end
|
#warn_on_leaving_unsaved=(value) ⇒ Object
75
|
# File 'app/models/user_preference.rb', line 75
def warn_on_leaving_unsaved=(value); self[:warn_on_leaving_unsaved]=value; end
|