]> source.dussan.org Git - redmine.git/commitdiff
Adds a setting to enable/disable formatting of commit messages (#22758).
authorJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 12 Dec 2016 21:19:59 +0000 (21:19 +0000)
committerJean-Philippe Lang <jp_lang@yahoo.fr>
Mon, 12 Dec 2016 21:19:59 +0000 (21:19 +0000)
git-svn-id: http://svn.redmine.org/redmine/trunk@16062 e93f8b46-1217-0410-a6f0-8f06a7374b81

app/helpers/application_helper.rb
app/views/issues/_changesets.html.erb
app/views/repositories/_changeset.html.erb
app/views/repositories/_revisions.html.erb
app/views/settings/_repositories.html.erb
config/locales/en.yml
config/locales/fr.yml
config/settings.yml
public/stylesheets/application.css
test/functional/repositories_controller_test.rb

index d4bd6a2f2e583c56bcb8e45f5d5e312e3f2ba3e0..e6078358dd47fb684a0b5b3afab8a1cb45e50b6f 100644 (file)
@@ -254,6 +254,11 @@ module ApplicationHelper
     end
   end
 
+  def format_changeset_comments(changeset, options={})
+    method = options[:short] ? :short_comments : :comments
+    textilizable changeset, method, :formatting => Setting.commit_logs_formatting?
+  end
+
   def due_date_distance_in_words(date)
     if date
       l((date < User.current.today ? :label_roadmap_overdue : :label_roadmap_due_in), distance_of_date_in_words(User.current.today, date))
@@ -619,7 +624,13 @@ module ApplicationHelper
 
     text = text.dup
     macros = catch_macros(text)
-    text = Redmine::WikiFormatting.to_html(Setting.text_formatting, text, :object => obj, :attribute => attr)
+
+    if options[:formatting] == false
+      text = h(text)
+    else
+      formatting = options[:formatting] || Setting.text_formatting
+      text = Redmine::WikiFormatting.to_html(formatting, text, :object => obj, :attribute => attr)
+    end
 
     @parsed_headings = []
     @heading_anchors = {}
index f4b47c617e049a14ad0d6b4dd85aaa8be3df6d5c..0e963fcf8185637fc1afa94c6b4519b1552856ce 100644 (file)
@@ -13,8 +13,8 @@
         <% end %>
         <br />
         <span class="author"><%= authoring(changeset.committed_on, changeset.author) %></span></p>
-    <div class="wiki">
-        <%= textilizable(changeset, :comments) %>
+    <div class="wiki changset-comments">
+        <%= format_changeset_comments changeset %>
     </div>
     </div>
 <% end %>
index dbdf171607d6f79731277afa212a4536c5c2428a..e123daf8676d0384a4211a9ad5234768e00763a8 100644 (file)
@@ -33,7 +33,9 @@
 
 </div>
 
-<%= textilizable @changeset.comments %>
+<div class="wiki changset-comments">
+  <%= format_changeset_comments @changeset %>
+</div>
 
 <% if @changeset.issues.visible.any? || User.current.allowed_to?(:manage_related_issues, @repository.project) %>
   <%= render :partial => 'related_issues' %>
index 9c72204fa08603733dd63bcaff7303f6e87fd36d..d1b9c4b04570437af39c7c249ac8ec8c9f703d32 100644 (file)
@@ -42,7 +42,7 @@ end %>
 <td class="checkbox"><%= radio_button_tag('rev_to', changeset.identifier, (line_num==2), :id => "cbto-#{line_num}", :onclick => "if ($('#cb-#{line_num}').prop('checked')) {$('#cb-#{line_num-1}').prop('checked',true);}") if show_diff && (line_num > 1) %></td>
 <td class="committed_on"><%= format_time(changeset.committed_on) %></td>
 <td class="author"><%= changeset.user.blank? ? changeset.author.to_s.truncate(30) : link_to_user(changeset.user) %></td>
-<td class="comments"><%= textilizable(truncate_at_line_break(changeset.comments)) %></td>
+<td class="comments"><%= format_changeset_comments changeset, :short => true %></td>
 </tr>
 <% line_num += 1 %>
 <% end %>
index 760903ea08602137d0b24f581b425b0a9958bb5c..adac52fc778e76b841f819d525097671139756d9 100644 (file)
@@ -52,6 +52,8 @@
 </p>
 
 <p><%= setting_text_field :repository_log_display_limit, :size => 6 %></p>
+
+<p><%= setting_check_box :commit_logs_formatting %></p>
 </div>
 
 <fieldset class="box tabular settings">
index e0ebe3bf1ec1b412cc900407ed8f760e34dfca77..ba839aa783ef54ce19052e77dddff011bb21f238 100644 (file)
@@ -448,6 +448,7 @@ en:
   setting_attachment_extensions_allowed: Allowed extensions
   setting_attachment_extensions_denied: Disallowed extensions
   setting_new_item_menu_tab: Project menu tab for creating new objects
+  setting_commit_logs_formatting: Apply text formatting to commit messages
 
   permission_add_project: Create project
   permission_add_subprojects: Create subprojects
index 69cc6b89626ba27b1ce025f7065d3de291813e7f..abf39c8e68fb5985585703f549636ee46e534db4 100644 (file)
@@ -460,6 +460,7 @@ fr:
   setting_sys_api_key: Clé de protection de l'API
   setting_lost_password: Autoriser la réinitialisation par email de mot de passe perdu
   setting_new_item_menu_tab: Onglet de création d'objets dans le menu du project
+  setting_commit_logs_formatting: Appliquer le formattage de texte aux messages de commit
 
   permission_add_project: Créer un projet
   permission_add_subprojects: Créer des sous-projets
index b9a82583fddedae40086537c8128d638ceccfbb8..8dd8b3dc9e274dafb60cb4df7b66f3dc8072c157 100644 (file)
@@ -239,6 +239,8 @@ repositories_encodings:
 # encoding used to convert commit logs to UTF-8
 commit_logs_encoding:
   default: 'UTF-8'
+commit_logs_formatting:
+  default: 1
 repository_log_display_limit:
   format: int
   default: 100
index bb2b0b88816b2828e94d88ca0d130104f79172e9..ef4c7404c44409058520a3ece961926d560e7ca6 100644 (file)
@@ -492,6 +492,7 @@ div#issue-changesets {float:right; width:45%; margin-left: 1em; margin-bottom: 1
 div#issue-changesets div.changeset { padding: 4px;}
 div#issue-changesets div.changeset { border-bottom: 1px solid #ddd; }
 div#issue-changesets p { margin-top: 0; margin-bottom: 1em;}
+.changset-comments {margin-bottom:1em; font-family:}
 
 div.journal {overflow:auto;}
 div.journal.private-notes {border-left:2px solid #d22; padding-left:4px; margin-left:-6px;}
index ebe6c0da883a2e9755ec794f02fd8e3d2c209557..0fc7cfa864aeeca94083b0dd0feffe567b91ab44 100644 (file)
@@ -167,6 +167,16 @@ class RepositoriesControllerTest < Redmine::ControllerTest
     assert_select 'h2', :text => 'Revision 1'
   end
 
+  def test_revision_should_not_format_comments_when_disabled
+    Changeset.where(:id => 100).update_all(:comments => 'Simple *text*')
+
+    with_settings :commit_logs_formatting => '0' do
+      get :revision, :id => 1, :rev => 1
+      assert_response :success
+      assert_select '.changset-comments', :text => 'Simple *text*'
+    end
+  end
+
   def test_revision_should_show_add_related_issue_form
     Role.find(1).add_permission! :manage_related_issues
     @request.session[:user_id] = 2