Commit af71aac1 authored by jplang's avatar jplang

Use helper methods for rendering blocks.

git-svn-id: https://svn.redmine.org/redmine/trunk@16414 e93f8b46-1217-0410-a6f0-8f06a7374b81
parent fc9dc187
......@@ -65,6 +65,7 @@ module MyHelper
end
end
# Returns the select tag used to add a block to My page
def block_select_tag(user)
blocks_in_use = user.pref.my_page_layout.values.flatten
options = content_tag('option')
......@@ -74,21 +75,22 @@ module MyHelper
select_tag('block', options, :id => "block-select", :onchange => "$('#block-form').submit();")
end
def calendar_items(startdt, enddt)
Issue.visible.
def render_calendar_block(block, settings)
calendar = Redmine::Helpers::Calendar.new(User.current.today, current_language, :week)
calendar.events = Issue.visible.
where(:project_id => User.current.projects.map(&:id)).
where("(start_date>=? and start_date<=?) or (due_date>=? and due_date<=?)", startdt, enddt, startdt, enddt).
where("(start_date>=? and start_date<=?) or (due_date>=? and due_date<=?)", calendar.startdt, calendar.enddt, calendar.startdt, calendar.enddt).
includes(:project, :tracker, :priority, :assigned_to).
references(:project, :tracker, :priority, :assigned_to).
to_a
end
def documents_items
Document.visible.order("#{Document.table_name}.created_on DESC").limit(10).to_a
render :partial => 'my/blocks/calendar', :locals => {:calendar => calendar, :block => block}
end
def issues_items(block, settings)
send "#{block}_items", settings
def render_documents_block(block, settings)
documents = Document.visible.order("#{Document.table_name}.created_on DESC").limit(10).to_a
render :partial => 'my/blocks/documents', :locals => {:block => block, :documents => documents}
end
def render_issuesassignedtome_block(block, settings)
......@@ -134,17 +136,19 @@ module MyHelper
end
end
def news_items
News.visible.
def render_news_block(block, settings)
news = News.visible.
where(:project_id => User.current.projects.map(&:id)).
limit(10).
includes(:project, :author).
references(:project, :author).
order("#{News.table_name}.created_on DESC").
to_a
render :partial => 'my/blocks/news', :locals => {:block => block, :news => news}
end
def timelog_items(settings={})
def render_timelog_block(block, settings)
days = settings[:days].to_i
days = 7 if days < 1 || days > 365
......@@ -155,7 +159,8 @@ module MyHelper
includes(:issue => [:tracker, :status]).
order("#{TimeEntry.table_name}.spent_on DESC, #{Project.table_name}.name ASC, #{Tracker.table_name}.position ASC, #{Issue.table_name}.id ASC").
to_a
entries_by_day = entries.group_by(&:spent_on)
return entries, days
render :partial => 'my/blocks/timelog', :locals => {:block => block, :entries => entries, :entries_by_day => entries_by_day, :days => days}
end
end
<h3><%= l(:label_calendar) %></h3>
<% calendar = Redmine::Helpers::Calendar.new(User.current.today, current_language, :week)
calendar.events = calendar_items(calendar.startdt, calendar.enddt) %>
<%= render :partial => 'common/calendar', :locals => {:calendar => calendar } %>
<h3><%=l(:label_document_plural)%></h3>
<%= render :partial => 'documents/document', :collection => documents_items %>
<%= render :partial => 'documents/document', :collection => documents %>
<h3><%=l(:label_news_latest)%></h3>
<%= render :partial => 'news/news', :collection => news_items %>
<%= render :partial => 'news/news', :collection => news %>
<%
entries, days = timelog_items(settings)
entries_by_day = entries.group_by(&:spent_on)
%>
<div class="contextual">
<%= link_to_function l(:label_options), "$('#timelog-settings').toggle();", :class => 'icon-only icon-settings', :title => l(:label_options) %>
</div>
......
......@@ -24,10 +24,10 @@ module Redmine
'issuesreportedbyme' => {:label => :label_reported_issues},
'issueswatched' => {:label => :label_watched_issues},
'issuequery' => {:label => :label_issue_plural, :max_occurs => 3},
'news' => {:label => :label_news_latest, :partial => 'my/blocks/news'},
'calendar' => {:label => :label_calendar, :partial => 'my/blocks/calendar'},
'documents' => {:label => :label_document_plural, :partial => 'my/blocks/documents'},
'timelog' => {:label => :label_spent_time, :partial => 'my/blocks/timelog'}
'news' => {:label => :label_news_latest},
'calendar' => {:label => :label_calendar},
'documents' => {:label => :label_document_plural},
'timelog' => {:label => :label_spent_time}
}
# Returns the available blocks
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment