<% 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">
<% 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 -%>
</table>
<% else -%>
-<table class="filecontent">
+<table class="filecontent diffcontent">
<thead>
<tr>
<th colspan="3" class="filename">
</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 -%>
<% 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 %>
<% 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 ?
<%= 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 %>
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;
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
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
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
)
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
)
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
)
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
)
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
# 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
)
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
)
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
# 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/
: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
: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
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
# 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/
}
)
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
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