OpenProject is the leading open source project management software.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
openproject/app/views/projects/calendar.rhtml

90 lines
4.0 KiB

<h2><%= l(:label_calendar) %></h2>
<% form_tag do %>
<table width="100%">
<tr>
<td align="left" style="width:15%">
<%= link_to_remote ('&#171; ' + (@month==1 ? "#{month_name(12)} #{@year-1}" : "#{month_name(@month-1)}")),
{:update => "content", :url => { :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1), :tracker_ids => @selected_tracker_ids, :with_subprojects => params[:with_subprojects] }},
{:href => url_for(:action => 'calendar', :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1), :tracker_ids => @selected_tracker_ids, :with_subprojects => params[:with_subprojects])}
%>
</td>
<td align="center" style="width:55%">
<%= select_month(@month, :prefix => "month", :discard_type => true) %>
<%= select_year(@year, :prefix => "year", :discard_type => true) %>
<%= submit_tag l(:button_submit), :class => "button-small" %>
</td>
<td align="left" style="width:15%">
<a href="#" onclick="Element.toggle('trackerselect')"><%= l(:label_options) %></a>
<div id="trackerselect" class="rightbox overlay" style="width:140px; display:none;">
<p><strong><%=l(:label_tracker_plural)%></strong></p>
<% @trackers.each do |tracker| %>
<%= check_box_tag "tracker_ids[]", tracker.id, (@selected_tracker_ids.include? tracker.id.to_s) %>
<%= tracker.name %><br />
<% end %>
<% if @project.children.any? %>
<p><strong><%=l(:label_subproject_plural)%></strong></p>
<%= check_box_tag "with_subprojects", 1, params[:with_subprojects] %> <%= l(:general_text_Yes) %>
<% end %>
<p><center><%= submit_tag l(:button_apply), :class => 'button-small' %></center></p>
</div>
</td>
<td align="right" style="width:15%">
<%= link_to_remote ((@month==12 ? "#{month_name(1)} #{@year+1}" : "#{month_name(@month+1)}") + ' &#187;'),
{:update => "content", :url => { :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1), :tracker_ids => @selected_tracker_ids, :with_subprojects => params[:with_subprojects] }},
{:href => url_for(:action => 'calendar', :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1), :tracker_ids => @selected_tracker_ids, :with_subprojects => params[:with_subprojects])}
%>&nbsp;
</td>
</tr>
</table>
<% end %>
<table class="list with-cells">
<thead>
<tr>
<th></th>
<% 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" %>" style="width:14%; <%= Date.today == day ? 'background:#FDFED0;' : '' %>">
<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><%= link_to_issue i %>: <%=h i.subject.sub(/^(.{30}[^\s]*\s).*$/, '\1 (...)') %></small>
<span class="tip">
<%= render :partial => "issues/tooltip", :locals => { :issue => i }%>
</span>
</div>
<% else %>
<%= image_tag('milestone.png') %> <small><%= "#{l(:label_version)}: #{i.name}" %></small>
<% end %>
<% end %>
</td>
<%= '</tr><tr style="height:100px">' if day.cwday >= 7 and day!=@date_to %>
<%
day = day + 1
end %>
</tr>
</tbody>
</table>
<%= 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 />
<%= image_tag 'arrow_bw.png' %>&nbsp;&nbsp;<%= l(:text_tip_task_begin_end_day) %><br />