Calendar:

* added an helper and moved the rendering code to a shared partial (used by project calendar and my calendar)
* first day of week can now be set in lang files (general_first_day_of_week)

git-svn-id: http://redmine.rubyforge.org/svn/trunk@815 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Jean-Philippe Lang
2007-10-07 20:07:11 +00:00
parent cdb2781b48
commit ec51cdd0f9
23 changed files with 191 additions and 109 deletions
+36
View File
@@ -0,0 +1,36 @@
<table class="cal">
<thead>
<tr><td></td><% 7.times do |i| %><th><%= day_name( (calendar.first_wday+i)%7 ) %></th><% end %></tr>
</thead>
<tbody>
<tr>
<% day = calendar.startdt
while day <= calendar.enddt %>
<%= "<th>#{day.cweek}</th>" if day.cwday == calendar.first_wday %>
<td class="<%= day.month==calendar.month ? 'even' : 'odd' %><%= ' today' if Date.today == day %>">
<p class="day-num"><%= day.day %></p>
<% calendar.events_on(day).each do |i| %>
<% if i.is_a? Issue %>
<div class="tooltip">
<%= if day == i.start_date && day == i.due_date
image_tag('arrow_bw.png')
elsif day == i.start_date
image_tag('arrow_from.png')
elsif day == i.due_date
image_tag('arrow_to.png')
end %>
<%= h("#{i.project.name} -") unless @project && @project == i.project %>
<%= link_to_issue i %>: <%= h(truncate(i.subject, 30)) %>
<span class="tip"><%= render_issue_tooltip i %></span>
</div>
<% else %>
<%= link_to_version i, :class => "icon icon-package" %>
<% end %>
<% end %>
</td>
<%= '</tr><tr>' if day.cwday==calendar.last_wday and day!=calendar.enddt %>
<% day = day + 1
end %>
</tr>
</tbody>
</table>
+5 -44
View File
@@ -1,47 +1,8 @@
<h3><%= l(:label_calendar) %></h3>
<%
@date_from = Date.today - (Date.today.cwday-1)
@date_to = Date.today + (7-Date.today.cwday)
@issues = Issue.find :all,
:conditions => ["#{Issue.table_name}.project_id in (#{@user.projects.collect{|m| m.id}.join(',')}) AND ((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", @date_from, @date_to, @date_from, @date_to],
:include => [:project, :tracker] unless @user.projects.empty?
@issues ||= []
%>
<% calendar = Redmine::Helpers::Calendar.new(Date.today, current_language, :week)
calendar.events = Issue.find :all,
:conditions => ["#{Issue.table_name}.project_id in (#{@user.projects.collect{|m| m.id}.join(',')}) AND ((start_date>=? and start_date<=?) or (due_date>=? and due_date<=?))", calendar.startdt, calendar.enddt, calendar.startdt, calendar.enddt],
:include => [:project, :tracker, :priority, :assigned_to] unless @user.projects.empty? %>
<table class="cal">
<thead><tr>
<td></td>
<% 1.upto(7) do |d| %>
<th align="center" width="14%"><%= day_name(d) %></th>
<% end %>
</tr></thead>
<tbdoy>
<tr height="100">
<% day = @date_from
while day <= @date_to
if day.cwday == 1 %>
<th valign="middle"><%= day.cweek %></th>
<% end %>
<td valign="top" width="14%" class="<%= day.month==@month ? "even" : "odd" %>">
<p align="right"><%= day==Date.today ? "<b>#{day.day}</b>" : day.day %></p>
<% day_issues = []
@issues.each { |i| day_issues << i if i.start_date == day or i.due_date == day }
day_issues.each do |i| %>
<%= if day == i.start_date and day == i.due_date
image_tag('arrow_bw.png')
elsif day == i.start_date
image_tag('arrow_from.png')
elsif day == i.due_date
image_tag('arrow_to.png')
end %>
<small><%= link_to_issue i %>: <%=h i.subject.sub(/^(.{30}[^\s]*\s).*$/, '\1 (...)') %></small><br />
<% end %>
</td>
<%= '</tr><tr height="100">' if day.cwday >= 7 and day!=@date_to %>
<%
day = day + 1
end %>
</tr>
</tbody>
</table>
<%= render :partial => 'common/calendar', :locals => {:calendar => calendar } %>
+1 -49
View File
@@ -15,55 +15,7 @@
</td></tr>
</table>
<table class="cal">
<thead>
<tr>
<td></td>
<% 1.upto(7) do |d| %>
<th style="width:14%"><%= day_name(d) %></th>
<% end %>
</tr>
</thead>
<tbody>
<tr style="height:100px">
<% day = @date_from
while day <= @date_to
if day.cwday == 1 %>
<th><%= day.cweek %></th>
<% end %>
<td valign="top" class="<%= day.month==@month ? "even" : "odd" %> <%= Date.today == day ? 'today' : '' %>" style="width:14%;">
<p class="textright"><%= day==Date.today ? "<b>#{day.day}</b>" : day.day %></p>
<% ((@ending_events_by_days[day] || []) + (@starting_events_by_days[day] || [])).uniq.each do |i| %>
<% if i.is_a? Issue %>
<div class="tooltip">
<%= if day == i.start_date and day == i.due_date
image_tag('arrow_bw.png')
elsif day == i.start_date
image_tag('arrow_from.png')
elsif day == i.due_date
image_tag('arrow_to.png')
end %>
<small>
<%= h("#{i.project.name} -") unless @project && @project == i.project %>
<%= link_to_issue i %>:
<%= h(truncate(i.subject, 30)) %>
</small>
<span class="tip">
<%= render_issue_tooltip i %>
</span>
</div>
<% else %>
<small><%= link_to_version i, :class => "icon icon-package" %></small>
<% end %>
<% end %>
</td>
<%= '</tr><tr style="height:100px">' if day.cwday >= 7 and day!=@date_to %>
<%
day = day + 1
end %>
</tr>
</tbody>
</table>
<%= render :partial => 'common/calendar', :locals => {:calendar => @calendar} %>
<%= image_tag 'arrow_from.png' %>&nbsp;&nbsp;<%= l(:text_tip_task_begin_day) %><br />
<%= image_tag 'arrow_to.png' %>&nbsp;&nbsp;<%= l(:text_tip_task_end_day) %><br />