diff --git a/app/views/gantts/show.html.erb b/app/views/gantts/show.html.erb
index 2808a99cc..f72113841 100644
--- a/app/views/gantts/show.html.erb
+++ b/app/views/gantts/show.html.erb
@@ -1,321 +1,322 @@
-
-
<% @gantt.view = self %>
- <%= @query.new_record? ? l(:label_gantt) : h(@query.name) %>
-
-
-<%= form_tag({:controller => 'gantts', :action => 'show',
- :project_id => @project, :month => params[:month],
- :year => params[:year], :months => params[:months]},
- :method => :get, :id => 'query_form') do %>
-<%= hidden_field_tag 'set_filter', '1' %>
-
-
-
-
- <%= gantt_zoom_link(@gantt, :in) %>
- <%= gantt_zoom_link(@gantt, :out) %>
-
-
-
-<%= text_field_tag 'months', @gantt.months, :size => 2 %>
-<%= l(:label_months_from) %>
-<%= select_month(@gantt.month_from, :prefix => "month", :discard_type => true) %>
-<%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %>
-<%= hidden_field_tag 'zoom', @gantt.zoom %>
-
-<%= link_to_function l(:button_apply), '$("#query_form").submit()',
- :class => 'icon icon-checked' %>
-<%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 },
- :class => 'icon icon-reload' %>
-
-<% end %>
-
-<%= error_messages_for 'query' %>
-<% if @query.valid? %>
-<%
- zoom = 1
- @gantt.zoom.times { zoom = zoom * 2 }
-
- subject_width = 330
- header_height = 18
-
- headers_height = header_height
- show_weeks = false
- show_days = false
-
- if @gantt.zoom > 1
- show_weeks = true
- headers_height = 2 * header_height
- if @gantt.zoom > 2
- show_days = true
- headers_height = 3 * header_height
- end
- end
-
- # Width of the entire chart
- g_width = ((@gantt.date_to - @gantt.date_from + 1) * zoom).to_i
- @gantt.render(:top => headers_height + 8,
- :zoom => zoom,
- :g_width => g_width,
- :subject_width => subject_width)
- g_height = [(20 * (@gantt.number_of_rows + 6)) + 150, 206].max
- t_height = g_height + headers_height
-%>
-
-<% if @gantt.truncated %>
- <%= l(:notice_gantt_chart_truncated, :max => @gantt.max_rows) %>
-<% end %>
-
-
-
-
- <%
- style = ""
- style += "position:relative;"
- style += "height: #{t_height + 24}px;"
- style += "width: #{subject_width + 1}px;"
- %>
- <%= content_tag(:div, :style => style) do %>
- <%
- style = ""
- style += "right:-2px;"
- style += "width: #{subject_width}px;"
- style += "height: #{headers_height}px;"
- style += 'background: #eee;'
- %>
- <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %>
- <%
- style = ""
- style += "right:-2px;"
- style += "width: #{subject_width}px;"
- style += "height: #{t_height}px;"
- style += 'border-left: 1px solid #c0c0c0;'
- style += 'overflow: hidden;'
- %>
- <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %>
- <%= content_tag(:div, :class => "gantt_subjects") do %>
- <%= @gantt.subjects.html_safe %>
- <% end %>
- <% end %>
- |
-
-
-
-<%
- style = ""
- style += "width: #{g_width - 1}px;"
- style += "height: #{headers_height}px;"
- style += 'background: #eee;'
-%>
-<%= content_tag(:div, ' '.html_safe, :style => style, :class => "gantt_hdr") %>
-
-<% ###### Months headers ###### %>
-<%
- month_f = @gantt.date_from
- left = 0
- height = (show_weeks ? header_height : header_height + g_height)
-%>
-<% @gantt.months.times do %>
- <%
- width = (((month_f >> 1) - month_f) * zoom - 1).to_i
- style = ""
- style += "left: #{left}px;"
- style += "width: #{width}px;"
- style += "height: #{height}px;"
- %>
- <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %>
- <%= link_to h("#{month_f.year}-#{month_f.month}"),
- @gantt.params.merge(:year => month_f.year, :month => month_f.month),
- :title => "#{month_name(month_f.month)} #{month_f.year}" %>
- <% end %>
- <%
- left = left + width + 1
- month_f = month_f >> 1
- %>
-<% end %>
-
-<% ###### Weeks headers ###### %>
-<% if show_weeks %>
- <%
- left = 0
- height = (show_days ? header_height - 1 : header_height - 1 + g_height)
- %>
- <% if @gantt.date_from.cwday == 1 %>
- <%
- # @date_from is monday
- week_f = @gantt.date_from
- %>
- <% else %>
- <%
- # find next monday after @date_from
- week_f = @gantt.date_from + (7 - @gantt.date_from.cwday + 1)
- width = (7 - @gantt.date_from.cwday + 1) * zoom - 1
- style = ""
- style += "left: #{left}px;"
- style += "top: 19px;"
- style += "width: #{width}px;"
- style += "height: #{height}px;"
- %>
- <%= content_tag(:div, ' '.html_safe,
- :style => style, :class => "gantt_hdr") %>
- <% left = left + width + 1 %>
- <% end %>
- <% while week_f <= @gantt.date_to %>
- <%
- width = ((week_f + 6 <= @gantt.date_to) ?
- 7 * zoom - 1 :
- (@gantt.date_to - week_f + 1) * zoom - 1).to_i
- style = ""
- style += "left: #{left}px;"
- style += "top: 19px;"
- style += "width: #{width}px;"
- style += "height: #{height}px;"
- %>
- <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %>
- <%= content_tag(:small) do %>
- <%= week_f.cweek if width >= 16 %>
- <% end %>
- <% end %>
- <%
- left = left + width + 1
- week_f = week_f + 7
- %>
- <% end %>
-<% end %>
-
-<% ###### Days headers ####### %>
-<% if show_days %>
- <%
- left = 0
- height = g_height + header_height - 1
- wday = @gantt.date_from.cwday
- %>
- <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %>
- <%
- width = zoom - 1
- style = ""
- style += "left: #{left}px;"
- style += "top:37px;"
- style += "width: #{width}px;"
- style += "height: #{height}px;"
- style += "font-size:0.7em;"
- clss = "gantt_hdr"
- clss << " nwday" if @gantt.non_working_week_days.include?(wday)
- %>
- <%= content_tag(:div, :style => style, :class => clss) do %>
- <%= day_letter(wday) %>
- <% end %>
- <%
- left = left + width + 1
- wday = wday + 1
- wday = 1 if wday > 7
- %>
- <% end %>
-<% end %>
-
-<%= @gantt.lines.html_safe %>
-
-<% ###### Today red line (excluded from cache) ###### %>
-<% if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %>
- <%
- today_left = (((Date.today - @gantt.date_from + 1) * zoom).floor() - 1).to_i
- style = ""
- style += "position: absolute;"
- style += "height: #{g_height}px;"
- style += "top: #{headers_height + 1}px;"
- style += "left: #{today_left}px;"
- style += "width:10px;"
- style += "border-left: 1px dashed red;"
- %>
- <%= content_tag(:div, ' '.html_safe, :style => style, :id => 'today_line') %>
-<% end %>
-<%
- style = ""
- style += "position: absolute;"
- style += "height: #{g_height}px;"
- style += "top: #{headers_height + 1}px;"
- style += "left: 0px;"
- style += "width: #{g_width - 1}px;"
-%>
-<%= content_tag(:div, '', :style => style, :id => "gantt_draw_area") %>
-
- |
-
-
-
-
-
-
- <%= link_to_content_update("\xc2\xab " + l(:label_previous),
- params.merge(@gantt.params_previous)) %>
- |
-
- <%= link_to_content_update(l(:label_next) + " \xc2\xbb",
- params.merge(@gantt.params_next)) %>
- |
-
-
-
-<% other_formats_links do |f| %>
- <%= f.link_to 'PDF', :url => params.merge(@gantt.params) %>
- <%= f.link_to('PNG', :url => params.merge(@gantt.params)) if @gantt.respond_to?('to_image') %>
-<% end %>
-<% end # query.valid? %>
-
-<% content_for :sidebar do %>
- <%= render :partial => 'issues/sidebar' %>
-<% end %>
-
-<% html_title(l(:label_gantt)) -%>
-
-<% content_for :header_tags do %>
- <%= javascript_include_tag 'raphael' %>
- <%= javascript_include_tag 'gantt' %>
-<% end %>
-
-<%= javascript_tag do %>
- var issue_relation_type = <%= raw Redmine::Helpers::Gantt::DRAW_TYPES.to_json %>;
- $(document).ready(drawGanttHandler);
- $(window).resize(drawGanttHandler);
- $(function() {
- $("#draw_rels").change(drawGanttHandler);
- $("#draw_progress_line").change(drawGanttHandler);
- });
-<% end %>
+
+
<% @gantt.view = self %>
+ <%= @query.new_record? ? l(:label_gantt) : h(@query.name) %>
+
+
+<%= form_tag({:controller => 'gantts', :action => 'show',
+ :project_id => @project, :month => params[:month],
+ :year => params[:year], :months => params[:months]},
+ :method => :get, :id => 'query_form') do %>
+<%= hidden_field_tag 'set_filter', '1' %>
+">
+
+ ">
+ <%= render :partial => 'queries/filters', :locals => {:query => @query} %>
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+ |
+
+
+
+
+
+
+ <%= gantt_zoom_link(@gantt, :in) %>
+ <%= gantt_zoom_link(@gantt, :out) %>
+
+
+
+<%= text_field_tag 'months', @gantt.months, :size => 2 %>
+<%= l(:label_months_from) %>
+<%= select_month(@gantt.month_from, :prefix => "month", :discard_type => true) %>
+<%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %>
+<%= hidden_field_tag 'zoom', @gantt.zoom %>
+
+<%= link_to_function l(:button_apply), '$("#query_form").submit()',
+ :class => 'icon icon-checked' %>
+<%= link_to l(:button_clear), { :project_id => @project, :set_filter => 1 },
+ :class => 'icon icon-reload' %>
+
+<% end %>
+
+<%= error_messages_for 'query' %>
+<% if @query.valid? %>
+<%
+ zoom = 1
+ @gantt.zoom.times { zoom = zoom * 2 }
+
+ subject_width = 330
+ header_height = 18
+
+ headers_height = header_height
+ show_weeks = false
+ show_days = false
+
+ if @gantt.zoom > 1
+ show_weeks = true
+ headers_height = 2 * header_height
+ if @gantt.zoom > 2
+ show_days = true
+ headers_height = 3 * header_height
+ end
+ end
+
+ # Width of the entire chart
+ g_width = ((@gantt.date_to - @gantt.date_from + 1) * zoom).to_i
+ @gantt.render(:top => headers_height + 8,
+ :zoom => zoom,
+ :g_width => g_width,
+ :subject_width => subject_width)
+ g_height = [(20 * (@gantt.number_of_rows + 6)) + 150, 206].max
+ t_height = g_height + headers_height
+%>
+
+<% if @gantt.truncated %>
+ <%= l(:notice_gantt_chart_truncated, :max => @gantt.max_rows) %>
+<% end %>
+
+
+
+
+ <%
+ style = ""
+ style += "position:relative;"
+ style += "height: #{t_height + 24}px;"
+ style += "width: #{subject_width + 1}px;"
+ %>
+ <%= content_tag(:div, :style => style) do %>
+ <%
+ style = ""
+ style += "right:-2px;"
+ style += "width: #{subject_width}px;"
+ style += "height: #{headers_height}px;"
+ style += 'background: #eee;'
+ style += 'z-index: 1;'
+ %>
+ <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %>
+ <%
+ style = ""
+ style += "right:-2px;"
+ style += "width: #{subject_width}px;"
+ style += "height: #{t_height}px;"
+ style += 'border-left: 1px solid #c0c0c0;'
+ style += 'overflow: hidden;'
+ %>
+ <%= content_tag(:div, "", :style => style, :class => "gantt_hdr") %>
+ <%= content_tag(:div, :class => "gantt_subjects") do %>
+ <%= @gantt.subjects.html_safe %>
+ <% end %>
+ <% end %>
+ |
+
+
+
+<%
+ style = ""
+ style += "width: #{g_width - 1}px;"
+ style += "height: #{headers_height}px;"
+ style += 'background: #eee;'
+%>
+<%= content_tag(:div, ' '.html_safe, :style => style, :class => "gantt_hdr") %>
+
+<% ###### Months headers ###### %>
+<%
+ month_f = @gantt.date_from
+ left = 0
+ height = (show_weeks ? header_height : header_height + g_height)
+%>
+<% @gantt.months.times do %>
+ <%
+ width = (((month_f >> 1) - month_f) * zoom - 1).to_i
+ style = ""
+ style += "left: #{left}px;"
+ style += "width: #{width}px;"
+ style += "height: #{height}px;"
+ %>
+ <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %>
+ <%= link_to h("#{month_f.year}-#{month_f.month}"),
+ @gantt.params.merge(:year => month_f.year, :month => month_f.month),
+ :title => "#{month_name(month_f.month)} #{month_f.year}" %>
+ <% end %>
+ <%
+ left = left + width + 1
+ month_f = month_f >> 1
+ %>
+<% end %>
+
+<% ###### Weeks headers ###### %>
+<% if show_weeks %>
+ <%
+ left = 0
+ height = (show_days ? header_height - 1 : header_height - 1 + g_height)
+ %>
+ <% if @gantt.date_from.cwday == 1 %>
+ <%
+ # @date_from is monday
+ week_f = @gantt.date_from
+ %>
+ <% else %>
+ <%
+ # find next monday after @date_from
+ week_f = @gantt.date_from + (7 - @gantt.date_from.cwday + 1)
+ width = (7 - @gantt.date_from.cwday + 1) * zoom - 1
+ style = ""
+ style += "left: #{left}px;"
+ style += "top: 19px;"
+ style += "width: #{width}px;"
+ style += "height: #{height}px;"
+ %>
+ <%= content_tag(:div, ' '.html_safe,
+ :style => style, :class => "gantt_hdr") %>
+ <% left = left + width + 1 %>
+ <% end %>
+ <% while week_f <= @gantt.date_to %>
+ <%
+ width = ((week_f + 6 <= @gantt.date_to) ?
+ 7 * zoom - 1 :
+ (@gantt.date_to - week_f + 1) * zoom - 1).to_i
+ style = ""
+ style += "left: #{left}px;"
+ style += "top: 19px;"
+ style += "width: #{width}px;"
+ style += "height: #{height}px;"
+ %>
+ <%= content_tag(:div, :style => style, :class => "gantt_hdr") do %>
+ <%= content_tag(:small) do %>
+ <%= week_f.cweek if width >= 16 %>
+ <% end %>
+ <% end %>
+ <%
+ left = left + width + 1
+ week_f = week_f + 7
+ %>
+ <% end %>
+<% end %>
+
+<% ###### Days headers ####### %>
+<% if show_days %>
+ <%
+ left = 0
+ height = g_height + header_height - 1
+ wday = @gantt.date_from.cwday
+ %>
+ <% (@gantt.date_to - @gantt.date_from + 1).to_i.times do %>
+ <%
+ width = zoom - 1
+ style = ""
+ style += "left: #{left}px;"
+ style += "top:37px;"
+ style += "width: #{width}px;"
+ style += "height: #{height}px;"
+ style += "font-size:0.7em;"
+ clss = "gantt_hdr"
+ clss << " nwday" if @gantt.non_working_week_days.include?(wday)
+ %>
+ <%= content_tag(:div, :style => style, :class => clss) do %>
+ <%= day_letter(wday) %>
+ <% end %>
+ <%
+ left = left + width + 1
+ wday = wday + 1
+ wday = 1 if wday > 7
+ %>
+ <% end %>
+<% end %>
+
+<%= @gantt.lines.html_safe %>
+
+<% ###### Today red line (excluded from cache) ###### %>
+<% if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %>
+ <%
+ today_left = (((Date.today - @gantt.date_from + 1) * zoom).floor() - 1).to_i
+ style = ""
+ style += "position: absolute;"
+ style += "height: #{g_height}px;"
+ style += "top: #{headers_height + 1}px;"
+ style += "left: #{today_left}px;"
+ style += "width:10px;"
+ style += "border-left: 1px dashed red;"
+ %>
+ <%= content_tag(:div, ' '.html_safe, :style => style, :id => 'today_line') %>
+<% end %>
+<%
+ style = ""
+ style += "position: absolute;"
+ style += "height: #{g_height}px;"
+ style += "top: #{headers_height + 1}px;"
+ style += "left: 0px;"
+ style += "width: #{g_width - 1}px;"
+%>
+<%= content_tag(:div, '', :style => style, :id => "gantt_draw_area") %>
+
+ |
+
+
+
+
+
+
+ <%= link_to_content_update("\xc2\xab " + l(:label_previous),
+ params.merge(@gantt.params_previous)) %>
+ |
+
+ <%= link_to_content_update(l(:label_next) + " \xc2\xbb",
+ params.merge(@gantt.params_next)) %>
+ |
+
+
+
+<% other_formats_links do |f| %>
+ <%= f.link_to 'PDF', :url => params.merge(@gantt.params) %>
+ <%= f.link_to('PNG', :url => params.merge(@gantt.params)) if @gantt.respond_to?('to_image') %>
+<% end %>
+<% end # query.valid? %>
+
+<% content_for :sidebar do %>
+ <%= render :partial => 'issues/sidebar' %>
+<% end %>
+
+<% html_title(l(:label_gantt)) -%>
+
+<% content_for :header_tags do %>
+ <%= javascript_include_tag 'raphael' %>
+ <%= javascript_include_tag 'gantt' %>
+<% end %>
+
+<%= javascript_tag do %>
+ var issue_relation_type = <%= raw Redmine::Helpers::Gantt::DRAW_TYPES.to_json %>;
+ $(document).ready(drawGanttHandler);
+ $(window).resize(drawGanttHandler);
+ $(function() {
+ $("#draw_rels").change(drawGanttHandler);
+ $("#draw_progress_line").change(drawGanttHandler);
+ });
+<% end %>
diff --git a/public/stylesheets/css/gantt.css b/public/stylesheets/css/gantt.css
index e69de29bb..d0ab0e4f2 100644
--- a/public/stylesheets/css/gantt.css
+++ b/public/stylesheets/css/gantt.css
@@ -0,0 +1,177 @@
+fieldset.collapsible { border-width: 1px 0 0 0; font-size: 0.9em; }
+fieldset.collapsible>legend { padding-left: 16px; background: url(/images/arrow_expanded.png) no-repeat 0% 40%; cursor:pointer; }
+fieldset.collapsible.collapsed>legend { background-image: url(/images/arrow_collapsed.png); }
+
+/***** Gantt chart *****/
+.gantt_hdr {
+ position:absolute;
+ top:0;
+ height:16px;
+ border-top: 1px solid #c0c0c0;
+ border-bottom: 1px solid #c0c0c0;
+ border-right: 1px solid #c0c0c0;
+ text-align: center;
+ overflow: hidden;
+}
+
+.gantt_hdr.nwday {background-color:#f1f1f1;}
+
+.gantt_subjects { font-size: 0.8em; }
+.gantt_subjects div { line-height:16px;height:16px;overflow:hidden;white-space:nowrap;text-overflow: ellipsis; }
+
+.task {
+ position: absolute;
+ height:8px;
+ font-size:0.8em;
+ color:#888;
+ padding:0;
+ margin:0;
+ line-height:16px;
+ white-space:nowrap;
+}
+
+.task.label {width:100%;}
+.task.label.project, .task.label.version { font-weight: bold; }
+
+.task_late { background:#f66 url(/images/task_late.png); border: 1px solid #f66; }
+.task_done { background:#00c600 url(/images/task_done.png); border: 1px solid #00c600; }
+.task_todo { background:#aaa url(/images/task_todo.png); border: 1px solid #aaa; }
+
+.task_todo.parent { background: #888; border: 1px solid #888; height: 3px;}
+.task_late.parent, .task_done.parent { height: 3px;}
+.task.parent.marker.starting { position: absolute; background: url(/images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; left: 0px; top: -1px;}
+.task.parent.marker.ending { position: absolute; background: url(/images/task_parent_end.png) no-repeat 0 0; width: 8px; height: 16px; margin-left: -4px; right: 0px; top: -1px;}
+
+.version.task_late { background:#f66 url(/images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.version.task_done { background:#00c600 url(/images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.version.task_todo { background:#fff url(/images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.version.marker { background-image:url(/images/version_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.project.task_late { background:#f66 url(/images/milestone_late.png); border: 1px solid #f66; height: 2px; margin-top: 3px;}
+.project.task_done { background:#00c600 url(/images/milestone_done.png); border: 1px solid #00c600; height: 2px; margin-top: 3px;}
+.project.task_todo { background:#fff url(/images/milestone_todo.png); border: 1px solid #fff; height: 2px; margin-top: 3px;}
+.project.marker { background-image:url(/images/project_marker.png); background-repeat: no-repeat; border: 0; margin-left: -4px; margin-top: 1px; }
+
+.version-behind-schedule a, .issue-behind-schedule a {color: #f66914;}
+.version-overdue a, .issue-overdue a, .project-overdue a {color: #f00;}
+/*end*/
+
+dt.issue { background-image: url(/images/ticket.png); }
+dt.issue-edit { background-image: url(/images/ticket_edit.png); }
+dt.issue-closed { background-image: url(/images/ticket_checked.png); }
+dt.issue-note { background-image: url(/images/ticket_note.png); }
+dt.changeset { background-image: url(/images/changeset.png); }
+dt.news { background-image: url(/images/news.png); }
+dt.message { background-image: url(/images/message.png); }
+dt.reply { background-image: url(/images/comments.png); }
+dt.wiki-page { background-image: url(/images/wiki_edit.png); }
+dt.attachment { background-image: url(/images/attachment.png); }
+dt.document { background-image: url(/images/document.png); }
+dt.project { background-image: url(/images/projects.png); }
+dt.time-entry { background-image: url(/images/time.png); }
+
+/***** Icons *****/
+.icon {
+ background-position: 0% 50%;
+ background-repeat: no-repeat;
+ font-family: '微软雅黑'; /*modify by men*/
+ padding-left: 20px;
+ padding-top: 2px;
+ padding-bottom: 3px;
+}
+.icon_enterprise {
+ background-position: 0% 50%;
+ background-repeat: no-repeat;
+ font-family: '微软雅黑'; /*modify by men*/
+ padding-left: 20px;
+ padding-top: 2px;
+ padding-bottom: 3px;
+}
+.icon_enterprise-add { background-image: url(/images/add_enterprise.png); }
+.icon-add { background-image: url(/images/add.png); }
+.icon-edit { /*background-image: url(../images/edit.png);*/ }
+.icon-copy { background-image: url(/images/copy.png); }
+.icon-duplicate { background-image: url(/images/duplicate.png); }
+.icon-del { /*background-image: url(../images/delete.png); */}
+.icon-move { background-image: url(/images/move.png); }
+.icon-save { background-image: url(/images/save.png); }
+.icon-cancel { background-image: url(/images/cancel.png); }
+.icon-multiple { background-image: url(/images/table_multiple.png); }
+.icon-folder { background-image: url(/images/folder.png); }
+.open .icon-folder { background-image: url(/images/folder_open.png); }
+.icon-package { background-image: url(/images/package.png); }
+.icon-user { background-image: url(/images/user.png); }
+.icon-projects { background-image: url(/images/projects.png); }
+.icon-help { background-image: url(/images/help.png); }
+.icon-attachment { background-image: url(/images/attachment.png);padding-left: 20px !important; }
+.icon-history { background-image: url(/images/history.png); }
+.icon-time { background-image: url(/images/time.png); }
+.icon-time-add { background-image: url(/images/time_add.png); }
+.icon-stats { background-image: url(/images/stats.png); }
+.icon-warning { background-image: url(/images/warning.png); }
+.icon-fav { background-image: url(/images/fav.png); }
+.icon-fav-off { background-image: url(/images/fav_off.png); }
+.icon-reload { background-image: url(/images/reload.png); }
+.icon-lock { background-image: url(/images/locked.png); }
+.icon-unlock { background-image: url(/images/unlock.png); }
+.icon-checked { background-image: url(/images/true.png); }
+.icon-details { background-image: url(/images/zoom_in.png); }
+.icon-report { background-image: url(/images/report.png); }
+.icon-comment { /*background-image: url(../images/comment.png); */}
+.icon-summary { background-image: url(/images/lightning.png); }
+.icon-server-authentication { background-image: url(/images/server_key.png); }
+.icon-issue { background-image: url(/images/ticket.png); }
+.icon-zoom-in { background-image: url(/images/zoom_in.png); }
+.icon-zoom-out { background-image: url(/images/zoom_out.png); }
+.icon-passwd { background-image: url(/images/textfield_key.png); }
+.icon-test { background-image: url(/images/bullet_go.png); }
+
+.icon-file { background-image: url(/images/files/default.png); }
+.icon-file.text-plain { background-image: url(/images/files/text.png); }
+.icon-file.text-x-c { background-image: url(/images/files/c.png); }
+.icon-file.text-x-csharp { background-image: url(/images/files/csharp.png); }
+.icon-file.text-x-java { background-image: url(/images/files/java.png); }
+.icon-file.text-x-javascript { background-image: url(/images/files/js.png); }
+.icon-file.text-x-php { background-image: url(/images/files/php.png); }
+.icon-file.text-x-ruby { background-image: url(/images/files/ruby.png); }
+.icon-file.text-xml { background-image: url(/images/files/xml.png); }
+.icon-file.text-css { background-image: url(/images/files/css.png); }
+.icon-file.text-html { background-image: url(/images/files/html.png); }
+.icon-file.image-gif { background-image: url(/images/files/image.png); }
+.icon-file.image-jpeg { background-image: url(/images/files/image.png); }
+.icon-file.image-png { background-image: url(/images/files/image.png); }
+.icon-file.image-tiff { background-image: url(/images/files/image.png); }
+.icon-file.application-pdf { background-image: url(/images/files/pdf.png); }
+.icon-file.application-zip { background-image: url(/images/files/zip.png); }
+.icon-file.application-x-gzip { background-image: url(/images/files/zip.png); }
+
+img.gravatar {
+ padding: 2px;
+ border: solid 1px #d5d5d5;
+ background: #fff;
+ vertical-align: middle;
+}
+
+div.issue img.gravatar {
+ float: left;
+ margin: 0 6px 0 0;
+ padding: 5px;
+}
+
+div.issue table img.gravatar {
+ height: 14px;
+ width: 14px;
+ padding: 2px;
+ float: left;
+ margin: 0 0.5em 0 0;
+}
+
+h2 img.gravatar {margin: -2px 4px -4px 0;}
+h3 img.gravatar {margin: -4px 4px -4px 0;}
+h4 img.gravatar {margin: -6px 4px -4px 0;}
+td.username img.gravatar {margin: 0 0.5em 0 0; vertical-align: top;}
+#activity dt img.gravatar {float: left; margin: 0 1em 1em 0;}
+/* Used on 12px Gravatar img tags without the icon background */
+.icon-gravatar {float: left; margin-right: 4px;}
+
+.buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; }
\ No newline at end of file