Feature #15701 » rm15701-add_link_field_project_identifier_substitution-trunk_r12406.diff
| lib/redmine/field_format.rb (working copy) | ||
|---|---|---|
| 289 | 289 |
url.gsub!('%value%') {value.to_s}
|
| 290 | 290 |
url.gsub!('%id%') {customized.id.to_s}
|
| 291 | 291 |
url.gsub!('%project_id%') {(customized.respond_to?(:project) ? customized.project.try(:id) : nil).to_s}
|
| 292 |
url.gsub!('%project_identifier%') {(customized.respond_to?(:project) ? customized.project.try(:identifier) : nil).to_s}
|
|
| 292 | 293 |
if custom_field.regexp.present? |
| 293 | 294 |
url.gsub!(%r{%m(\d+)%}) do
|
| 294 | 295 |
m = $1.to_i |
| test/unit/lib/redmine/field_format/link_format_test.rb (working copy) | ||
|---|---|---|
| 53 | 53 |
assert_equal '<a href="http://foo/52">bar</a>', field.format.formatted_custom_value(self, custom_value, true) |
| 54 | 54 |
end |
| 55 | 55 | |
| 56 |
def test_link_field_should_substitute_project_identifier_in_url |
|
| 57 |
project = Project.new |
|
| 58 |
project.stubs(:identifier).returns('foo_project-00')
|
|
| 59 |
object = Issue.new |
|
| 60 |
object.stubs(:project).returns(project) |
|
| 61 | ||
| 62 |
field = IssueCustomField.new(:field_format => 'link', :url_pattern => 'http://foo/%project_identifier%') |
|
| 63 |
custom_value = CustomValue.new(:custom_field => field, :customized => object, :value => "bar") |
|
| 64 | ||
| 65 |
assert_equal "bar", field.format.formatted_custom_value(self, custom_value, false) |
|
| 66 |
assert_equal '<a href="http://foo/foo_project-00">bar</a>', field.format.formatted_custom_value(self, custom_value, true) |
|
| 67 |
end |
|
| 68 | ||
| 56 | 69 |
def test_link_field_should_substitue_regexp_groups |
| 57 | 70 |
field = IssueCustomField.new(:field_format => 'link', :regexp => /^(.+)-(.+)$/, :url_pattern => 'http://foo/%m2%/%m1%') |
| 58 | 71 |
custom_value = CustomValue.new(:custom_field => field, :customized => Issue.new, :value => "56-142") |
- « Previous
- 1
- 2
- Next »