Patch #29488 » 0001-adds-123-extended-issue-linking-syntax.patch
app/helpers/application_helper.rb | ||
---|---|---|
830 | 830 |
# Examples: |
831 | 831 |
# Issues: |
832 | 832 |
# #52 -> Link to issue #52 |
833 |
# ##52 -> Link to issue #52, including the issue's subject |
|
833 | 834 |
# Changesets: |
834 | 835 |
# r52 -> Link to revision 52 |
835 | 836 |
# commit:a85130f -> Link to scmid starting with a85130f |
... | ... | |
917 | 918 |
:title => truncate_single_line_raw(changeset.comments, 100)) |
918 | 919 |
end |
919 | 920 |
end |
920 |
elsif sep == '#' |
|
921 |
elsif sep == '#' || sep == '##'
|
|
921 | 922 |
oid = identifier.to_i |
922 | 923 |
case prefix |
923 | 924 |
when nil |
924 | 925 |
if oid.to_s == identifier && |
925 | 926 |
issue = Issue.visible.find_by_id(oid) |
926 | 927 |
anchor = comment_id ? "note-#{comment_id}" : nil |
927 |
link = link_to("##{oid}#{comment_suffix}", |
|
928 |
issue_url(issue, :only_path => only_path, :anchor => anchor), |
|
929 |
:class => issue.css_classes, |
|
930 |
:title => "#{issue.tracker.name}: #{issue.subject.truncate(100)} (#{issue.status.name})") |
|
928 |
url = issue_url(issue, :only_path => only_path, :anchor => anchor) |
|
929 |
link = if sep == '##' |
|
930 |
link_to("#{issue.tracker.name} ##{oid}#{comment_suffix}", |
|
931 |
url, |
|
932 |
:class => issue.css_classes, |
|
933 |
:title => "#{issue.tracker.name}: #{issue.subject.truncate(100)} (#{issue.status.name})") + ": #{issue.subject}" |
|
934 |
else |
|
935 |
link_to("##{oid}#{comment_suffix}", |
|
936 |
url, |
|
937 |
:class => issue.css_classes, |
|
938 |
:title => "#{issue.tracker.name}: #{issue.subject.truncate(100)} (#{issue.status.name})") |
|
939 |
end |
|
931 | 940 |
end |
932 | 941 |
when 'document' |
933 | 942 |
if document = Document.visible.find_by_id(oid) |
... | ... | |
1038 | 1047 |
(?<prefix>attachment|document|version|forum|news|message|project|commit|source|export|user)? |
1039 | 1048 |
( |
1040 | 1049 |
( |
1041 |
(?<sep1>\#)| |
|
1050 |
(?<sep1>\#\#?)|
|
|
1042 | 1051 |
( |
1043 | 1052 |
(?<repo_prefix>(?<repo_identifier>[a-z0-9\-_]+)\|)? |
1044 | 1053 |
(?<sep2>r) |
test/helpers/application_helper_test.rb | ||
---|---|---|
290 | 290 | |
291 | 291 |
issue_link = link_to('#3', {:controller => 'issues', :action => 'show', :id => 3}, |
292 | 292 |
:class => Issue.find(3).css_classes, :title => 'Bug: Error 281 when updating a recipe (New)') |
293 |
ext_issue_link = link_to('Bug #3', {:controller => 'issues', :action => 'show', :id => 3}, |
|
294 |
:class => Issue.find(3).css_classes, :title => 'Bug: Error 281 when updating a recipe (New)') + ": Error 281 when updating a recipe" |
|
293 | 295 |
note_link = link_to('#3-14', {:controller => 'issues', :action => 'show', :id => 3, :anchor => 'note-14'}, |
294 | 296 |
:class => Issue.find(3).css_classes, :title => 'Bug: Error 281 when updating a recipe (New)') |
297 |
ext_note_link = link_to('Bug #3-14', {:controller => 'issues', :action => 'show', :id => 3, :anchor => 'note-14'}, |
|
298 |
:class => Issue.find(3).css_classes, :title => 'Bug: Error 281 when updating a recipe (New)') + ": Error 281 when updating a recipe" |
|
295 | 299 |
note_link2 = link_to('#3#note-14', {:controller => 'issues', :action => 'show', :id => 3, :anchor => 'note-14'}, |
296 | 300 |
:class => Issue.find(3).css_classes, :title => 'Bug: Error 281 when updating a recipe (New)') |
301 |
ext_note_link2 = link_to('Bug #3#note-14', {:controller => 'issues', :action => 'show', :id => 3, :anchor => 'note-14'}, |
|
302 |
:class => Issue.find(3).css_classes, :title => 'Bug: Error 281 when updating a recipe (New)') + ": Error 281 when updating a recipe" |
|
297 | 303 | |
298 | 304 |
revision_link = link_to('r1', {:controller => 'repositories', :action => 'revision', :id => 'ecookbook', :repository_id => 10, :rev => 1}, |
299 | 305 |
:class => 'changeset', :title => 'My very first commit do not escaping #<>&') |
... | ... | |
338 | 344 |
'#3#note-14' => note_link2, |
339 | 345 |
# should not ignore leading zero |
340 | 346 |
'#03' => '#03', |
347 |
# tickets with more info |
|
348 |
'##3, [##3], (##3) and ##3.' => "#{ext_issue_link}, [#{ext_issue_link}], (#{ext_issue_link}) and #{ext_issue_link}.", |
|
349 |
'##3-14' => ext_note_link, |
|
350 |
'##3#note-14' => ext_note_link2, |
|
351 |
'##03' => '##03', |
|
341 | 352 |
# changesets |
342 | 353 |
'r1' => revision_link, |
343 | 354 |
'r1.' => "#{revision_link}.", |