Patch #21705 » option_to_show_fields_under_description_v2.patch
app/helpers/issues_helper.rb | ||
---|---|---|
223 | 223 |
end |
224 | 224 |
end |
225 | 225 | |
226 |
def render_custom_fields_rows_above_desc(issue) |
|
227 |
values = issue.visible_custom_field_values_by_position |
|
228 |
return if values.empty? |
|
229 |
half = (values.size / 2.0).ceil |
|
230 |
issue_fields_rows do |rows| |
|
231 |
values.each_with_index do |value, i| |
|
232 |
css = "cf_#{value.custom_field.id}" |
|
233 |
m = (i < half ? :left : :right) |
|
234 |
rows.send m, custom_field_name_tag(value.custom_field), show_value(value), :class => css |
|
235 |
end |
|
236 |
end |
|
237 |
end |
|
238 | ||
239 |
def render_custom_fields_rows_under_desc(issue) |
|
240 |
values = issue.visible_custom_field_values_by_position(nil, true) |
|
241 |
return if values.empty? |
|
242 | ||
243 |
s = '' |
|
244 |
values.each_with_index do |value, i| |
|
245 |
content = |
|
246 |
content_tag('hr') + |
|
247 |
content_tag('p', content_tag('strong', custom_field_name_tag(value.custom_field) )) + |
|
248 |
content_tag('div', show_value(value), class: 'value') |
|
249 |
s << content_tag('div', content, class: "cf_#{value.custom_field.id}") |
|
250 |
end |
|
251 |
s.html_safe |
|
252 |
end |
|
253 | ||
226 | 254 |
# Returns the path for updating the issue form |
227 | 255 |
# with project as the current project |
228 | 256 |
def update_issue_form_path(project, issue) |
app/models/issue.rb | ||
---|---|---|
230 | 230 |
end |
231 | 231 |
end |
232 | 232 | |
233 |
# Returns the custom fields depending on the attribute |
|
234 |
# show_under_description |
|
235 |
def visible_custom_field_values_by_position(user=nil, under_description=false) |
|
236 |
user_real = user || User.current |
|
237 |
custom_field_values.select do |value| |
|
238 |
if under_description == false |
|
239 |
value.custom_field.visible_by?(project, user_real) unless value.custom_field.show_under_description? |
|
240 |
else |
|
241 |
value.custom_field.visible_by?(project, user_real) && value.custom_field.show_under_description? |
|
242 |
end |
|
243 |
end |
|
244 |
end |
|
245 | ||
233 | 246 |
# Copies attributes from another issue, arg can be an id or an Issue |
234 | 247 |
def copy_from(arg, options={}) |
235 | 248 |
issue = arg.is_a?(Issue) ? arg : Issue.visible.find(arg) |
app/views/custom_fields/formats/_text.html.erb | ||
---|---|---|
1 | 1 |
<%= render :partial => 'custom_fields/formats/regexp', :locals => {:f => f, :custom_field => custom_field} %> |
2 | 2 |
<p><%= f.check_box :text_formatting, {:label => :setting_text_formatting}, 'full', '' %></p> |
3 |
<p><%= f.check_box :show_under_description, {:label => :setting_show_under_description} %></p> |
|
3 | 4 |
<p><%= f.text_area(:default_value, :rows => 5) %></p> |
app/views/issues/show.html.erb | ||
---|---|---|
68 | 68 |
end |
69 | 69 |
end |
70 | 70 |
end %> |
71 |
<%= render_custom_fields_rows(@issue) %> |
|
71 |
<%= render_custom_fields_rows_above_desc(@issue) %>
|
|
72 | 72 |
<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %> |
73 | 73 |
</div> |
74 | 74 | |
... | ... | |
89 | 89 |
<%= link_to_attachments @issue, :thumbnails => true %> |
90 | 90 |
<% end -%> |
91 | 91 | |
92 |
<%= render_custom_fields_rows_under_desc(@issue) %> |
|
93 | ||
92 | 94 |
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %> |
93 | 95 | |
94 | 96 |
<% if !@issue.leaf? || User.current.allowed_to?(:manage_subtasks, @project) %> |
config/locales/en.yml | ||
---|---|---|
430 | 430 |
setting_search_results_per_page: Search results per page |
431 | 431 |
setting_attachment_extensions_allowed: Allowed extensions |
432 | 432 |
setting_attachment_extensions_denied: Disallowed extensions |
433 |
setting_show_under_description: Show under description |
|
433 | 434 | |
434 | 435 |
permission_add_project: Create project |
435 | 436 |
permission_add_subprojects: Create subprojects |
436 |
- |
db/migrate/20160107180443_add_custom_fields_show_under_description.rb | ||
---|---|---|
1 |
class AddCustomFieldsShowUnderDescription < ActiveRecord::Migration |
|
2 |
def self.up |
|
3 |
add_column :custom_fields, :show_under_description, :boolean, :default => false |
|
4 |
end |
|
5 |
|
|
6 |
def self.down |
|
7 |
remove_column :custom_fields, :show_under_description |
|
8 |
end |
|
9 |
end |
|
0 |
- |
app/helpers/issues_helper.rb | ||
---|---|---|
242 | 242 | |
243 | 243 |
s = '' |
244 | 244 |
values.each_with_index do |value, i| |
245 |
if value.custom_field.text_formatting == 'full' |
|
246 |
attr_value = content_tag('div', show_value(value), class: 'wiki') |
|
247 |
else |
|
248 |
attr_value = show_value(value) |
|
249 |
end |
|
245 | 250 |
content = |
246 | 251 |
content_tag('hr') + |
247 | 252 |
content_tag('p', content_tag('strong', custom_field_name_tag(value.custom_field) )) + |
248 |
content_tag('div', show_value(value), class: 'value')
|
|
249 |
s << content_tag('div', content, class: "cf_#{value.custom_field.id}") |
|
253 |
content_tag('div', attr_value, class: 'value')
|
|
254 |
s << content_tag('div', content, class: "cf_#{value.custom_field.id} attribute")
|
|
250 | 255 |
end |
251 | 256 |
s.html_safe |
252 | 257 |
end |