##// END OF EJS Templates
Adds an autoscroll div around time entry list and report (#8809)....
Jean-Philippe Lang -
r7862:cce80c690c0d
parent child
Show More
@@ -1,70 +1,72
1 1 <div class="contextual">
2 2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'new', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time-add' %>
3 3 </div>
4 4
5 5 <%= render_timelog_breadcrumb %>
6 6
7 7 <h2><%= l(:label_spent_time) %></h2>
8 8
9 9 <% form_tag({:controller => 'time_entry_reports', :action => 'report', :project_id => @project, :issue_id => @issue}, :method => :get, :id => 'query_form') do %>
10 10 <% @criterias.each do |criteria| %>
11 11 <%= hidden_field_tag 'criterias[]', criteria, :id => nil %>
12 12 <% end %>
13 13 <%= render :partial => 'timelog/date_range' %>
14 14
15 15 <p><label for='columns'><%= l(:label_details) %></label>: <%= select_tag 'columns', options_for_select([[l(:label_year), 'year'],
16 16 [l(:label_month), 'month'],
17 17 [l(:label_week), 'week'],
18 18 [l(:label_day_plural).titleize, 'day']], @columns),
19 19 :onchange => "this.form.onsubmit();" %>
20 20
21 21 <label for='criterias'><%= l(:button_add) %></label>: <%= select_tag('criterias[]', options_for_select([[]] + (@available_criterias.keys - @criterias).collect{|k| [l_or_humanize(@available_criterias[k][:label]), k]}),
22 22 :onchange => "this.form.submit();",
23 23 :style => 'width: 200px',
24 24 :id => nil,
25 25 :disabled => (@criterias.length >= 3), :id => "criterias") %>
26 26 <%= link_to l(:button_clear), {:project_id => @project, :issue_id => @issue, :period_type => params[:period_type], :period => params[:period], :from => @from, :to => @to, :columns => @columns}, :class => 'icon icon-reload' %></p>
27 27 <% end %>
28 28
29 29 <% unless @criterias.empty? %>
30 30 <div class="total-hours">
31 31 <p><%= l(:label_total) %>: <%= html_hours(l_hours(@total_hours)) %></p>
32 32 </div>
33 33
34 34 <% unless @hours.empty? %>
35 <div class="autoscroll">
35 36 <table class="list" id="time-report">
36 37 <thead>
37 38 <tr>
38 39 <% @criterias.each do |criteria| %>
39 40 <th><%= l_or_humanize(@available_criterias[criteria][:label]) %></th>
40 41 <% end %>
41 42 <% columns_width = (40 / (@periods.length+1)).to_i %>
42 43 <% @periods.each do |period| %>
43 44 <th class="period" width="<%= columns_width %>%"><%= period %></th>
44 45 <% end %>
45 46 <th class="total" width="<%= columns_width %>%"><%= l(:label_total) %></th>
46 47 </tr>
47 48 </thead>
48 49 <tbody>
49 50 <%= render :partial => 'report_criteria', :locals => {:criterias => @criterias, :hours => @hours, :level => 0} %>
50 51 <tr class="total">
51 52 <td><%= l(:label_total) %></td>
52 53 <%= '<td></td>' * (@criterias.size - 1) %>
53 54 <% total = 0 -%>
54 55 <% @periods.each do |period| -%>
55 56 <% sum = sum_hours(select_hours(@hours, @columns, period.to_s)); total += sum -%>
56 57 <td class="hours"><%= html_hours("%.2f" % sum) if sum > 0 %></td>
57 58 <% end -%>
58 59 <td class="hours"><%= html_hours("%.2f" % total) if total > 0 %></td>
59 60 </tr>
60 61 </tbody>
61 62 </table>
63 </div>
62 64
63 65 <% other_formats_links do |f| %>
64 66 <%= f.link_to 'CSV', :url => params %>
65 67 <% end %>
66 68 <% end %>
67 69 <% end %>
68 70
69 71 <% html_title l(:label_spent_time), l(:label_report) %>
70 72
@@ -1,53 +1,55
1 1 <% form_tag({}) do -%>
2 2 <%= hidden_field_tag 'back_url', url_for(params) %>
3 <div class="autoscroll">
3 4 <table class="list time-entries">
4 5 <thead>
5 6 <tr>
6 7 <th class="checkbox hide-when-print">
7 8 <%= link_to image_tag('toggle_check.png'),
8 9 {},
9 10 :onclick => 'toggleIssuesSelection(Element.up(this, "form")); return false;',
10 11 :title => "#{l(:button_check_all)}/#{l(:button_uncheck_all)}" %>
11 12 </th>
12 13 <%= sort_header_tag('spent_on', :caption => l(:label_date), :default_order => 'desc') %>
13 14 <%= sort_header_tag('user', :caption => l(:label_member)) %>
14 15 <%= sort_header_tag('activity', :caption => l(:label_activity)) %>
15 16 <%= sort_header_tag('project', :caption => l(:label_project)) %>
16 17 <%= sort_header_tag('issue', :caption => l(:label_issue), :default_order => 'desc') %>
17 18 <th><%= l(:field_comments) %></th>
18 19 <%= sort_header_tag('hours', :caption => l(:field_hours)) %>
19 20 <th></th>
20 21 </tr>
21 22 </thead>
22 23 <tbody>
23 24 <% entries.each do |entry| -%>
24 25 <tr class="time-entry <%= cycle("odd", "even") %> hascontextmenu">
25 26 <td class="checkbox hide-when-print"><%= check_box_tag("ids[]", entry.id, false, :id => nil) %></td>
26 27 <td class="spent_on"><%= format_date(entry.spent_on) %></td>
27 28 <td class="user"><%= link_to_user(entry.user) %></td>
28 29 <td class="activity"><%=h entry.activity %></td>
29 30 <td class="project"><%= link_to_project(entry.project) %></td>
30 31 <td class="subject">
31 32 <% if entry.issue -%>
32 33 <%= entry.issue.visible? ? link_to_issue(entry.issue, :truncate => 50) : "##{entry.issue.id}" -%>
33 34 <% end -%>
34 35 </td>
35 36 <td class="comments"><%=h entry.comments %></td>
36 37 <td class="hours"><%= html_hours("%.2f" % entry.hours) %></td>
37 38 <td align="center">
38 39 <% if entry.editable_by?(User.current) -%>
39 40 <%= link_to image_tag('edit.png'), {:controller => 'timelog', :action => 'edit', :id => entry, :project_id => nil},
40 41 :title => l(:button_edit) %>
41 42 <%= link_to image_tag('delete.png'), {:controller => 'timelog', :action => 'destroy', :id => entry, :project_id => nil},
42 43 :confirm => l(:text_are_you_sure),
43 44 :method => :delete,
44 45 :title => l(:button_delete) %>
45 46 <% end -%>
46 47 </td>
47 48 </tr>
48 49 <% end -%>
49 50 </tbody>
50 51 </table>
52 </div>
51 53 <% end -%>
52 54
53 55 <%= context_menu time_entries_context_menu_path %>
General Comments 0
You need to be logged in to leave comments. Login now