##// END OF EJS Templates
Default encodings for repository files can now be set in application settings (Admin -> Settings -> Repositories encodings)....
Jean-Philippe Lang -
r803:cdb2781b48f2
parent child
Show More
@@ -17,13 +17,27
17 17
18 18 require 'coderay'
19 19 require 'coderay/helpers/file_type'
20 require 'iconv'
20 21
21 22 module RepositoriesHelper
22 23 def syntax_highlight(name, content)
23 24 type = CodeRay::FileType[name]
24 25 type ? CodeRay.scan(content, type).html : h(content)
25 26 end
26
27
28 def to_utf8(str)
29 return str if /\A[\r\n\t\x20-\x7e]*\Z/n.match(str) # for us-ascii
30 @encodings ||= Setting.repositories_encodings.split(',').collect(&:strip)
31 @encodings.each do |encoding|
32 begin
33 return Iconv.conv('UTF-8', encoding, str)
34 rescue Iconv::Failure
35 # do nothing here and try the next encoding
36 end
37 end
38 str
39 end
40
27 41 def repository_field_tags(form, repository)
28 42 method = repository.class.name.demodulize.underscore + "_field_tags"
29 43 send(method, form, repository) if repository.is_a?(Repository) && respond_to?(method)
@@ -34,13 +34,13
34 34 <%= table_file[key].nb_line_left %>
35 35 </th>
36 36 <td class="line-code <%= table_file[key].type_diff_left %>">
37 <pre><%= table_file[key].line_left %></pre>
37 <pre><%=to_utf8 table_file[key].line_left %></pre>
38 38 </td>
39 39 <th class="line-num">
40 40 <%= table_file[key].nb_line_right %>
41 41 </th>
42 42 <td class="line-code <%= table_file[key].type_diff_right %>">
43 <pre><%= table_file[key].line_right %></pre>
43 <pre><%=to_utf8 table_file[key].line_right %></pre>
44 44 </td>
45 45 </tr>
46 46 <% end %>
@@ -72,11 +72,11
72 72 </th>
73 73 <% if table_file[key].line_left.empty? %>
74 74 <td class="line-code <%= table_file[key].type_diff_right %>">
75 <pre><%= table_file[key].line_right %></pre>
75 <pre><%=to_utf8 table_file[key].line_right %></pre>
76 76 </td>
77 77 <% else %>
78 78 <td class="line-code <%= table_file[key].type_diff_left %>">
79 <pre><%= table_file[key].line_left %></pre>
79 <pre><%=to_utf8 table_file[key].line_left %></pre>
80 80 </td>
81 81 <% end %>
82 82 </tr>
@@ -9,7 +9,7
9 9 </thead>
10 10 <tbody>
11 11 <% line_num = 1 %>
12 <% syntax_highlight(@path, @content).each_line do |line| %>
12 <% syntax_highlight(@path, to_utf8(@content)).each_line do |line| %>
13 13 <tr>
14 14 <th class="line-num"><%= line_num %></th>
15 15 <td class="line-code"><pre><%= line %></pre></td>
@@ -48,6 +48,9
48 48
49 49 <p><label><%= l(:setting_sys_api_enabled) %></label>
50 50 <%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
51
52 <p><label><%= l(:setting_repositories_encodings) %></label>
53 <%= text_field_tag 'settings[repositories_encodings]', Setting.repositories_encodings, :size => 60 %><br /><em><%= l(:text_comma_separated) %></em></p>
51 54 </div>
52 55
53 56 <fieldset class="box"><legend><%= l(:setting_issue_list_default_columns) %></legend>
@@ -88,4 +88,8 issue_list_default_columns:
88 88 - subject
89 89 - assigned_to
90 90 - updated_on
91 # encodings used to convert repository files content to UTF-8
92 # multiple values accepted, comma separated
93 repositories_encodings:
94 default: ''
91 95 No newline at end of file
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -182,6 +182,7 setting_autologin: Autologin
182 182 setting_date_format: Date format
183 183 setting_cross_project_issue_relations: Allow cross-project issue relations
184 184 setting_issue_list_default_columns: Default columns displayed on the issue list
185 setting_repositories_encodings: Repositories encodings
185 186
186 187 label_user: User
187 188 label_user_plural: Users
@@ -517,3 +517,4 button_reset: Reset
517 517 label_added_time_by: Added by %s %s ago
518 518 field_estimated_hours: Estimated time
519 519 label_changeset_plural: Changesets
520 setting_repositories_encodings: Repositories encodings
@@ -182,6 +182,7 setting_autologin: Autologin
182 182 setting_date_format: Format de date
183 183 setting_cross_project_issue_relations: Autoriser les relations entre demandes de différents projets
184 184 setting_issue_list_default_columns: Colonnes affichées par défaut sur la liste des demandes
185 setting_repositories_encodings: Encodages des dépôts
185 186
186 187 label_user: Utilisateur
187 188 label_user_plural: Utilisateurs
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -515,3 +515,4 label_changeset_plural: Changesets
515 515 field_column_names: Columns
516 516 label_default_columns: Default columns
517 517 setting_issue_list_default_columns: 問題の一覧で表示する項目
518 setting_repositories_encodings: Repositories encodings
@@ -515,3 +515,4 label_changeset_plural: Changesets
515 515 field_column_names: Columns
516 516 label_default_columns: Default columns
517 517 setting_issue_list_default_columns: Default columns displayed on the issue list
518 setting_repositories_encodings: Repositories encodings
@@ -514,3 +514,4 label_changeset_plural: Zestawienia zmian
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 514 field_column_names: Columns
515 515 label_default_columns: Default columns
516 516 setting_issue_list_default_columns: Default columns displayed on the issue list
517 setting_repositories_encodings: Repositories encodings
@@ -515,3 +515,4 label_changeset_plural: Changesets
515 515 field_column_names: Columns
516 516 label_default_columns: Default columns
517 517 setting_issue_list_default_columns: Default columns displayed on the issue list
518 setting_repositories_encodings: Repositories encodings
@@ -517,3 +517,4 label_changeset_plural: Changesets
517 517 field_column_names: Columns
518 518 label_default_columns: Default columns
519 519 setting_issue_list_default_columns: Default columns displayed on the issue list
520 setting_repositories_encodings: Repositories encodings
General Comments 0
You need to be logged in to leave comments. Login now