summaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-01-25 14:55:36 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-01-25 14:55:36 +0000
commitb40d66f39fa8a0425ce2a08d4cf4007d814b97fb (patch)
tree87940a49e073ba7d61af294157b48fa1fdf9ba8c /app
parent8d713ae6ca643db8ce548b143635dee361f36ffe (diff)
downloadredmine-b40d66f39fa8a0425ce2a08d4cf4007d814b97fb.tar.gz
redmine-b40d66f39fa8a0425ce2a08d4cf4007d814b97fb.zip
Option for long text custom fields to be displayed under the description field (#21705).
Based on patch by Marius BALTEANU. git-svn-id: http://svn.redmine.org/redmine/trunk@16251 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'app')
-rw-r--r--app/helpers/issues_helper.rb24
-rw-r--r--app/models/custom_field.rb7
-rw-r--r--app/views/custom_fields/formats/_text.html.erb3
-rw-r--r--app/views/issues/_form_custom_fields.html.erb7
-rw-r--r--app/views/issues/show.html.erb4
5 files changed, 41 insertions, 4 deletions
diff --git a/app/helpers/issues_helper.rb b/app/helpers/issues_helper.rb
index 122c2ffca..29f469121 100644
--- a/app/helpers/issues_helper.rb
+++ b/app/helpers/issues_helper.rb
@@ -239,8 +239,8 @@ module IssuesHelper
r.to_html
end
- def render_custom_fields_rows(issue)
- values = issue.visible_custom_field_values
+ def render_half_width_custom_fields_rows(issue)
+ values = issue.visible_custom_field_values.reject {|value| value.custom_field.full_width_layout?}
return if values.empty?
half = (values.size / 2.0).ceil
issue_fields_rows do |rows|
@@ -252,6 +252,26 @@ module IssuesHelper
end
end
+ def render_full_width_custom_fields_rows(issue)
+ values = issue.visible_custom_field_values.select {|value| value.custom_field.full_width_layout?}
+ return if values.empty?
+
+ s = ''
+ values.each_with_index do |value, i|
+ if value.custom_field.text_formatting == 'full'
+ attr_value = content_tag('div', show_value(value), class: 'wiki')
+ else
+ attr_value = show_value(value)
+ end
+ content =
+ content_tag('hr') +
+ content_tag('p', content_tag('strong', custom_field_name_tag(value.custom_field) )) +
+ content_tag('div', attr_value, class: 'value')
+ s << content_tag('div', content, class: "cf_#{value.custom_field.id} attribute")
+ end
+ s.html_safe
+ end
+
# Returns the path for updating the issue form
# with project as the current project
def update_issue_form_path(project, issue)
diff --git a/app/models/custom_field.rb b/app/models/custom_field.rb
index 717df95e8..72cf0ea7c 100644
--- a/app/models/custom_field.rb
+++ b/app/models/custom_field.rb
@@ -89,7 +89,8 @@ class CustomField < ActiveRecord::Base
'edit_tag_style',
'user_role',
'version_status',
- 'extensions_allowed'
+ 'extensions_allowed',
+ 'full_width_layout'
def format
@format ||= Redmine::FieldFormat.find(field_format)
@@ -186,6 +187,10 @@ class CustomField < ActiveRecord::Base
format.totalable_supported
end
+ def full_width_layout?
+ full_width_layout == '1'
+ end
+
# Returns a ORDER BY clause that can used to sort customized
# objects by their value of the custom field.
# Returns nil if the custom field can not be used for sorting.
diff --git a/app/views/custom_fields/formats/_text.html.erb b/app/views/custom_fields/formats/_text.html.erb
index e72dcab42..79ea7c5e6 100644
--- a/app/views/custom_fields/formats/_text.html.erb
+++ b/app/views/custom_fields/formats/_text.html.erb
@@ -1,3 +1,6 @@
<%= render :partial => 'custom_fields/formats/regexp', :locals => {:f => f, :custom_field => custom_field} %>
<p><%= f.check_box :text_formatting, {:label => :setting_text_formatting}, 'full', '' %></p>
+<% if @custom_field.class.name == "IssueCustomField" %>
+<p><%= f.check_box :full_width_layout %></p>
+<% end %>
<p><%= f.text_area(:default_value, :rows => 5) %></p>
diff --git a/app/views/issues/_form_custom_fields.html.erb b/app/views/issues/_form_custom_fields.html.erb
index 2e12c00e8..13bedd546 100644
--- a/app/views/issues/_form_custom_fields.html.erb
+++ b/app/views/issues/_form_custom_fields.html.erb
@@ -1,4 +1,7 @@
<% custom_field_values = @issue.editable_custom_field_values %>
+<% custom_field_values_full_width = custom_field_values.select { |value| value.custom_field.full_width_layout? } %>
+<% custom_field_values -= custom_field_values_full_width %>
+
<% if custom_field_values.present? %>
<div class="splitcontent">
<div class="splitcontentleft">
@@ -14,3 +17,7 @@
</div>
</div>
<% end %>
+
+<% custom_field_values_full_width.each do |value| %>
+ <p><%= custom_field_tag_with_label :issue, value, :required => @issue.required_attribute?(value.custom_field_id) %></p>
+<% end %>
diff --git a/app/views/issues/show.html.erb b/app/views/issues/show.html.erb
index b9e5111fa..9d767f0b1 100644
--- a/app/views/issues/show.html.erb
+++ b/app/views/issues/show.html.erb
@@ -66,7 +66,7 @@
end
end
end %>
-<%= render_custom_fields_rows(@issue) %>
+<%= render_half_width_custom_fields_rows(@issue) %>
<%= call_hook(:view_issues_show_details_bottom, :issue => @issue) %>
</div>
@@ -87,6 +87,8 @@ end %>
<%= link_to_attachments @issue, :thumbnails => true %>
<% end -%>
+<%= render_full_width_custom_fields_rows(@issue) %>
+
<%= call_hook(:view_issues_show_description_bottom, :issue => @issue) %>
<% if !@issue.leaf? || User.current.allowed_to?(:manage_subtasks, @project) %>