1
0
mirror of https://github.com/meineerde/redmine.git synced 2026-01-03 06:09:41 +00:00

Use helper methods for rendering blocks.

git-svn-id: http://svn.redmine.org/redmine/trunk@16414 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang 2017-03-16 18:26:43 +00:00
parent 4cfd513373
commit 23131d14f5
6 changed files with 23 additions and 26 deletions

View File

@ -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
render :partial => 'my/blocks/calendar', :locals => {:calendar => calendar, :block => block}
end
def documents_items
Document.visible.order("#{Document.table_name}.created_on DESC").limit(10).to_a
end
def render_documents_block(block, settings)
documents = Document.visible.order("#{Document.table_name}.created_on DESC").limit(10).to_a
def issues_items(block, settings)
send "#{block}_items", settings
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

View File

@ -1,6 +1,3 @@
<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 } %>

View File

@ -1,3 +1,3 @@
<h3><%=l(:label_document_plural)%></h3>
<%= render :partial => 'documents/document', :collection => documents_items %>
<%= render :partial => 'documents/document', :collection => documents %>

View File

@ -1,3 +1,3 @@
<h3><%=l(:label_news_latest)%></h3>
<%= render :partial => 'news/news', :collection => news_items %>
<%= render :partial => 'news/news', :collection => news %>

View File

@ -1,8 +1,3 @@
<%
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>

View File

@ -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