1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
1 | NO CONTENT: new file 100644, binary diff hidden |
|
NO CONTENT: new file 100644, binary diff hidden |
@@ -1,55 +1,56 | |||||
1 | <% form_tag({}, :id => 'query_form') do %> |
|
1 | <% form_tag({}, :id => 'query_form') do %> | |
2 | <% if @query.new_record? %> |
|
2 | <% if @query.new_record? %> | |
3 |
|
|
3 | <h2><%= l(:label_calendar) %></h2> | |
4 | <fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend> |
|
4 | <fieldset id="filters" class="collapsible"> | |
|
5 | <legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend> | |||
|
6 | <div> | |||
5 | <%= render :partial => 'queries/filters', :locals => {:query => @query} %> |
|
7 | <%= render :partial => 'queries/filters', :locals => {:query => @query} %> | |
6 | </fieldset> |
|
8 | </div> | |
|
9 | </fieldset> | |||
7 | <% else %> |
|
10 | <% else %> | |
8 | <h2><%=h @query.name %></h2> |
|
11 | <h2><%=h @query.name %></h2> | |
9 | <% html_title @query.name %> |
|
12 | <% html_title @query.name %> | |
10 | <% end %> |
|
13 | <% end %> | |
11 |
|
14 | |||
12 | <fieldset id="date-range"><legend><%= l(:label_date_range) %></legend> |
|
15 | <p style="float:right;"> | |
13 | <%= select_month(@month, :prefix => "month", :discard_type => true) %> |
|
|||
14 | <%= select_year(@year, :prefix => "year", :discard_type => true) %> |
|
|||
15 | </fieldset> |
|
|||
16 |
|
||||
17 | <p style="float:right; margin:0px;"> |
|
|||
18 | <%= link_to_remote ('« ' + (@month==1 ? "#{month_name(12)} #{@year-1}" : "#{month_name(@month-1)}")), |
|
16 | <%= link_to_remote ('« ' + (@month==1 ? "#{month_name(12)} #{@year-1}" : "#{month_name(@month-1)}")), | |
19 | {:update => "content", :url => { :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1) }}, |
|
17 | {:update => "content", :url => { :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1) }}, | |
20 | {:href => url_for(:action => 'calendar', :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1))} |
|
18 | {:href => url_for(:action => 'calendar', :year => (@month==1 ? @year-1 : @year), :month =>(@month==1 ? 12 : @month-1))} | |
21 | %> | |
|
19 | %> | | |
22 | <%= link_to_remote ((@month==12 ? "#{month_name(1)} #{@year+1}" : "#{month_name(@month+1)}") + ' »'), |
|
20 | <%= link_to_remote ((@month==12 ? "#{month_name(1)} #{@year+1}" : "#{month_name(@month+1)}") + ' »'), | |
23 | {:update => "content", :url => { :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1) }}, |
|
21 | {:update => "content", :url => { :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1) }}, | |
24 | {:href => url_for(:action => 'calendar', :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1))} |
|
22 | {:href => url_for(:action => 'calendar', :year => (@month==12 ? @year+1 : @year), :month =>(@month==12 ? 1 : @month+1))} | |
25 | %> |
|
23 | %> | |
26 | </p> |
|
24 | </p> | |
27 |
|
25 | |||
28 | <p class="buttons"> |
|
26 | <p class="buttons"> | |
|
27 | <%= select_month(@month, :prefix => "month", :discard_type => true) %> | |||
|
28 | <%= select_year(@year, :prefix => "year", :discard_type => true) %> | |||
|
29 | ||||
29 | <%= link_to_remote l(:button_apply), |
|
30 | <%= link_to_remote l(:button_apply), | |
30 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, |
|
31 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, | |
31 | :update => "content", |
|
32 | :update => "content", | |
32 | :with => "Form.serialize('query_form')" |
|
33 | :with => "Form.serialize('query_form')" | |
33 | }, :class => 'icon icon-checked' %> |
|
34 | }, :class => 'icon icon-checked' %> | |
34 |
|
35 | |||
35 | <%= link_to_remote l(:button_clear), |
|
36 | <%= link_to_remote l(:button_clear), | |
36 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, |
|
37 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, | |
37 | :update => "content", |
|
38 | :update => "content", | |
38 | }, :class => 'icon icon-reload' if @query.new_record? %> |
|
39 | }, :class => 'icon icon-reload' if @query.new_record? %> | |
39 | </p> |
|
40 | </p> | |
40 | <% end %> |
|
41 | <% end %> | |
41 |
|
42 | |||
42 | <%= error_messages_for 'query' %> |
|
43 | <%= error_messages_for 'query' %> | |
43 | <% if @query.valid? %> |
|
44 | <% if @query.valid? %> | |
44 | <%= render :partial => 'common/calendar', :locals => {:calendar => @calendar} %> |
|
45 | <%= render :partial => 'common/calendar', :locals => {:calendar => @calendar} %> | |
45 |
|
46 | |||
46 | <%= image_tag 'arrow_from.png' %> <%= l(:text_tip_task_begin_day) %><br /> |
|
47 | <%= image_tag 'arrow_from.png' %> <%= l(:text_tip_task_begin_day) %><br /> | |
47 | <%= image_tag 'arrow_to.png' %> <%= l(:text_tip_task_end_day) %><br /> |
|
48 | <%= image_tag 'arrow_to.png' %> <%= l(:text_tip_task_end_day) %><br /> | |
48 | <%= image_tag 'arrow_bw.png' %> <%= l(:text_tip_task_begin_end_day) %><br /> |
|
49 | <%= image_tag 'arrow_bw.png' %> <%= l(:text_tip_task_begin_end_day) %><br /> | |
49 | <% end %> |
|
50 | <% end %> | |
50 |
|
51 | |||
51 | <% content_for :sidebar do %> |
|
52 | <% content_for :sidebar do %> | |
52 | <%= render :partial => 'issues/sidebar' %> |
|
53 | <%= render :partial => 'issues/sidebar' %> | |
53 | <% end %> |
|
54 | <% end %> | |
54 |
|
55 | |||
55 | <% html_title(l(:label_calendar)) -%> |
|
56 | <% html_title(l(:label_calendar)) -%> |
@@ -1,254 +1,255 | |||||
1 | <% form_tag(params.merge(:month => nil, :year => nil, :months => nil), :id => 'query_form') do %> |
|
1 | <% form_tag(params.merge(:month => nil, :year => nil, :months => nil), :id => 'query_form') do %> | |
2 | <% if @query.new_record? %> |
|
2 | <% if @query.new_record? %> | |
3 |
|
|
3 | <h2><%=l(:label_gantt)%></h2> | |
4 | <fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend> |
|
4 | <fieldset id="filters" class="collapsible"> | |
|
5 | <legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend> | |||
|
6 | <div> | |||
5 | <%= render :partial => 'queries/filters', :locals => {:query => @query} %> |
|
7 | <%= render :partial => 'queries/filters', :locals => {:query => @query} %> | |
6 | </fieldset> |
|
8 | </div> | |
|
9 | </fieldset> | |||
7 | <% else %> |
|
10 | <% else %> | |
8 | <h2><%=h @query.name %></h2> |
|
11 | <h2><%=h @query.name %></h2> | |
9 | <% html_title @query.name %> |
|
12 | <% html_title @query.name %> | |
10 | <% end %> |
|
13 | <% end %> | |
11 |
|
14 | |||
12 | <fieldset id="date-range"><legend><%= l(:label_date_range) %></legend> |
|
15 | <p style="float:right;"> | |
13 | <%= text_field_tag 'months', @gantt.months, :size => 2 %> |
|
|||
14 | <%= l(:label_months_from) %> |
|
|||
15 | <%= select_month(@gantt.month_from, :prefix => "month", :discard_type => true) %> |
|
|||
16 | <%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %> |
|
|||
17 | <%= hidden_field_tag 'zoom', @gantt.zoom %> |
|
|||
18 | </fieldset> |
|
|||
19 |
|
||||
20 | <p style="float:right; margin:0px;"> |
|
|||
21 | <%= if @gantt.zoom < 4 |
|
16 | <%= if @gantt.zoom < 4 | |
22 | link_to_remote image_tag('zoom_in.png'), {:url => @gantt.params.merge(:zoom => (@gantt.zoom+1)), :update => 'content'}, {:href => url_for(@gantt.params.merge(:zoom => (@gantt.zoom+1)))} |
|
17 | link_to_remote image_tag('zoom_in.png'), {:url => @gantt.params.merge(:zoom => (@gantt.zoom+1)), :update => 'content'}, {:href => url_for(@gantt.params.merge(:zoom => (@gantt.zoom+1)))} | |
23 | else |
|
18 | else | |
24 | image_tag 'zoom_in_g.png' |
|
19 | image_tag 'zoom_in_g.png' | |
25 | end %> |
|
20 | end %> | |
26 | <%= if @gantt.zoom > 1 |
|
21 | <%= if @gantt.zoom > 1 | |
27 | link_to_remote image_tag('zoom_out.png'), {:url => @gantt.params.merge(:zoom => (@gantt.zoom-1)), :update => 'content'}, {:href => url_for(@gantt.params.merge(:zoom => (@gantt.zoom-1)))} |
|
22 | link_to_remote image_tag('zoom_out.png'), {:url => @gantt.params.merge(:zoom => (@gantt.zoom-1)), :update => 'content'}, {:href => url_for(@gantt.params.merge(:zoom => (@gantt.zoom-1)))} | |
28 | else |
|
23 | else | |
29 | image_tag 'zoom_out_g.png' |
|
24 | image_tag 'zoom_out_g.png' | |
30 | end %> |
|
25 | end %> | |
31 | </p> |
|
26 | </p> | |
32 |
|
27 | |||
33 | <p class="buttons"> |
|
28 | <p class="buttons"> | |
|
29 | <%= text_field_tag 'months', @gantt.months, :size => 2 %> | |||
|
30 | <%= l(:label_months_from) %> | |||
|
31 | <%= select_month(@gantt.month_from, :prefix => "month", :discard_type => true) %> | |||
|
32 | <%= select_year(@gantt.year_from, :prefix => "year", :discard_type => true) %> | |||
|
33 | <%= hidden_field_tag 'zoom', @gantt.zoom %> | |||
|
34 | ||||
34 | <%= link_to_remote l(:button_apply), |
|
35 | <%= link_to_remote l(:button_apply), | |
35 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, |
|
36 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, | |
36 | :update => "content", |
|
37 | :update => "content", | |
37 | :with => "Form.serialize('query_form')" |
|
38 | :with => "Form.serialize('query_form')" | |
38 | }, :class => 'icon icon-checked' %> |
|
39 | }, :class => 'icon icon-checked' %> | |
39 |
|
40 | |||
40 | <%= link_to_remote l(:button_clear), |
|
41 | <%= link_to_remote l(:button_clear), | |
41 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, |
|
42 | { :url => { :set_filter => (@query.new_record? ? 1 : nil) }, | |
42 | :update => "content", |
|
43 | :update => "content", | |
43 | }, :class => 'icon icon-reload' if @query.new_record? %> |
|
44 | }, :class => 'icon icon-reload' if @query.new_record? %> | |
44 | </p> |
|
45 | </p> | |
45 | <% end %> |
|
46 | <% end %> | |
46 |
|
47 | |||
47 | <%= error_messages_for 'query' %> |
|
48 | <%= error_messages_for 'query' %> | |
48 | <% if @query.valid? %> |
|
49 | <% if @query.valid? %> | |
49 | <% zoom = 1 |
|
50 | <% zoom = 1 | |
50 | @gantt.zoom.times { zoom = zoom * 2 } |
|
51 | @gantt.zoom.times { zoom = zoom * 2 } | |
51 |
|
52 | |||
52 | subject_width = 330 |
|
53 | subject_width = 330 | |
53 | header_heigth = 18 |
|
54 | header_heigth = 18 | |
54 |
|
55 | |||
55 | headers_height = header_heigth |
|
56 | headers_height = header_heigth | |
56 | show_weeks = false |
|
57 | show_weeks = false | |
57 | show_days = false |
|
58 | show_days = false | |
58 |
|
59 | |||
59 | if @gantt.zoom >1 |
|
60 | if @gantt.zoom >1 | |
60 | show_weeks = true |
|
61 | show_weeks = true | |
61 | headers_height = 2*header_heigth |
|
62 | headers_height = 2*header_heigth | |
62 | if @gantt.zoom > 2 |
|
63 | if @gantt.zoom > 2 | |
63 | show_days = true |
|
64 | show_days = true | |
64 | headers_height = 3*header_heigth |
|
65 | headers_height = 3*header_heigth | |
65 | end |
|
66 | end | |
66 | end |
|
67 | end | |
67 |
|
68 | |||
68 | g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom |
|
69 | g_width = (@gantt.date_to - @gantt.date_from + 1)*zoom | |
69 | g_height = [(20 * @gantt.events.length + 6)+150, 206].max |
|
70 | g_height = [(20 * @gantt.events.length + 6)+150, 206].max | |
70 | t_height = g_height + headers_height |
|
71 | t_height = g_height + headers_height | |
71 | %> |
|
72 | %> | |
72 |
|
73 | |||
73 | <table width="100%" style="border:0; border-collapse: collapse;"> |
|
74 | <table width="100%" style="border:0; border-collapse: collapse;"> | |
74 | <tr> |
|
75 | <tr> | |
75 | <td style="width:<%= subject_width %>px; padding:0px;"> |
|
76 | <td style="width:<%= subject_width %>px; padding:0px;"> | |
76 |
|
77 | |||
77 | <div style="position:relative;height:<%= t_height + 24 %>px;width:<%= subject_width + 1 %>px;"> |
|
78 | <div style="position:relative;height:<%= t_height + 24 %>px;width:<%= subject_width + 1 %>px;"> | |
78 | <div style="right:-2px;width:<%= subject_width %>px;height:<%= headers_height %>px;background: #eee;" class="gantt_hdr"></div> |
|
79 | <div style="right:-2px;width:<%= subject_width %>px;height:<%= headers_height %>px;background: #eee;" class="gantt_hdr"></div> | |
79 | <div style="right:-2px;width:<%= subject_width %>px;height:<%= t_height %>px;border-left: 1px solid #c0c0c0;overflow:hidden;" class="gantt_hdr"></div> |
|
80 | <div style="right:-2px;width:<%= subject_width %>px;height:<%= t_height %>px;border-left: 1px solid #c0c0c0;overflow:hidden;" class="gantt_hdr"></div> | |
80 | <% |
|
81 | <% | |
81 | # |
|
82 | # | |
82 | # Tasks subjects |
|
83 | # Tasks subjects | |
83 | # |
|
84 | # | |
84 | top = headers_height + 8 |
|
85 | top = headers_height + 8 | |
85 | @gantt.events.each do |i| %> |
|
86 | @gantt.events.each do |i| %> | |
86 | <div style="position: absolute;line-height:1.2em;height:16px;top:<%= top %>px;left:4px;overflow:hidden;"><small> |
|
87 | <div style="position: absolute;line-height:1.2em;height:16px;top:<%= top %>px;left:4px;overflow:hidden;"><small> | |
87 | <% if i.is_a? Issue %> |
|
88 | <% if i.is_a? Issue %> | |
88 | <%= h("#{i.project} -") unless @project && @project == i.project %> |
|
89 | <%= h("#{i.project} -") unless @project && @project == i.project %> | |
89 | <%= link_to_issue i %>: <%=h i.subject %> |
|
90 | <%= link_to_issue i %>: <%=h i.subject %> | |
90 | <% else %> |
|
91 | <% else %> | |
91 | <span class="icon icon-package"> |
|
92 | <span class="icon icon-package"> | |
92 | <%= h("#{i.project} -") unless @project && @project == i.project %> |
|
93 | <%= h("#{i.project} -") unless @project && @project == i.project %> | |
93 | <%= link_to_version i %> |
|
94 | <%= link_to_version i %> | |
94 | </span> |
|
95 | </span> | |
95 | <% end %> |
|
96 | <% end %> | |
96 | </small></div> |
|
97 | </small></div> | |
97 | <% top = top + 20 |
|
98 | <% top = top + 20 | |
98 | end %> |
|
99 | end %> | |
99 | </div> |
|
100 | </div> | |
100 | </td> |
|
101 | </td> | |
101 | <td> |
|
102 | <td> | |
102 |
|
103 | |||
103 | <div style="position:relative;height:<%= t_height + 24 %>px;overflow:auto;"> |
|
104 | <div style="position:relative;height:<%= t_height + 24 %>px;overflow:auto;"> | |
104 | <div style="width:<%= g_width-1 %>px;height:<%= headers_height %>px;background: #eee;" class="gantt_hdr"> </div> |
|
105 | <div style="width:<%= g_width-1 %>px;height:<%= headers_height %>px;background: #eee;" class="gantt_hdr"> </div> | |
105 | <% |
|
106 | <% | |
106 | # |
|
107 | # | |
107 | # Months headers |
|
108 | # Months headers | |
108 | # |
|
109 | # | |
109 | month_f = @gantt.date_from |
|
110 | month_f = @gantt.date_from | |
110 | left = 0 |
|
111 | left = 0 | |
111 | height = (show_weeks ? header_heigth : header_heigth + g_height) |
|
112 | height = (show_weeks ? header_heigth : header_heigth + g_height) | |
112 | @gantt.months.times do |
|
113 | @gantt.months.times do | |
113 | width = ((month_f >> 1) - month_f) * zoom - 1 |
|
114 | width = ((month_f >> 1) - month_f) * zoom - 1 | |
114 | %> |
|
115 | %> | |
115 | <div style="left:<%= left %>px;width:<%= width %>px;height:<%= height %>px;" class="gantt_hdr"> |
|
116 | <div style="left:<%= left %>px;width:<%= width %>px;height:<%= height %>px;" class="gantt_hdr"> | |
116 | <%= link_to "#{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}"%> |
|
117 | <%= link_to "#{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}"%> | |
117 | </div> |
|
118 | </div> | |
118 | <% |
|
119 | <% | |
119 | left = left + width + 1 |
|
120 | left = left + width + 1 | |
120 | month_f = month_f >> 1 |
|
121 | month_f = month_f >> 1 | |
121 | end %> |
|
122 | end %> | |
122 |
|
123 | |||
123 | <% |
|
124 | <% | |
124 | # |
|
125 | # | |
125 | # Weeks headers |
|
126 | # Weeks headers | |
126 | # |
|
127 | # | |
127 | if show_weeks |
|
128 | if show_weeks | |
128 | left = 0 |
|
129 | left = 0 | |
129 | height = (show_days ? header_heigth-1 : header_heigth-1 + g_height) |
|
130 | height = (show_days ? header_heigth-1 : header_heigth-1 + g_height) | |
130 | if @gantt.date_from.cwday == 1 |
|
131 | if @gantt.date_from.cwday == 1 | |
131 | # @date_from is monday |
|
132 | # @date_from is monday | |
132 | week_f = @gantt.date_from |
|
133 | week_f = @gantt.date_from | |
133 | else |
|
134 | else | |
134 | # find next monday after @date_from |
|
135 | # find next monday after @date_from | |
135 | week_f = @gantt.date_from + (7 - @gantt.date_from.cwday + 1) |
|
136 | week_f = @gantt.date_from + (7 - @gantt.date_from.cwday + 1) | |
136 | width = (7 - @gantt.date_from.cwday + 1) * zoom-1 |
|
137 | width = (7 - @gantt.date_from.cwday + 1) * zoom-1 | |
137 | %> |
|
138 | %> | |
138 | <div style="left:<%= left %>px;top:19px;width:<%= width %>px;height:<%= height %>px;" class="gantt_hdr"> </div> |
|
139 | <div style="left:<%= left %>px;top:19px;width:<%= width %>px;height:<%= height %>px;" class="gantt_hdr"> </div> | |
139 | <% |
|
140 | <% | |
140 | left = left + width+1 |
|
141 | left = left + width+1 | |
141 | end %> |
|
142 | end %> | |
142 | <% |
|
143 | <% | |
143 | while week_f <= @gantt.date_to |
|
144 | while week_f <= @gantt.date_to | |
144 | width = (week_f + 6 <= @gantt.date_to) ? 7 * zoom -1 : (@gantt.date_to - week_f + 1) * zoom-1 |
|
145 | width = (week_f + 6 <= @gantt.date_to) ? 7 * zoom -1 : (@gantt.date_to - week_f + 1) * zoom-1 | |
145 | %> |
|
146 | %> | |
146 | <div style="left:<%= left %>px;top:19px;width:<%= width %>px;height:<%= height %>px;" class="gantt_hdr"> |
|
147 | <div style="left:<%= left %>px;top:19px;width:<%= width %>px;height:<%= height %>px;" class="gantt_hdr"> | |
147 | <small><%= week_f.cweek if width >= 16 %></small> |
|
148 | <small><%= week_f.cweek if width >= 16 %></small> | |
148 | </div> |
|
149 | </div> | |
149 | <% |
|
150 | <% | |
150 | left = left + width+1 |
|
151 | left = left + width+1 | |
151 | week_f = week_f+7 |
|
152 | week_f = week_f+7 | |
152 | end |
|
153 | end | |
153 | end %> |
|
154 | end %> | |
154 |
|
155 | |||
155 | <% |
|
156 | <% | |
156 | # |
|
157 | # | |
157 | # Days headers |
|
158 | # Days headers | |
158 | # |
|
159 | # | |
159 | if show_days |
|
160 | if show_days | |
160 | left = 0 |
|
161 | left = 0 | |
161 | height = g_height + header_heigth - 1 |
|
162 | height = g_height + header_heigth - 1 | |
162 | wday = @gantt.date_from.cwday |
|
163 | wday = @gantt.date_from.cwday | |
163 | (@gantt.date_to - @gantt.date_from + 1).to_i.times do |
|
164 | (@gantt.date_to - @gantt.date_from + 1).to_i.times do | |
164 | width = zoom - 1 |
|
165 | width = zoom - 1 | |
165 | %> |
|
166 | %> | |
166 | <div style="left:<%= left %>px;top:37px;width:<%= width %>px;height:<%= height %>px;font-size:0.7em;<%= "background:#f1f1f1;" if wday > 5 %>" class="gantt_hdr"> |
|
167 | <div style="left:<%= left %>px;top:37px;width:<%= width %>px;height:<%= height %>px;font-size:0.7em;<%= "background:#f1f1f1;" if wday > 5 %>" class="gantt_hdr"> | |
167 | <%= day_name(wday).first %> |
|
168 | <%= day_name(wday).first %> | |
168 | </div> |
|
169 | </div> | |
169 | <% |
|
170 | <% | |
170 | left = left + width+1 |
|
171 | left = left + width+1 | |
171 | wday = wday + 1 |
|
172 | wday = wday + 1 | |
172 | wday = 1 if wday > 7 |
|
173 | wday = 1 if wday > 7 | |
173 | end |
|
174 | end | |
174 | end %> |
|
175 | end %> | |
175 |
|
176 | |||
176 | <% |
|
177 | <% | |
177 | # |
|
178 | # | |
178 | # Tasks |
|
179 | # Tasks | |
179 | # |
|
180 | # | |
180 | top = headers_height + 10 |
|
181 | top = headers_height + 10 | |
181 | @gantt.events.each do |i| |
|
182 | @gantt.events.each do |i| | |
182 | if i.is_a? Issue |
|
183 | if i.is_a? Issue | |
183 | i_start_date = (i.start_date >= @gantt.date_from ? i.start_date : @gantt.date_from ) |
|
184 | i_start_date = (i.start_date >= @gantt.date_from ? i.start_date : @gantt.date_from ) | |
184 | i_end_date = (i.due_before <= @gantt.date_to ? i.due_before : @gantt.date_to ) |
|
185 | i_end_date = (i.due_before <= @gantt.date_to ? i.due_before : @gantt.date_to ) | |
185 |
|
186 | |||
186 | i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor |
|
187 | i_done_date = i.start_date + ((i.due_before - i.start_date+1)*i.done_ratio/100).floor | |
187 | i_done_date = (i_done_date <= @gantt.date_from ? @gantt.date_from : i_done_date ) |
|
188 | i_done_date = (i_done_date <= @gantt.date_from ? @gantt.date_from : i_done_date ) | |
188 | i_done_date = (i_done_date >= @gantt.date_to ? @gantt.date_to : i_done_date ) |
|
189 | i_done_date = (i_done_date >= @gantt.date_to ? @gantt.date_to : i_done_date ) | |
189 |
|
190 | |||
190 | i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today |
|
191 | i_late_date = [i_end_date, Date.today].min if i_start_date < Date.today | |
191 |
|
192 | |||
192 | i_left = ((i_start_date - @gantt.date_from)*zoom).floor |
|
193 | i_left = ((i_start_date - @gantt.date_from)*zoom).floor | |
193 | i_width = ((i_end_date - i_start_date + 1)*zoom).floor - 2 # total width of the issue (- 2 for left and right borders) |
|
194 | i_width = ((i_end_date - i_start_date + 1)*zoom).floor - 2 # total width of the issue (- 2 for left and right borders) | |
194 | d_width = ((i_done_date - i_start_date)*zoom).floor - 2 # done width |
|
195 | d_width = ((i_done_date - i_start_date)*zoom).floor - 2 # done width | |
195 | l_width = i_late_date ? ((i_late_date - i_start_date+1)*zoom).floor - 2 : 0 # delay width |
|
196 | l_width = i_late_date ? ((i_late_date - i_start_date+1)*zoom).floor - 2 : 0 # delay width | |
196 | %> |
|
197 | %> | |
197 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= i_width %>px;" class="task task_todo"> </div> |
|
198 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= i_width %>px;" class="task task_todo"> </div> | |
198 | <% if l_width > 0 %> |
|
199 | <% if l_width > 0 %> | |
199 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= l_width %>px;" class="task task_late"> </div> |
|
200 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= l_width %>px;" class="task task_late"> </div> | |
200 | <% end %> |
|
201 | <% end %> | |
201 | <% if d_width > 0 %> |
|
202 | <% if d_width > 0 %> | |
202 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= d_width %>px;" class="task task_done"> </div> |
|
203 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:<%= d_width %>px;" class="task task_done"> </div> | |
203 | <% end %> |
|
204 | <% end %> | |
204 | <div style="top:<%= top %>px;left:<%= i_left + i_width + 5 %>px;background:#fff;" class="task"> |
|
205 | <div style="top:<%= top %>px;left:<%= i_left + i_width + 5 %>px;background:#fff;" class="task"> | |
205 | <%= i.status.name %> |
|
206 | <%= i.status.name %> | |
206 | <%= (i.done_ratio).to_i %>% |
|
207 | <%= (i.done_ratio).to_i %>% | |
207 | </div> |
|
208 | </div> | |
208 | <div class="tooltip" style="position: absolute;top:<%= top %>px;left:<%= i_left %>px;width:<%= i_width %>px;height:12px;"> |
|
209 | <div class="tooltip" style="position: absolute;top:<%= top %>px;left:<%= i_left %>px;width:<%= i_width %>px;height:12px;"> | |
209 | <span class="tip"> |
|
210 | <span class="tip"> | |
210 | <%= render_issue_tooltip i %> |
|
211 | <%= render_issue_tooltip i %> | |
211 | </span></div> |
|
212 | </span></div> | |
212 | <% else |
|
213 | <% else | |
213 | i_left = ((i.start_date - @gantt.date_from)*zoom).floor |
|
214 | i_left = ((i.start_date - @gantt.date_from)*zoom).floor | |
214 | %> |
|
215 | %> | |
215 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:15px;" class="task milestone"> </div> |
|
216 | <div style="top:<%= top %>px;left:<%= i_left %>px;width:15px;" class="task milestone"> </div> | |
216 | <div style="top:<%= top %>px;left:<%= i_left + 12 %>px;background:#fff;" class="task"> |
|
217 | <div style="top:<%= top %>px;left:<%= i_left + 12 %>px;background:#fff;" class="task"> | |
217 | <%= h("#{i.project} -") unless @project && @project == i.project %> |
|
218 | <%= h("#{i.project} -") unless @project && @project == i.project %> | |
218 | <strong><%=h i %></strong> |
|
219 | <strong><%=h i %></strong> | |
219 | </div> |
|
220 | </div> | |
220 | <% end %> |
|
221 | <% end %> | |
221 | <% top = top + 20 |
|
222 | <% top = top + 20 | |
222 | end %> |
|
223 | end %> | |
223 |
|
224 | |||
224 | <% |
|
225 | <% | |
225 | # |
|
226 | # | |
226 | # Today red line (excluded from cache) |
|
227 | # Today red line (excluded from cache) | |
227 | # |
|
228 | # | |
228 | if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %> |
|
229 | if Date.today >= @gantt.date_from and Date.today <= @gantt.date_to %> | |
229 | <div style="position: absolute;height:<%= g_height %>px;top:<%= headers_height + 1 %>px;left:<%= ((Date.today-@gantt.date_from+1)*zoom).floor()-1 %>px;width:10px;border-left: 1px dashed red;"> </div> |
|
230 | <div style="position: absolute;height:<%= g_height %>px;top:<%= headers_height + 1 %>px;left:<%= ((Date.today-@gantt.date_from+1)*zoom).floor()-1 %>px;width:10px;border-left: 1px dashed red;"> </div> | |
230 | <% end %> |
|
231 | <% end %> | |
231 |
|
232 | |||
232 | </div> |
|
233 | </div> | |
233 | </td> |
|
234 | </td> | |
234 | </tr> |
|
235 | </tr> | |
235 | </table> |
|
236 | </table> | |
236 |
|
237 | |||
237 | <table width="100%"> |
|
238 | <table width="100%"> | |
238 | <tr> |
|
239 | <tr> | |
239 | <td align="left"><%= link_to_remote ('« ' + l(:label_previous)), {:url => @gantt.params_previous, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_previous)} %></td> |
|
240 | <td align="left"><%= link_to_remote ('« ' + l(:label_previous)), {:url => @gantt.params_previous, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_previous)} %></td> | |
240 | <td align="right"><%= link_to_remote (l(:label_next) + ' »'), {:url => @gantt.params_next, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_next)} %></td> |
|
241 | <td align="right"><%= link_to_remote (l(:label_next) + ' »'), {:url => @gantt.params_next, :update => 'content', :complete => 'window.scrollTo(0,0)'}, {:href => url_for(@gantt.params_next)} %></td> | |
241 | </tr> |
|
242 | </tr> | |
242 | </table> |
|
243 | </table> | |
243 |
|
244 | |||
244 | <% other_formats_links do |f| %> |
|
245 | <% other_formats_links do |f| %> | |
245 | <%= f.link_to 'PDF', :url => @gantt.params %> |
|
246 | <%= f.link_to 'PDF', :url => @gantt.params %> | |
246 | <%= f.link_to('PNG', :url => @gantt.params) if @gantt.respond_to?('to_image') %> |
|
247 | <%= f.link_to('PNG', :url => @gantt.params) if @gantt.respond_to?('to_image') %> | |
247 | <% end %> |
|
248 | <% end %> | |
248 | <% end # query.valid? %> |
|
249 | <% end # query.valid? %> | |
249 |
|
250 | |||
250 | <% content_for :sidebar do %> |
|
251 | <% content_for :sidebar do %> | |
251 | <%= render :partial => 'issues/sidebar' %> |
|
252 | <%= render :partial => 'issues/sidebar' %> | |
252 | <% end %> |
|
253 | <% end %> | |
253 |
|
254 | |||
254 | <% html_title(l(:label_gantt)) -%> |
|
255 | <% html_title(l(:label_gantt)) -%> |
@@ -1,74 +1,82 | |||||
1 | <% if @query.new_record? %> |
|
1 | <% if @query.new_record? %> | |
2 | <h2><%=l(:label_issue_plural)%></h2> |
|
2 | <h2><%=l(:label_issue_plural)%></h2> | |
3 | <% html_title(l(:label_issue_plural)) %> |
|
3 | <% html_title(l(:label_issue_plural)) %> | |
4 |
|
4 | |||
5 | <% form_tag({ :controller => 'queries', :action => 'new' }, :id => 'query_form') do %> |
|
5 | <% form_tag({ :controller => 'queries', :action => 'new' }, :id => 'query_form') do %> | |
6 | <%= hidden_field_tag('project_id', @project.to_param) if @project %> |
|
6 | <%= hidden_field_tag('project_id', @project.to_param) if @project %> | |
7 | <div id="query_form_content"> |
|
7 | <div id="query_form_content"> | |
8 | <fieldset id="filters"><legend><%= l(:label_filter_plural) %></legend> |
|
8 | <fieldset id="filters" class="collapsible"> | |
9 | <%= render :partial => 'queries/filters', :locals => {:query => @query} %> |
|
9 | <legend onclick="toggleFieldset(this);"><%= l(:label_filter_plural) %></legend> | |
|
10 | <div> | |||
|
11 | <%= render :partial => 'queries/filters', :locals => {:query => @query} %> | |||
|
12 | </div> | |||
10 | </fieldset> |
|
13 | </fieldset> | |
11 | <p><%= l(:field_group_by) %> |
|
14 | <fieldset class="collapsible collapsed"> | |
12 | <%= select_tag('group_by', options_for_select([[]] + @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, @query.group_by)) %></p> |
|
15 | <legend onclick="toggleFieldset(this);">Options</legend> | |
|
16 | <div style="display: none;"> | |||
|
17 | <%= l(:field_group_by) %> | |||
|
18 | <%= select_tag('group_by', options_for_select([[]] + @query.groupable_columns.collect {|c| [c.caption, c.name.to_s]}, @query.group_by)) %></p> | |||
|
19 | </div> | |||
|
20 | </fieldset> | |||
13 | </div> |
|
21 | </div> | |
14 | <p class="buttons"> |
|
22 | <p class="buttons"> | |
15 |
|
23 | |||
16 | <%= link_to_remote l(:button_apply), |
|
24 | <%= link_to_remote l(:button_apply), | |
17 | { :url => { :set_filter => 1 }, |
|
25 | { :url => { :set_filter => 1 }, | |
18 | :update => "content", |
|
26 | :update => "content", | |
19 | :with => "Form.serialize('query_form')" |
|
27 | :with => "Form.serialize('query_form')" | |
20 | }, :class => 'icon icon-checked' %> |
|
28 | }, :class => 'icon icon-checked' %> | |
21 |
|
29 | |||
22 | <%= link_to_remote l(:button_clear), |
|
30 | <%= link_to_remote l(:button_clear), | |
23 | { :url => { :set_filter => 1, :project_id => @project }, |
|
31 | { :url => { :set_filter => 1, :project_id => @project }, | |
24 | :method => :get, |
|
32 | :method => :get, | |
25 | :update => "content", |
|
33 | :update => "content", | |
26 | }, :class => 'icon icon-reload' %> |
|
34 | }, :class => 'icon icon-reload' %> | |
27 |
|
35 | |||
28 | <% if User.current.allowed_to?(:save_queries, @project, :global => true) %> |
|
36 | <% if User.current.allowed_to?(:save_queries, @project, :global => true) %> | |
29 | <%= link_to l(:button_save), {}, :onclick => "$('query_form').submit(); return false;", :class => 'icon icon-save' %> |
|
37 | <%= link_to l(:button_save), {}, :onclick => "$('query_form').submit(); return false;", :class => 'icon icon-save' %> | |
30 | <% end %> |
|
38 | <% end %> | |
31 | </p> |
|
39 | </p> | |
32 | <% end %> |
|
40 | <% end %> | |
33 | <% else %> |
|
41 | <% else %> | |
34 | <div class="contextual"> |
|
42 | <div class="contextual"> | |
35 | <% if @query.editable_by?(User.current) %> |
|
43 | <% if @query.editable_by?(User.current) %> | |
36 | <%= link_to l(:button_edit), {:controller => 'queries', :action => 'edit', :id => @query}, :class => 'icon icon-edit' %> |
|
44 | <%= link_to l(:button_edit), {:controller => 'queries', :action => 'edit', :id => @query}, :class => 'icon icon-edit' %> | |
37 | <%= link_to l(:button_delete), {:controller => 'queries', :action => 'destroy', :id => @query}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> |
|
45 | <%= link_to l(:button_delete), {:controller => 'queries', :action => 'destroy', :id => @query}, :confirm => l(:text_are_you_sure), :method => :post, :class => 'icon icon-del' %> | |
38 | <% end %> |
|
46 | <% end %> | |
39 | </div> |
|
47 | </div> | |
40 | <h2><%=h @query.name %></h2> |
|
48 | <h2><%=h @query.name %></h2> | |
41 | <div id="query_form"></div> |
|
49 | <div id="query_form"></div> | |
42 | <% html_title @query.name %> |
|
50 | <% html_title @query.name %> | |
43 | <% end %> |
|
51 | <% end %> | |
44 |
|
52 | |||
45 | <%= error_messages_for 'query' %> |
|
53 | <%= error_messages_for 'query' %> | |
46 | <% if @query.valid? %> |
|
54 | <% if @query.valid? %> | |
47 | <% if @issues.empty? %> |
|
55 | <% if @issues.empty? %> | |
48 | <p class="nodata"><%= l(:label_no_data) %></p> |
|
56 | <p class="nodata"><%= l(:label_no_data) %></p> | |
49 | <% else %> |
|
57 | <% else %> | |
50 | <%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %> |
|
58 | <%= render :partial => 'issues/list', :locals => {:issues => @issues, :query => @query} %> | |
51 | <p class="pagination"><%= pagination_links_full @issue_pages, @issue_count %></p> |
|
59 | <p class="pagination"><%= pagination_links_full @issue_pages, @issue_count %></p> | |
52 | <% end %> |
|
60 | <% end %> | |
53 |
|
61 | |||
54 | <% other_formats_links do |f| %> |
|
62 | <% other_formats_links do |f| %> | |
55 | <%= f.link_to 'Atom', :url => { :project_id => @project, :query_id => (@query.new_record? ? nil : @query), :key => User.current.rss_key } %> |
|
63 | <%= f.link_to 'Atom', :url => { :project_id => @project, :query_id => (@query.new_record? ? nil : @query), :key => User.current.rss_key } %> | |
56 | <%= f.link_to 'CSV', :url => { :project_id => @project } %> |
|
64 | <%= f.link_to 'CSV', :url => { :project_id => @project } %> | |
57 | <%= f.link_to 'PDF', :url => { :project_id => @project } %> |
|
65 | <%= f.link_to 'PDF', :url => { :project_id => @project } %> | |
58 | <% end %> |
|
66 | <% end %> | |
59 |
|
67 | |||
60 | <% end %> |
|
68 | <% end %> | |
61 |
|
69 | |||
62 | <% content_for :sidebar do %> |
|
70 | <% content_for :sidebar do %> | |
63 | <%= render :partial => 'issues/sidebar' %> |
|
71 | <%= render :partial => 'issues/sidebar' %> | |
64 | <% end %> |
|
72 | <% end %> | |
65 |
|
73 | |||
66 | <% content_for :header_tags do %> |
|
74 | <% content_for :header_tags do %> | |
67 | <%= auto_discovery_link_tag(:atom, {:query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_issue_plural)) %> |
|
75 | <%= auto_discovery_link_tag(:atom, {:query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_issue_plural)) %> | |
68 | <%= auto_discovery_link_tag(:atom, {:action => 'changes', :query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_changes_details)) %> |
|
76 | <%= auto_discovery_link_tag(:atom, {:action => 'changes', :query_id => @query, :format => 'atom', :page => nil, :key => User.current.rss_key}, :title => l(:label_changes_details)) %> | |
69 | <%= javascript_include_tag 'context_menu' %> |
|
77 | <%= javascript_include_tag 'context_menu' %> | |
70 | <%= stylesheet_link_tag 'context_menu' %> |
|
78 | <%= stylesheet_link_tag 'context_menu' %> | |
71 | <% end %> |
|
79 | <% end %> | |
72 |
|
80 | |||
73 | <div id="context-menu" style="display: none;"></div> |
|
81 | <div id="context-menu" style="display: none;"></div> | |
74 | <%= javascript_tag "new ContextMenu('#{url_for(:controller => 'issues', :action => 'context_menu')}')" %> |
|
82 | <%= javascript_tag "new ContextMenu('#{url_for(:controller => 'issues', :action => 'context_menu')}')" %> |
@@ -1,26 +1,35 | |||||
1 | <fieldset id="filters"><legend><%= l(:label_date_range) %></legend> |
|
1 | <fieldset id="date-range" class="collapsible"> | |
|
2 | <legend onclick="toggleFieldset(this);"><%= l(:label_date_range) %></legend> | |||
|
3 | <div> | |||
2 | <p> |
|
4 | <p> | |
3 | <%= radio_button_tag 'period_type', '1', !@free_period %> |
|
5 | <%= radio_button_tag 'period_type', '1', !@free_period %> | |
4 | <%= select_tag 'period', options_for_period_select(params[:period]), |
|
6 | <%= select_tag 'period', options_for_period_select(params[:period]), | |
5 | :onchange => 'this.form.onsubmit();', |
|
7 | :onchange => 'this.form.onsubmit();', | |
6 | :onfocus => '$("period_type_1").checked = true;' %> |
|
8 | :onfocus => '$("period_type_1").checked = true;' %> | |
7 | </p> |
|
9 | </p> | |
8 | <p> |
|
10 | <p> | |
9 | <%= radio_button_tag 'period_type', '2', @free_period %> |
|
11 | <%= radio_button_tag 'period_type', '2', @free_period %> | |
10 | <span onclick="$('period_type_2').checked = true;"> |
|
12 | <span onclick="$('period_type_2').checked = true;"> | |
11 | <%= l(:label_date_from_to, :start => (text_field_tag('from', @from, :size => 10) + calendar_for('from')), |
|
13 | <%= l(:label_date_from_to, :start => (text_field_tag('from', @from, :size => 10) + calendar_for('from')), | |
12 | :end => (text_field_tag('to', @to, :size => 10) + calendar_for('to'))) %> |
|
14 | :end => (text_field_tag('to', @to, :size => 10) + calendar_for('to'))) %> | |
13 | </span> |
|
15 | </span> | |
14 | <%= submit_tag l(:button_apply), :name => nil %> |
|
|||
15 | </p> |
|
16 | </p> | |
|
17 | </div> | |||
16 | </fieldset> |
|
18 | </fieldset> | |
|
19 | <p class="buttons"> | |||
|
20 | <%= link_to_remote l(:button_apply), | |||
|
21 | { :url => { }, | |||
|
22 | :update => "content", | |||
|
23 | :with => "Form.serialize('query_form')" | |||
|
24 | }, :class => 'icon icon-checked' %> | |||
|
25 | </p> | |||
17 |
|
26 | |||
18 | <div class="tabs"> |
|
27 | <div class="tabs"> | |
19 | <% url_params = @free_period ? { :from => @from, :to => @to } : { :period => params[:period] } %> |
|
28 | <% url_params = @free_period ? { :from => @from, :to => @to } : { :period => params[:period] } %> | |
20 | <ul> |
|
29 | <ul> | |
21 | <li><%= link_to(l(:label_details), url_params.merge({:controller => 'timelog', :action => 'details', :project_id => @project }), |
|
30 | <li><%= link_to(l(:label_details), url_params.merge({:controller => 'timelog', :action => 'details', :project_id => @project }), | |
22 | :class => (@controller.action_name == 'details' ? 'selected' : nil)) %></li> |
|
31 | :class => (@controller.action_name == 'details' ? 'selected' : nil)) %></li> | |
23 | <li><%= link_to(l(:label_report), url_params.merge({:controller => 'timelog', :action => 'report', :project_id => @project}), |
|
32 | <li><%= link_to(l(:label_report), url_params.merge({:controller => 'timelog', :action => 'report', :project_id => @project}), | |
24 | :class => (@controller.action_name == 'report' ? 'selected' : nil)) %></li> |
|
33 | :class => (@controller.action_name == 'report' ? 'selected' : nil)) %></li> | |
25 | </ul> |
|
34 | </ul> | |
26 | </div> |
|
35 | </div> |
@@ -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-add' %> |
|
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, :id => 'query_form'}, :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]) if @project %> |
|
12 | <%= hidden_field_tag('project_id', params[:project_id]) if @project %> | |
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(l_hours(@total_hours)) %></p> |
|
18 | <p><%= l(:label_total) %>: <%= html_hours(l_hours(@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-add' %> |
|
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, :id => 'query_form'}, :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]) if @project %> |
|
14 | <%= hidden_field_tag('project_id', params[:project_id]) if @project %> | |
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_or_humanize(@available_criterias[k][:label]), k]}), |
|
23 | <%= l(:button_add) %>: <%= select_tag('criterias[]', options_for_select([[]] + (@available_criterias.keys - @criterias).collect{|k| [l_or_humanize(@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(l_hours(@total_hours)) %></p> |
|
36 | <p><%= l(:label_total) %>: <%= html_hours(l_hours(@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_or_humanize(@available_criterias[criteria][:label]) %></th> |
|
44 | <th><%= l_or_humanize(@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,154 +1,160 | |||||
1 | /* redMine - project management software |
|
1 | /* redMine - project management software | |
2 | Copyright (C) 2006-2008 Jean-Philippe Lang */ |
|
2 | Copyright (C) 2006-2008 Jean-Philippe Lang */ | |
3 |
|
3 | |||
4 | function checkAll (id, checked) { |
|
4 | function checkAll (id, checked) { | |
5 | var els = Element.descendants(id); |
|
5 | var els = Element.descendants(id); | |
6 | for (var i = 0; i < els.length; i++) { |
|
6 | for (var i = 0; i < els.length; i++) { | |
7 | if (els[i].disabled==false) { |
|
7 | if (els[i].disabled==false) { | |
8 | els[i].checked = checked; |
|
8 | els[i].checked = checked; | |
9 | } |
|
9 | } | |
10 | } |
|
10 | } | |
11 | } |
|
11 | } | |
12 |
|
12 | |||
13 | function toggleCheckboxesBySelector(selector) { |
|
13 | function toggleCheckboxesBySelector(selector) { | |
14 | boxes = $$(selector); |
|
14 | boxes = $$(selector); | |
15 | var all_checked = true; |
|
15 | var all_checked = true; | |
16 | for (i = 0; i < boxes.length; i++) { if (boxes[i].checked == false) { all_checked = false; } } |
|
16 | for (i = 0; i < boxes.length; i++) { if (boxes[i].checked == false) { all_checked = false; } } | |
17 | for (i = 0; i < boxes.length; i++) { boxes[i].checked = !all_checked; } |
|
17 | for (i = 0; i < boxes.length; i++) { boxes[i].checked = !all_checked; } | |
18 | } |
|
18 | } | |
19 |
|
19 | |||
20 | function showAndScrollTo(id, focus) { |
|
20 | function showAndScrollTo(id, focus) { | |
21 | Element.show(id); |
|
21 | Element.show(id); | |
22 | if (focus!=null) { Form.Element.focus(focus); } |
|
22 | if (focus!=null) { Form.Element.focus(focus); } | |
23 | Element.scrollTo(id); |
|
23 | Element.scrollTo(id); | |
24 | } |
|
24 | } | |
25 |
|
25 | |||
26 | function toggleRowGroup(el) { |
|
26 | function toggleRowGroup(el) { | |
27 | var tr = Element.up(el, 'tr'); |
|
27 | var tr = Element.up(el, 'tr'); | |
28 | var n = Element.next(tr); |
|
28 | var n = Element.next(tr); | |
29 | tr.toggleClassName('open'); |
|
29 | tr.toggleClassName('open'); | |
30 | while (n != undefined && !n.hasClassName('group')) { |
|
30 | while (n != undefined && !n.hasClassName('group')) { | |
31 | Element.toggle(n); |
|
31 | Element.toggle(n); | |
32 | n = Element.next(n); |
|
32 | n = Element.next(n); | |
33 | } |
|
33 | } | |
34 | } |
|
34 | } | |
35 |
|
35 | |||
|
36 | function toggleFieldset(el) { | |||
|
37 | var fieldset = Element.up(el, 'fieldset'); | |||
|
38 | fieldset.toggleClassName('collapsed'); | |||
|
39 | Effect.toggle(fieldset.down('div'), 'slide', {duration:0.2}); | |||
|
40 | } | |||
|
41 | ||||
36 | var fileFieldCount = 1; |
|
42 | var fileFieldCount = 1; | |
37 |
|
43 | |||
38 | function addFileField() { |
|
44 | function addFileField() { | |
39 | if (fileFieldCount >= 10) return false |
|
45 | if (fileFieldCount >= 10) return false | |
40 | fileFieldCount++; |
|
46 | fileFieldCount++; | |
41 | var f = document.createElement("input"); |
|
47 | var f = document.createElement("input"); | |
42 | f.type = "file"; |
|
48 | f.type = "file"; | |
43 | f.name = "attachments[" + fileFieldCount + "][file]"; |
|
49 | f.name = "attachments[" + fileFieldCount + "][file]"; | |
44 | f.size = 30; |
|
50 | f.size = 30; | |
45 | var d = document.createElement("input"); |
|
51 | var d = document.createElement("input"); | |
46 | d.type = "text"; |
|
52 | d.type = "text"; | |
47 | d.name = "attachments[" + fileFieldCount + "][description]"; |
|
53 | d.name = "attachments[" + fileFieldCount + "][description]"; | |
48 | d.size = 60; |
|
54 | d.size = 60; | |
49 |
|
55 | |||
50 | p = document.getElementById("attachments_fields"); |
|
56 | p = document.getElementById("attachments_fields"); | |
51 | p.appendChild(document.createElement("br")); |
|
57 | p.appendChild(document.createElement("br")); | |
52 | p.appendChild(f); |
|
58 | p.appendChild(f); | |
53 | p.appendChild(d); |
|
59 | p.appendChild(d); | |
54 | } |
|
60 | } | |
55 |
|
61 | |||
56 | function showTab(name) { |
|
62 | function showTab(name) { | |
57 | var f = $$('div#content .tab-content'); |
|
63 | var f = $$('div#content .tab-content'); | |
58 | for(var i=0; i<f.length; i++){ |
|
64 | for(var i=0; i<f.length; i++){ | |
59 | Element.hide(f[i]); |
|
65 | Element.hide(f[i]); | |
60 | } |
|
66 | } | |
61 | var f = $$('div.tabs a'); |
|
67 | var f = $$('div.tabs a'); | |
62 | for(var i=0; i<f.length; i++){ |
|
68 | for(var i=0; i<f.length; i++){ | |
63 | Element.removeClassName(f[i], "selected"); |
|
69 | Element.removeClassName(f[i], "selected"); | |
64 | } |
|
70 | } | |
65 | Element.show('tab-content-' + name); |
|
71 | Element.show('tab-content-' + name); | |
66 | Element.addClassName('tab-' + name, "selected"); |
|
72 | Element.addClassName('tab-' + name, "selected"); | |
67 | return false; |
|
73 | return false; | |
68 | } |
|
74 | } | |
69 |
|
75 | |||
70 | function setPredecessorFieldsVisibility() { |
|
76 | function setPredecessorFieldsVisibility() { | |
71 | relationType = $('relation_relation_type'); |
|
77 | relationType = $('relation_relation_type'); | |
72 | if (relationType && relationType.value == "precedes") { |
|
78 | if (relationType && relationType.value == "precedes") { | |
73 | Element.show('predecessor_fields'); |
|
79 | Element.show('predecessor_fields'); | |
74 | } else { |
|
80 | } else { | |
75 | Element.hide('predecessor_fields'); |
|
81 | Element.hide('predecessor_fields'); | |
76 | } |
|
82 | } | |
77 | } |
|
83 | } | |
78 |
|
84 | |||
79 | function promptToRemote(text, param, url) { |
|
85 | function promptToRemote(text, param, url) { | |
80 | value = prompt(text + ':'); |
|
86 | value = prompt(text + ':'); | |
81 | if (value) { |
|
87 | if (value) { | |
82 | new Ajax.Request(url + '?' + param + '=' + encodeURIComponent(value), {asynchronous:true, evalScripts:true}); |
|
88 | new Ajax.Request(url + '?' + param + '=' + encodeURIComponent(value), {asynchronous:true, evalScripts:true}); | |
83 | return false; |
|
89 | return false; | |
84 | } |
|
90 | } | |
85 | } |
|
91 | } | |
86 |
|
92 | |||
87 | function collapseScmEntry(id) { |
|
93 | function collapseScmEntry(id) { | |
88 | var els = document.getElementsByClassName(id, 'browser'); |
|
94 | var els = document.getElementsByClassName(id, 'browser'); | |
89 | for (var i = 0; i < els.length; i++) { |
|
95 | for (var i = 0; i < els.length; i++) { | |
90 | if (els[i].hasClassName('open')) { |
|
96 | if (els[i].hasClassName('open')) { | |
91 | collapseScmEntry(els[i].id); |
|
97 | collapseScmEntry(els[i].id); | |
92 | } |
|
98 | } | |
93 | Element.hide(els[i]); |
|
99 | Element.hide(els[i]); | |
94 | } |
|
100 | } | |
95 | $(id).removeClassName('open'); |
|
101 | $(id).removeClassName('open'); | |
96 | } |
|
102 | } | |
97 |
|
103 | |||
98 | function expandScmEntry(id) { |
|
104 | function expandScmEntry(id) { | |
99 | var els = document.getElementsByClassName(id, 'browser'); |
|
105 | var els = document.getElementsByClassName(id, 'browser'); | |
100 | for (var i = 0; i < els.length; i++) { |
|
106 | for (var i = 0; i < els.length; i++) { | |
101 | Element.show(els[i]); |
|
107 | Element.show(els[i]); | |
102 | if (els[i].hasClassName('loaded') && !els[i].hasClassName('collapsed')) { |
|
108 | if (els[i].hasClassName('loaded') && !els[i].hasClassName('collapsed')) { | |
103 | expandScmEntry(els[i].id); |
|
109 | expandScmEntry(els[i].id); | |
104 | } |
|
110 | } | |
105 | } |
|
111 | } | |
106 | $(id).addClassName('open'); |
|
112 | $(id).addClassName('open'); | |
107 | } |
|
113 | } | |
108 |
|
114 | |||
109 | function scmEntryClick(id) { |
|
115 | function scmEntryClick(id) { | |
110 | el = $(id); |
|
116 | el = $(id); | |
111 | if (el.hasClassName('open')) { |
|
117 | if (el.hasClassName('open')) { | |
112 | collapseScmEntry(id); |
|
118 | collapseScmEntry(id); | |
113 | el.addClassName('collapsed'); |
|
119 | el.addClassName('collapsed'); | |
114 | return false; |
|
120 | return false; | |
115 | } else if (el.hasClassName('loaded')) { |
|
121 | } else if (el.hasClassName('loaded')) { | |
116 | expandScmEntry(id); |
|
122 | expandScmEntry(id); | |
117 | el.removeClassName('collapsed'); |
|
123 | el.removeClassName('collapsed'); | |
118 | return false; |
|
124 | return false; | |
119 | } |
|
125 | } | |
120 | if (el.hasClassName('loading')) { |
|
126 | if (el.hasClassName('loading')) { | |
121 | return false; |
|
127 | return false; | |
122 | } |
|
128 | } | |
123 | el.addClassName('loading'); |
|
129 | el.addClassName('loading'); | |
124 | return true; |
|
130 | return true; | |
125 | } |
|
131 | } | |
126 |
|
132 | |||
127 | function scmEntryLoaded(id) { |
|
133 | function scmEntryLoaded(id) { | |
128 | Element.addClassName(id, 'open'); |
|
134 | Element.addClassName(id, 'open'); | |
129 | Element.addClassName(id, 'loaded'); |
|
135 | Element.addClassName(id, 'loaded'); | |
130 | Element.removeClassName(id, 'loading'); |
|
136 | Element.removeClassName(id, 'loading'); | |
131 | } |
|
137 | } | |
132 |
|
138 | |||
133 | function randomKey(size) { |
|
139 | function randomKey(size) { | |
134 | var chars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); |
|
140 | var chars = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'); | |
135 | var key = ''; |
|
141 | var key = ''; | |
136 | for (i = 0; i < size; i++) { |
|
142 | for (i = 0; i < size; i++) { | |
137 | key += chars[Math.floor(Math.random() * chars.length)]; |
|
143 | key += chars[Math.floor(Math.random() * chars.length)]; | |
138 | } |
|
144 | } | |
139 | return key; |
|
145 | return key; | |
140 | } |
|
146 | } | |
141 |
|
147 | |||
142 | /* shows and hides ajax indicator */ |
|
148 | /* shows and hides ajax indicator */ | |
143 | Ajax.Responders.register({ |
|
149 | Ajax.Responders.register({ | |
144 | onCreate: function(){ |
|
150 | onCreate: function(){ | |
145 | if ($('ajax-indicator') && Ajax.activeRequestCount > 0) { |
|
151 | if ($('ajax-indicator') && Ajax.activeRequestCount > 0) { | |
146 | Element.show('ajax-indicator'); |
|
152 | Element.show('ajax-indicator'); | |
147 | } |
|
153 | } | |
148 | }, |
|
154 | }, | |
149 | onComplete: function(){ |
|
155 | onComplete: function(){ | |
150 | if ($('ajax-indicator') && Ajax.activeRequestCount == 0) { |
|
156 | if ($('ajax-indicator') && Ajax.activeRequestCount == 0) { | |
151 | Element.hide('ajax-indicator'); |
|
157 | Element.hide('ajax-indicator'); | |
152 | } |
|
158 | } | |
153 | } |
|
159 | } | |
154 | }); |
|
160 | }); |
@@ -1,798 +1,797 | |||||
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 | #header h1 a.ancestor { font-size: 80%; } |
|
28 | #header h1 a.ancestor { font-size: 80%; } | |
29 | #quick-search {float:right;} |
|
29 | #quick-search {float:right;} | |
30 |
|
30 | |||
31 | #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;} |
|
31 | #main-menu {position: absolute; bottom: 0px; left:6px; margin-right: -500px;} | |
32 | #main-menu ul {margin: 0; padding: 0;} |
|
32 | #main-menu ul {margin: 0; padding: 0;} | |
33 | #main-menu li { |
|
33 | #main-menu li { | |
34 | float:left; |
|
34 | float:left; | |
35 | list-style-type:none; |
|
35 | list-style-type:none; | |
36 | margin: 0px 2px 0px 0px; |
|
36 | margin: 0px 2px 0px 0px; | |
37 | padding: 0px 0px 0px 0px; |
|
37 | padding: 0px 0px 0px 0px; | |
38 | white-space:nowrap; |
|
38 | white-space:nowrap; | |
39 | } |
|
39 | } | |
40 | #main-menu li a { |
|
40 | #main-menu li a { | |
41 | display: block; |
|
41 | display: block; | |
42 | color: #fff; |
|
42 | color: #fff; | |
43 | text-decoration: none; |
|
43 | text-decoration: none; | |
44 | font-weight: bold; |
|
44 | font-weight: bold; | |
45 | margin: 0; |
|
45 | margin: 0; | |
46 | padding: 4px 10px 4px 10px; |
|
46 | padding: 4px 10px 4px 10px; | |
47 | } |
|
47 | } | |
48 | #main-menu li a:hover {background:#759FCF; color:#fff;} |
|
48 | #main-menu li a:hover {background:#759FCF; color:#fff;} | |
49 | #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;} |
|
49 | #main-menu li a.selected, #main-menu li a.selected:hover {background:#fff; color:#555;} | |
50 |
|
50 | |||
51 | #main {background-color:#EEEEEE;} |
|
51 | #main {background-color:#EEEEEE;} | |
52 |
|
52 | |||
53 | #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;} |
|
53 | #sidebar{ float: right; width: 17%; position: relative; z-index: 9; min-height: 600px; padding: 0; margin: 0;} | |
54 | * html #sidebar{ width: 17%; } |
|
54 | * html #sidebar{ width: 17%; } | |
55 | #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; } |
|
55 | #sidebar h3{ font-size: 14px; margin-top:14px; color: #666; } | |
56 | #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; } |
|
56 | #sidebar hr{ width: 100%; margin: 0 auto; height: 1px; background: #ccc; border: 0; } | |
57 | * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; } |
|
57 | * html #sidebar hr{ width: 95%; position: relative; left: -6px; color: #ccc; } | |
58 |
|
58 | |||
59 | #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; } |
|
59 | #content { width: 80%; background-color: #fff; margin: 0px; border-right: 1px solid #ddd; padding: 6px 10px 10px 10px; z-index: 10; } | |
60 | * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;} |
|
60 | * html #content{ width: 80%; padding-left: 0; margin-top: 0px; padding: 6px 10px 10px 10px;} | |
61 | html>body #content { min-height: 600px; } |
|
61 | html>body #content { min-height: 600px; } | |
62 | * html body #content { height: 600px; } /* IE */ |
|
62 | * html body #content { height: 600px; } /* IE */ | |
63 |
|
63 | |||
64 | #main.nosidebar #sidebar{ display: none; } |
|
64 | #main.nosidebar #sidebar{ display: none; } | |
65 | #main.nosidebar #content{ width: auto; border-right: 0; } |
|
65 | #main.nosidebar #content{ width: auto; border-right: 0; } | |
66 |
|
66 | |||
67 | #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;} |
|
67 | #footer {clear: both; border-top: 1px solid #bbb; font-size: 0.9em; color: #aaa; padding: 5px; text-align:center; background:#fff;} | |
68 |
|
68 | |||
69 | #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 {margin-top:5em; padding:1em; margin-left: auto; margin-right: auto; border: 2px solid #FDBF3B; background-color:#FFEBC1; } | |
70 | #login-form table td {padding: 6px;} |
|
70 | #login-form table td {padding: 6px;} | |
71 | #login-form label {font-weight: bold;} |
|
71 | #login-form label {font-weight: bold;} | |
72 | #login-form input#username, #login-form input#password { width: 300px; } |
|
72 | #login-form input#username, #login-form input#password { width: 300px; } | |
73 |
|
73 | |||
74 | input#openid_url { background: url(../images/openid-bg.gif) no-repeat; background-color: #fff; background-position: 0 50%; padding-left: 18px; } |
|
74 | input#openid_url { background: url(../images/openid-bg.gif) no-repeat; background-color: #fff; background-position: 0 50%; padding-left: 18px; } | |
75 |
|
75 | |||
76 | .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; } |
|
76 | .clear:after{ content: "."; display: block; height: 0; clear: both; visibility: hidden; } | |
77 |
|
77 | |||
78 | /***** Links *****/ |
|
78 | /***** Links *****/ | |
79 | a, a:link, a:visited{ color: #2A5685; text-decoration: none; } |
|
79 | a, a:link, a:visited{ color: #2A5685; text-decoration: none; } | |
80 | a:hover, a:active{ color: #c61a1a; text-decoration: underline;} |
|
80 | a:hover, a:active{ color: #c61a1a; text-decoration: underline;} | |
81 | a img{ border: 0; } |
|
81 | a img{ border: 0; } | |
82 |
|
82 | |||
83 | a.issue.closed, a.issue.closed:link, a.issue.closed:visited { color: #999; text-decoration: line-through; } |
|
83 | a.issue.closed, a.issue.closed:link, a.issue.closed:visited { color: #999; text-decoration: line-through; } | |
84 |
|
84 | |||
85 | /***** Tables *****/ |
|
85 | /***** Tables *****/ | |
86 | table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; } |
|
86 | table.list { border: 1px solid #e4e4e4; border-collapse: collapse; width: 100%; margin-bottom: 4px; } | |
87 | table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; } |
|
87 | table.list th { background-color:#EEEEEE; padding: 4px; white-space:nowrap; } | |
88 | table.list td { vertical-align: top; } |
|
88 | table.list td { vertical-align: top; } | |
89 | table.list td.id { width: 2%; text-align: center;} |
|
89 | table.list td.id { width: 2%; text-align: center;} | |
90 | table.list td.checkbox { width: 15px; padding: 0px;} |
|
90 | table.list td.checkbox { width: 15px; padding: 0px;} | |
91 | table.list td.buttons { width: 15%; white-space:nowrap; text-align: right; } |
|
91 | table.list td.buttons { width: 15%; white-space:nowrap; text-align: right; } | |
92 | table.list td.buttons a { padding-right: 0.6em; } |
|
92 | table.list td.buttons a { padding-right: 0.6em; } | |
93 |
|
93 | |||
94 | tr.project td.name a { padding-left: 16px; white-space:nowrap; } |
|
94 | tr.project td.name a { padding-left: 16px; white-space:nowrap; } | |
95 | tr.project.parent td.name a { background: url('../images/bullet_toggle_minus.png') no-repeat; } |
|
95 | tr.project.parent td.name a { background: url('../images/bullet_toggle_minus.png') no-repeat; } | |
96 |
|
96 | |||
97 | tr.issue { text-align: center; white-space: nowrap; } |
|
97 | tr.issue { text-align: center; white-space: nowrap; } | |
98 | tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; } |
|
98 | tr.issue td.subject, tr.issue td.category, td.assigned_to { white-space: normal; } | |
99 | tr.issue td.subject { text-align: left; } |
|
99 | tr.issue td.subject { text-align: left; } | |
100 | tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;} |
|
100 | tr.issue td.done_ratio table.progress { margin-left:auto; margin-right: auto;} | |
101 |
|
101 | |||
102 | tr.entry { border: 1px solid #f8f8f8; } |
|
102 | tr.entry { border: 1px solid #f8f8f8; } | |
103 | tr.entry td { white-space: nowrap; } |
|
103 | tr.entry td { white-space: nowrap; } | |
104 | tr.entry td.filename { width: 30%; } |
|
104 | tr.entry td.filename { width: 30%; } | |
105 | tr.entry td.size { text-align: right; font-size: 90%; } |
|
105 | tr.entry td.size { text-align: right; font-size: 90%; } | |
106 | tr.entry td.revision, tr.entry td.author { text-align: center; } |
|
106 | tr.entry td.revision, tr.entry td.author { text-align: center; } | |
107 | tr.entry td.age { text-align: right; } |
|
107 | tr.entry td.age { text-align: right; } | |
108 | tr.entry.file td.filename a { margin-left: 16px; } |
|
108 | tr.entry.file td.filename a { margin-left: 16px; } | |
109 |
|
109 | |||
110 | tr span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;} |
|
110 | tr span.expander {background-image: url(../images/bullet_toggle_plus.png); padding-left: 8px; margin-left: 0; cursor: pointer;} | |
111 | tr.open span.expander {background-image: url(../images/bullet_toggle_minus.png);} |
|
111 | tr.open span.expander {background-image: url(../images/bullet_toggle_minus.png);} | |
112 |
|
112 | |||
113 | tr.changeset td.author { text-align: center; width: 15%; } |
|
113 | tr.changeset td.author { text-align: center; width: 15%; } | |
114 | tr.changeset td.committed_on { text-align: center; width: 15%; } |
|
114 | tr.changeset td.committed_on { text-align: center; width: 15%; } | |
115 |
|
115 | |||
116 | table.files tr.file td { text-align: center; } |
|
116 | table.files tr.file td { text-align: center; } | |
117 | table.files tr.file td.filename { text-align: left; padding-left: 24px; } |
|
117 | table.files tr.file td.filename { text-align: left; padding-left: 24px; } | |
118 | table.files tr.file td.digest { font-size: 80%; } |
|
118 | table.files tr.file td.digest { font-size: 80%; } | |
119 |
|
119 | |||
120 | table.members td.roles, table.memberships td.roles { width: 45%; } |
|
120 | table.members td.roles, table.memberships td.roles { width: 45%; } | |
121 |
|
121 | |||
122 | tr.message { height: 2.6em; } |
|
122 | tr.message { height: 2.6em; } | |
123 | tr.message td.last_message { font-size: 80%; } |
|
123 | tr.message td.last_message { font-size: 80%; } | |
124 | tr.message.locked td.subject a { background-image: url(../images/locked.png); } |
|
124 | tr.message.locked td.subject a { background-image: url(../images/locked.png); } | |
125 | tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; } |
|
125 | tr.message.sticky td.subject a { background-image: url(../images/sticky.png); font-weight: bold; } | |
126 |
|
126 | |||
127 | tr.user td { width:13%; } |
|
127 | tr.user td { width:13%; } | |
128 | tr.user td.email { width:18%; } |
|
128 | tr.user td.email { width:18%; } | |
129 | tr.user td { white-space: nowrap; } |
|
129 | tr.user td { white-space: nowrap; } | |
130 | tr.user.locked, tr.user.registered { color: #aaa; } |
|
130 | tr.user.locked, tr.user.registered { color: #aaa; } | |
131 | tr.user.locked a, tr.user.registered a { color: #aaa; } |
|
131 | tr.user.locked a, tr.user.registered a { color: #aaa; } | |
132 |
|
132 | |||
133 | tr.time-entry { text-align: center; white-space: nowrap; } |
|
133 | tr.time-entry { text-align: center; white-space: nowrap; } | |
134 | tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; } |
|
134 | tr.time-entry td.subject, tr.time-entry td.comments { text-align: left; white-space: normal; } | |
135 | td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; } |
|
135 | td.hours { text-align: right; font-weight: bold; padding-right: 0.5em; } | |
136 | td.hours .hours-dec { font-size: 0.9em; } |
|
136 | td.hours .hours-dec { font-size: 0.9em; } | |
137 |
|
137 | |||
138 | table.plugins td { vertical-align: middle; } |
|
138 | table.plugins td { vertical-align: middle; } | |
139 | table.plugins td.configure { text-align: right; padding-right: 1em; } |
|
139 | table.plugins td.configure { text-align: right; padding-right: 1em; } | |
140 | table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; } |
|
140 | table.plugins span.name { font-weight: bold; display: block; margin-bottom: 6px; } | |
141 | table.plugins span.description { display: block; font-size: 0.9em; } |
|
141 | table.plugins span.description { display: block; font-size: 0.9em; } | |
142 | table.plugins span.url { display: block; font-size: 0.9em; } |
|
142 | table.plugins span.url { display: block; font-size: 0.9em; } | |
143 |
|
143 | |||
144 | table.list tbody tr.group td { padding: 0.8em 0 0.5em 0.3em; font-weight: bold; border-bottom: 1px solid #ccc; } |
|
144 | table.list tbody tr.group td { padding: 0.8em 0 0.5em 0.3em; font-weight: bold; border-bottom: 1px solid #ccc; } | |
145 | table.list tbody tr.group span.count { color: #aaa; font-size: 80%; } |
|
145 | table.list tbody tr.group span.count { color: #aaa; font-size: 80%; } | |
146 |
|
146 | |||
147 | table.list tbody tr:hover { background-color:#ffffdd; } |
|
147 | table.list tbody tr:hover { background-color:#ffffdd; } | |
148 | table.list tbody tr.group:hover { background-color:inherit; } |
|
148 | table.list tbody tr.group:hover { background-color:inherit; } | |
149 | table td {padding:2px;} |
|
149 | table td {padding:2px;} | |
150 | table p {margin:0;} |
|
150 | table p {margin:0;} | |
151 | .odd {background-color:#f6f7f8;} |
|
151 | .odd {background-color:#f6f7f8;} | |
152 | .even {background-color: #fff;} |
|
152 | .even {background-color: #fff;} | |
153 |
|
153 | |||
154 | a.sort { padding-right: 16px; background-position: 100% 50%; background-repeat: no-repeat; } |
|
154 | a.sort { padding-right: 16px; background-position: 100% 50%; background-repeat: no-repeat; } | |
155 | a.sort.asc { background-image: url(../images/sort_asc.png); } |
|
155 | a.sort.asc { background-image: url(../images/sort_asc.png); } | |
156 | a.sort.desc { background-image: url(../images/sort_desc.png); } |
|
156 | a.sort.desc { background-image: url(../images/sort_desc.png); } | |
157 |
|
157 | |||
158 | table.attributes { width: 100% } |
|
158 | table.attributes { width: 100% } | |
159 | table.attributes th { vertical-align: top; text-align: left; } |
|
159 | table.attributes th { vertical-align: top; text-align: left; } | |
160 | table.attributes td { vertical-align: top; } |
|
160 | table.attributes td { vertical-align: top; } | |
161 |
|
161 | |||
162 | .highlight { background-color: #FCFD8D;} |
|
162 | .highlight { background-color: #FCFD8D;} | |
163 | .highlight.token-1 { background-color: #faa;} |
|
163 | .highlight.token-1 { background-color: #faa;} | |
164 | .highlight.token-2 { background-color: #afa;} |
|
164 | .highlight.token-2 { background-color: #afa;} | |
165 | .highlight.token-3 { background-color: #aaf;} |
|
165 | .highlight.token-3 { background-color: #aaf;} | |
166 |
|
166 | |||
167 | .box{ |
|
167 | .box{ | |
168 | padding:6px; |
|
168 | padding:6px; | |
169 | margin-bottom: 10px; |
|
169 | margin-bottom: 10px; | |
170 | background-color:#f6f6f6; |
|
170 | background-color:#f6f6f6; | |
171 | color:#505050; |
|
171 | color:#505050; | |
172 | line-height:1.5em; |
|
172 | line-height:1.5em; | |
173 | border: 1px solid #e4e4e4; |
|
173 | border: 1px solid #e4e4e4; | |
174 | } |
|
174 | } | |
175 |
|
175 | |||
176 | div.square { |
|
176 | div.square { | |
177 | border: 1px solid #999; |
|
177 | border: 1px solid #999; | |
178 | float: left; |
|
178 | float: left; | |
179 | margin: .3em .4em 0 .4em; |
|
179 | margin: .3em .4em 0 .4em; | |
180 | overflow: hidden; |
|
180 | overflow: hidden; | |
181 | width: .6em; height: .6em; |
|
181 | width: .6em; height: .6em; | |
182 | } |
|
182 | } | |
183 | .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;} |
|
183 | .contextual {float:right; white-space: nowrap; line-height:1.4em;margin-top:5px; padding-left: 10px; font-size:0.9em;} | |
184 | .contextual input, .contextual select {font-size:0.9em;} |
|
184 | .contextual input, .contextual select {font-size:0.9em;} | |
185 | .message .contextual { margin-top: 0; } |
|
185 | .message .contextual { margin-top: 0; } | |
186 |
|
186 | |||
187 | .splitcontentleft{float:left; width:49%;} |
|
187 | .splitcontentleft{float:left; width:49%;} | |
188 | .splitcontentright{float:right; width:49%;} |
|
188 | .splitcontentright{float:right; width:49%;} | |
189 | form {display: inline;} |
|
189 | form {display: inline;} | |
190 | input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;} |
|
190 | input, select {vertical-align: middle; margin-top: 1px; margin-bottom: 1px;} | |
191 | fieldset {border: 1px solid #e4e4e4; margin:0;} |
|
191 | fieldset {border: 1px solid #e4e4e4; margin:0;} | |
192 | legend {color: #484848;} |
|
192 | legend {color: #484848;} | |
193 | hr { width: 100%; height: 1px; background: #ccc; border: 0;} |
|
193 | hr { width: 100%; height: 1px; background: #ccc; border: 0;} | |
194 | blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;} |
|
194 | blockquote { font-style: italic; border-left: 3px solid #e0e0e0; padding-left: 0.6em; margin-left: 2.4em;} | |
195 | blockquote blockquote { margin-left: 0;} |
|
195 | blockquote blockquote { margin-left: 0;} | |
196 | textarea.wiki-edit { width: 99%; } |
|
196 | textarea.wiki-edit { width: 99%; } | |
197 | li p {margin-top: 0;} |
|
197 | li p {margin-top: 0;} | |
198 | div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;} |
|
198 | div.issue {background:#ffffdd; padding:6px; margin-bottom:6px;border: 1px solid #d7d7d7;} | |
199 | p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;} |
|
199 | p.breadcrumb { font-size: 0.9em; margin: 4px 0 4px 0;} | |
200 | p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; } |
|
200 | p.subtitle { font-size: 0.9em; margin: -6px 0 12px 0; font-style: italic; } | |
201 | p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; } |
|
201 | p.footnote { font-size: 0.9em; margin-top: 0px; margin-bottom: 0px; } | |
202 |
|
202 | |||
203 | #query_form_content { font-size: 0.9em; padding: 4px; background: #f6f6f6; border: 1px solid #e4e4e4; } |
|
203 | fieldset.collapsible { border-width: 1px 0 0 0; font-size: 0.9em; } | |
204 | #query_form_content fieldset#filters { border-left: 0; border-right: 0; } |
|
204 | fieldset.collapsible legend { padding-left: 16px; background: url(../images/arrow_expanded.png) no-repeat 0% 40%; cursor:pointer; } | |
205 | #query_form_content p { margin-top: 0.5em; margin-bottom: 0.5em; } |
|
205 | fieldset.collapsible.collapsed legend { background-image: url(../images/arrow_collapsed.png); } | |
206 |
|
206 | |||
207 | fieldset#filters, fieldset#date-range { padding: 0.7em; margin-bottom: 8px; } |
|
207 | fieldset#date-range p { margin: 2px 0 2px 0; } | |
208 | fieldset#filters p { margin: 1.2em 0 0.8em 2px; } |
|
|||
209 | fieldset#filters table { border-collapse: collapse; } |
|
208 | fieldset#filters table { border-collapse: collapse; } | |
210 | fieldset#filters table td { padding: 0; vertical-align: middle; } |
|
209 | fieldset#filters table td { padding: 0; vertical-align: middle; } | |
211 | fieldset#filters tr.filter { height: 2em; } |
|
210 | fieldset#filters tr.filter { height: 2em; } | |
212 | fieldset#filters td.add-filter { text-align: right; vertical-align: top; } |
|
211 | fieldset#filters td.add-filter { text-align: right; vertical-align: top; } | |
213 | .buttons { font-size: 0.9em; margin-bottom: 1.4em; } |
|
212 | .buttons { font-size: 0.9em; margin-bottom: 1.4em; margin-top: 1em; } | |
214 |
|
213 | |||
215 | div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;} |
|
214 | div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1em; background: #fff; padding-left: 1em; font-size: 90%;} | |
216 | div#issue-changesets .changeset { padding: 4px;} |
|
215 | div#issue-changesets .changeset { padding: 4px;} | |
217 | div#issue-changesets .changeset { border-bottom: 1px solid #ddd; } |
|
216 | div#issue-changesets .changeset { border-bottom: 1px solid #ddd; } | |
218 | div#issue-changesets p { margin-top: 0; margin-bottom: 1em;} |
|
217 | div#issue-changesets p { margin-top: 0; margin-bottom: 1em;} | |
219 |
|
218 | |||
220 | div#activity dl, #search-results { margin-left: 2em; } |
|
219 | div#activity dl, #search-results { margin-left: 2em; } | |
221 | div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; } |
|
220 | div#activity dd, #search-results dd { margin-bottom: 1em; padding-left: 18px; font-size: 0.9em; } | |
222 | div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; } |
|
221 | div#activity dt, #search-results dt { margin-bottom: 0px; padding-left: 20px; line-height: 18px; background-position: 0 50%; background-repeat: no-repeat; } | |
223 | div#activity dt.me .time { border-bottom: 1px solid #999; } |
|
222 | div#activity dt.me .time { border-bottom: 1px solid #999; } | |
224 | div#activity dt .time { color: #777; font-size: 80%; } |
|
223 | div#activity dt .time { color: #777; font-size: 80%; } | |
225 | div#activity dd .description, #search-results dd .description { font-style: italic; } |
|
224 | div#activity dd .description, #search-results dd .description { font-style: italic; } | |
226 | div#activity span.project:after, #search-results span.project:after { content: " -"; } |
|
225 | div#activity span.project:after, #search-results span.project:after { content: " -"; } | |
227 | div#activity dd span.description, #search-results dd span.description { display:block; color: #808080; } |
|
226 | div#activity dd span.description, #search-results dd span.description { display:block; color: #808080; } | |
228 |
|
227 | |||
229 | #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; } |
|
228 | #search-results dd { margin-bottom: 1em; padding-left: 20px; margin-left:0px; } | |
230 |
|
229 | |||
231 | div#search-results-counts {float:right;} |
|
230 | div#search-results-counts {float:right;} | |
232 | div#search-results-counts ul { margin-top: 0.5em; } |
|
231 | div#search-results-counts ul { margin-top: 0.5em; } | |
233 | div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; } |
|
232 | div#search-results-counts li { list-style-type:none; float: left; margin-left: 1em; } | |
234 |
|
233 | |||
235 | dt.issue { background-image: url(../images/ticket.png); } |
|
234 | dt.issue { background-image: url(../images/ticket.png); } | |
236 | dt.issue-edit { background-image: url(../images/ticket_edit.png); } |
|
235 | dt.issue-edit { background-image: url(../images/ticket_edit.png); } | |
237 | dt.issue-closed { background-image: url(../images/ticket_checked.png); } |
|
236 | dt.issue-closed { background-image: url(../images/ticket_checked.png); } | |
238 | dt.issue-note { background-image: url(../images/ticket_note.png); } |
|
237 | dt.issue-note { background-image: url(../images/ticket_note.png); } | |
239 | dt.changeset { background-image: url(../images/changeset.png); } |
|
238 | dt.changeset { background-image: url(../images/changeset.png); } | |
240 | dt.news { background-image: url(../images/news.png); } |
|
239 | dt.news { background-image: url(../images/news.png); } | |
241 | dt.message { background-image: url(../images/message.png); } |
|
240 | dt.message { background-image: url(../images/message.png); } | |
242 | dt.reply { background-image: url(../images/comments.png); } |
|
241 | dt.reply { background-image: url(../images/comments.png); } | |
243 | dt.wiki-page { background-image: url(../images/wiki_edit.png); } |
|
242 | dt.wiki-page { background-image: url(../images/wiki_edit.png); } | |
244 | dt.attachment { background-image: url(../images/attachment.png); } |
|
243 | dt.attachment { background-image: url(../images/attachment.png); } | |
245 | dt.document { background-image: url(../images/document.png); } |
|
244 | dt.document { background-image: url(../images/document.png); } | |
246 | dt.project { background-image: url(../images/projects.png); } |
|
245 | dt.project { background-image: url(../images/projects.png); } | |
247 | dt.time-entry { background-image: url(../images/time.png); } |
|
246 | dt.time-entry { background-image: url(../images/time.png); } | |
248 |
|
247 | |||
249 | #search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); } |
|
248 | #search-results dt.issue.closed { background-image: url(../images/ticket_checked.png); } | |
250 |
|
249 | |||
251 | div#roadmap fieldset.related-issues { margin-bottom: 1em; } |
|
250 | div#roadmap fieldset.related-issues { margin-bottom: 1em; } | |
252 | div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; } |
|
251 | div#roadmap fieldset.related-issues ul { margin-top: 0.3em; margin-bottom: 0.3em; } | |
253 | div#roadmap .wiki h1:first-child { display: none; } |
|
252 | div#roadmap .wiki h1:first-child { display: none; } | |
254 | div#roadmap .wiki h1 { font-size: 120%; } |
|
253 | div#roadmap .wiki h1 { font-size: 120%; } | |
255 | div#roadmap .wiki h2 { font-size: 110%; } |
|
254 | div#roadmap .wiki h2 { font-size: 110%; } | |
256 |
|
255 | |||
257 | div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; } |
|
256 | div#version-summary { float:right; width:380px; margin-left: 16px; margin-bottom: 16px; background-color: #fff; } | |
258 | div#version-summary fieldset { margin-bottom: 1em; } |
|
257 | div#version-summary fieldset { margin-bottom: 1em; } | |
259 | div#version-summary .total-hours { text-align: right; } |
|
258 | div#version-summary .total-hours { text-align: right; } | |
260 |
|
259 | |||
261 | table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; } |
|
260 | table#time-report td.hours, table#time-report th.period, table#time-report th.total { text-align: right; padding-right: 0.5em; } | |
262 | table#time-report tbody tr { font-style: italic; color: #777; } |
|
261 | table#time-report tbody tr { font-style: italic; color: #777; } | |
263 | table#time-report tbody tr.last-level { font-style: normal; color: #555; } |
|
262 | table#time-report tbody tr.last-level { font-style: normal; color: #555; } | |
264 | table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; } |
|
263 | table#time-report tbody tr.total { font-style: normal; font-weight: bold; color: #555; background-color:#EEEEEE; } | |
265 | table#time-report .hours-dec { font-size: 0.9em; } |
|
264 | table#time-report .hours-dec { font-size: 0.9em; } | |
266 |
|
265 | |||
267 | form#issue-form .attributes { margin-bottom: 8px; } |
|
266 | form#issue-form .attributes { margin-bottom: 8px; } | |
268 | form#issue-form .attributes p { padding-top: 1px; padding-bottom: 2px; } |
|
267 | form#issue-form .attributes p { padding-top: 1px; padding-bottom: 2px; } | |
269 | form#issue-form .attributes select { min-width: 30%; } |
|
268 | form#issue-form .attributes select { min-width: 30%; } | |
270 |
|
269 | |||
271 | ul.projects { margin: 0; padding-left: 1em; } |
|
270 | ul.projects { margin: 0; padding-left: 1em; } | |
272 | ul.projects.root { margin: 0; padding: 0; } |
|
271 | ul.projects.root { margin: 0; padding: 0; } | |
273 | ul.projects ul { border-left: 3px solid #e0e0e0; } |
|
272 | ul.projects ul { border-left: 3px solid #e0e0e0; } | |
274 | ul.projects li { list-style-type:none; } |
|
273 | ul.projects li { list-style-type:none; } | |
275 | ul.projects li.root { margin-bottom: 1em; } |
|
274 | ul.projects li.root { margin-bottom: 1em; } | |
276 | ul.projects li.child { margin-top: 1em;} |
|
275 | ul.projects li.child { margin-top: 1em;} | |
277 | ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; } |
|
276 | ul.projects div.root a.project { font-family: "Trebuchet MS", Verdana, sans-serif; font-weight: bold; font-size: 16px; margin: 0 0 10px 0; } | |
278 | .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; } |
|
277 | .my-project { padding-left: 18px; background: url(../images/fav.png) no-repeat 0 50%; } | |
279 |
|
278 | |||
280 | #tracker_project_ids ul { margin: 0; padding-left: 1em; } |
|
279 | #tracker_project_ids ul { margin: 0; padding-left: 1em; } | |
281 | #tracker_project_ids li { list-style-type:none; } |
|
280 | #tracker_project_ids li { list-style-type:none; } | |
282 |
|
281 | |||
283 | ul.properties {padding:0; font-size: 0.9em; color: #777;} |
|
282 | ul.properties {padding:0; font-size: 0.9em; color: #777;} | |
284 | ul.properties li {list-style-type:none;} |
|
283 | ul.properties li {list-style-type:none;} | |
285 | ul.properties li span {font-style:italic;} |
|
284 | ul.properties li span {font-style:italic;} | |
286 |
|
285 | |||
287 | .total-hours { font-size: 110%; font-weight: bold; } |
|
286 | .total-hours { font-size: 110%; font-weight: bold; } | |
288 | .total-hours span.hours-int { font-size: 120%; } |
|
287 | .total-hours span.hours-int { font-size: 120%; } | |
289 |
|
288 | |||
290 | .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;} |
|
289 | .autoscroll {overflow-x: auto; padding:1px; margin-bottom: 1.2em;} | |
291 | #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; } |
|
290 | #user_firstname, #user_lastname, #user_mail, #my_account_form select { width: 90%; } | |
292 |
|
291 | |||
293 | .pagination {font-size: 90%} |
|
292 | .pagination {font-size: 90%} | |
294 | p.pagination {margin-top:8px;} |
|
293 | p.pagination {margin-top:8px;} | |
295 |
|
294 | |||
296 | /***** Tabular forms ******/ |
|
295 | /***** Tabular forms ******/ | |
297 | .tabular p{ |
|
296 | .tabular p{ | |
298 | margin: 0; |
|
297 | margin: 0; | |
299 | padding: 5px 0 8px 0; |
|
298 | padding: 5px 0 8px 0; | |
300 | padding-left: 180px; /*width of left column containing the label elements*/ |
|
299 | padding-left: 180px; /*width of left column containing the label elements*/ | |
301 | height: 1%; |
|
300 | height: 1%; | |
302 | clear:left; |
|
301 | clear:left; | |
303 | } |
|
302 | } | |
304 |
|
303 | |||
305 | html>body .tabular p {overflow:hidden;} |
|
304 | html>body .tabular p {overflow:hidden;} | |
306 |
|
305 | |||
307 | .tabular label{ |
|
306 | .tabular label{ | |
308 | font-weight: bold; |
|
307 | font-weight: bold; | |
309 | float: left; |
|
308 | float: left; | |
310 | text-align: right; |
|
309 | text-align: right; | |
311 | margin-left: -180px; /*width of left column*/ |
|
310 | margin-left: -180px; /*width of left column*/ | |
312 | width: 175px; /*width of labels. Should be smaller than left column to create some right |
|
311 | width: 175px; /*width of labels. Should be smaller than left column to create some right | |
313 | margin*/ |
|
312 | margin*/ | |
314 | } |
|
313 | } | |
315 |
|
314 | |||
316 | .tabular label.floating{ |
|
315 | .tabular label.floating{ | |
317 | font-weight: normal; |
|
316 | font-weight: normal; | |
318 | margin-left: 0px; |
|
317 | margin-left: 0px; | |
319 | text-align: left; |
|
318 | text-align: left; | |
320 | width: 270px; |
|
319 | width: 270px; | |
321 | } |
|
320 | } | |
322 |
|
321 | |||
323 | input#time_entry_comments { width: 90%;} |
|
322 | input#time_entry_comments { width: 90%;} | |
324 |
|
323 | |||
325 | #preview fieldset {margin-top: 1em; background: url(../images/draft.png)} |
|
324 | #preview fieldset {margin-top: 1em; background: url(../images/draft.png)} | |
326 |
|
325 | |||
327 | .tabular.settings p{ padding-left: 300px; } |
|
326 | .tabular.settings p{ padding-left: 300px; } | |
328 | .tabular.settings label{ margin-left: -300px; width: 295px; } |
|
327 | .tabular.settings label{ margin-left: -300px; width: 295px; } | |
329 |
|
328 | |||
330 | .required {color: #bb0000;} |
|
329 | .required {color: #bb0000;} | |
331 | .summary {font-style: italic;} |
|
330 | .summary {font-style: italic;} | |
332 |
|
331 | |||
333 | #attachments_fields input[type=text] {margin-left: 8px; } |
|
332 | #attachments_fields input[type=text] {margin-left: 8px; } | |
334 |
|
333 | |||
335 | div.attachments { margin-top: 12px; } |
|
334 | div.attachments { margin-top: 12px; } | |
336 | div.attachments p { margin:4px 0 2px 0; } |
|
335 | div.attachments p { margin:4px 0 2px 0; } | |
337 | div.attachments img { vertical-align: middle; } |
|
336 | div.attachments img { vertical-align: middle; } | |
338 | div.attachments span.author { font-size: 0.9em; color: #888; } |
|
337 | div.attachments span.author { font-size: 0.9em; color: #888; } | |
339 |
|
338 | |||
340 | p.other-formats { text-align: right; font-size:0.9em; color: #666; } |
|
339 | p.other-formats { text-align: right; font-size:0.9em; color: #666; } | |
341 | .other-formats span + span:before { content: "| "; } |
|
340 | .other-formats span + span:before { content: "| "; } | |
342 |
|
341 | |||
343 | a.atom { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; } |
|
342 | a.atom { background: url(../images/feed.png) no-repeat 1px 50%; padding: 2px 0px 3px 16px; } | |
344 |
|
343 | |||
345 | /* Project members tab */ |
|
344 | /* Project members tab */ | |
346 | div#tab-content-members .splitcontentleft, div#tab-content-memberships .splitcontentleft, div#tab-content-users .splitcontentleft { width: 64% } |
|
345 | div#tab-content-members .splitcontentleft, div#tab-content-memberships .splitcontentleft, div#tab-content-users .splitcontentleft { width: 64% } | |
347 | div#tab-content-members .splitcontentright, div#tab-content-memberships .splitcontentright, div#tab-content-users .splitcontentright { width: 34% } |
|
346 | div#tab-content-members .splitcontentright, div#tab-content-memberships .splitcontentright, div#tab-content-users .splitcontentright { width: 34% } | |
348 | div#tab-content-members fieldset, div#tab-content-memberships fieldset, div#tab-content-users fieldset { padding:1em; margin-bottom: 1em; } |
|
347 | div#tab-content-members fieldset, div#tab-content-memberships fieldset, div#tab-content-users fieldset { padding:1em; margin-bottom: 1em; } | |
349 | div#tab-content-members fieldset legend, div#tab-content-memberships fieldset legend, div#tab-content-users fieldset legend { font-weight: bold; } |
|
348 | div#tab-content-members fieldset legend, div#tab-content-memberships fieldset legend, div#tab-content-users fieldset legend { font-weight: bold; } | |
350 | div#tab-content-members fieldset label, div#tab-content-memberships fieldset label, div#tab-content-users fieldset label { display: block; } |
|
349 | div#tab-content-members fieldset label, div#tab-content-memberships fieldset label, div#tab-content-users fieldset label { display: block; } | |
351 | div#tab-content-members fieldset div, div#tab-content-users fieldset div { max-height: 400px; overflow:auto; } |
|
350 | div#tab-content-members fieldset div, div#tab-content-users fieldset div { max-height: 400px; overflow:auto; } | |
352 |
|
351 | |||
353 | table.members td.group { padding-left: 20px; background: url(../images/users.png) no-repeat 0% 0%; } |
|
352 | table.members td.group { padding-left: 20px; background: url(../images/users.png) no-repeat 0% 0%; } | |
354 |
|
353 | |||
355 | * html div#tab-content-members fieldset div { height: 450px; } |
|
354 | * html div#tab-content-members fieldset div { height: 450px; } | |
356 |
|
355 | |||
357 | /***** Flash & error messages ****/ |
|
356 | /***** Flash & error messages ****/ | |
358 | #errorExplanation, div.flash, .nodata, .warning { |
|
357 | #errorExplanation, div.flash, .nodata, .warning { | |
359 | padding: 4px 4px 4px 30px; |
|
358 | padding: 4px 4px 4px 30px; | |
360 | margin-bottom: 12px; |
|
359 | margin-bottom: 12px; | |
361 | font-size: 1.1em; |
|
360 | font-size: 1.1em; | |
362 | border: 2px solid; |
|
361 | border: 2px solid; | |
363 | } |
|
362 | } | |
364 |
|
363 | |||
365 | div.flash {margin-top: 8px;} |
|
364 | div.flash {margin-top: 8px;} | |
366 |
|
365 | |||
367 | div.flash.error, #errorExplanation { |
|
366 | div.flash.error, #errorExplanation { | |
368 | background: url(../images/false.png) 8px 5px no-repeat; |
|
367 | background: url(../images/false.png) 8px 5px no-repeat; | |
369 | background-color: #ffe3e3; |
|
368 | background-color: #ffe3e3; | |
370 | border-color: #dd0000; |
|
369 | border-color: #dd0000; | |
371 | color: #550000; |
|
370 | color: #550000; | |
372 | } |
|
371 | } | |
373 |
|
372 | |||
374 | div.flash.notice { |
|
373 | div.flash.notice { | |
375 | background: url(../images/true.png) 8px 5px no-repeat; |
|
374 | background: url(../images/true.png) 8px 5px no-repeat; | |
376 | background-color: #dfffdf; |
|
375 | background-color: #dfffdf; | |
377 | border-color: #9fcf9f; |
|
376 | border-color: #9fcf9f; | |
378 | color: #005f00; |
|
377 | color: #005f00; | |
379 | } |
|
378 | } | |
380 |
|
379 | |||
381 | div.flash.warning { |
|
380 | div.flash.warning { | |
382 | background: url(../images/warning.png) 8px 5px no-repeat; |
|
381 | background: url(../images/warning.png) 8px 5px no-repeat; | |
383 | background-color: #FFEBC1; |
|
382 | background-color: #FFEBC1; | |
384 | border-color: #FDBF3B; |
|
383 | border-color: #FDBF3B; | |
385 | color: #A6750C; |
|
384 | color: #A6750C; | |
386 | text-align: left; |
|
385 | text-align: left; | |
387 | } |
|
386 | } | |
388 |
|
387 | |||
389 | .nodata, .warning { |
|
388 | .nodata, .warning { | |
390 | text-align: center; |
|
389 | text-align: center; | |
391 | background-color: #FFEBC1; |
|
390 | background-color: #FFEBC1; | |
392 | border-color: #FDBF3B; |
|
391 | border-color: #FDBF3B; | |
393 | color: #A6750C; |
|
392 | color: #A6750C; | |
394 | } |
|
393 | } | |
395 |
|
394 | |||
396 | #errorExplanation ul { font-size: 0.9em;} |
|
395 | #errorExplanation ul { font-size: 0.9em;} | |
397 | #errorExplanation h2, #errorExplanation p { display: none; } |
|
396 | #errorExplanation h2, #errorExplanation p { display: none; } | |
398 |
|
397 | |||
399 | /***** Ajax indicator ******/ |
|
398 | /***** Ajax indicator ******/ | |
400 | #ajax-indicator { |
|
399 | #ajax-indicator { | |
401 | position: absolute; /* fixed not supported by IE */ |
|
400 | position: absolute; /* fixed not supported by IE */ | |
402 | background-color:#eee; |
|
401 | background-color:#eee; | |
403 | border: 1px solid #bbb; |
|
402 | border: 1px solid #bbb; | |
404 | top:35%; |
|
403 | top:35%; | |
405 | left:40%; |
|
404 | left:40%; | |
406 | width:20%; |
|
405 | width:20%; | |
407 | font-weight:bold; |
|
406 | font-weight:bold; | |
408 | text-align:center; |
|
407 | text-align:center; | |
409 | padding:0.6em; |
|
408 | padding:0.6em; | |
410 | z-index:100; |
|
409 | z-index:100; | |
411 | filter:alpha(opacity=50); |
|
410 | filter:alpha(opacity=50); | |
412 | opacity: 0.5; |
|
411 | opacity: 0.5; | |
413 | } |
|
412 | } | |
414 |
|
413 | |||
415 | html>body #ajax-indicator { position: fixed; } |
|
414 | html>body #ajax-indicator { position: fixed; } | |
416 |
|
415 | |||
417 | #ajax-indicator span { |
|
416 | #ajax-indicator span { | |
418 | background-position: 0% 40%; |
|
417 | background-position: 0% 40%; | |
419 | background-repeat: no-repeat; |
|
418 | background-repeat: no-repeat; | |
420 | background-image: url(../images/loading.gif); |
|
419 | background-image: url(../images/loading.gif); | |
421 | padding-left: 26px; |
|
420 | padding-left: 26px; | |
422 | vertical-align: bottom; |
|
421 | vertical-align: bottom; | |
423 | } |
|
422 | } | |
424 |
|
423 | |||
425 | /***** Calendar *****/ |
|
424 | /***** Calendar *****/ | |
426 | table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;} |
|
425 | table.cal {border-collapse: collapse; width: 100%; margin: 0px 0 6px 0;border: 1px solid #d7d7d7;} | |
427 | table.cal thead th {width: 14%;} |
|
426 | table.cal thead th {width: 14%;} | |
428 | table.cal tbody tr {height: 100px;} |
|
427 | table.cal tbody tr {height: 100px;} | |
429 | table.cal th { background-color:#EEEEEE; padding: 4px; } |
|
428 | table.cal th { background-color:#EEEEEE; padding: 4px; } | |
430 | table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;} |
|
429 | table.cal td {border: 1px solid #d7d7d7; vertical-align: top; font-size: 0.9em;} | |
431 | table.cal td p.day-num {font-size: 1.1em; text-align:right;} |
|
430 | table.cal td p.day-num {font-size: 1.1em; text-align:right;} | |
432 | table.cal td.odd p.day-num {color: #bbb;} |
|
431 | table.cal td.odd p.day-num {color: #bbb;} | |
433 | table.cal td.today {background:#ffffdd;} |
|
432 | table.cal td.today {background:#ffffdd;} | |
434 | table.cal td.today p.day-num {font-weight: bold;} |
|
433 | table.cal td.today p.day-num {font-weight: bold;} | |
435 |
|
434 | |||
436 | /***** Tooltips ******/ |
|
435 | /***** Tooltips ******/ | |
437 | .tooltip{position:relative;z-index:24;} |
|
436 | .tooltip{position:relative;z-index:24;} | |
438 | .tooltip:hover{z-index:25;color:#000;} |
|
437 | .tooltip:hover{z-index:25;color:#000;} | |
439 | .tooltip span.tip{display: none; text-align:left;} |
|
438 | .tooltip span.tip{display: none; text-align:left;} | |
440 |
|
439 | |||
441 | div.tooltip:hover span.tip{ |
|
440 | div.tooltip:hover span.tip{ | |
442 | display:block; |
|
441 | display:block; | |
443 | position:absolute; |
|
442 | position:absolute; | |
444 | top:12px; left:24px; width:270px; |
|
443 | top:12px; left:24px; width:270px; | |
445 | border:1px solid #555; |
|
444 | border:1px solid #555; | |
446 | background-color:#fff; |
|
445 | background-color:#fff; | |
447 | padding: 4px; |
|
446 | padding: 4px; | |
448 | font-size: 0.8em; |
|
447 | font-size: 0.8em; | |
449 | color:#505050; |
|
448 | color:#505050; | |
450 | } |
|
449 | } | |
451 |
|
450 | |||
452 | /***** Progress bar *****/ |
|
451 | /***** Progress bar *****/ | |
453 | table.progress { |
|
452 | table.progress { | |
454 | border: 1px solid #D7D7D7; |
|
453 | border: 1px solid #D7D7D7; | |
455 | border-collapse: collapse; |
|
454 | border-collapse: collapse; | |
456 | border-spacing: 0pt; |
|
455 | border-spacing: 0pt; | |
457 | empty-cells: show; |
|
456 | empty-cells: show; | |
458 | text-align: center; |
|
457 | text-align: center; | |
459 | float:left; |
|
458 | float:left; | |
460 | margin: 1px 6px 1px 0px; |
|
459 | margin: 1px 6px 1px 0px; | |
461 | } |
|
460 | } | |
462 |
|
461 | |||
463 | table.progress td { height: 0.9em; } |
|
462 | table.progress td { height: 0.9em; } | |
464 | table.progress td.closed { background: #BAE0BA none repeat scroll 0%; } |
|
463 | table.progress td.closed { background: #BAE0BA none repeat scroll 0%; } | |
465 | table.progress td.done { background: #DEF0DE none repeat scroll 0%; } |
|
464 | table.progress td.done { background: #DEF0DE none repeat scroll 0%; } | |
466 | table.progress td.open { background: #FFF none repeat scroll 0%; } |
|
465 | table.progress td.open { background: #FFF none repeat scroll 0%; } | |
467 | p.pourcent {font-size: 80%;} |
|
466 | p.pourcent {font-size: 80%;} | |
468 | p.progress-info {clear: left; font-style: italic; font-size: 80%;} |
|
467 | p.progress-info {clear: left; font-style: italic; font-size: 80%;} | |
469 |
|
468 | |||
470 | /***** Tabs *****/ |
|
469 | /***** Tabs *****/ | |
471 | #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;} |
|
470 | #content .tabs {height: 2.6em; border-bottom: 1px solid #bbbbbb; margin-bottom:1.2em; position:relative;} | |
472 | #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;} |
|
471 | #content .tabs ul {margin:0; position:absolute; bottom:-2px; padding-left:1em;} | |
473 | #content .tabs>ul { bottom:-1px; } /* others */ |
|
472 | #content .tabs>ul { bottom:-1px; } /* others */ | |
474 | #content .tabs ul li { |
|
473 | #content .tabs ul li { | |
475 | float:left; |
|
474 | float:left; | |
476 | list-style-type:none; |
|
475 | list-style-type:none; | |
477 | white-space:nowrap; |
|
476 | white-space:nowrap; | |
478 | margin-right:8px; |
|
477 | margin-right:8px; | |
479 | background:#fff; |
|
478 | background:#fff; | |
480 | } |
|
479 | } | |
481 | #content .tabs ul li a{ |
|
480 | #content .tabs ul li a{ | |
482 | display:block; |
|
481 | display:block; | |
483 | font-size: 0.9em; |
|
482 | font-size: 0.9em; | |
484 | text-decoration:none; |
|
483 | text-decoration:none; | |
485 | line-height:1.3em; |
|
484 | line-height:1.3em; | |
486 | padding:4px 6px 4px 6px; |
|
485 | padding:4px 6px 4px 6px; | |
487 | border: 1px solid #ccc; |
|
486 | border: 1px solid #ccc; | |
488 | border-bottom: 1px solid #bbbbbb; |
|
487 | border-bottom: 1px solid #bbbbbb; | |
489 | background-color: #eeeeee; |
|
488 | background-color: #eeeeee; | |
490 | color:#777; |
|
489 | color:#777; | |
491 | font-weight:bold; |
|
490 | font-weight:bold; | |
492 | } |
|
491 | } | |
493 |
|
492 | |||
494 | #content .tabs ul li a:hover { |
|
493 | #content .tabs ul li a:hover { | |
495 | background-color: #ffffdd; |
|
494 | background-color: #ffffdd; | |
496 | text-decoration:none; |
|
495 | text-decoration:none; | |
497 | } |
|
496 | } | |
498 |
|
497 | |||
499 | #content .tabs ul li a.selected { |
|
498 | #content .tabs ul li a.selected { | |
500 | background-color: #fff; |
|
499 | background-color: #fff; | |
501 | border: 1px solid #bbbbbb; |
|
500 | border: 1px solid #bbbbbb; | |
502 | border-bottom: 1px solid #fff; |
|
501 | border-bottom: 1px solid #fff; | |
503 | } |
|
502 | } | |
504 |
|
503 | |||
505 | #content .tabs ul li a.selected:hover { |
|
504 | #content .tabs ul li a.selected:hover { | |
506 | background-color: #fff; |
|
505 | background-color: #fff; | |
507 | } |
|
506 | } | |
508 |
|
507 | |||
509 | /***** Auto-complete *****/ |
|
508 | /***** Auto-complete *****/ | |
510 | div.autocomplete { |
|
509 | div.autocomplete { | |
511 | position:absolute; |
|
510 | position:absolute; | |
512 | width:250px; |
|
511 | width:250px; | |
513 | background-color:white; |
|
512 | background-color:white; | |
514 | margin:0; |
|
513 | margin:0; | |
515 | padding:0; |
|
514 | padding:0; | |
516 | } |
|
515 | } | |
517 | div.autocomplete ul { |
|
516 | div.autocomplete ul { | |
518 | list-style-type:none; |
|
517 | list-style-type:none; | |
519 | margin:0; |
|
518 | margin:0; | |
520 | padding:0; |
|
519 | padding:0; | |
521 | } |
|
520 | } | |
522 | div.autocomplete ul li.selected { background-color: #ffb;} |
|
521 | div.autocomplete ul li.selected { background-color: #ffb;} | |
523 | div.autocomplete ul li { |
|
522 | div.autocomplete ul li { | |
524 | list-style-type:none; |
|
523 | list-style-type:none; | |
525 | display:block; |
|
524 | display:block; | |
526 | margin:0; |
|
525 | margin:0; | |
527 | padding:2px; |
|
526 | padding:2px; | |
528 | cursor:pointer; |
|
527 | cursor:pointer; | |
529 | font-size: 90%; |
|
528 | font-size: 90%; | |
530 | border-bottom: 1px solid #ccc; |
|
529 | border-bottom: 1px solid #ccc; | |
531 | border-left: 1px solid #ccc; |
|
530 | border-left: 1px solid #ccc; | |
532 | border-right: 1px solid #ccc; |
|
531 | border-right: 1px solid #ccc; | |
533 | } |
|
532 | } | |
534 | div.autocomplete ul li span.informal { |
|
533 | div.autocomplete ul li span.informal { | |
535 | font-size: 80%; |
|
534 | font-size: 80%; | |
536 | color: #aaa; |
|
535 | color: #aaa; | |
537 | } |
|
536 | } | |
538 |
|
537 | |||
539 | /***** Diff *****/ |
|
538 | /***** Diff *****/ | |
540 | .diff_out { background: #fcc; } |
|
539 | .diff_out { background: #fcc; } | |
541 | .diff_in { background: #cfc; } |
|
540 | .diff_in { background: #cfc; } | |
542 |
|
541 | |||
543 | /***** Wiki *****/ |
|
542 | /***** Wiki *****/ | |
544 | div.wiki table { |
|
543 | div.wiki table { | |
545 | border: 1px solid #505050; |
|
544 | border: 1px solid #505050; | |
546 | border-collapse: collapse; |
|
545 | border-collapse: collapse; | |
547 | margin-bottom: 1em; |
|
546 | margin-bottom: 1em; | |
548 | } |
|
547 | } | |
549 |
|
548 | |||
550 | div.wiki table, div.wiki td, div.wiki th { |
|
549 | div.wiki table, div.wiki td, div.wiki th { | |
551 | border: 1px solid #bbb; |
|
550 | border: 1px solid #bbb; | |
552 | padding: 4px; |
|
551 | padding: 4px; | |
553 | } |
|
552 | } | |
554 |
|
553 | |||
555 | div.wiki .external { |
|
554 | div.wiki .external { | |
556 | background-position: 0% 60%; |
|
555 | background-position: 0% 60%; | |
557 | background-repeat: no-repeat; |
|
556 | background-repeat: no-repeat; | |
558 | padding-left: 12px; |
|
557 | padding-left: 12px; | |
559 | background-image: url(../images/external.png); |
|
558 | background-image: url(../images/external.png); | |
560 | } |
|
559 | } | |
561 |
|
560 | |||
562 | div.wiki a.new { |
|
561 | div.wiki a.new { | |
563 | color: #b73535; |
|
562 | color: #b73535; | |
564 | } |
|
563 | } | |
565 |
|
564 | |||
566 | div.wiki pre { |
|
565 | div.wiki pre { | |
567 | margin: 1em 1em 1em 1.6em; |
|
566 | margin: 1em 1em 1em 1.6em; | |
568 | padding: 2px; |
|
567 | padding: 2px; | |
569 | background-color: #fafafa; |
|
568 | background-color: #fafafa; | |
570 | border: 1px solid #dadada; |
|
569 | border: 1px solid #dadada; | |
571 | width:95%; |
|
570 | width:95%; | |
572 | overflow-x: auto; |
|
571 | overflow-x: auto; | |
573 | } |
|
572 | } | |
574 |
|
573 | |||
575 | div.wiki ul.toc { |
|
574 | div.wiki ul.toc { | |
576 | background-color: #ffffdd; |
|
575 | background-color: #ffffdd; | |
577 | border: 1px solid #e4e4e4; |
|
576 | border: 1px solid #e4e4e4; | |
578 | padding: 4px; |
|
577 | padding: 4px; | |
579 | line-height: 1.2em; |
|
578 | line-height: 1.2em; | |
580 | margin-bottom: 12px; |
|
579 | margin-bottom: 12px; | |
581 | margin-right: 12px; |
|
580 | margin-right: 12px; | |
582 | margin-left: 0; |
|
581 | margin-left: 0; | |
583 | display: table |
|
582 | display: table | |
584 | } |
|
583 | } | |
585 | * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */ |
|
584 | * html div.wiki ul.toc { width: 50%; } /* IE6 doesn't autosize div */ | |
586 |
|
585 | |||
587 | div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; } |
|
586 | div.wiki ul.toc.right { float: right; margin-left: 12px; margin-right: 0; width: auto; } | |
588 | div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; } |
|
587 | div.wiki ul.toc.left { float: left; margin-right: 12px; margin-left: 0; width: auto; } | |
589 | div.wiki ul.toc li { list-style-type:none;} |
|
588 | div.wiki ul.toc li { list-style-type:none;} | |
590 | div.wiki ul.toc li.heading2 { margin-left: 6px; } |
|
589 | div.wiki ul.toc li.heading2 { margin-left: 6px; } | |
591 | div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; } |
|
590 | div.wiki ul.toc li.heading3 { margin-left: 12px; font-size: 0.8em; } | |
592 |
|
591 | |||
593 | div.wiki ul.toc a { |
|
592 | div.wiki ul.toc a { | |
594 | font-size: 0.9em; |
|
593 | font-size: 0.9em; | |
595 | font-weight: normal; |
|
594 | font-weight: normal; | |
596 | text-decoration: none; |
|
595 | text-decoration: none; | |
597 | color: #606060; |
|
596 | color: #606060; | |
598 | } |
|
597 | } | |
599 | div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;} |
|
598 | div.wiki ul.toc a:hover { color: #c61a1a; text-decoration: underline;} | |
600 |
|
599 | |||
601 | a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; } |
|
600 | a.wiki-anchor { display: none; margin-left: 6px; text-decoration: none; } | |
602 | a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; } |
|
601 | a.wiki-anchor:hover { color: #aaa !important; text-decoration: none; } | |
603 | h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; } |
|
602 | h1:hover a.wiki-anchor, h2:hover a.wiki-anchor, h3:hover a.wiki-anchor { display: inline; color: #ddd; } | |
604 |
|
603 | |||
605 | /***** My page layout *****/ |
|
604 | /***** My page layout *****/ | |
606 | .block-receiver { |
|
605 | .block-receiver { | |
607 | border:1px dashed #c0c0c0; |
|
606 | border:1px dashed #c0c0c0; | |
608 | margin-bottom: 20px; |
|
607 | margin-bottom: 20px; | |
609 | padding: 15px 0 15px 0; |
|
608 | padding: 15px 0 15px 0; | |
610 | } |
|
609 | } | |
611 |
|
610 | |||
612 | .mypage-box { |
|
611 | .mypage-box { | |
613 | margin:0 0 20px 0; |
|
612 | margin:0 0 20px 0; | |
614 | color:#505050; |
|
613 | color:#505050; | |
615 | line-height:1.5em; |
|
614 | line-height:1.5em; | |
616 | } |
|
615 | } | |
617 |
|
616 | |||
618 | .handle { |
|
617 | .handle { | |
619 | cursor: move; |
|
618 | cursor: move; | |
620 | } |
|
619 | } | |
621 |
|
620 | |||
622 | a.close-icon { |
|
621 | a.close-icon { | |
623 | display:block; |
|
622 | display:block; | |
624 | margin-top:3px; |
|
623 | margin-top:3px; | |
625 | overflow:hidden; |
|
624 | overflow:hidden; | |
626 | width:12px; |
|
625 | width:12px; | |
627 | height:12px; |
|
626 | height:12px; | |
628 | background-repeat: no-repeat; |
|
627 | background-repeat: no-repeat; | |
629 | cursor:pointer; |
|
628 | cursor:pointer; | |
630 | background-image:url('../images/close.png'); |
|
629 | background-image:url('../images/close.png'); | |
631 | } |
|
630 | } | |
632 |
|
631 | |||
633 | a.close-icon:hover { |
|
632 | a.close-icon:hover { | |
634 | background-image:url('../images/close_hl.png'); |
|
633 | background-image:url('../images/close_hl.png'); | |
635 | } |
|
634 | } | |
636 |
|
635 | |||
637 | /***** Gantt chart *****/ |
|
636 | /***** Gantt chart *****/ | |
638 | .gantt_hdr { |
|
637 | .gantt_hdr { | |
639 | position:absolute; |
|
638 | position:absolute; | |
640 | top:0; |
|
639 | top:0; | |
641 | height:16px; |
|
640 | height:16px; | |
642 | border-top: 1px solid #c0c0c0; |
|
641 | border-top: 1px solid #c0c0c0; | |
643 | border-bottom: 1px solid #c0c0c0; |
|
642 | border-bottom: 1px solid #c0c0c0; | |
644 | border-right: 1px solid #c0c0c0; |
|
643 | border-right: 1px solid #c0c0c0; | |
645 | text-align: center; |
|
644 | text-align: center; | |
646 | overflow: hidden; |
|
645 | overflow: hidden; | |
647 | } |
|
646 | } | |
648 |
|
647 | |||
649 | .task { |
|
648 | .task { | |
650 | position: absolute; |
|
649 | position: absolute; | |
651 | height:8px; |
|
650 | height:8px; | |
652 | font-size:0.8em; |
|
651 | font-size:0.8em; | |
653 | color:#888; |
|
652 | color:#888; | |
654 | padding:0; |
|
653 | padding:0; | |
655 | margin:0; |
|
654 | margin:0; | |
656 | line-height:0.8em; |
|
655 | line-height:0.8em; | |
657 | } |
|
656 | } | |
658 |
|
657 | |||
659 | .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; } |
|
658 | .task_late { background:#f66 url(../images/task_late.png); border: 1px solid #f66; } | |
660 | .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } |
|
659 | .task_done { background:#66f url(../images/task_done.png); border: 1px solid #66f; } | |
661 | .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; } |
|
660 | .task_todo { background:#aaa url(../images/task_todo.png); border: 1px solid #aaa; } | |
662 | .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; } |
|
661 | .milestone { background-image:url(../images/milestone.png); background-repeat: no-repeat; border: 0; } | |
663 |
|
662 | |||
664 | /***** Icons *****/ |
|
663 | /***** Icons *****/ | |
665 | .icon { |
|
664 | .icon { | |
666 | background-position: 0% 40%; |
|
665 | background-position: 0% 40%; | |
667 | background-repeat: no-repeat; |
|
666 | background-repeat: no-repeat; | |
668 | padding-left: 20px; |
|
667 | padding-left: 20px; | |
669 | padding-top: 2px; |
|
668 | padding-top: 2px; | |
670 | padding-bottom: 3px; |
|
669 | padding-bottom: 3px; | |
671 | } |
|
670 | } | |
672 |
|
671 | |||
673 | .icon22 { |
|
672 | .icon22 { | |
674 | background-position: 0% 40%; |
|
673 | background-position: 0% 40%; | |
675 | background-repeat: no-repeat; |
|
674 | background-repeat: no-repeat; | |
676 | padding-left: 26px; |
|
675 | padding-left: 26px; | |
677 | line-height: 22px; |
|
676 | line-height: 22px; | |
678 | vertical-align: middle; |
|
677 | vertical-align: middle; | |
679 | } |
|
678 | } | |
680 |
|
679 | |||
681 | .icon-add { background-image: url(../images/add.png); } |
|
680 | .icon-add { background-image: url(../images/add.png); } | |
682 | .icon-edit { background-image: url(../images/edit.png); } |
|
681 | .icon-edit { background-image: url(../images/edit.png); } | |
683 | .icon-copy { background-image: url(../images/copy.png); } |
|
682 | .icon-copy { background-image: url(../images/copy.png); } | |
684 | .icon-del { background-image: url(../images/delete.png); } |
|
683 | .icon-del { background-image: url(../images/delete.png); } | |
685 | .icon-move { background-image: url(../images/move.png); } |
|
684 | .icon-move { background-image: url(../images/move.png); } | |
686 | .icon-save { background-image: url(../images/save.png); } |
|
685 | .icon-save { background-image: url(../images/save.png); } | |
687 | .icon-cancel { background-image: url(../images/cancel.png); } |
|
686 | .icon-cancel { background-image: url(../images/cancel.png); } | |
688 | .icon-folder { background-image: url(../images/folder.png); } |
|
687 | .icon-folder { background-image: url(../images/folder.png); } | |
689 | .open .icon-folder { background-image: url(../images/folder_open.png); } |
|
688 | .open .icon-folder { background-image: url(../images/folder_open.png); } | |
690 | .icon-package { background-image: url(../images/package.png); } |
|
689 | .icon-package { background-image: url(../images/package.png); } | |
691 | .icon-home { background-image: url(../images/home.png); } |
|
690 | .icon-home { background-image: url(../images/home.png); } | |
692 | .icon-user { background-image: url(../images/user.png); } |
|
691 | .icon-user { background-image: url(../images/user.png); } | |
693 | .icon-mypage { background-image: url(../images/user_page.png); } |
|
692 | .icon-mypage { background-image: url(../images/user_page.png); } | |
694 | .icon-admin { background-image: url(../images/admin.png); } |
|
693 | .icon-admin { background-image: url(../images/admin.png); } | |
695 | .icon-projects { background-image: url(../images/projects.png); } |
|
694 | .icon-projects { background-image: url(../images/projects.png); } | |
696 | .icon-help { background-image: url(../images/help.png); } |
|
695 | .icon-help { background-image: url(../images/help.png); } | |
697 | .icon-attachment { background-image: url(../images/attachment.png); } |
|
696 | .icon-attachment { background-image: url(../images/attachment.png); } | |
698 | .icon-index { background-image: url(../images/index.png); } |
|
697 | .icon-index { background-image: url(../images/index.png); } | |
699 | .icon-history { background-image: url(../images/history.png); } |
|
698 | .icon-history { background-image: url(../images/history.png); } | |
700 | .icon-time { background-image: url(../images/time.png); } |
|
699 | .icon-time { background-image: url(../images/time.png); } | |
701 | .icon-time-add { background-image: url(../images/time_add.png); } |
|
700 | .icon-time-add { background-image: url(../images/time_add.png); } | |
702 | .icon-stats { background-image: url(../images/stats.png); } |
|
701 | .icon-stats { background-image: url(../images/stats.png); } | |
703 | .icon-warning { background-image: url(../images/warning.png); } |
|
702 | .icon-warning { background-image: url(../images/warning.png); } | |
704 | .icon-fav { background-image: url(../images/fav.png); } |
|
703 | .icon-fav { background-image: url(../images/fav.png); } | |
705 | .icon-fav-off { background-image: url(../images/fav_off.png); } |
|
704 | .icon-fav-off { background-image: url(../images/fav_off.png); } | |
706 | .icon-reload { background-image: url(../images/reload.png); } |
|
705 | .icon-reload { background-image: url(../images/reload.png); } | |
707 | .icon-lock { background-image: url(../images/locked.png); } |
|
706 | .icon-lock { background-image: url(../images/locked.png); } | |
708 | .icon-unlock { background-image: url(../images/unlock.png); } |
|
707 | .icon-unlock { background-image: url(../images/unlock.png); } | |
709 | .icon-checked { background-image: url(../images/true.png); } |
|
708 | .icon-checked { background-image: url(../images/true.png); } | |
710 | .icon-details { background-image: url(../images/zoom_in.png); } |
|
709 | .icon-details { background-image: url(../images/zoom_in.png); } | |
711 | .icon-report { background-image: url(../images/report.png); } |
|
710 | .icon-report { background-image: url(../images/report.png); } | |
712 | .icon-comment { background-image: url(../images/comment.png); } |
|
711 | .icon-comment { background-image: url(../images/comment.png); } | |
713 |
|
712 | |||
714 | .icon-file { background-image: url(../images/files/default.png); } |
|
713 | .icon-file { background-image: url(../images/files/default.png); } | |
715 | .icon-file.text-plain { background-image: url(../images/files/text.png); } |
|
714 | .icon-file.text-plain { background-image: url(../images/files/text.png); } | |
716 | .icon-file.text-x-c { background-image: url(../images/files/c.png); } |
|
715 | .icon-file.text-x-c { background-image: url(../images/files/c.png); } | |
717 | .icon-file.text-x-csharp { background-image: url(../images/files/csharp.png); } |
|
716 | .icon-file.text-x-csharp { background-image: url(../images/files/csharp.png); } | |
718 | .icon-file.text-x-php { background-image: url(../images/files/php.png); } |
|
717 | .icon-file.text-x-php { background-image: url(../images/files/php.png); } | |
719 | .icon-file.text-x-ruby { background-image: url(../images/files/ruby.png); } |
|
718 | .icon-file.text-x-ruby { background-image: url(../images/files/ruby.png); } | |
720 | .icon-file.text-xml { background-image: url(../images/files/xml.png); } |
|
719 | .icon-file.text-xml { background-image: url(../images/files/xml.png); } | |
721 | .icon-file.image-gif { background-image: url(../images/files/image.png); } |
|
720 | .icon-file.image-gif { background-image: url(../images/files/image.png); } | |
722 | .icon-file.image-jpeg { background-image: url(../images/files/image.png); } |
|
721 | .icon-file.image-jpeg { background-image: url(../images/files/image.png); } | |
723 | .icon-file.image-png { background-image: url(../images/files/image.png); } |
|
722 | .icon-file.image-png { background-image: url(../images/files/image.png); } | |
724 | .icon-file.image-tiff { background-image: url(../images/files/image.png); } |
|
723 | .icon-file.image-tiff { background-image: url(../images/files/image.png); } | |
725 | .icon-file.application-pdf { background-image: url(../images/files/pdf.png); } |
|
724 | .icon-file.application-pdf { background-image: url(../images/files/pdf.png); } | |
726 | .icon-file.application-zip { background-image: url(../images/files/zip.png); } |
|
725 | .icon-file.application-zip { background-image: url(../images/files/zip.png); } | |
727 | .icon-file.application-x-gzip { background-image: url(../images/files/zip.png); } |
|
726 | .icon-file.application-x-gzip { background-image: url(../images/files/zip.png); } | |
728 |
|
727 | |||
729 | .icon22-projects { background-image: url(../images/22x22/projects.png); } |
|
728 | .icon22-projects { background-image: url(../images/22x22/projects.png); } | |
730 | .icon22-users { background-image: url(../images/22x22/users.png); } |
|
729 | .icon22-users { background-image: url(../images/22x22/users.png); } | |
731 | .icon22-groups { background-image: url(../images/22x22/groups.png); } |
|
730 | .icon22-groups { background-image: url(../images/22x22/groups.png); } | |
732 | .icon22-tracker { background-image: url(../images/22x22/tracker.png); } |
|
731 | .icon22-tracker { background-image: url(../images/22x22/tracker.png); } | |
733 | .icon22-role { background-image: url(../images/22x22/role.png); } |
|
732 | .icon22-role { background-image: url(../images/22x22/role.png); } | |
734 | .icon22-workflow { background-image: url(../images/22x22/workflow.png); } |
|
733 | .icon22-workflow { background-image: url(../images/22x22/workflow.png); } | |
735 | .icon22-options { background-image: url(../images/22x22/options.png); } |
|
734 | .icon22-options { background-image: url(../images/22x22/options.png); } | |
736 | .icon22-notifications { background-image: url(../images/22x22/notifications.png); } |
|
735 | .icon22-notifications { background-image: url(../images/22x22/notifications.png); } | |
737 | .icon22-authent { background-image: url(../images/22x22/authent.png); } |
|
736 | .icon22-authent { background-image: url(../images/22x22/authent.png); } | |
738 | .icon22-info { background-image: url(../images/22x22/info.png); } |
|
737 | .icon22-info { background-image: url(../images/22x22/info.png); } | |
739 | .icon22-comment { background-image: url(../images/22x22/comment.png); } |
|
738 | .icon22-comment { background-image: url(../images/22x22/comment.png); } | |
740 | .icon22-package { background-image: url(../images/22x22/package.png); } |
|
739 | .icon22-package { background-image: url(../images/22x22/package.png); } | |
741 | .icon22-settings { background-image: url(../images/22x22/settings.png); } |
|
740 | .icon22-settings { background-image: url(../images/22x22/settings.png); } | |
742 | .icon22-plugin { background-image: url(../images/22x22/plugin.png); } |
|
741 | .icon22-plugin { background-image: url(../images/22x22/plugin.png); } | |
743 |
|
742 | |||
744 | img.gravatar { |
|
743 | img.gravatar { | |
745 | padding: 2px; |
|
744 | padding: 2px; | |
746 | border: solid 1px #d5d5d5; |
|
745 | border: solid 1px #d5d5d5; | |
747 | background: #fff; |
|
746 | background: #fff; | |
748 | } |
|
747 | } | |
749 |
|
748 | |||
750 | div.issue img.gravatar { |
|
749 | div.issue img.gravatar { | |
751 | float: right; |
|
750 | float: right; | |
752 | margin: 0 0 0 1em; |
|
751 | margin: 0 0 0 1em; | |
753 | padding: 5px; |
|
752 | padding: 5px; | |
754 | } |
|
753 | } | |
755 |
|
754 | |||
756 | div.issue table img.gravatar { |
|
755 | div.issue table img.gravatar { | |
757 | height: 14px; |
|
756 | height: 14px; | |
758 | width: 14px; |
|
757 | width: 14px; | |
759 | padding: 2px; |
|
758 | padding: 2px; | |
760 | float: left; |
|
759 | float: left; | |
761 | margin: 0 0.5em 0 0; |
|
760 | margin: 0 0.5em 0 0; | |
762 | } |
|
761 | } | |
763 |
|
762 | |||
764 | #history img.gravatar { |
|
763 | #history img.gravatar { | |
765 | padding: 3px; |
|
764 | padding: 3px; | |
766 | margin: 0 1.5em 1em 0; |
|
765 | margin: 0 1.5em 1em 0; | |
767 | float: left; |
|
766 | float: left; | |
768 | } |
|
767 | } | |
769 |
|
768 | |||
770 | td.username img.gravatar { |
|
769 | td.username img.gravatar { | |
771 | float: left; |
|
770 | float: left; | |
772 | margin: 0 1em 0 0; |
|
771 | margin: 0 1em 0 0; | |
773 | } |
|
772 | } | |
774 |
|
773 | |||
775 | #activity dt img.gravatar { |
|
774 | #activity dt img.gravatar { | |
776 | float: left; |
|
775 | float: left; | |
777 | margin: 0 1em 1em 0; |
|
776 | margin: 0 1em 1em 0; | |
778 | } |
|
777 | } | |
779 |
|
778 | |||
780 | #activity dt, |
|
779 | #activity dt, | |
781 | .journal { |
|
780 | .journal { | |
782 | clear: left; |
|
781 | clear: left; | |
783 | } |
|
782 | } | |
784 |
|
783 | |||
785 | .gravatar-margin { |
|
784 | .gravatar-margin { | |
786 | margin-left: 40px; |
|
785 | margin-left: 40px; | |
787 | } |
|
786 | } | |
788 |
|
787 | |||
789 | h2 img { vertical-align:middle; } |
|
788 | h2 img { vertical-align:middle; } | |
790 |
|
789 | |||
791 |
|
790 | |||
792 | /***** Media print specific styles *****/ |
|
791 | /***** Media print specific styles *****/ | |
793 | @media print { |
|
792 | @media print { | |
794 | #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; } |
|
793 | #top-menu, #header, #main-menu, #sidebar, #footer, .contextual, .other-formats { display:none; } | |
795 | #main { background: #fff; } |
|
794 | #main { background: #fff; } | |
796 | #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;} |
|
795 | #content { width: 99%; margin: 0; padding: 0; border: 0; background: #fff; overflow: visible !important;} | |
797 | #wiki_add_attachment { display:none; } |
|
796 | #wiki_add_attachment { display:none; } | |
798 | } |
|
797 | } |
General Comments 0
You need to be logged in to leave comments.
Login now