##// 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 require 'coderay'
18 require 'coderay'
19 require 'coderay/helpers/file_type'
19 require 'coderay/helpers/file_type'
20 require 'iconv'
20
21
21 module RepositoriesHelper
22 module RepositoriesHelper
22 def syntax_highlight(name, content)
23 def syntax_highlight(name, content)
23 type = CodeRay::FileType[name]
24 type = CodeRay::FileType[name]
24 type ? CodeRay.scan(content, type).html : h(content)
25 type ? CodeRay.scan(content, type).html : h(content)
25 end
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 def repository_field_tags(form, repository)
41 def repository_field_tags(form, repository)
28 method = repository.class.name.demodulize.underscore + "_field_tags"
42 method = repository.class.name.demodulize.underscore + "_field_tags"
29 send(method, form, repository) if repository.is_a?(Repository) && respond_to?(method)
43 send(method, form, repository) if repository.is_a?(Repository) && respond_to?(method)
@@ -34,13 +34,13
34 <%= table_file[key].nb_line_left %>
34 <%= table_file[key].nb_line_left %>
35 </th>
35 </th>
36 <td class="line-code <%= table_file[key].type_diff_left %>">
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 </td>
38 </td>
39 <th class="line-num">
39 <th class="line-num">
40 <%= table_file[key].nb_line_right %>
40 <%= table_file[key].nb_line_right %>
41 </th>
41 </th>
42 <td class="line-code <%= table_file[key].type_diff_right %>">
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 </td>
44 </td>
45 </tr>
45 </tr>
46 <% end %>
46 <% end %>
@@ -72,11 +72,11
72 </th>
72 </th>
73 <% if table_file[key].line_left.empty? %>
73 <% if table_file[key].line_left.empty? %>
74 <td class="line-code <%= table_file[key].type_diff_right %>">
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 </td>
76 </td>
77 <% else %>
77 <% else %>
78 <td class="line-code <%= table_file[key].type_diff_left %>">
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 </td>
80 </td>
81 <% end %>
81 <% end %>
82 </tr>
82 </tr>
@@ -9,7 +9,7
9 </thead>
9 </thead>
10 <tbody>
10 <tbody>
11 <% line_num = 1 %>
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 <tr>
13 <tr>
14 <th class="line-num"><%= line_num %></th>
14 <th class="line-num"><%= line_num %></th>
15 <td class="line-code"><pre><%= line %></pre></td>
15 <td class="line-code"><pre><%= line %></pre></td>
@@ -48,6 +48,9
48
48
49 <p><label><%= l(:setting_sys_api_enabled) %></label>
49 <p><label><%= l(:setting_sys_api_enabled) %></label>
50 <%= check_box_tag 'settings[sys_api_enabled]', 1, Setting.sys_api_enabled? %><%= hidden_field_tag 'settings[sys_api_enabled]', 0 %></p>
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 </div>
54 </div>
52
55
53 <fieldset class="box"><legend><%= l(:setting_issue_list_default_columns) %></legend>
56 <fieldset class="box"><legend><%= l(:setting_issue_list_default_columns) %></legend>
@@ -88,4 +88,8 issue_list_default_columns:
88 - subject
88 - subject
89 - assigned_to
89 - assigned_to
90 - updated_on
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 No newline at end of file
95
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 setting_date_format: Date format
182 setting_date_format: Date format
183 setting_cross_project_issue_relations: Allow cross-project issue relations
183 setting_cross_project_issue_relations: Allow cross-project issue relations
184 setting_issue_list_default_columns: Default columns displayed on the issue list
184 setting_issue_list_default_columns: Default columns displayed on the issue list
185 setting_repositories_encodings: Repositories encodings
185
186
186 label_user: User
187 label_user: User
187 label_user_plural: Users
188 label_user_plural: Users
@@ -517,3 +517,4 button_reset: Reset
517 label_added_time_by: Added by %s %s ago
517 label_added_time_by: Added by %s %s ago
518 field_estimated_hours: Estimated time
518 field_estimated_hours: Estimated time
519 label_changeset_plural: Changesets
519 label_changeset_plural: Changesets
520 setting_repositories_encodings: Repositories encodings
@@ -182,6 +182,7 setting_autologin: Autologin
182 setting_date_format: Format de date
182 setting_date_format: Format de date
183 setting_cross_project_issue_relations: Autoriser les relations entre demandes de différents projets
183 setting_cross_project_issue_relations: Autoriser les relations entre demandes de différents projets
184 setting_issue_list_default_columns: Colonnes affichées par défaut sur la liste des demandes
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 label_user: Utilisateur
187 label_user: Utilisateur
187 label_user_plural: Utilisateurs
188 label_user_plural: Utilisateurs
@@ -514,3 +514,4 label_changeset_plural: Changesets
514 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
515 field_column_names: Columns
516 label_default_columns: Default columns
516 label_default_columns: Default columns
517 setting_issue_list_default_columns: 問題の一覧で表示する項目
517 setting_issue_list_default_columns: 問題の一覧で表示する項目
518 setting_repositories_encodings: Repositories encodings
@@ -515,3 +515,4 label_changeset_plural: Changesets
515 field_column_names: Columns
515 field_column_names: Columns
516 label_default_columns: Default columns
516 label_default_columns: Default columns
517 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
514 field_column_names: Columns
515 label_default_columns: Default columns
515 label_default_columns: Default columns
516 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
515 field_column_names: Columns
516 label_default_columns: Default columns
516 label_default_columns: Default columns
517 setting_issue_list_default_columns: Default columns displayed on the issue list
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 field_column_names: Columns
517 field_column_names: Columns
518 label_default_columns: Default columns
518 label_default_columns: Default columns
519 setting_issue_list_default_columns: Default columns displayed on the issue list
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