Browse Source

Adds helpers for rendering my page blocks.

git-svn-id: http://svn.redmine.org/redmine/trunk@15927 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/3.4.0
Jean-Philippe Lang 7 years ago
parent
commit
f9eaeaf451

+ 35
- 0
app/helpers/my_helper.rb View File

@@ -18,6 +18,41 @@
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.

module MyHelper
# Renders the blocks
def render_blocks(blocks, user, options={})
s = ''.html_safe

if blocks.present?
blocks.each do |block|
content = render_block_content(block, user)
if content.present?
if options[:edit]
close = link_to("", {:action => "remove_block", :block => block}, :method => 'post', :class => "close-icon")
content = close + content_tag('div', content, :class => 'handle')
end

s << content_tag('div', content, :class => "mypage-box", :id => "block-#{block}")
end
end
end
s
end

# Renders a single block content
def render_block_content(block, user)
unless MyController::BLOCKS.keys.include?(block)
Rails.logger.warn("Unknown block \"#{block}\" found in #{user.login} (id=#{user.id}) preferences")
return
end

begin
render(:partial => "my/blocks/#{block}", :locals => {:user => user})
rescue ActionView::MissingTemplate
Rails.logger.warn("Template missing for block \"#{block}\" found in #{user.login} (id=#{user.id}) preferences")
return nil
end
end

def calendar_items(startdt, enddt)
Issue.visible.
where(:project_id => User.current.projects.map(&:id)).

+ 0
- 10
app/views/my/_block.html.erb View File

@@ -1,10 +0,0 @@
<div id="block_<%= block_name.dasherize %>" class="mypage-box">

<div style="float:right;margin-right:16px;z-index:500;">
<%= link_to "", {:action => "remove_block", :block => block_name}, :method => 'post', :class => "close-icon" %>
</div>

<div class="handle">
<%= render :partial => "my/blocks/#{block_name}", :locals => { :user => user } %>
</div>
</div>

+ 3
- 18
app/views/my/page.html.erb View File

@@ -5,30 +5,15 @@
<h2><%=l(:label_my_page)%></h2>

<div id="list-top">
<% @blocks['top'].each do |b|
next unless MyController::BLOCKS.keys.include? b %>
<div class="mypage-box">
<%= render :partial => "my/blocks/#{b}", :locals => { :user => @user } %>
</div>
<% end if @blocks['top'] %>
<%= render_blocks(@blocks['top'], @user) %>
</div>

<div id="list-left" class="splitcontentleft">
<% @blocks['left'].each do |b|
next unless MyController::BLOCKS.keys.include? b %>
<div class="mypage-box">
<%= render :partial => "my/blocks/#{b}", :locals => { :user => @user } %>
</div>
<% end if @blocks['left'] %>
<%= render_blocks(@blocks['left'], @user) %>
</div>

<div id="list-right" class="splitcontentright">
<% @blocks['right'].each do |b|
next unless MyController::BLOCKS.keys.include? b %>
<div class="mypage-box">
<%= render :partial => "my/blocks/#{b}", :locals => { :user => @user } %>
</div>
<% end if @blocks['right'] %>
<%= render_blocks(@blocks['right'], @user) %>
</div>

<%= context_menu issues_context_menu_path %>

+ 3
- 12
app/views/my/page_layout.html.erb View File

@@ -14,24 +14,15 @@
<h2><%=l(:label_my_page)%></h2>

<div id="list-top" class="block-receiver">
<% @blocks['top'].each do |b|
next unless MyController::BLOCKS.keys.include? b %>
<%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
<% end if @blocks['top'] %>
<%= render_blocks(@blocks['top'], @user, :edit => true) %>
</div>

<div id="list-left" class="splitcontentleft block-receiver">
<% @blocks['left'].each do |b|
next unless MyController::BLOCKS.keys.include? b %>
<%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
<% end if @blocks['left'] %>
<%= render_blocks(@blocks['left'], @user, :edit => true) %>
</div>

<div id="list-right" class="splitcontentright block-receiver">
<% @blocks['right'].each do |b|
next unless MyController::BLOCKS.keys.include? b %>
<%= render :partial => 'block', :locals => {:user => @user, :block_name => b} %>
<% end if @blocks['right'] %>
<%= render_blocks(@blocks['right'], @user, :edit => true) %>
</div>

<%= javascript_tag "initMyPageSortable('top', '#{ escape_javascript url_for(:action => "order_blocks", :group => "top") }');" %>

+ 4
- 0
public/stylesheets/application.css View File

@@ -1077,6 +1077,10 @@ div.wiki img {vertical-align:middle; max-width:100%;}
color:#505050;
line-height:1.5em;
}
.mypage-box .close-icon {
float:right;
z-index:500;
}

.handle {cursor: move;}


Loading…
Cancel
Save