summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2019-06-20 14:01:50 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2019-06-20 14:01:50 +0000
commitc4a9d4cd4df130fa84e5c1948fc93d1f2b0bba5a (patch)
treea62a8e23e74efd319ae5ff533ea82eeed3ca55ec /lib
parent3ddab944d565cfaa7591c8baa603f9738c0b14a3 (diff)
downloadredmine-c4a9d4cd4df130fa84e5c1948fc93d1f2b0bba5a.tar.gz
redmine-c4a9d4cd4df130fa84e5c1948fc93d1f2b0bba5a.zip
Issue macro for flexible linking to issues (#29489).
Patch by Jens Krämer. git-svn-id: http://svn.redmine.org/redmine/trunk@18297 e93f8b46-1217-0410-a6f0-8f06a7374b81
Diffstat (limited to 'lib')
-rw-r--r--lib/redmine/wiki_formatting/macros.rb27
1 files changed, 27 insertions, 0 deletions
diff --git a/lib/redmine/wiki_formatting/macros.rb b/lib/redmine/wiki_formatting/macros.rb
index 8afa0f8e7..bf12cb1b0 100644
--- a/lib/redmine/wiki_formatting/macros.rb
+++ b/lib/redmine/wiki_formatting/macros.rb
@@ -254,6 +254,33 @@ module Redmine
raise "Attachment #{filename} not found"
end
end
+
+ desc "Displays an issue link including additional information. Examples:\n\n" +
+ "{{issue(123)}} -- Issue #123: Enhance macro capabilities\n" +
+ "{{issue(123, project=true)}} -- Andromeda - Issue #123: Enhance macro capabilities\n" +
+ "{{issue(123, tracker=false)}} -- #123: Enhance macro capabilities\n" +
+ "{{issue(123, subject=false, project=true)}} -- Andromeda - Issue #123\n"
+ macro :issue do |obj, args|
+ args, options = extract_macro_options(args, :project, :subject, :tracker)
+ id = args.first
+ issue = Issue.visible.find_by(id: id)
+
+ if issue
+ # remove invalid options
+ options.delete_if { |k,v| v != 'true' && v != 'false' }
+
+ # turn string values into boolean
+ options.each do |k, v|
+ options[k] = v == 'true'
+ end
+
+ link_to_issue(issue, options)
+ else
+ # Fall back to regular issue link format to indicate, that there
+ # should have been something.
+ "##{id}"
+ end
+ end
end
end
end