Browse Source

Fix code copying in common browsers (#36580).

Patch by Vitaly vit9696.


git-svn-id: http://svn.redmine.org/redmine/trunk@21415 e93f8b46-1217-0410-a6f0-8f06a7374b81
tags/5.0.0
Go MAEDA 2 years ago
parent
commit
6a46743cd3

+ 10
- 10
app/views/common/_diff.html.erb View File

@@ -6,7 +6,7 @@
<% diff.each do |table_file| -%>
<div class="autoscroll">
<% if diff.diff_type == 'sbs' -%>
<table class="filecontent">
<table class="filecontent diffcontent">
<thead>
<tr>
<th colspan="4" class="filename">
@@ -21,17 +21,17 @@
<% table_file.each_line do |spacing, line| -%>
<% if spacing -%>
<tr class="spacing">
<th class="line-num">...</th><td></td><th class="line-num">...</th><td></td>
<th class="line-num" data-txt="..."></th><td></td><th class="line-num" data-txt="..."></th><td></td>
</tr>
<% end -%>
<tr>
<th class="line-num"><%= line.nb_line_left %></th>
<th class="line-num" data-txt="<%= line.nb_line_left %>"></th>
<td class="line-code <%= line.type_diff_left %>">
<pre><%= line.html_line_left.html_safe %></pre>
<div><%= line.html_line_left.html_safe %></div>
</td>
<th class="line-num"><%= line.nb_line_right %></th>
<th class="line-num" data-txt="<%= line.nb_line_right %>"></th>
<td class="line-code <%= line.type_diff_right %>">
<pre><%= line.html_line_right.html_safe %></pre>
<div><%= line.html_line_right.html_safe %></div>
</td>
</tr>
<% end -%>
@@ -39,7 +39,7 @@
</table>

<% else -%>
<table class="filecontent">
<table class="filecontent diffcontent">
<thead>
<tr>
<th colspan="3" class="filename">
@@ -58,10 +58,10 @@
</tr>
<% end -%>
<tr>
<th class="line-num"><%= line.nb_line_left %></th>
<th class="line-num"><%= line.nb_line_right %></th>
<th class="line-num" data-txt="<%= line.nb_line_left %>"></th>
<th class="line-num" data-txt="<%= line.nb_line_right %>"></th>
<td class="line-code <%= line.type_diff %>">
<pre><%= line.html_line.html_safe %></pre>
<div><%= line.html_line.html_safe %></div>
</td>
</tr>
<% end -%>

+ 6
- 4
app/views/common/_file.html.erb View File

@@ -4,11 +4,13 @@
<% line_num = 1 %>
<% syntax_highlight_lines(filename, Redmine::CodesetUtil.to_utf8_by_setting(content)).each do |line| %>
<tr id="L<%= line_num %>">
<th class="line-num">
<a href="#L<%= line_num %>"><%= line_num %></a>
</th>
<th class="line-num"><a href="#L<%= line_num %>" data-txt="<%= line_num %>"></a></th>
<td class="line-code">
<pre><%= line.html_safe %></pre>
<% if line == "\n" or line == "\r\n" %>
<br>
<% else %>
<div><%= line.html_safe %></div>
<% end %>
</td>
</tr>
<% line_num += 1 %>

+ 6
- 2
app/views/repositories/annotate.html.erb View File

@@ -17,7 +17,7 @@
<% syntax_highlight_lines(@path, Redmine::CodesetUtil.to_utf8_by_setting(@annotate.content)).each do |line| %>
<% revision = @annotate.revisions[line_num - 1] %>
<tr id="L<%= line_num %>" class="bloc-<%= revision.nil? ? 0 : colors[revision.identifier || revision.revision] %> <%= previous_revision && revision && revision != previous_revision ? 'bloc-change' : nil%>">
<th class="line-num"><a href="#L<%= line_num %>"><%= line_num %></a></th>
<th class="line-num"><a href="#L<%= line_num %>" data-txt="<%= line_num %>"></a></th>
<td class="revision">
<% if revision && revision != previous_revision %>
<%= revision.identifier ?
@@ -31,7 +31,11 @@
<%= author.split('<').first %>
<% end %>
</td>
<td class="line-code"><pre><%= line.html_safe %></pre></td>
<% if line == "\n" or line == "\r\n" %>
<td class="line-code"><br></td>
<% else %>
<td class="line-code"><div><%= line.html_safe %></div></td>
<% end %>
</tr>
<% line_num += 1; previous_revision = revision %>
<% end %>

+ 7
- 1
public/stylesheets/scm.css View File

@@ -61,8 +61,14 @@ table.filecontent th.line-num a {
text-decoration: none;
color: inherit;
}
table.filecontent th.line-num a:after {
content: attr(data-txt);
}
table.diffcontent th.line-num:after {
content: attr(data-txt);
}
table.filecontent td.line-code {padding: 0 0 0 4px;}
table.filecontent td.line-code pre {
table.filecontent td.line-code pre, table.filecontent td.line-code div {
margin: 0px;
white-space: pre-wrap;
font-family:Consolas, Menlo, "Liberation Mono", Courier, monospace; font-size:12px;

+ 3
- 3
test/functional/attachments_controller_test.rb View File

@@ -157,7 +157,7 @@ class AttachmentsControllerTest < Redmine::ControllerTest
assert_response :success
assert_equal 'text/html', @response.media_type
assert_select 'tr#L1' do
assert_select 'th.line-num', :text => '1'
assert_select 'th.line-num a[data-txt=?]', '1'
assert_select 'td', :text => /日本語/
end
end
@@ -174,7 +174,7 @@ class AttachmentsControllerTest < Redmine::ControllerTest
assert_response :success
assert_equal 'text/html', @response.media_type
assert_select 'tr#L7' do
assert_select 'th.line-num', :text => '7'
assert_select 'th.line-num a[data-txt=?]', '7'
assert_select 'td', :text => /Demande cr\?\?e avec succ\?s/
end
end
@@ -192,7 +192,7 @@ class AttachmentsControllerTest < Redmine::ControllerTest
assert_response :success
assert_equal 'text/html', @response.media_type
assert_select 'tr#L7' do
assert_select 'th.line-num', :text => '7'
assert_select 'th.line-num a[data-txt=?]', '7'
assert_select 'td', :text => /Demande créée avec succès/
end
end

+ 7
- 4
test/functional/repositories_bazaar_controller_test.rb View File

@@ -181,7 +181,7 @@ class RepositoriesBazaarControllerTest < Redmine::RepositoryControllerTest
)
assert_response :success
# Line 11 removed
assert_select 'th.line-num:contains(11) ~ td.diff_out', :text => /Display more information/
assert_select 'th.line-num[data-txt=11] ~ td.diff_out', :text => /Display more information/
end
end

@@ -196,7 +196,8 @@ class RepositoriesBazaarControllerTest < Redmine::RepositoryControllerTest
)
assert_response :success

assert_select "th.line-num", :text => '2' do
assert_select "th.line-num" do
assert_select 'a[data-txt=?]', '2'
assert_select "+ td.revision" do
assert_select "a", :text => '3'
assert_select "+ td.author", :text => "jsmith@" do
@@ -226,7 +227,8 @@ class RepositoriesBazaarControllerTest < Redmine::RepositoryControllerTest
)
assert_response :success

assert_select "th.line-num", :text => '1' do
assert_select "th.line-num" do
assert_select "a[data-txt=?]", '1'
assert_select "+ td.revision" do
assert_select "a", :text => '2'
assert_select "+ td.author", :text => "test &" do
@@ -262,7 +264,8 @@ class RepositoriesBazaarControllerTest < Redmine::RepositoryControllerTest
)
assert_response :success

assert_select "th.line-num", :text => '1' do
assert_select "th.line-num" do
assert_select 'a[data-txt=?]', '1'
assert_select "+ td.revision" do
assert_select "a", :text => '2'
assert_select "+ td.author", :text => "test Ü" do

+ 2
- 2
test/functional/repositories_cvs_controller_test.rb View File

@@ -283,13 +283,13 @@ class RepositoriesCvsControllerTest < Redmine::RepositoryControllerTest

# 1.1 line
assert_select 'tr' do
assert_select 'th.line-num', :text => '21'
assert_select 'th.line-num a[data-txt=?]', '21'
assert_select 'td.revision', :text => /1.1/
assert_select 'td.author', :text => /LANG/
end
# 1.2 line
assert_select 'tr' do
assert_select 'th.line-num', :text => '32'
assert_select 'th.line-num a[data-txt=?]', '32'
assert_select 'td.revision', :text => /1.2/
assert_select 'td.author', :text => /LANG/
end

+ 7
- 5
test/functional/repositories_git_controller_test.rb View File

@@ -378,7 +378,7 @@ class RepositoriesGitControllerTest < Redmine::RepositoryControllerTest
)
assert_response :success
# Line 22 removed
assert_select 'th.line-num:contains(22) ~ td.diff_out', :text => /def remove/
assert_select 'th.line-num[data-txt=22] ~ td.diff_out', :text => /def remove/
assert_select 'h2', :text => /2f9c0091/
end
end
@@ -403,7 +403,7 @@ class RepositoriesGitControllerTest < Redmine::RepositoryControllerTest
)
assert_response :success
# Line 22 removed
assert_select 'th.line-num:contains(22) ~ td.diff_out', :text => /def remove/
assert_select 'th.line-num[data-txt=22] ~ td.diff_out', :text => /def remove/
assert_select 'h2', :text => /2f9c0091/
end
end
@@ -589,7 +589,7 @@ class RepositoriesGitControllerTest < Redmine::RepositoryControllerTest

# Line 23, changeset 2f9c0091
assert_select 'tr' do
assert_select 'th.line-num', :text => '23'
assert_select 'th.line-num a[data-txt=?]', '23'
assert_select 'td.revision', :text => /2f9c0091/
assert_select 'td.author', :text => 'jsmith'
assert_select 'td', :text => /remove_watcher/
@@ -673,7 +673,8 @@ class RepositoriesGitControllerTest < Redmine::RepositoryControllerTest
:rev => r1
}
)
assert_select "th.line-num", :text => '1' do
assert_select "th.line-num" do
assert_select "a[data-txt=?]", '1'
assert_select "+ td.revision" do
assert_select "a", :text => '57ca437c'
assert_select "+ td.author", :text => "jsmith" do
@@ -698,7 +699,8 @@ class RepositoriesGitControllerTest < Redmine::RepositoryControllerTest
:rev => r1
}
)
assert_select "th.line-num", :text => '1' do
assert_select "th.line-num" do
assert_select "a[data-txt=?]", '1'
assert_select "+ td.revision" do
assert_select "a", :text => '83ca5fd5'
assert_select "+ td.author", :text => "Felix Schäfer" do

+ 4
- 3
test/functional/repositories_mercurial_controller_test.rb View File

@@ -396,7 +396,7 @@ class RepositoriesMercurialControllerTest < Redmine::RepositoryControllerTest
assert_response :success
if @diff_c_support
# Line 22 removed
assert_select 'th.line-num:contains(22) ~ td.diff_out', :text => /def remove/
assert_select 'th.line-num[data-txt=22] ~ td.diff_out', :text => /def remove/
assert_select 'h2', :text => /4:def6d2f1254a/
end
end
@@ -492,7 +492,7 @@ class RepositoriesMercurialControllerTest < Redmine::RepositoryControllerTest

# Line 22, revision 4:def6d2f1254a
assert_select 'tr' do
assert_select 'th.line-num', :text => '22'
assert_select 'th.line-num a[data-txt=?]', '22'
assert_select 'td.revision', :text => '4:def6d2f1254a'
assert_select 'td.author', :text => 'jsmith'
assert_select 'td', :text => /remove_watcher/
@@ -548,7 +548,8 @@ class RepositoriesMercurialControllerTest < Redmine::RepositoryControllerTest
}
)
assert_response :success
assert_select "th.line-num", :text => '1' do
assert_select "th.line-num" do
assert_select "a[data-txt=?]", '1'
assert_select "+ td.revision" do
assert_select "a", :text => '20:709858aafd1b'
assert_select "+ td.author", :text => "jsmith" do

+ 2
- 2
test/functional/repositories_subversion_controller_test.rb View File

@@ -557,14 +557,14 @@ class RepositoriesSubversionControllerTest < Redmine::RepositoryControllerTest
assert_response :success

assert_select 'tr' do
assert_select 'th.line-num', :text => '1'
assert_select 'th.line-num a[data-txt=?]', '1'
assert_select 'td.revision', :text => '4'
assert_select 'td.author', :text => 'jp'
assert_select 'td', :text => /stdio.h/
end
# Same revision
assert_select 'tr' do
assert_select 'th.line-num', :text => '2'
assert_select 'th.line-num a[data-txt=?]', '2'
assert_select 'td.revision', :text => ''
assert_select 'td.author', :text => ''
end

Loading…
Cancel
Save