]> source.dussan.org Git - redmine.git/commitdiff
Adds an option for formatter display name.
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 23 Dec 2013 12:33:42 +0000 (12:33 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 23 Dec 2013 12:33:42 +0000 (12:33 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@12450 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/views/settings/_general.html.erb
lib/redmine/wiki_formatting.rb
test/unit/lib/redmine/wiki_formatting_test.rb

index 4ec01995ae3f5b8ab4ac108ad0aaed2d04452e2c..9cba46ccba43894852737e9c0557f3a9db95d6b6 100644 (file)
@@ -18,7 +18,7 @@
 
 <p><%= setting_select :protocol, [['HTTP', 'http'], ['HTTPS', 'https']] %></p>
 
-<p><%= setting_select :text_formatting, Redmine::WikiFormatting.format_names.collect{|name| [name, name.to_s]}, :blank => :label_none %></p>
+<p><%= setting_select :text_formatting, Redmine::WikiFormatting.formats_for_select, :blank => :label_none %></p>
 
 <p><%= setting_check_box :cache_formatted_text %></p>
 
index 9a62bf6b8dc1bb09114523f70f8796e75658f014..748e366e7ceb0c88b6cb9686008272b3e622852e 100644 (file)
@@ -28,9 +28,14 @@ module Redmine
         yield self
       end
 
-      def register(name, formatter, helper)
-        raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name.to_s]
-        @@formatters[name.to_s] = {:formatter => formatter, :helper => helper}
+      def register(name, formatter, helper, options={})
+        name = name.to_s
+        raise ArgumentError, "format name '#{name}' is already taken" if @@formatters[name]
+        @@formatters[name] = {
+          :formatter => formatter,
+          :helper => helper,
+          :label => options[:label] || name.humanize
+        }
       end
 
       def formatter
@@ -51,6 +56,10 @@ module Redmine
         @@formatters.keys.map
       end
 
+      def formats_for_select
+        @@formatters.map {|name, options| [options[:label], name]}
+      end
+
       def to_html(format, text, options = {})
         text = if Setting.cache_formatted_text? && text.size > 2.kilobyte && cache_store && cache_key = cache_key_for(format, text, options[:object], options[:attribute])
           # Text retrieved from the cache store may be frozen
index a799c6c783fd911c8f2937e849fd67bbf5c3ed8f..e8a457c9de541c6f75e060eaa5b1c63d703a1f18 100644 (file)
@@ -30,6 +30,10 @@ class Redmine::WikiFormattingTest < ActiveSupport::TestCase
     assert_equal Redmine::WikiFormatting::NullFormatter::Helper, Redmine::WikiFormatting.helper_for('')
   end
 
+  def test_formats_for_select
+    assert_include ['Textile', 'textile'], Redmine::WikiFormatting.formats_for_select
+  end
+
   def test_should_link_urls_and_email_addresses
     raw = <<-DIFF
 This is a sample *text* with a link: http://www.redmine.org