43 |
43 |
end
|
44 |
44 |
end
|
45 |
45 |
# Don't group dates if there's only one (eg. time entries filters)
|
46 |
|
if grouped[:label_date].try(:size) == 1
|
|
46 |
if grouped[:label_date].try(:size) == 1
|
47 |
47 |
ungrouped << grouped.delete(:label_date).first
|
48 |
48 |
end
|
49 |
49 |
s = options_for_select([[]] + ungrouped)
|
... | ... | |
164 |
164 |
content_tag('th', h(column.caption))
|
165 |
165 |
end
|
166 |
166 |
|
167 |
|
def column_content(column, issue)
|
168 |
|
value = column.value_object(issue)
|
|
167 |
def column_content(column, item)
|
|
168 |
value = column.value_object(item)
|
169 |
169 |
if value.is_a?(Array)
|
170 |
|
value.collect {|v| column_value(column, issue, v)}.compact.join(', ').html_safe
|
|
170 |
value.collect {|v| column_value(column, item, v)}.compact.join(', ').html_safe
|
171 |
171 |
else
|
172 |
|
column_value(column, issue, value)
|
|
172 |
column_value(column, item, value)
|
173 |
173 |
end
|
174 |
174 |
end
|
175 |
|
|
176 |
|
def column_value(column, issue, value)
|
|
175 |
|
|
176 |
def column_value(column, item, value)
|
177 |
177 |
case column.name
|
178 |
178 |
when :id
|
179 |
|
link_to value, issue_path(issue)
|
|
179 |
link_to value, issue_path(item)
|
180 |
180 |
when :subject
|
181 |
|
link_to value, issue_path(issue)
|
|
181 |
link_to value, issue_path(item)
|
182 |
182 |
when :parent
|
183 |
183 |
value ? (value.visible? ? link_to_issue(value, :subject => false) : "##{value.id}") : ''
|
184 |
184 |
when :description
|
185 |
|
issue.description? ? content_tag('div', textilizable(issue, :description), :class => "wiki") : ''
|
|
185 |
item.description? ? content_tag('div', textilizable(item, :description), :class => "wiki") : ''
|
186 |
186 |
when :done_ratio
|
187 |
187 |
progress_bar(value)
|
188 |
188 |
when :relations
|
189 |
189 |
content_tag('span',
|
190 |
|
value.to_s(issue) {|other| link_to_issue(other, :subject => false, :tracker => false)}.html_safe,
|
191 |
|
:class => value.css_classes_for(issue))
|
|
190 |
value.to_s(item) {|other| link_to_issue(other, :subject => false, :tracker => false)}.html_safe,
|
|
191 |
:class => value.css_classes_for(item))
|
192 |
192 |
when :hours, :spent_hours, :total_spent_hours, :estimated_hours
|
193 |
193 |
format_hours(value)
|
194 |
194 |
else
|
... | ... | |
196 |
196 |
end
|
197 |
197 |
end
|
198 |
198 |
|
199 |
|
def csv_content(column, issue)
|
200 |
|
value = column.value_object(issue)
|
|
199 |
def csv_content(column, item)
|
|
200 |
value = column.value_object(item)
|
201 |
201 |
if value.is_a?(Array)
|
202 |
|
value.collect {|v| csv_value(column, issue, v)}.compact.join(', ')
|
|
202 |
value.collect {|v| csv_value(column, item, v)}.compact.join(', ')
|
203 |
203 |
else
|
204 |
|
csv_value(column, issue, value)
|
|
204 |
csv_value(column, item, value)
|
205 |
205 |
end
|
206 |
206 |
end
|
207 |
207 |
|