line links for commit diff, css fixed for line diff
This commit is contained in:
parent
b60b7b2e2b
commit
570f63daaf
|
@ -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;}
|
|
||||||
|
|
|
@ -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 }
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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/, ''))
|
|
||||||
color = if line[0] == "+"
|
|
||||||
full_line = "<span class=\"old_line\"> </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\"> </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
|
|
||||||
|
|
||||||
raw "<div style=\"white-space:pre;background:#{color};\">#{full_line}</div>"
|
def old_line_number(line, i)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
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
|
||||||
|
|
|
@ -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)}"}
|
||||||
|
|
|
@ -1,29 +1,26 @@
|
||||||
%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}"}
|
= diff.a_path
|
||||||
= diff.a_path
|
= image_tag "blueprint_delete.png"
|
||||||
= image_tag "blueprint_delete.png"
|
- elsif diff.renamed_file
|
||||||
- elsif diff.renamed_file
|
%span.moved_file
|
||||||
%span.moved_file
|
%a{:href => "##{diff.b_path}"}
|
||||||
%a{:href => "##{diff.b_path}"}
|
= diff.a_path
|
||||||
= diff.a_path
|
= "->"
|
||||||
= "->"
|
= diff.b_path
|
||||||
= diff.b_path
|
= image_tag "blueprint_notice.png"
|
||||||
= image_tag "blueprint_notice.png"
|
- elsif diff.new_file
|
||||||
- elsif diff.new_file
|
%span.new_file
|
||||||
%span.new_file
|
%a{:href => "##{diff.b_path}"}
|
||||||
%a{:href => "##{diff.b_path}"}
|
= diff.b_path
|
||||||
= diff.b_path
|
= image_tag "blueprint_add.png"
|
||||||
= image_tag "blueprint_add.png"
|
- else
|
||||||
- else
|
%span.edit_file
|
||||||
%span.edit_file
|
%a{:href => "##{diff.b_path}"}
|
||||||
%a{:href => "##{diff.b_path}"}
|
= diff.b_path
|
||||||
= diff.b_path
|
= image_tag "blueprint_info.png"
|
||||||
= image_tag "blueprint_info.png"
|
|
||||||
|
|
||||||
|
|
|
@ -1,21 +1,28 @@
|
||||||
- line_old = 0
|
%table
|
||||||
- line_new = 0
|
- line_old = 0
|
||||||
- lines_arr = diff.diff.lines.to_a
|
- line_new = 0
|
||||||
- lines_arr.each do |line|
|
- lines_arr = diff.diff.lines.to_a
|
||||||
- line = encode(line)
|
- lines_arr.each do |line|
|
||||||
- next if line.match(/^--- \/dev\/null/)
|
- line = encode(line)
|
||||||
- next if line.match(/^--- a/)
|
- next if line.match(/^--- \/dev\/null/)
|
||||||
- next if line.match(/^\+\+\+ b/)
|
- next if line.match(/^--- a/)
|
||||||
- if line.match(/^@@ -/)
|
- next if line.match(/^\+\+\+ b/)
|
||||||
- line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
|
- if line.match(/^@@ -/)
|
||||||
- line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
|
- line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
|
||||||
- next
|
- line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
|
||||||
|
- next
|
||||||
|
|
||||||
= diff_line(line, line_new, line_old)
|
- full_line = html_escape(line.gsub(/\n/, ''))
|
||||||
- if line[0] == "+"
|
%tr.line_holder
|
||||||
- line_new += 1
|
%td.old_line
|
||||||
- elsif line[0] == "-"
|
= link_to raw(diff_line_class(line) == "new" ? " " : line_old), "#OLD#{index}-#{line_old}", :id => "OLD#{index}-#{line_old}"
|
||||||
- line_old += 1
|
%td.new_line
|
||||||
- else
|
= link_to raw(diff_line_class(line) == "old" ? " " : line_new) , "#NEW#{index}-#{line_new}", :id => "NEW#{index}-#{line_new}"
|
||||||
- line_new += 1
|
%td.line_content{:class => diff_line_class(full_line)}= raw "#{full_line} "
|
||||||
- line_old += 1
|
- if line[0] == "+"
|
||||||
|
- line_new += 1
|
||||||
|
- elsif line[0] == "-"
|
||||||
|
- line_old += 1
|
||||||
|
- else
|
||||||
|
- line_new += 1
|
||||||
|
- line_old += 1
|
||||||
|
|
Loading…
Reference in a new issue