Revision 2529
Added by Jean-Philippe Lang over 16 years ago
trunk/app/controllers/my_controller.rb | ||
---|---|---|
1 |
# redMine - project management software
|
|
2 |
# Copyright (C) 2006 Jean-Philippe Lang |
|
1 |
# Redmine - project management software
|
|
2 |
# Copyright (C) 2006-2009 Jean-Philippe Lang
|
|
3 | 3 |
# |
4 | 4 |
# This program is free software; you can redistribute it and/or |
5 | 5 |
# modify it under the terms of the GNU General Public License |
... | ... | |
28 | 28 |
'calendar' => :label_calendar, |
29 | 29 |
'documents' => :label_document_plural, |
30 | 30 |
'timelog' => :label_spent_time |
31 |
}.freeze |
|
31 |
}.merge(Redmine::Views::MyPage::Block.additional_blocks).freeze
|
|
32 | 32 |
|
33 | 33 |
DEFAULT_LAYOUT = { 'left' => ['issuesassignedtome'], |
34 | 34 |
'right' => ['issuesreportedbyme'] |
... | ... | |
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.dasherize]} |
|
111 |
BLOCKS.each {|k, v| @block_options << [l_or_humanize(v), k.dasherize]}
|
|
112 | 112 |
end |
113 | 113 |
|
114 | 114 |
# Add a block to user's page |
trunk/extra/sample_plugin/app/views/my/blocks/_sample_block.rhtml | ||
---|---|---|
1 |
<h3>Sample block</h3> |
|
2 |
|
|
3 |
You are <strong><%= h(User.current) %></strong> and this is a sample block for My Page added from a plugin. |
|
0 | 4 |
trunk/lib/redmine/views/my_page/block.rb | ||
---|---|---|
1 |
# Redmine - project management software |
|
2 |
# Copyright (C) 2006-2009 Jean-Philippe Lang |
|
3 |
# |
|
4 |
# This program is free software; you can redistribute it and/or |
|
5 |
# modify it under the terms of the GNU General Public License |
|
6 |
# as published by the Free Software Foundation; either version 2 |
|
7 |
# of the License, or (at your option) any later version. |
|
8 |
# |
|
9 |
# This program is distributed in the hope that it will be useful, |
|
10 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
# GNU General Public License for more details. |
|
13 |
# |
|
14 |
# You should have received a copy of the GNU General Public License |
|
15 |
# along with this program; if not, write to the Free Software |
|
16 |
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. |
|
17 |
|
|
18 |
module Redmine |
|
19 |
module Views |
|
20 |
module MyPage |
|
21 |
module Block |
|
22 |
def self.additional_blocks |
|
23 |
@@additional_blocks ||= Dir.glob("#{RAILS_ROOT}/vendor/plugins/*/app/views/my/blocks/_*.{rhtml,erb}").inject({}) do |h,file| |
|
24 |
name = File.basename(file).split('.').first.gsub(/^_/, '') |
|
25 |
h[name] = name |
|
26 |
h |
|
27 |
end |
|
28 |
end |
|
29 |
end |
|
30 |
end |
|
31 |
end |
|
32 |
end |
|
0 | 33 |
Also available in: Unified diff
Allow My Page blocks to be added to from a plugin (#2840).
Partials must be placed under the app/views/my/blocks directory of the plugin.
An example can be found in the sample plugin.