1
0
mirror of https://github.com/meineerde/redmine.git synced 2025-12-22 08:21:14 +00:00

Links for custom field value don't have "external" class (#27024).

Patch by Go MAEDA.


git-svn-id: http://svn.redmine.org/redmine/trunk@17138 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
Go MAEDA 2018-01-01 06:18:01 +00:00
parent 14e0a6bdba
commit c35433ad01
5 changed files with 20 additions and 16 deletions

View File

@ -248,7 +248,10 @@ module Redmine
url = url_from_pattern(custom_field, single_value, customized) url = url_from_pattern(custom_field, single_value, customized)
[text, url] [text, url]
end end
links = texts_and_urls.sort_by(&:first).map {|text, url| view.link_to_if uri_with_safe_scheme?(url), text, url} links = texts_and_urls.sort_by(&:first).map do |text, url|
css_class = (url =~ /^https?:\/\//) ? 'external' : nil
view.link_to_if uri_with_safe_scheme?(url), text, url, :class => css_class
end
links.join(', ').html_safe links.join(', ').html_safe
else else
casted casted
@ -442,7 +445,8 @@ module Redmine
url = "http://" + url url = "http://" + url
end end
end end
view.link_to value.to_s.truncate(40), url css_class = (url =~ /^https?:\/\//) ? 'external' : nil
view.link_to value.to_s.truncate(40), url, :class => css_class
else else
value.to_s value.to_s
end end

View File

@ -72,7 +72,7 @@ class Redmine::FieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "bar") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "bar")
assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/bar">bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/bar">bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_text_field_with_url_pattern_and_value_containing_a_space_should_format_as_link def test_text_field_with_url_pattern_and_value_containing_a_space_should_format_as_link
@ -80,7 +80,7 @@ class Redmine::FieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "foo bar") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "foo bar")
assert_equal "foo bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "foo bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/foo%20bar">foo bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/foo%20bar">foo bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_text_field_with_url_pattern_should_not_encode_url_pattern def test_text_field_with_url_pattern_should_not_encode_url_pattern
@ -88,7 +88,7 @@ class Redmine::FieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "1") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "1")
assert_equal "1", field.format.formatted_custom_value(self, custom_value, false) assert_equal "1", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/bar#anchor">1</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/bar#anchor">1</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_text_field_with_url_pattern_should_encode_values def test_text_field_with_url_pattern_should_encode_values
@ -96,6 +96,6 @@ class Redmine::FieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "foo bar") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "foo bar")
assert_equal "foo bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "foo bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/foo%20bar#anchor">foo bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/foo%20bar#anchor">foo bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
end end

View File

@ -24,7 +24,7 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "bar") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "bar")
assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/bar">bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/bar">bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_link_field_should_substitute_object_id_in_url def test_link_field_should_substitute_object_id_in_url
@ -35,7 +35,7 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar") custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar")
assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/10">bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/10">bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_link_field_should_substitute_project_id_in_url def test_link_field_should_substitute_project_id_in_url
@ -48,7 +48,7 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar") custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar")
assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/52">bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/52">bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_link_field_should_substitute_project_identifier_in_url def test_link_field_should_substitute_project_identifier_in_url
@ -61,7 +61,7 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar") custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar")
assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/foo_project-00">bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/foo_project-00">bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_link_field_should_substitute_regexp_groups def test_link_field_should_substitute_regexp_groups
@ -69,7 +69,7 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "56-142") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "56-142")
assert_equal "56-142", field.format.formatted_custom_value(self, custom_value, false) assert_equal "56-142", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/142/56">56-142</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/142/56">56-142</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_link_field_without_url_pattern_should_link_to_value def test_link_field_without_url_pattern_should_link_to_value
@ -77,7 +77,7 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "http://foo/bar") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "http://foo/bar")
assert_equal "http://foo/bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "http://foo/bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/bar">http://foo/bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/bar">http://foo/bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
def test_link_field_without_url_pattern_should_link_to_value_with_http_by_default def test_link_field_without_url_pattern_should_link_to_value_with_http_by_default
@ -85,6 +85,6 @@ class Redmine::LinkFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "foo.bar") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "foo.bar")
assert_equal "foo.bar", field.format.formatted_custom_value(self, custom_value, false) assert_equal "foo.bar", field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo.bar">foo.bar</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo.bar">foo.bar</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
end end

View File

@ -131,14 +131,14 @@ class Redmine::ListFieldFormatTest < ActionView::TestCase
def test_field_with_url_pattern_should_link_value def test_field_with_url_pattern_should_link_value
field = IssueCustomField.new(:field_format => 'list', :url_pattern => 'http://localhost/%value%') field = IssueCustomField.new(:field_format => 'list', :url_pattern => 'http://localhost/%value%')
formatted = field.format.formatted_value(self, field, 'foo', Issue.new, true) formatted = field.format.formatted_value(self, field, 'foo', Issue.new, true)
assert_equal '<a href="http://localhost/foo">foo</a>', formatted assert_equal '<a class="external" href="http://localhost/foo">foo</a>', formatted
assert formatted.html_safe? assert formatted.html_safe?
end end
def test_field_with_url_pattern_and_multiple_values_should_link_values def test_field_with_url_pattern_and_multiple_values_should_link_values
field = IssueCustomField.new(:field_format => 'list', :url_pattern => 'http://localhost/%value%') field = IssueCustomField.new(:field_format => 'list', :url_pattern => 'http://localhost/%value%')
formatted = field.format.formatted_value(self, field, ['foo', 'bar'], Issue.new, true) formatted = field.format.formatted_value(self, field, ['foo', 'bar'], Issue.new, true)
assert_equal '<a href="http://localhost/bar">bar</a>, <a href="http://localhost/foo">foo</a>', formatted assert_equal '<a class="external" href="http://localhost/bar">bar</a>, <a class="external" href="http://localhost/foo">foo</a>', formatted
assert formatted.html_safe? assert formatted.html_safe?
end end

View File

@ -26,6 +26,6 @@ class Redmine::NumericFieldFormatTest < ActionView::TestCase
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "3") custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "3")
assert_equal 3, field.format.formatted_custom_value(self, custom_value, false) assert_equal 3, field.format.formatted_custom_value(self, custom_value, false)
assert_equal '<a href="http://foo/3">3</a>', field.format.formatted_custom_value(self, custom_value, true) assert_equal '<a class="external" href="http://foo/3">3</a>', field.format.formatted_custom_value(self, custom_value, true)
end end
end end