line links for commit diff, css fixed for line diff

This commit is contained in:
Dmitriy Zaporozhets 2011-12-01 01:51:04 +02:00
parent b60b7b2e2b
commit 570f63daaf
7 changed files with 133 additions and 80 deletions

View file

@ -49,10 +49,3 @@
.no-padding { .no-padding {
padding:0 !important; padding:0 !important;
} }
/** COMMIT BLOCK **/
.commit-title{display: block;}
.commit-title{margin-bottom: 10px}
.commit-author{color: #999; font-weight: normal; font-style: italic;}
.commit-author strong{font-weight: bold; font-style: normal;}

View file

@ -27,14 +27,44 @@
} }
.diff_file_content{ .diff_file_content{
table {
border:none;
margin:0px;
padding:0px;
}
.old_line, .new_line { .old_line, .new_line {
background:#ECECEC; margin:0px;
color:#777; padding:0px;
width:35px; border:none;
float:left; background:#F7F7F7;
color:#333;
padding: 0px 5px; padding: 0px 5px;
border-right: 1px solid #ccc; border-right: 1px solid #ccc;
text-align:right; text-align:right;
min-width:35px;
max-width:35px;
width:35px;
a {
float:left;
width:35px;
font-weight:normal;
&:hover {
text-decoration:underline;
}
}
}
.line_content {
white-space:pre;
height:14px;
margin:0px;
padding:0px;
border:none;
&.new {
background: #DFD;
}
&.old {
background: #FDD;
}
} }
} }
@ -45,3 +75,24 @@ pre.commit_message {
font-weight:bold; font-weight:bold;
font-size:15px; font-size:15px;
} }
/** COMMIT BLOCK **/
.commit-title{display: block;}
.commit-title{margin-bottom: 10px}
.commit-author{color: #999; font-weight: normal; font-style: italic;}
.commit-author strong{font-weight: bold; font-style: normal;}
/** bordered list **/
ul.bordered-list {
margin:5px 0px;
padding:0px;
li {
padding: 5px;
border-bottom: 1px solid #EEE;
overflow: hidden;
display: block;
margin:0px;
}
}
ul.bordered-list li:last-child { border:none }

View file

@ -66,11 +66,8 @@ a {
} }
} }
.view_file { .view_file .view_file_header,
border:1px solid #CCC; .diff_file .diff_file_header {
margin-bottom:1em;
.view_file_header {
background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8)); background-image: -webkit-gradient(linear, 0 0, 0 26, color-stop(0.076, #fefefe), to(#F6F7F8));
background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8); background-image: -webkit-linear-gradient(#fefefe 7.6%, #F6F7F8);
background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8); background-image: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
@ -81,8 +78,13 @@ a {
text-align: left; text-align: left;
color: #666; color: #666;
border-bottom: 1px solid #DEE2E3; border-bottom: 1px solid #DEE2E3;
padding: .9em 1em; padding: 7px 10px;
} }
.view_file {
border:1px solid #CCC;
margin-bottom:1em;
.view_file_content { .view_file_content {
background:#fff; background:#fff;
color:#514721; color:#514721;

View file

@ -1,19 +1,22 @@
module CommitsHelper module CommitsHelper
include Utils::CharEncode include Utils::CharEncode
def diff_line(line, line_new = 0, line_old = 0)
full_line = html_escape(line.gsub(/\n/, '')) def old_line_number(line, i)
color = if line[0] == "+"
full_line = "<span class=\"old_line\">&nbsp;</span><span class=\"new_line\">#{line_new}</span> " + full_line
"#DFD"
elsif line[0] == "-"
full_line = "<span class=\"old_line\">#{line_old}</span><span class=\"new_line\">&nbsp;</span> " + full_line
"#FDD"
else
full_line = "<span class=\"old_line\">#{line_old}</span><span class=\"new_line\">#{line_new}</span> " + full_line
"none"
end end
raw "<div style=\"white-space:pre;background:#{color};\">#{full_line}</div>" def new_line_number(line, i)
end
def diff_line_class(line)
if line[0] == "+"
"new"
elsif line[0] == "-"
"old"
else
nil
end
end end
def more_commits_link def more_commits_link

View file

@ -1,7 +1,7 @@
.file_stats .file_stats
= render "commits/diff_head" = render "commits/diff_head"
- @commit.diffs.each do |diff| - @commit.diffs.each_with_index do |diff, i|
- next if diff.diff.empty? - next if diff.diff.empty?
- file = (@commit.tree / diff.b_path) - file = (@commit.tree / diff.b_path)
- next unless file - next unless file
@ -15,7 +15,7 @@
%br/ %br/
.diff_file_content .diff_file_content
- if file.text? - if file.text?
= render :partial => "commits/text_file", :locals => { :diff => diff } = render :partial => "commits/text_file", :locals => { :diff => diff, :index => i }
- elsif file.image? - elsif file.image?
.diff_file_content_image .diff_file_content_image
%img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"} %img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}

View file

@ -1,9 +1,6 @@
%table %ul.bordered-list
%thead
%th Files
- @commit.diffs.each do |diff| - @commit.diffs.each do |diff|
%tr %li
%td
- if diff.deleted_file - if diff.deleted_file
%span.removed_file %span.removed_file
%a{:href => "##{diff.a_path}"} %a{:href => "##{diff.a_path}"}

View file

@ -1,3 +1,4 @@
%table
- line_old = 0 - line_old = 0
- line_new = 0 - line_new = 0
- lines_arr = diff.diff.lines.to_a - lines_arr = diff.diff.lines.to_a
@ -11,7 +12,13 @@
- line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0 - line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
- next - next
= diff_line(line, line_new, line_old) - full_line = html_escape(line.gsub(/\n/, ''))
%tr.line_holder
%td.old_line
= link_to raw(diff_line_class(line) == "new" ? "&nbsp;" : line_old), "#OLD#{index}-#{line_old}", :id => "OLD#{index}-#{line_old}"
%td.new_line
= link_to raw(diff_line_class(line) == "old" ? "&nbsp;" : line_new) , "#NEW#{index}-#{line_new}", :id => "NEW#{index}-#{line_new}"
%td.line_content{:class => diff_line_class(full_line)}= raw "#{full_line} &nbsp;"
- if line[0] == "+" - if line[0] == "+"
- line_new += 1 - line_new += 1
- elsif line[0] == "-" - elsif line[0] == "-"