##// END OF EJS Templates
Changes time related icons....
Jean-Philippe Lang -
r2336:da941734d769
parent child
Show More
1 NO CONTENT: new file 100644, binary diff hidden
NO CONTENT: new file 100644, binary diff hidden
@@ -1,90 +1,90
1 <ul>
1 <ul>
2 <% if !@issue.nil? -%>
2 <% if !@issue.nil? -%>
3 <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue},
3 <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'edit', :id => @issue},
4 :class => 'icon-edit', :disabled => !@can[:edit] %></li>
4 :class => 'icon-edit', :disabled => !@can[:edit] %></li>
5 <li class="folder">
5 <li class="folder">
6 <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a>
6 <a href="#" class="submenu" onclick="return false;"><%= l(:field_status) %></a>
7 <ul>
7 <ul>
8 <% @statuses.each do |s| -%>
8 <% @statuses.each do |s| -%>
9 <li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_to => @back}, :method => :post,
9 <li><%= context_menu_link s.name, {:controller => 'issues', :action => 'edit', :id => @issue, :issue => {:status_id => s}, :back_to => @back}, :method => :post,
10 :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li>
10 :selected => (s == @issue.status), :disabled => !(@can[:update] && @allowed_statuses.include?(s)) %></li>
11 <% end -%>
11 <% end -%>
12 </ul>
12 </ul>
13 </li>
13 </li>
14 <% else %>
14 <% else %>
15 <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)},
15 <li><%= context_menu_link l(:button_edit), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id)},
16 :class => 'icon-edit', :disabled => !@can[:edit] %></li>
16 :class => 'icon-edit', :disabled => !@can[:edit] %></li>
17 <% end %>
17 <% end %>
18
18
19 <li class="folder">
19 <li class="folder">
20 <a href="#" class="submenu"><%= l(:field_priority) %></a>
20 <a href="#" class="submenu"><%= l(:field_priority) %></a>
21 <ul>
21 <ul>
22 <% @priorities.each do |p| -%>
22 <% @priorities.each do |p| -%>
23 <li><%= context_menu_link p.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'priority_id' => p, :back_to => @back}, :method => :post,
23 <li><%= context_menu_link p.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'priority_id' => p, :back_to => @back}, :method => :post,
24 :selected => (@issue && p == @issue.priority), :disabled => !@can[:edit] %></li>
24 :selected => (@issue && p == @issue.priority), :disabled => !@can[:edit] %></li>
25 <% end -%>
25 <% end -%>
26 </ul>
26 </ul>
27 </li>
27 </li>
28 <% unless @project.nil? || @project.versions.empty? -%>
28 <% unless @project.nil? || @project.versions.empty? -%>
29 <li class="folder">
29 <li class="folder">
30 <a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
30 <a href="#" class="submenu"><%= l(:field_fixed_version) %></a>
31 <ul>
31 <ul>
32 <% @project.versions.sort.each do |v| -%>
32 <% @project.versions.sort.each do |v| -%>
33 <li><%= context_menu_link v.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_to => @back}, :method => :post,
33 <li><%= context_menu_link v.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => v, :back_to => @back}, :method => :post,
34 :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
34 :selected => (@issue && v == @issue.fixed_version), :disabled => !@can[:update] %></li>
35 <% end -%>
35 <% end -%>
36 <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_to => @back}, :method => :post,
36 <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'fixed_version_id' => 'none', :back_to => @back}, :method => :post,
37 :selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li>
37 :selected => (@issue && @issue.fixed_version.nil?), :disabled => !@can[:update] %></li>
38 </ul>
38 </ul>
39 </li>
39 </li>
40 <% end %>
40 <% end %>
41 <% unless @assignables.nil? || @assignables.empty? -%>
41 <% unless @assignables.nil? || @assignables.empty? -%>
42 <li class="folder">
42 <li class="folder">
43 <a href="#" class="submenu"><%= l(:field_assigned_to) %></a>
43 <a href="#" class="submenu"><%= l(:field_assigned_to) %></a>
44 <ul>
44 <ul>
45 <% @assignables.each do |u| -%>
45 <% @assignables.each do |u| -%>
46 <li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => u, :back_to => @back}, :method => :post,
46 <li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => u, :back_to => @back}, :method => :post,
47 :selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li>
47 :selected => (@issue && u == @issue.assigned_to), :disabled => !@can[:update] %></li>
48 <% end -%>
48 <% end -%>
49 <li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_to => @back}, :method => :post,
49 <li><%= context_menu_link l(:label_nobody), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'assigned_to_id' => 'none', :back_to => @back}, :method => :post,
50 :selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li>
50 :selected => (@issue && @issue.assigned_to.nil?), :disabled => !@can[:update] %></li>
51 </ul>
51 </ul>
52 </li>
52 </li>
53 <% end %>
53 <% end %>
54 <% unless @project.nil? || @project.issue_categories.empty? -%>
54 <% unless @project.nil? || @project.issue_categories.empty? -%>
55 <li class="folder">
55 <li class="folder">
56 <a href="#" class="submenu"><%= l(:field_category) %></a>
56 <a href="#" class="submenu"><%= l(:field_category) %></a>
57 <ul>
57 <ul>
58 <% @project.issue_categories.each do |u| -%>
58 <% @project.issue_categories.each do |u| -%>
59 <li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => u, :back_to => @back}, :method => :post,
59 <li><%= context_menu_link u.name, {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => u, :back_to => @back}, :method => :post,
60 :selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li>
60 :selected => (@issue && u == @issue.category), :disabled => !@can[:update] %></li>
61 <% end -%>
61 <% end -%>
62 <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_to => @back}, :method => :post,
62 <li><%= context_menu_link l(:label_none), {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'category_id' => 'none', :back_to => @back}, :method => :post,
63 :selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li>
63 :selected => (@issue && @issue.category.nil?), :disabled => !@can[:update] %></li>
64 </ul>
64 </ul>
65 </li>
65 </li>
66 <% end -%>
66 <% end -%>
67 <li class="folder">
67 <li class="folder">
68 <a href="#" class="submenu"><%= l(:field_done_ratio) %></a>
68 <a href="#" class="submenu"><%= l(:field_done_ratio) %></a>
69 <ul>
69 <ul>
70 <% (0..10).map{|x|x*10}.each do |p| -%>
70 <% (0..10).map{|x|x*10}.each do |p| -%>
71 <li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_to => @back}, :method => :post,
71 <li><%= context_menu_link "#{p}%", {:controller => 'issues', :action => 'bulk_edit', :ids => @issues.collect(&:id), 'done_ratio' => p, :back_to => @back}, :method => :post,
72 :selected => (@issue && p == @issue.done_ratio), :disabled => !@can[:edit] %></li>
72 :selected => (@issue && p == @issue.done_ratio), :disabled => !@can[:edit] %></li>
73 <% end -%>
73 <% end -%>
74 </ul>
74 </ul>
75 </li>
75 </li>
76
76
77 <% if !@issue.nil? %>
77 <% if !@issue.nil? %>
78 <li><%= context_menu_link l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue},
78 <li><%= context_menu_link l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue},
79 :class => 'icon-copy', :disabled => !@can[:copy] %></li>
79 :class => 'icon-copy', :disabled => !@can[:copy] %></li>
80 <% if @can[:log_time] -%>
80 <% if @can[:log_time] -%>
81 <li><%= context_menu_link l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue},
81 <li><%= context_menu_link l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue},
82 :class => 'icon-time' %></li>
82 :class => 'icon-time-add' %></li>
83 <% end %>
83 <% end %>
84 <% end %>
84 <% end %>
85
85
86 <li><%= context_menu_link l(:button_move), {:controller => 'issues', :action => 'move', :ids => @issues.collect(&:id)},
86 <li><%= context_menu_link l(:button_move), {:controller => 'issues', :action => 'move', :ids => @issues.collect(&:id)},
87 :class => 'icon-move', :disabled => !@can[:move] %></li>
87 :class => 'icon-move', :disabled => !@can[:move] %></li>
88 <li><%= context_menu_link l(:button_delete), {:controller => 'issues', :action => 'destroy', :ids => @issues.collect(&:id)},
88 <li><%= context_menu_link l(:button_delete), {:controller => 'issues', :action => 'destroy', :ids => @issues.collect(&:id)},
89 :method => :post, :confirm => l(:text_issues_destroy_confirmation), :class => 'icon-del', :disabled => !@can[:delete] %></li>
89 :method => :post, :confirm => l(:text_issues_destroy_confirmation), :class => 'icon-del', :disabled => !@can[:delete] %></li>
90 </ul>
90 </ul>
@@ -1,125 +1,125
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to_if_authorized(l(:button_update), {:controller => 'issues', :action => 'edit', :id => @issue }, :onclick => 'showAndScrollTo("update", "notes"); return false;', :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
2 <%= link_to_if_authorized(l(:button_update), {:controller => 'issues', :action => 'edit', :id => @issue }, :onclick => 'showAndScrollTo("update", "notes"); return false;', :class => 'icon icon-edit', :accesskey => accesskey(:edit)) %>
3 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue}, :class => 'icon icon-time' %>
3 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :issue_id => @issue}, :class => 'icon icon-time-add' %>
4 <%= watcher_tag(@issue, User.current) %>
4 <%= watcher_tag(@issue, User.current) %>
5 <%= link_to_if_authorized l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue }, :class => 'icon icon-copy' %>
5 <%= link_to_if_authorized l(:button_copy), {:controller => 'issues', :action => 'new', :project_id => @project, :copy_from => @issue }, :class => 'icon icon-copy' %>
6 <%= link_to_if_authorized l(:button_move), {:controller => 'issues', :action => 'move', :id => @issue }, :class => 'icon icon-move' %>
6 <%= link_to_if_authorized l(:button_move), {:controller => 'issues', :action => 'move', :id => @issue }, :class => 'icon icon-move' %>
7 <%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %>
7 <%= link_to_if_authorized l(:button_delete), {:controller => 'issues', :action => 'destroy', :id => @issue}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %>
8 </div>
8 </div>
9
9
10 <h2><%= @issue.tracker.name %> #<%= @issue.id %></h2>
10 <h2><%= @issue.tracker.name %> #<%= @issue.id %></h2>
11
11
12 <div class="<%= css_issue_classes(@issue) %>">
12 <div class="<%= css_issue_classes(@issue) %>">
13 <%= avatar(@issue.author, :size => "64") %>
13 <%= avatar(@issue.author, :size => "64") %>
14 <h3><%=h @issue.subject %></h3>
14 <h3><%=h @issue.subject %></h3>
15 <p class="author">
15 <p class="author">
16 <%= authoring @issue.created_on, @issue.author %>.
16 <%= authoring @issue.created_on, @issue.author %>.
17 <%= l(:label_updated_time, distance_of_time_in_words(Time.now, @issue.updated_on)) + '.' if @issue.created_on != @issue.updated_on %>
17 <%= l(:label_updated_time, distance_of_time_in_words(Time.now, @issue.updated_on)) + '.' if @issue.created_on != @issue.updated_on %>
18 </p>
18 </p>
19
19
20 <table width="100%">
20 <table width="100%">
21 <tr>
21 <tr>
22 <td style="width:15%" class="status"><b><%=l(:field_status)%>:</b></td><td style="width:35%" class="status status-<%= @issue.status.name %>"><%= @issue.status.name %></td>
22 <td style="width:15%" class="status"><b><%=l(:field_status)%>:</b></td><td style="width:35%" class="status status-<%= @issue.status.name %>"><%= @issue.status.name %></td>
23 <td style="width:15%" class="start-date"><b><%=l(:field_start_date)%>:</b></td><td style="width:35%"><%= format_date(@issue.start_date) %></td>
23 <td style="width:15%" class="start-date"><b><%=l(:field_start_date)%>:</b></td><td style="width:35%"><%= format_date(@issue.start_date) %></td>
24 </tr>
24 </tr>
25 <tr>
25 <tr>
26 <td class="priority"><b><%=l(:field_priority)%>:</b></td><td class="priority priority-<%= @issue.priority.name %>"><%= @issue.priority.name %></td>
26 <td class="priority"><b><%=l(:field_priority)%>:</b></td><td class="priority priority-<%= @issue.priority.name %>"><%= @issue.priority.name %></td>
27 <td class="due-date"><b><%=l(:field_due_date)%>:</b></td><td class="due-date"><%= format_date(@issue.due_date) %></td>
27 <td class="due-date"><b><%=l(:field_due_date)%>:</b></td><td class="due-date"><%= format_date(@issue.due_date) %></td>
28 </tr>
28 </tr>
29 <tr>
29 <tr>
30 <td class="assigned-to"><b><%=l(:field_assigned_to)%>:</b></td><td><%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td>
30 <td class="assigned-to"><b><%=l(:field_assigned_to)%>:</b></td><td><%= avatar(@issue.assigned_to, :size => "14") %><%= @issue.assigned_to ? link_to_user(@issue.assigned_to) : "-" %></td>
31 <td class="progress"><b><%=l(:field_done_ratio)%>:</b></td><td class="progress"><%= progress_bar @issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%" %></td>
31 <td class="progress"><b><%=l(:field_done_ratio)%>:</b></td><td class="progress"><%= progress_bar @issue.done_ratio, :width => '80px', :legend => "#{@issue.done_ratio}%" %></td>
32 </tr>
32 </tr>
33 <tr>
33 <tr>
34 <td class="category"><b><%=l(:field_category)%>:</b></td><td><%=h @issue.category ? @issue.category.name : "-" %></td>
34 <td class="category"><b><%=l(:field_category)%>:</b></td><td><%=h @issue.category ? @issue.category.name : "-" %></td>
35 <% if User.current.allowed_to?(:view_time_entries, @project) %>
35 <% if User.current.allowed_to?(:view_time_entries, @project) %>
36 <td class="spent-time"><b><%=l(:label_spent_time)%>:</b></td>
36 <td class="spent-time"><b><%=l(:label_spent_time)%>:</b></td>
37 <td class="spent-hours"><%= @issue.spent_hours > 0 ? (link_to lwr(:label_f_hour, @issue.spent_hours), {:controller => 'timelog', :action => 'details', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time') : "-" %></td>
37 <td class="spent-hours"><%= @issue.spent_hours > 0 ? (link_to lwr(:label_f_hour, @issue.spent_hours), {:controller => 'timelog', :action => 'details', :project_id => @project, :issue_id => @issue}) : "-" %></td>
38 <% end %>
38 <% end %>
39 </tr>
39 </tr>
40 <tr>
40 <tr>
41 <td class="fixed-version"><b><%=l(:field_fixed_version)%>:</b></td><td><%= @issue.fixed_version ? link_to_version(@issue.fixed_version) : "-" %></td>
41 <td class="fixed-version"><b><%=l(:field_fixed_version)%>:</b></td><td><%= @issue.fixed_version ? link_to_version(@issue.fixed_version) : "-" %></td>
42 <% if @issue.estimated_hours %>
42 <% if @issue.estimated_hours %>
43 <td class="estimated-hours"><b><%=l(:field_estimated_hours)%>:</b></td><td><%= lwr(:label_f_hour, @issue.estimated_hours) %></td>
43 <td class="estimated-hours"><b><%=l(:field_estimated_hours)%>:</b></td><td><%= lwr(:label_f_hour, @issue.estimated_hours) %></td>
44 <% end %>
44 <% end %>
45 </tr>
45 </tr>
46 <tr>
46 <tr>
47 <% n = 0 -%>
47 <% n = 0 -%>
48 <% @issue.custom_values.each do |value| -%>
48 <% @issue.custom_values.each do |value| -%>
49 <td valign="top"><b><%=h value.custom_field.name %>:</b></td><td valign="top"><%= simple_format(h(show_value(value))) %></td>
49 <td valign="top"><b><%=h value.custom_field.name %>:</b></td><td valign="top"><%= simple_format(h(show_value(value))) %></td>
50 <% n = n + 1
50 <% n = n + 1
51 if (n > 1)
51 if (n > 1)
52 n = 0 %>
52 n = 0 %>
53 </tr><tr>
53 </tr><tr>
54 <%end
54 <%end
55 end %>
55 end %>
56 </tr>
56 </tr>
57 <%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
57 <%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
58 </table>
58 </table>
59 <hr />
59 <hr />
60
60
61 <div class="contextual">
61 <div class="contextual">
62 <%= link_to_remote_if_authorized(l(:button_quote), { :url => {:action => 'reply', :id => @issue} }, :class => 'icon icon-comment') unless @issue.description.blank? %>
62 <%= link_to_remote_if_authorized(l(:button_quote), { :url => {:action => 'reply', :id => @issue} }, :class => 'icon icon-comment') unless @issue.description.blank? %>
63 </div>
63 </div>
64
64
65 <p><strong><%=l(:field_description)%></strong></p>
65 <p><strong><%=l(:field_description)%></strong></p>
66 <div class="wiki">
66 <div class="wiki">
67 <%= textilizable @issue, :description, :attachments => @issue.attachments %>
67 <%= textilizable @issue, :description, :attachments => @issue.attachments %>
68 </div>
68 </div>
69
69
70 <%= link_to_attachments @issue %>
70 <%= link_to_attachments @issue %>
71
71
72 <% if authorize_for('issue_relations', 'new') || @issue.relations.any? %>
72 <% if authorize_for('issue_relations', 'new') || @issue.relations.any? %>
73 <hr />
73 <hr />
74 <div id="relations">
74 <div id="relations">
75 <%= render :partial => 'relations' %>
75 <%= render :partial => 'relations' %>
76 </div>
76 </div>
77 <% end %>
77 <% end %>
78
78
79 <% if User.current.allowed_to?(:add_issue_watchers, @project) ||
79 <% if User.current.allowed_to?(:add_issue_watchers, @project) ||
80 (@issue.watchers.any? && User.current.allowed_to?(:view_issue_watchers, @project)) %>
80 (@issue.watchers.any? && User.current.allowed_to?(:view_issue_watchers, @project)) %>
81 <hr />
81 <hr />
82 <div id="watchers">
82 <div id="watchers">
83 <%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %>
83 <%= render :partial => 'watchers/watchers', :locals => {:watched => @issue} %>
84 </div>
84 </div>
85 <% end %>
85 <% end %>
86
86
87 </div>
87 </div>
88
88
89 <% if @issue.changesets.any? && User.current.allowed_to?(:view_changesets, @project) %>
89 <% if @issue.changesets.any? && User.current.allowed_to?(:view_changesets, @project) %>
90 <div id="issue-changesets">
90 <div id="issue-changesets">
91 <h3><%=l(:label_associated_revisions)%></h3>
91 <h3><%=l(:label_associated_revisions)%></h3>
92 <%= render :partial => 'changesets', :locals => { :changesets => @issue.changesets} %>
92 <%= render :partial => 'changesets', :locals => { :changesets => @issue.changesets} %>
93 </div>
93 </div>
94 <% end %>
94 <% end %>
95
95
96 <% if @journals.any? %>
96 <% if @journals.any? %>
97 <div id="history">
97 <div id="history">
98 <h3><%=l(:label_history)%></h3>
98 <h3><%=l(:label_history)%></h3>
99 <%= render :partial => 'history', :locals => { :journals => @journals } %>
99 <%= render :partial => 'history', :locals => { :journals => @journals } %>
100 </div>
100 </div>
101 <% end %>
101 <% end %>
102 <div style="clear: both;"></div>
102 <div style="clear: both;"></div>
103
103
104 <% if authorize_for('issues', 'edit') %>
104 <% if authorize_for('issues', 'edit') %>
105 <div id="update" style="display:none;">
105 <div id="update" style="display:none;">
106 <h3><%= l(:button_update) %></h3>
106 <h3><%= l(:button_update) %></h3>
107 <%= render :partial => 'edit' %>
107 <%= render :partial => 'edit' %>
108 </div>
108 </div>
109 <% end %>
109 <% end %>
110
110
111 <% other_formats_links do |f| %>
111 <% other_formats_links do |f| %>
112 <%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
112 <%= f.link_to 'Atom', :url => {:key => User.current.rss_key} %>
113 <%= f.link_to 'PDF' %>
113 <%= f.link_to 'PDF' %>
114 <% end %>
114 <% end %>
115
115
116 <% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
116 <% html_title "#{@issue.tracker.name} ##{@issue.id}: #{@issue.subject}" %>
117
117
118 <% content_for :sidebar do %>
118 <% content_for :sidebar do %>
119 <%= render :partial => 'issues/sidebar' %>
119 <%= render :partial => 'issues/sidebar' %>
120 <% end %>
120 <% end %>
121
121
122 <% content_for :header_tags do %>
122 <% content_for :header_tags do %>
123 <%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
123 <%= auto_discovery_link_tag(:atom, {:format => 'atom', :key => User.current.rss_key}, :title => "#{@issue.project} - #{@issue.tracker} ##{@issue.id}: #{@issue.subject}") %>
124 <%= stylesheet_link_tag 'scm' %>
124 <%= stylesheet_link_tag 'scm' %>
125 <% end %>
125 <% end %>
@@ -1,35 +1,35
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time' %>
2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time-add' %>
3 </div>
3 </div>
4
4
5 <%= render_timelog_breadcrumb %>
5 <%= render_timelog_breadcrumb %>
6
6
7 <h2><%= l(:label_spent_time) %></h2>
7 <h2><%= l(:label_spent_time) %></h2>
8
8
9 <% form_remote_tag( :url => {}, :html => {:method => :get}, :method => :get, :update => 'content' ) do %>
9 <% form_remote_tag( :url => {}, :html => {:method => :get}, :method => :get, :update => 'content' ) do %>
10 <%# TOOD: remove the project_id and issue_id hidden fields, that information is
10 <%# TOOD: remove the project_id and issue_id hidden fields, that information is
11 already in the URI %>
11 already in the URI %>
12 <%= hidden_field_tag 'project_id', params[:project_id] %>
12 <%= hidden_field_tag 'project_id', params[:project_id] %>
13 <%= hidden_field_tag 'issue_id', params[:issue_id] if @issue %>
13 <%= hidden_field_tag 'issue_id', params[:issue_id] if @issue %>
14 <%= render :partial => 'date_range' %>
14 <%= render :partial => 'date_range' %>
15 <% end %>
15 <% end %>
16
16
17 <div class="total-hours">
17 <div class="total-hours">
18 <p><%= l(:label_total) %>: <%= html_hours(lwr(:label_f_hour, @total_hours)) %></p>
18 <p><%= l(:label_total) %>: <%= html_hours(lwr(:label_f_hour, @total_hours)) %></p>
19 </div>
19 </div>
20
20
21 <% unless @entries.empty? %>
21 <% unless @entries.empty? %>
22 <%= render :partial => 'list', :locals => { :entries => @entries }%>
22 <%= render :partial => 'list', :locals => { :entries => @entries }%>
23 <p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
23 <p class="pagination"><%= pagination_links_full @entry_pages, @entry_count %></p>
24
24
25 <% other_formats_links do |f| %>
25 <% other_formats_links do |f| %>
26 <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
26 <%= f.link_to 'Atom', :url => params.merge({:issue_id => @issue, :key => User.current.rss_key}) %>
27 <%= f.link_to 'CSV', :url => params %>
27 <%= f.link_to 'CSV', :url => params %>
28 <% end %>
28 <% end %>
29 <% end %>
29 <% end %>
30
30
31 <% html_title l(:label_spent_time), l(:label_details) %>
31 <% html_title l(:label_spent_time), l(:label_details) %>
32
32
33 <% content_for :header_tags do %>
33 <% content_for :header_tags do %>
34 <%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.rss_key}, :title => l(:label_spent_time)) %>
34 <%= auto_discovery_link_tag(:atom, {:issue_id => @issue, :format => 'atom', :key => User.current.rss_key}, :title => l(:label_spent_time)) %>
35 <% end %>
35 <% end %>
@@ -1,75 +1,75
1 <div class="contextual">
1 <div class="contextual">
2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time' %>
2 <%= link_to_if_authorized l(:button_log_time), {:controller => 'timelog', :action => 'edit', :project_id => @project, :issue_id => @issue}, :class => 'icon icon-time-add' %>
3 </div>
3 </div>
4
4
5 <%= render_timelog_breadcrumb %>
5 <%= render_timelog_breadcrumb %>
6
6
7 <h2><%= l(:label_spent_time) %></h2>
7 <h2><%= l(:label_spent_time) %></h2>
8
8
9 <% form_remote_tag(:url => {}, :html => {:method => :get}, :method => :get, :update => 'content') do %>
9 <% form_remote_tag(:url => {}, :html => {:method => :get}, :method => :get, :update => 'content') do %>
10 <% @criterias.each do |criteria| %>
10 <% @criterias.each do |criteria| %>
11 <%= hidden_field_tag 'criterias[]', criteria, :id => nil %>
11 <%= hidden_field_tag 'criterias[]', criteria, :id => nil %>
12 <% end %>
12 <% end %>
13 <%# TODO: get rid of the project_id field, that should already be in the URL %>
13 <%# TODO: get rid of the project_id field, that should already be in the URL %>
14 <%= hidden_field_tag 'project_id', params[:project_id] %>
14 <%= hidden_field_tag 'project_id', params[:project_id] %>
15 <%= render :partial => 'date_range' %>
15 <%= render :partial => 'date_range' %>
16
16
17 <p><%= l(:label_details) %>: <%= select_tag 'columns', options_for_select([[l(:label_year), 'year'],
17 <p><%= l(:label_details) %>: <%= select_tag 'columns', options_for_select([[l(:label_year), 'year'],
18 [l(:label_month), 'month'],
18 [l(:label_month), 'month'],
19 [l(:label_week), 'week'],
19 [l(:label_week), 'week'],
20 [l(:label_day_plural).titleize, 'day']], @columns),
20 [l(:label_day_plural).titleize, 'day']], @columns),
21 :onchange => "this.form.onsubmit();" %>
21 :onchange => "this.form.onsubmit();" %>
22
22
23 <%= l(:button_add) %>: <%= select_tag('criterias[]', options_for_select([[]] + (@available_criterias.keys - @criterias).collect{|k| [l(@available_criterias[k][:label]), k]}),
23 <%= l(:button_add) %>: <%= select_tag('criterias[]', options_for_select([[]] + (@available_criterias.keys - @criterias).collect{|k| [l(@available_criterias[k][:label]), k]}),
24 :onchange => "this.form.onsubmit();",
24 :onchange => "this.form.onsubmit();",
25 :style => 'width: 200px',
25 :style => 'width: 200px',
26 :id => nil,
26 :id => nil,
27 :disabled => (@criterias.length >= 3)) %>
27 :disabled => (@criterias.length >= 3)) %>
28 <%= link_to_remote l(:button_clear), {:url => {:project_id => @project, :period_type => params[:period_type], :period => params[:period], :from => @from, :to => @to, :columns => @columns},
28 <%= link_to_remote l(:button_clear), {:url => {:project_id => @project, :period_type => params[:period_type], :period => params[:period], :from => @from, :to => @to, :columns => @columns},
29 :method => :get,
29 :method => :get,
30 :update => 'content'
30 :update => 'content'
31 }, :class => 'icon icon-reload' %></p>
31 }, :class => 'icon icon-reload' %></p>
32 <% end %>
32 <% end %>
33
33
34 <% unless @criterias.empty? %>
34 <% unless @criterias.empty? %>
35 <div class="total-hours">
35 <div class="total-hours">
36 <p><%= l(:label_total) %>: <%= html_hours(lwr(:label_f_hour, @total_hours)) %></p>
36 <p><%= l(:label_total) %>: <%= html_hours(lwr(:label_f_hour, @total_hours)) %></p>
37 </div>
37 </div>
38
38
39 <% unless @hours.empty? %>
39 <% unless @hours.empty? %>
40 <table class="list" id="time-report">
40 <table class="list" id="time-report">
41 <thead>
41 <thead>
42 <tr>
42 <tr>
43 <% @criterias.each do |criteria| %>
43 <% @criterias.each do |criteria| %>
44 <th><%= l(@available_criterias[criteria][:label]) %></th>
44 <th><%= l(@available_criterias[criteria][:label]) %></th>
45 <% end %>
45 <% end %>
46 <% columns_width = (40 / (@periods.length+1)).to_i %>
46 <% columns_width = (40 / (@periods.length+1)).to_i %>
47 <% @periods.each do |period| %>
47 <% @periods.each do |period| %>
48 <th class="period" width="<%= columns_width %>%"><%= period %></th>
48 <th class="period" width="<%= columns_width %>%"><%= period %></th>
49 <% end %>
49 <% end %>
50 <th class="total" width="<%= columns_width %>%"><%= l(:label_total) %></th>
50 <th class="total" width="<%= columns_width %>%"><%= l(:label_total) %></th>
51 </tr>
51 </tr>
52 </thead>
52 </thead>
53 <tbody>
53 <tbody>
54 <%= render :partial => 'report_criteria', :locals => {:criterias => @criterias, :hours => @hours, :level => 0} %>
54 <%= render :partial => 'report_criteria', :locals => {:criterias => @criterias, :hours => @hours, :level => 0} %>
55 <tr class="total">
55 <tr class="total">
56 <td><%= l(:label_total) %></td>
56 <td><%= l(:label_total) %></td>
57 <%= '<td></td>' * (@criterias.size - 1) %>
57 <%= '<td></td>' * (@criterias.size - 1) %>
58 <% total = 0 -%>
58 <% total = 0 -%>
59 <% @periods.each do |period| -%>
59 <% @periods.each do |period| -%>
60 <% sum = sum_hours(select_hours(@hours, @columns, period.to_s)); total += sum -%>
60 <% sum = sum_hours(select_hours(@hours, @columns, period.to_s)); total += sum -%>
61 <td class="hours"><%= html_hours("%.2f" % sum) if sum > 0 %></td>
61 <td class="hours"><%= html_hours("%.2f" % sum) if sum > 0 %></td>
62 <% end -%>
62 <% end -%>
63 <td class="hours"><%= html_hours("%.2f" % total) if total > 0 %></td>
63 <td class="hours"><%= html_hours("%.2f" % total) if total > 0 %></td>
64 </tr>
64 </tr>
65 </tbody>
65 </tbody>
66 </table>
66 </table>
67
67
68 <% other_formats_links do |f| %>
68 <% other_formats_links do |f| %>
69 <%= f.link_to 'CSV', :url => params %>
69 <%= f.link_to 'CSV', :url => params %>
70 <% end %>
70 <% end %>
71 <% end %>
71 <% end %>
72 <% end %>
72 <% end %>
73
73
74 <% html_title l(:label_spent_time), l(:label_report) %>
74 <% html_title l(:label_spent_time), l(:label_report) %>
75
75
1 NO CONTENT: modified file, binary diff hidden
NO CONTENT: modified file, binary diff hidden
@@ -1,704 +1,705
1 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
1 body { font-family: Verdana, sans-serif; font-size: 12px; color:#484848; margin: 0; padding: 0; min-width: 900px; }
2
2
3 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
3 h1, h2, h3, h4 { font-family: "Trebuchet MS", Verdana, sans-serif;}
4 h1 {margin:0; padding:0; font-size: 24px;}
4 h1 {margin:0; padding:0; font-size: 24px;}
5 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
5 h2, .wiki h1 {font-size: 20px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
6 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
6 h3, .wiki h2 {font-size: 16px;padding: 2px 10px 1px 0px;margin: 0 0 10px 0; border-bottom: 1px solid #bbbbbb; color: #444;}
7 h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
7 h4, .wiki h3 {font-size: 13px;padding: 2px 10px 1px 0px;margin-bottom: 5px; border-bottom: 1px dotted #bbbbbb; color: #444;}
8
8
9 /***** Layout *****/
9 /***** Layout *****/
10 #wrapper {background: white;}
10 #wrapper {background: white;}
11
11
12 #top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
12 #top-menu {background: #2C4056; color: #fff; height:1.8em; font-size: 0.8em; padding: 2px 2px 0px 6px;}
13 #top-menu ul {margin: 0; padding: 0;}
13 #top-menu ul {margin: 0; padding: 0;}
14 #top-menu li {
14 #top-menu li {
15 float:left;
15 float:left;
16 list-style-type:none;
16 list-style-type:none;
17 margin: 0px 0px 0px 0px;
17 margin: 0px 0px 0px 0px;
18 padding: 0px 0px 0px 0px;
18 padding: 0px 0px 0px 0px;
19 white-space:nowrap;
19 white-space:nowrap;
20 }
20 }
21 #top-menu a {color: #fff; margin-right: 8px; font-weight: bold;}
21 #top-menu a {color: #fff; margin-right: 8px; font-weight: bold;}
22 #top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
22 #top-menu #loggedas { float: right; margin-right: 0.5em; color: #fff; }
23
23
24 #account {float:right;}
24 #account {float:right;}
25
25
26 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
26 #header {height:5.3em;margin:0;background-color:#507AAA;color:#f8f8f8; padding: 4px 8px 0px 6px; position:relative;}
27 #header a {color:#f8f8f8;}
27 #header a {color:#f8f8f8;}
28 #quick-search {float:right;}
28 #quick-search {float:right;}
29
29
30 #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
30 #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;}
31 #main-menu ul {margin: 0; padding: 0;}
31 #main-menu ul {margin: 0; padding: 0;}
32 #main-menu li {
32 #main-menu li {
33 float:left;
33 float:left;
34 list-style-type:none;
34 list-style-type:none;
35 margin: 0px 2px 0px 0px;
35 margin: 0px 2px 0px 0px;
36 padding: 0px 0px 0px 0px;
36 padding: 0px 0px 0px 0px;
37 white-space:nowrap;
37 white-space:nowrap;
38 }
38 }
39 #main-menu li a {
39 #main-menu li a {
40 display: block;
40 display: block;
41 color: #fff;
41 color: #fff;
42 text-decoration: none;
42 text-decoration: none;
43 font-weight: bold;
43 font-weight: bold;
44 margin: 0;
44 margin: 0;
45 padding: 4px 10px 4px 10px;
45 padding: 4px 10px 4px 10px;
46 }
46 }
47 #main-menu li a:hover {background:#759FCF; color:#fff;}
47 #main-menu li a:hover {background:#759FCF; color:#fff;}
48 #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
48 #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;}
49
49
50 #main {background-color:#EEEEEE;}
50 #main {background-color:#EEEEEE;}
51
51
52 #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
52 #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;}
53 * html #sidebar{ width: 17%; }
53 * html #sidebar{ width: 17%; }
54 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
54 #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; }
55 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
55 #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; }
56 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
56 * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; }
57
57
58 #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
58 #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; }
59 * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
59 * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;}
60 html>body #content { min-height: 600px; }
60 html>body #content { min-height: 600px; }
61 * html body #content { height: 600px; } /* IE */
61 * html body #content { height: 600px; } /* IE */
62
62
63 #main.nosidebar #sidebar{ display: none; }
63 #main.nosidebar #sidebar{ display: none; }
64 #main.nosidebar #content{ width: auto; border-right: 0; }
64 #main.nosidebar #content{ width: auto; border-right: 0; }
65
65
66 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
66 #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;}
67
67
68 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
68 #login-form table {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; }
69 #login-form table td {padding: 6px;}
69 #login-form table td {padding: 6px;}
70 #login-form label {font-weight: bold;}
70 #login-form label {font-weight: bold;}
71
71
72 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
72 .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; }
73
73
74 /***** Links *****/
74 /***** Links *****/
75 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
75 a, a:link, a:visited{ color: #2A5685; text-decoration: none; }
76 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
76 a:hover, a:active{ color: #c61a1a; text-decoration: underline;}
77 a img{ border: 0; }
77 a img{ border: 0; }
78
78
79 a.issue.closed { text-decoration: line-through; }
79 a.issue.closed { text-decoration: line-through; }
80
80
81 /***** Tables *****/
81 /***** Tables *****/
82 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
82 table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; }
83 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
83 table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; }
84 table.list td { vertical-align: top; }
84 table.list td { vertical-align: top; }
85 table.list td.id { width: 2%; text-align: center;}
85 table.list td.id { width: 2%; text-align: center;}
86 table.list td.checkbox { width: 15px; padding: 0px;}
86 table.list td.checkbox { width: 15px; padding: 0px;}
87
87
88 tr.project td.name a { padding-left: 16px; white-space:nowrap; }
88 tr.project td.name a { padding-left: 16px; white-space:nowrap; }
89 tr.project.parent td.name a { background: url('../images/bullet_toggle_minus.png') no-repeat; }
89 tr.project.parent td.name a { background: url('../images/bullet_toggle_minus.png') no-repeat; }
90
90
91 tr.issue { text-align: center; white-space: nowrap; }
91 tr.issue { text-align: center; white-space: nowrap; }
92 tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
92 tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; }
93 tr.issue td.subject { text-align: left; }
93 tr.issue td.subject { text-align: left; }
94 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
94 tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;}
95
95
96 tr.entry { border: 1px solid #f8f8f8; }
96 tr.entry { border: 1px solid #f8f8f8; }
97 tr.entry td { white-space: nowrap; }
97 tr.entry td { white-space: nowrap; }
98 tr.entry td.filename { width: 30%; }
98 tr.entry td.filename { width: 30%; }
99 tr.entry td.size { text-align: right; font-size: 90%; }
99 tr.entry td.size { text-align: right; font-size: 90%; }
100 tr.entry td.revision, tr.entry td.author { text-align: center; }
100 tr.entry td.revision, tr.entry td.author { text-align: center; }
101 tr.entry td.age { text-align: right; }
101 tr.entry td.age { text-align: right; }
102
102
103 tr.entry span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
103 tr.entry span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;}
104 tr.entry.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
104 tr.entry.open span.expander {background-image: url(../images/bullet_toggle_minus.png);}
105 tr.entry.file td.filename a { margin-left: 16px; }
105 tr.entry.file td.filename a { margin-left: 16px; }
106
106
107 tr.changeset td.author { text-align: center; width: 15%; }
107 tr.changeset td.author { text-align: center; width: 15%; }
108 tr.changeset td.committed_on { text-align: center; width: 15%; }
108 tr.changeset td.committed_on { text-align: center; width: 15%; }
109
109
110 tr.message { height: 2.6em; }
110 tr.message { height: 2.6em; }
111 tr.message td.last_message { font-size: 80%; }
111 tr.message td.last_message { font-size: 80%; }
112 tr.message.locked td.subject a { background-image: url(../images/locked.png); }
112 tr.message.locked td.subject a { background-image: url(../images/locked.png); }
113 tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; }
113 tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; }
114
114
115 tr.user td { width:13%; }
115 tr.user td { width:13%; }
116 tr.user td.email { width:18%; }
116 tr.user td.email { width:18%; }
117 tr.user td { white-space: nowrap; }
117 tr.user td { white-space: nowrap; }
118 tr.user.locked, tr.user.registered { color: #aaa; }
118 tr.user.locked, tr.user.registered { color: #aaa; }
119 tr.user.locked a, tr.user.registered a { color: #aaa; }
119 tr.user.locked a, tr.user.registered a { color: #aaa; }
120
120
121 tr.time-entry { text-align: center; white-space: nowrap; }
121 tr.time-entry { text-align: center; white-space: nowrap; }
122 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
122 tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; }
123 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
123 td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; }
124 td.hours .hours-dec { font-size: 0.9em; }
124 td.hours .hours-dec { font-size: 0.9em; }
125
125
126 table.plugins td { vertical-align: middle; }
126 table.plugins td { vertical-align: middle; }
127 table.plugins td.configure { text-align: right; padding-right: 1em; }
127 table.plugins td.configure { text-align: right; padding-right: 1em; }
128 table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
128 table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; }
129 table.plugins span.description { display: block; font-size: 0.9em; }
129 table.plugins span.description { display: block; font-size: 0.9em; }
130 table.plugins span.url { display: block; font-size: 0.9em; }
130 table.plugins span.url { display: block; font-size: 0.9em; }
131
131
132 table.list tbody tr:hover { background-color:#ffffdd; }
132 table.list tbody tr:hover { background-color:#ffffdd; }
133 table td {padding:2px;}
133 table td {padding:2px;}
134 table p {margin:0;}
134 table p {margin:0;}
135 .odd {background-color:#f6f7f8;}
135 .odd {background-color:#f6f7f8;}
136 .even {background-color: #fff;}
136 .even {background-color: #fff;}
137
137
138 .highlight { background-color: #FCFD8D;}
138 .highlight { background-color: #FCFD8D;}
139 .highlight.token-1 { background-color: #faa;}
139 .highlight.token-1 { background-color: #faa;}
140 .highlight.token-2 { background-color: #afa;}
140 .highlight.token-2 { background-color: #afa;}
141 .highlight.token-3 { background-color: #aaf;}
141 .highlight.token-3 { background-color: #aaf;}
142
142
143 .box{
143 .box{
144 padding:6px;
144 padding:6px;
145 margin-bottom: 10px;
145 margin-bottom: 10px;
146 background-color:#f6f6f6;
146 background-color:#f6f6f6;
147 color:#505050;
147 color:#505050;
148 line-height:1.5em;
148 line-height:1.5em;
149 border: 1px solid #e4e4e4;
149 border: 1px solid #e4e4e4;
150 }
150 }
151
151
152 div.square {
152 div.square {
153 border: 1px solid #999;
153 border: 1px solid #999;
154 float: left;
154 float: left;
155 margin: .3em .4em 0 .4em;
155 margin: .3em .4em 0 .4em;
156 overflow: hidden;
156 overflow: hidden;
157 width: .6em; height: .6em;
157 width: .6em; height: .6em;
158 }
158 }
159 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
159 .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;}
160 .contextual input {font-size:0.9em;}
160 .contextual input {font-size:0.9em;}
161
161
162 .splitcontentleft{float:left; width:49%;}
162 .splitcontentleft{float:left; width:49%;}
163 .splitcontentright{float:right; width:49%;}
163 .splitcontentright{float:right; width:49%;}
164 form {display: inline;}
164 form {display: inline;}
165 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
165 input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;}
166 fieldset {border: 1px solid #e4e4e4; margin:0;}
166 fieldset {border: 1px solid #e4e4e4; margin:0;}
167 legend {color: #484848;}
167 legend {color: #484848;}
168 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
168 hr { width: 100%; height: 1px; background: #ccc; border: 0;}
169 blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
169 blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;}
170 blockquote blockquote { margin-left: 0;}
170 blockquote blockquote { margin-left: 0;}
171 textarea.wiki-edit { width: 99%; }
171 textarea.wiki-edit { width: 99%; }
172 li p {margin-top: 0;}
172 li p {margin-top: 0;}
173 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
173 div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;}
174 p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
174 p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;}
175 p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
175 p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; }
176 p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
176 p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; }
177
177
178 fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; }
178 fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; }
179 fieldset#filters p { margin: 1.2em 0 0.8em 2px; }
179 fieldset#filters p { margin: 1.2em 0 0.8em 2px; }
180 fieldset#filters table { border-collapse: collapse; }
180 fieldset#filters table { border-collapse: collapse; }
181 fieldset#filters table td { padding: 0; vertical-align: middle; }
181 fieldset#filters table td { padding: 0; vertical-align: middle; }
182 fieldset#filters tr.filter { height: 2em; }
182 fieldset#filters tr.filter { height: 2em; }
183 fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
183 fieldset#filters td.add-filter { text-align: right; vertical-align: top; }
184 .buttons { font-size: 0.9em; }
184 .buttons { font-size: 0.9em; }
185
185
186 div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
186 div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;}
187 div#issue-changesets .changeset { padding: 4px;}
187 div#issue-changesets .changeset { padding: 4px;}
188 div#issue-changesets .changeset { border-bottom: 1px solid #ddd; }
188 div#issue-changesets .changeset { border-bottom: 1px solid #ddd; }
189 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
189 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
190
190
191 div#activity dl, #search-results { margin-left: 2em; }
191 div#activity dl, #search-results { margin-left: 2em; }
192 div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
192 div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; }
193 div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
193 div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; }
194 div#activity dt.me .time { border-bottom: 1px solid #999; }
194 div#activity dt.me .time { border-bottom: 1px solid #999; }
195 div#activity dt .time { color: #777; font-size: 80%; }
195 div#activity dt .time { color: #777; font-size: 80%; }
196 div#activity dd .description, #search-results dd .description { font-style: italic; }
196 div#activity dd .description, #search-results dd .description { font-style: italic; }
197 div#activity span.project:after, #search-results span.project:after { content: " -"; }
197 div#activity span.project:after, #search-results span.project:after { content: " -"; }
198 div#activity dd span.description, #search-results dd span.description { display:block; }
198 div#activity dd span.description, #search-results dd span.description { display:block; }
199
199
200 #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
200 #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; }
201
201
202 div#search-results-counts {float:right;}
202 div#search-results-counts {float:right;}
203 div#search-results-counts ul { margin-top: 0.5em; }
203 div#search-results-counts ul { margin-top: 0.5em; }
204 div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
204 div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; }
205
205
206 dt.issue { background-image: url(../images/ticket.png); }
206 dt.issue { background-image: url(../images/ticket.png); }
207 dt.issue-edit { background-image: url(../images/ticket_edit.png); }
207 dt.issue-edit { background-image: url(../images/ticket_edit.png); }
208 dt.issue-closed { background-image: url(../images/ticket_checked.png); }
208 dt.issue-closed { background-image: url(../images/ticket_checked.png); }
209 dt.issue-note { background-image: url(../images/ticket_note.png); }
209 dt.issue-note { background-image: url(../images/ticket_note.png); }
210 dt.changeset { background-image: url(../images/changeset.png); }
210 dt.changeset { background-image: url(../images/changeset.png); }
211 dt.news { background-image: url(../images/news.png); }
211 dt.news { background-image: url(../images/news.png); }
212 dt.message { background-image: url(../images/message.png); }
212 dt.message { background-image: url(../images/message.png); }
213 dt.reply { background-image: url(../images/comments.png); }
213 dt.reply { background-image: url(../images/comments.png); }
214 dt.wiki-page { background-image: url(../images/wiki_edit.png); }
214 dt.wiki-page { background-image: url(../images/wiki_edit.png); }
215 dt.attachment { background-image: url(../images/attachment.png); }
215 dt.attachment { background-image: url(../images/attachment.png); }
216 dt.document { background-image: url(../images/document.png); }
216 dt.document { background-image: url(../images/document.png); }
217 dt.project { background-image: url(../images/projects.png); }
217 dt.project { background-image: url(../images/projects.png); }
218
218
219 #search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); }
219 #search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); }
220
220
221 div#roadmap fieldset.related-issues { margin-bottom: 1em; }
221 div#roadmap fieldset.related-issues { margin-bottom: 1em; }
222 div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; }
222 div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; }
223 div#roadmap .wiki h1:first-child { display: none; }
223 div#roadmap .wiki h1:first-child { display: none; }
224 div#roadmap .wiki h1 { font-size: 120%; }
224 div#roadmap .wiki h1 { font-size: 120%; }
225 div#roadmap .wiki h2 { font-size: 110%; }
225 div#roadmap .wiki h2 { font-size: 110%; }
226
226
227 div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
227 div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; }
228 div#version-summary fieldset { margin-bottom: 1em; }
228 div#version-summary fieldset { margin-bottom: 1em; }
229 div#version-summary .total-hours { text-align: right; }
229 div#version-summary .total-hours { text-align: right; }
230
230
231 table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
231 table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; }
232 table#time-report tbody tr { font-style: italic; color: #777; }
232 table#time-report tbody tr { font-style: italic; color: #777; }
233 table#time-report tbody tr.last-level { font-style: normal; color: #555; }
233 table#time-report tbody tr.last-level { font-style: normal; color: #555; }
234 table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; }
234 table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; }
235 table#time-report .hours-dec { font-size: 0.9em; }
235 table#time-report .hours-dec { font-size: 0.9em; }
236
236
237 form#issue-form .attributes { margin-bottom: 8px; }
237 form#issue-form .attributes { margin-bottom: 8px; }
238 form#issue-form .attributes p { padding-top: 1px; padding-bottom: 2px; }
238 form#issue-form .attributes p { padding-top: 1px; padding-bottom: 2px; }
239 form#issue-form .attributes select { min-width: 30%; }
239 form#issue-form .attributes select { min-width: 30%; }
240
240
241 ul.projects { margin: 0; padding-left: 1em; }
241 ul.projects { margin: 0; padding-left: 1em; }
242 ul.projects.root { margin: 0; padding: 0; }
242 ul.projects.root { margin: 0; padding: 0; }
243 ul.projects ul { border-left: 3px solid #e0e0e0; }
243 ul.projects ul { border-left: 3px solid #e0e0e0; }
244 ul.projects li { list-style-type:none; }
244 ul.projects li { list-style-type:none; }
245 ul.projects li.root { margin-bottom: 1em; }
245 ul.projects li.root { margin-bottom: 1em; }
246 ul.projects li.child { margin-top: 1em;}
246 ul.projects li.child { margin-top: 1em;}
247 ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; }
247 ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; }
248 .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; }
248 .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; }
249
249
250 #tracker_project_ids ul { margin: 0; padding-left: 1em; }
250 #tracker_project_ids ul { margin: 0; padding-left: 1em; }
251 #tracker_project_ids li { list-style-type:none; }
251 #tracker_project_ids li { list-style-type:none; }
252
252
253 ul.properties {padding:0; font-size: 0.9em; color: #777;}
253 ul.properties {padding:0; font-size: 0.9em; color: #777;}
254 ul.properties li {list-style-type:none;}
254 ul.properties li {list-style-type:none;}
255 ul.properties li span {font-style:italic;}
255 ul.properties li span {font-style:italic;}
256
256
257 .total-hours { font-size: 110%; font-weight: bold; }
257 .total-hours { font-size: 110%; font-weight: bold; }
258 .total-hours span.hours-int { font-size: 120%; }
258 .total-hours span.hours-int { font-size: 120%; }
259
259
260 .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
260 .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;}
261 #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; }
261 #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; }
262
262
263 .pagination {font-size: 90%}
263 .pagination {font-size: 90%}
264 p.pagination {margin-top:8px;}
264 p.pagination {margin-top:8px;}
265
265
266 /***** Tabular forms ******/
266 /***** Tabular forms ******/
267 .tabular p{
267 .tabular p{
268 margin: 0;
268 margin: 0;
269 padding: 5px 0 8px 0;
269 padding: 5px 0 8px 0;
270 padding-left: 180px; /*width of left column containing the label elements*/
270 padding-left: 180px; /*width of left column containing the label elements*/
271 height: 1%;
271 height: 1%;
272 clear:left;
272 clear:left;
273 }
273 }
274
274
275 html>body .tabular p {overflow:hidden;}
275 html>body .tabular p {overflow:hidden;}
276
276
277 .tabular label{
277 .tabular label{
278 font-weight: bold;
278 font-weight: bold;
279 float: left;
279 float: left;
280 text-align: right;
280 text-align: right;
281 margin-left: -180px; /*width of left column*/
281 margin-left: -180px; /*width of left column*/
282 width: 175px; /*width of labels. Should be smaller than left column to create some right
282 width: 175px; /*width of labels. Should be smaller than left column to create some right
283 margin*/
283 margin*/
284 }
284 }
285
285
286 .tabular label.floating{
286 .tabular label.floating{
287 font-weight: normal;
287 font-weight: normal;
288 margin-left: 0px;
288 margin-left: 0px;
289 text-align: left;
289 text-align: left;
290 width: 270px;
290 width: 270px;
291 }
291 }
292
292
293 input#time_entry_comments { width: 90%;}
293 input#time_entry_comments { width: 90%;}
294
294
295 #preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
295 #preview fieldset {margin-top: 1em; background: url(../images/draft.png)}
296
296
297 .tabular.settings p{ padding-left: 300px; }
297 .tabular.settings p{ padding-left: 300px; }
298 .tabular.settings label{ margin-left: -300px; width: 295px; }
298 .tabular.settings label{ margin-left: -300px; width: 295px; }
299
299
300 .required {color: #bb0000;}
300 .required {color: #bb0000;}
301 .summary {font-style: italic;}
301 .summary {font-style: italic;}
302
302
303 #attachments_fields input[type=text] {margin-left: 8px; }
303 #attachments_fields input[type=text] {margin-left: 8px; }
304
304
305 div.attachments { margin-top: 12px; }
305 div.attachments { margin-top: 12px; }
306 div.attachments p { margin:4px 0 2px 0; }
306 div.attachments p { margin:4px 0 2px 0; }
307 div.attachments img { vertical-align: middle; }
307 div.attachments img { vertical-align: middle; }
308 div.attachments span.author { font-size: 0.9em; color: #888; }
308 div.attachments span.author { font-size: 0.9em; color: #888; }
309
309
310 p.other-formats { text-align: right; font-size:0.9em; color: #666; }
310 p.other-formats { text-align: right; font-size:0.9em; color: #666; }
311 .other-formats span + span:before { content: "| "; }
311 .other-formats span + span:before { content: "| "; }
312
312
313 a.atom { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
313 a.atom { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; }
314
314
315 /***** Flash & error messages ****/
315 /***** Flash & error messages ****/
316 #errorExplanation, div.flash, .nodata, .warning {
316 #errorExplanation, div.flash, .nodata, .warning {
317 padding: 4px 4px 4px 30px;
317 padding: 4px 4px 4px 30px;
318 margin-bottom: 12px;
318 margin-bottom: 12px;
319 font-size: 1.1em;
319 font-size: 1.1em;
320 border: 2px solid;
320 border: 2px solid;
321 }
321 }
322
322
323 div.flash {margin-top: 8px;}
323 div.flash {margin-top: 8px;}
324
324
325 div.flash.error, #errorExplanation {
325 div.flash.error, #errorExplanation {
326 background: url(../images/false.png) 8px 5px no-repeat;
326 background: url(../images/false.png) 8px 5px no-repeat;
327 background-color: #ffe3e3;
327 background-color: #ffe3e3;
328 border-color: #dd0000;
328 border-color: #dd0000;
329 color: #550000;
329 color: #550000;
330 }
330 }
331
331
332 div.flash.notice {
332 div.flash.notice {
333 background: url(../images/true.png) 8px 5px no-repeat;
333 background: url(../images/true.png) 8px 5px no-repeat;
334 background-color: #dfffdf;
334 background-color: #dfffdf;
335 border-color: #9fcf9f;
335 border-color: #9fcf9f;
336 color: #005f00;
336 color: #005f00;
337 }
337 }
338
338
339 div.flash.warning {
339 div.flash.warning {
340 background: url(../images/warning.png) 8px 5px no-repeat;
340 background: url(../images/warning.png) 8px 5px no-repeat;
341 background-color: #FFEBC1;
341 background-color: #FFEBC1;
342 border-color: #FDBF3B;
342 border-color: #FDBF3B;
343 color: #A6750C;
343 color: #A6750C;
344 text-align: left;
344 text-align: left;
345 }
345 }
346
346
347 .nodata, .warning {
347 .nodata, .warning {
348 text-align: center;
348 text-align: center;
349 background-color: #FFEBC1;
349 background-color: #FFEBC1;
350 border-color: #FDBF3B;
350 border-color: #FDBF3B;
351 color: #A6750C;
351 color: #A6750C;
352 }
352 }
353
353
354 #errorExplanation ul { font-size: 0.9em;}
354 #errorExplanation ul { font-size: 0.9em;}
355
355
356 /***** Ajax indicator ******/
356 /***** Ajax indicator ******/
357 #ajax-indicator {
357 #ajax-indicator {
358 position: absolute; /* fixed not supported by IE */
358 position: absolute; /* fixed not supported by IE */
359 background-color:#eee;
359 background-color:#eee;
360 border: 1px solid #bbb;
360 border: 1px solid #bbb;
361 top:35%;
361 top:35%;
362 left:40%;
362 left:40%;
363 width:20%;
363 width:20%;
364 font-weight:bold;
364 font-weight:bold;
365 text-align:center;
365 text-align:center;
366 padding:0.6em;
366 padding:0.6em;
367 z-index:100;
367 z-index:100;
368 filter:alpha(opacity=50);
368 filter:alpha(opacity=50);
369 opacity: 0.5;
369 opacity: 0.5;
370 }
370 }
371
371
372 html>body #ajax-indicator { position: fixed; }
372 html>body #ajax-indicator { position: fixed; }
373
373
374 #ajax-indicator span {
374 #ajax-indicator span {
375 background-position: 0% 40%;
375 background-position: 0% 40%;
376 background-repeat: no-repeat;
376 background-repeat: no-repeat;
377 background-image: url(../images/loading.gif);
377 background-image: url(../images/loading.gif);
378 padding-left: 26px;
378 padding-left: 26px;
379 vertical-align: bottom;
379 vertical-align: bottom;
380 }
380 }
381
381
382 /***** Calendar *****/
382 /***** Calendar *****/
383 table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
383 table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;}
384 table.cal thead th {width: 14%;}
384 table.cal thead th {width: 14%;}
385 table.cal tbody tr {height: 100px;}
385 table.cal tbody tr {height: 100px;}
386 table.cal th { background-color:#EEEEEE; padding: 4px; }
386 table.cal th { background-color:#EEEEEE; padding: 4px; }
387 table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
387 table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;}
388 table.cal td p.day-num {font-size: 1.1em; text-align:right;}
388 table.cal td p.day-num {font-size: 1.1em; text-align:right;}
389 table.cal td.odd p.day-num {color: #bbb;}
389 table.cal td.odd p.day-num {color: #bbb;}
390 table.cal td.today {background:#ffffdd;}
390 table.cal td.today {background:#ffffdd;}
391 table.cal td.today p.day-num {font-weight: bold;}
391 table.cal td.today p.day-num {font-weight: bold;}
392
392
393 /***** Tooltips ******/
393 /***** Tooltips ******/
394 .tooltip{position:relative;z-index:24;}
394 .tooltip{position:relative;z-index:24;}
395 .tooltip:hover{z-index:25;color:#000;}
395 .tooltip:hover{z-index:25;color:#000;}
396 .tooltip span.tip{display: none; text-align:left;}
396 .tooltip span.tip{display: none; text-align:left;}
397
397
398 div.tooltip:hover span.tip{
398 div.tooltip:hover span.tip{
399 display:block;
399 display:block;
400 position:absolute;
400 position:absolute;
401 top:12px; left:24px; width:270px;
401 top:12px; left:24px; width:270px;
402 border:1px solid #555;
402 border:1px solid #555;
403 background-color:#fff;
403 background-color:#fff;
404 padding: 4px;
404 padding: 4px;
405 font-size: 0.8em;
405 font-size: 0.8em;
406 color:#505050;
406 color:#505050;
407 }
407 }
408
408
409 /***** Progress bar *****/
409 /***** Progress bar *****/
410 table.progress {
410 table.progress {
411 border: 1px solid #D7D7D7;
411 border: 1px solid #D7D7D7;
412 border-collapse: collapse;
412 border-collapse: collapse;
413 border-spacing: 0pt;
413 border-spacing: 0pt;
414 empty-cells: show;
414 empty-cells: show;
415 text-align: center;
415 text-align: center;
416 float:left;
416 float:left;
417 margin: 1px 6px 1px 0px;
417 margin: 1px 6px 1px 0px;
418 }
418 }
419
419
420 table.progress td { height: 0.9em; }
420 table.progress td { height: 0.9em; }
421 table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
421 table.progress td.closed { background: #BAE0BA none repeat scroll 0%; }
422 table.progress td.done { background: #DEF0DE none repeat scroll 0%; }
422 table.progress td.done { background: #DEF0DE none repeat scroll 0%; }
423 table.progress td.open { background: #FFF none repeat scroll 0%; }
423 table.progress td.open { background: #FFF none repeat scroll 0%; }
424 p.pourcent {font-size: 80%;}
424 p.pourcent {font-size: 80%;}
425 p.progress-info {clear: left; font-style: italic; font-size: 80%;}
425 p.progress-info {clear: left; font-style: italic; font-size: 80%;}
426
426
427 /***** Tabs *****/
427 /***** Tabs *****/
428 #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;}
428 #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;}
429 #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;}
429 #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;}
430 #content .tabs>ul { bottom:-1px; } /* others */
430 #content .tabs>ul { bottom:-1px; } /* others */
431 #content .tabs ul li {
431 #content .tabs ul li {
432 float:left;
432 float:left;
433 list-style-type:none;
433 list-style-type:none;
434 white-space:nowrap;
434 white-space:nowrap;
435 margin-right:8px;
435 margin-right:8px;
436 background:#fff;
436 background:#fff;
437 }
437 }
438 #content .tabs ul li a{
438 #content .tabs ul li a{
439 display:block;
439 display:block;
440 font-size: 0.9em;
440 font-size: 0.9em;
441 text-decoration:none;
441 text-decoration:none;
442 line-height:1.3em;
442 line-height:1.3em;
443 padding:4px 6px 4px 6px;
443 padding:4px 6px 4px 6px;
444 border: 1px solid #ccc;
444 border: 1px solid #ccc;
445 border-bottom: 1px solid #bbbbbb;
445 border-bottom: 1px solid #bbbbbb;
446 background-color: #eeeeee;
446 background-color: #eeeeee;
447 color:#777;
447 color:#777;
448 font-weight:bold;
448 font-weight:bold;
449 }
449 }
450
450
451 #content .tabs ul li a:hover {
451 #content .tabs ul li a:hover {
452 background-color: #ffffdd;
452 background-color: #ffffdd;
453 text-decoration:none;
453 text-decoration:none;
454 }
454 }
455
455
456 #content .tabs ul li a.selected {
456 #content .tabs ul li a.selected {
457 background-color: #fff;
457 background-color: #fff;
458 border: 1px solid #bbbbbb;
458 border: 1px solid #bbbbbb;
459 border-bottom: 1px solid #fff;
459 border-bottom: 1px solid #fff;
460 }
460 }
461
461
462 #content .tabs ul li a.selected:hover {
462 #content .tabs ul li a.selected:hover {
463 background-color: #fff;
463 background-color: #fff;
464 }
464 }
465
465
466 /***** Diff *****/
466 /***** Diff *****/
467 .diff_out { background: #fcc; }
467 .diff_out { background: #fcc; }
468 .diff_in { background: #cfc; }
468 .diff_in { background: #cfc; }
469
469
470 /***** Wiki *****/
470 /***** Wiki *****/
471 div.wiki table {
471 div.wiki table {
472 border: 1px solid #505050;
472 border: 1px solid #505050;
473 border-collapse: collapse;
473 border-collapse: collapse;
474 margin-bottom: 1em;
474 margin-bottom: 1em;
475 }
475 }
476
476
477 div.wiki table, div.wiki td, div.wiki th {
477 div.wiki table, div.wiki td, div.wiki th {
478 border: 1px solid #bbb;
478 border: 1px solid #bbb;
479 padding: 4px;
479 padding: 4px;
480 }
480 }
481
481
482 div.wiki .external {
482 div.wiki .external {
483 background-position: 0% 60%;
483 background-position: 0% 60%;
484 background-repeat: no-repeat;
484 background-repeat: no-repeat;
485 padding-left: 12px;
485 padding-left: 12px;
486 background-image: url(../images/external.png);
486 background-image: url(../images/external.png);
487 }
487 }
488
488
489 div.wiki a.new {
489 div.wiki a.new {
490 color: #b73535;
490 color: #b73535;
491 }
491 }
492
492
493 div.wiki pre {
493 div.wiki pre {
494 margin: 1em 1em 1em 1.6em;
494 margin: 1em 1em 1em 1.6em;
495 padding: 2px;
495 padding: 2px;
496 background-color: #fafafa;
496 background-color: #fafafa;
497 border: 1px solid #dadada;
497 border: 1px solid #dadada;
498 width:95%;
498 width:95%;
499 overflow-x: auto;
499 overflow-x: auto;
500 }
500 }
501
501
502 div.wiki ul.toc {
502 div.wiki ul.toc {
503 background-color: #ffffdd;
503 background-color: #ffffdd;
504 border: 1px solid #e4e4e4;
504 border: 1px solid #e4e4e4;
505 padding: 4px;
505 padding: 4px;
506 line-height: 1.2em;
506 line-height: 1.2em;
507 margin-bottom: 12px;
507 margin-bottom: 12px;
508 margin-right: 12px;
508 margin-right: 12px;
509 margin-left: 0;
509 margin-left: 0;
510 display: table
510 display: table
511 }
511 }
512 * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
512 * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */
513
513
514 div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
514 div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; }
515 div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
515 div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; }
516 div.wiki ul.toc li { list-style-type:none;}
516 div.wiki ul.toc li { list-style-type:none;}
517 div.wiki ul.toc li.heading2 { margin-left: 6px; }
517 div.wiki ul.toc li.heading2 { margin-left: 6px; }
518 div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
518 div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; }
519
519
520 div.wiki ul.toc a {
520 div.wiki ul.toc a {
521 font-size: 0.9em;
521 font-size: 0.9em;
522 font-weight: normal;
522 font-weight: normal;
523 text-decoration: none;
523 text-decoration: none;
524 color: #606060;
524 color: #606060;
525 }
525 }
526 div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
526 div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;}
527
527
528 a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
528 a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; }
529 a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
529 a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; }
530 h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
530 h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; }
531
531
532 /***** My page layout *****/
532 /***** My page layout *****/
533 .block-receiver {
533 .block-receiver {
534 border:1px dashed #c0c0c0;
534 border:1px dashed #c0c0c0;
535 margin-bottom: 20px;
535 margin-bottom: 20px;
536 padding: 15px 0 15px 0;
536 padding: 15px 0 15px 0;
537 }
537 }
538
538
539 .mypage-box {
539 .mypage-box {
540 margin:0 0 20px 0;
540 margin:0 0 20px 0;
541 color:#505050;
541 color:#505050;
542 line-height:1.5em;
542 line-height:1.5em;
543 }
543 }
544
544
545 .handle {
545 .handle {
546 cursor: move;
546 cursor: move;
547 }
547 }
548
548
549 a.close-icon {
549 a.close-icon {
550 display:block;
550 display:block;
551 margin-top:3px;
551 margin-top:3px;
552 overflow:hidden;
552 overflow:hidden;
553 width:12px;
553 width:12px;
554 height:12px;
554 height:12px;
555 background-repeat: no-repeat;
555 background-repeat: no-repeat;
556 cursor:pointer;
556 cursor:pointer;
557 background-image:url('../images/close.png');
557 background-image:url('../images/close.png');
558 }
558 }
559
559
560 a.close-icon:hover {
560 a.close-icon:hover {
561 background-image:url('../images/close_hl.png');
561 background-image:url('../images/close_hl.png');
562 }
562 }
563
563
564 /***** Gantt chart *****/
564 /***** Gantt chart *****/
565 .gantt_hdr {
565 .gantt_hdr {
566 position:absolute;
566 position:absolute;
567 top:0;
567 top:0;
568 height:16px;
568 height:16px;
569 border-top: 1px solid #c0c0c0;
569 border-top: 1px solid #c0c0c0;
570 border-bottom: 1px solid #c0c0c0;
570 border-bottom: 1px solid #c0c0c0;
571 border-right: 1px solid #c0c0c0;
571 border-right: 1px solid #c0c0c0;
572 text-align: center;
572 text-align: center;
573 overflow: hidden;
573 overflow: hidden;
574 }
574 }
575
575
576 .task {
576 .task {
577 position: absolute;
577 position: absolute;
578 height:8px;
578 height:8px;
579 font-size:0.8em;
579 font-size:0.8em;
580 color:#888;
580 color:#888;
581 padding:0;
581 padding:0;
582 margin:0;
582 margin:0;
583 line-height:0.8em;
583 line-height:0.8em;
584 }
584 }
585
585
586 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
586 .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; }
587 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
587 .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; }
588 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
588 .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; }
589 .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
589 .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; }
590
590
591 /***** Icons *****/
591 /***** Icons *****/
592 .icon {
592 .icon {
593 background-position: 0% 40%;
593 background-position: 0% 40%;
594 background-repeat: no-repeat;
594 background-repeat: no-repeat;
595 padding-left: 20px;
595 padding-left: 20px;
596 padding-top: 2px;
596 padding-top: 2px;
597 padding-bottom: 3px;
597 padding-bottom: 3px;
598 }
598 }
599
599
600 .icon22 {
600 .icon22 {
601 background-position: 0% 40%;
601 background-position: 0% 40%;
602 background-repeat: no-repeat;
602 background-repeat: no-repeat;
603 padding-left: 26px;
603 padding-left: 26px;
604 line-height: 22px;
604 line-height: 22px;
605 vertical-align: middle;
605 vertical-align: middle;
606 }
606 }
607
607
608 .icon-add { background-image: url(../images/add.png); }
608 .icon-add { background-image: url(../images/add.png); }
609 .icon-edit { background-image: url(../images/edit.png); }
609 .icon-edit { background-image: url(../images/edit.png); }
610 .icon-copy { background-image: url(../images/copy.png); }
610 .icon-copy { background-image: url(../images/copy.png); }
611 .icon-del { background-image: url(../images/delete.png); }
611 .icon-del { background-image: url(../images/delete.png); }
612 .icon-move { background-image: url(../images/move.png); }
612 .icon-move { background-image: url(../images/move.png); }
613 .icon-save { background-image: url(../images/save.png); }
613 .icon-save { background-image: url(../images/save.png); }
614 .icon-cancel { background-image: url(../images/cancel.png); }
614 .icon-cancel { background-image: url(../images/cancel.png); }
615 .icon-file { background-image: url(../images/file.png); }
615 .icon-file { background-image: url(../images/file.png); }
616 .icon-folder { background-image: url(../images/folder.png); }
616 .icon-folder { background-image: url(../images/folder.png); }
617 .open .icon-folder { background-image: url(../images/folder_open.png); }
617 .open .icon-folder { background-image: url(../images/folder_open.png); }
618 .icon-package { background-image: url(../images/package.png); }
618 .icon-package { background-image: url(../images/package.png); }
619 .icon-home { background-image: url(../images/home.png); }
619 .icon-home { background-image: url(../images/home.png); }
620 .icon-user { background-image: url(../images/user.png); }
620 .icon-user { background-image: url(../images/user.png); }
621 .icon-mypage { background-image: url(../images/user_page.png); }
621 .icon-mypage { background-image: url(../images/user_page.png); }
622 .icon-admin { background-image: url(../images/admin.png); }
622 .icon-admin { background-image: url(../images/admin.png); }
623 .icon-projects { background-image: url(../images/projects.png); }
623 .icon-projects { background-image: url(../images/projects.png); }
624 .icon-help { background-image: url(../images/help.png); }
624 .icon-help { background-image: url(../images/help.png); }
625 .icon-attachment { background-image: url(../images/attachment.png); }
625 .icon-attachment { background-image: url(../images/attachment.png); }
626 .icon-index { background-image: url(../images/index.png); }
626 .icon-index { background-image: url(../images/index.png); }
627 .icon-history { background-image: url(../images/history.png); }
627 .icon-history { background-image: url(../images/history.png); }
628 .icon-time { background-image: url(../images/time.png); }
628 .icon-time { background-image: url(../images/time.png); }
629 .icon-time-add { background-image: url(../images/time_add.png); }
629 .icon-stats { background-image: url(../images/stats.png); }
630 .icon-stats { background-image: url(../images/stats.png); }
630 .icon-warning { background-image: url(../images/warning.png); }
631 .icon-warning { background-image: url(../images/warning.png); }
631 .icon-fav { background-image: url(../images/fav.png); }
632 .icon-fav { background-image: url(../images/fav.png); }
632 .icon-fav-off { background-image: url(../images/fav_off.png); }
633 .icon-fav-off { background-image: url(../images/fav_off.png); }
633 .icon-reload { background-image: url(../images/reload.png); }
634 .icon-reload { background-image: url(../images/reload.png); }
634 .icon-lock { background-image: url(../images/locked.png); }
635 .icon-lock { background-image: url(../images/locked.png); }
635 .icon-unlock { background-image: url(../images/unlock.png); }
636 .icon-unlock { background-image: url(../images/unlock.png); }
636 .icon-checked { background-image: url(../images/true.png); }
637 .icon-checked { background-image: url(../images/true.png); }
637 .icon-details { background-image: url(../images/zoom_in.png); }
638 .icon-details { background-image: url(../images/zoom_in.png); }
638 .icon-report { background-image: url(../images/report.png); }
639 .icon-report { background-image: url(../images/report.png); }
639 .icon-comment { background-image: url(../images/comment.png); }
640 .icon-comment { background-image: url(../images/comment.png); }
640
641
641 .icon22-projects { background-image: url(../images/22x22/projects.png); }
642 .icon22-projects { background-image: url(../images/22x22/projects.png); }
642 .icon22-users { background-image: url(../images/22x22/users.png); }
643 .icon22-users { background-image: url(../images/22x22/users.png); }
643 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
644 .icon22-tracker { background-image: url(../images/22x22/tracker.png); }
644 .icon22-role { background-image: url(../images/22x22/role.png); }
645 .icon22-role { background-image: url(../images/22x22/role.png); }
645 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
646 .icon22-workflow { background-image: url(../images/22x22/workflow.png); }
646 .icon22-options { background-image: url(../images/22x22/options.png); }
647 .icon22-options { background-image: url(../images/22x22/options.png); }
647 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
648 .icon22-notifications { background-image: url(../images/22x22/notifications.png); }
648 .icon22-authent { background-image: url(../images/22x22/authent.png); }
649 .icon22-authent { background-image: url(../images/22x22/authent.png); }
649 .icon22-info { background-image: url(../images/22x22/info.png); }
650 .icon22-info { background-image: url(../images/22x22/info.png); }
650 .icon22-comment { background-image: url(../images/22x22/comment.png); }
651 .icon22-comment { background-image: url(../images/22x22/comment.png); }
651 .icon22-package { background-image: url(../images/22x22/package.png); }
652 .icon22-package { background-image: url(../images/22x22/package.png); }
652 .icon22-settings { background-image: url(../images/22x22/settings.png); }
653 .icon22-settings { background-image: url(../images/22x22/settings.png); }
653 .icon22-plugin { background-image: url(../images/22x22/plugin.png); }
654 .icon22-plugin { background-image: url(../images/22x22/plugin.png); }
654
655
655 img.gravatar {
656 img.gravatar {
656 padding: 2px;
657 padding: 2px;
657 border: solid 1px #d5d5d5;
658 border: solid 1px #d5d5d5;
658 background: #fff;
659 background: #fff;
659 }
660 }
660
661
661 div.issue img.gravatar {
662 div.issue img.gravatar {
662 float: right;
663 float: right;
663 margin: 0 0 0 1em;
664 margin: 0 0 0 1em;
664 padding: 5px;
665 padding: 5px;
665 }
666 }
666
667
667 div.issue table img.gravatar {
668 div.issue table img.gravatar {
668 height: 14px;
669 height: 14px;
669 width: 14px;
670 width: 14px;
670 padding: 2px;
671 padding: 2px;
671 float: left;
672 float: left;
672 margin: 0 0.5em 0 0;
673 margin: 0 0.5em 0 0;
673 }
674 }
674
675
675 #history img.gravatar {
676 #history img.gravatar {
676 padding: 3px;
677 padding: 3px;
677 margin: 0 1.5em 1em 0;
678 margin: 0 1.5em 1em 0;
678 float: left;
679 float: left;
679 }
680 }
680
681
681 td.username img.gravatar {
682 td.username img.gravatar {
682 float: left;
683 float: left;
683 margin: 0 1em 0 0;
684 margin: 0 1em 0 0;
684 }
685 }
685
686
686 #activity dt img.gravatar {
687 #activity dt img.gravatar {
687 float: left;
688 float: left;
688 margin: 0 1em 1em 0;
689 margin: 0 1em 1em 0;
689 }
690 }
690
691
691 #activity dt,
692 #activity dt,
692 .journal {
693 .journal {
693 clear: left;
694 clear: left;
694 }
695 }
695
696
696 h2 img { vertical-align:middle; }
697 h2 img { vertical-align:middle; }
697
698
698
699
699 /***** Media print specific styles *****/
700 /***** Media print specific styles *****/
700 @media print {
701 @media print {
701 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
702 #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; }
702 #main { background: #fff; }
703 #main { background: #fff; }
703 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
704 #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;}
704 }
705 }
General Comments 0
You need to be logged in to leave comments. Login now