diff --git a/app/assets/stylesheets/application.css b/app/assets/stylesheets/application.css
index 8fc87d0d653..47ec5f5a91f 100644
--- a/app/assets/stylesheets/application.css
+++ b/app/assets/stylesheets/application.css
@@ -49,10 +49,3 @@
.no-padding {
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;}
diff --git a/app/assets/stylesheets/commits.css.scss b/app/assets/stylesheets/commits.css.scss
index 23a8add96c8..e88c56c5519 100644
--- a/app/assets/stylesheets/commits.css.scss
+++ b/app/assets/stylesheets/commits.css.scss
@@ -27,14 +27,44 @@
}
.diff_file_content{
+ table {
+ border:none;
+ margin:0px;
+ padding:0px;
+ }
.old_line, .new_line {
- background:#ECECEC;
- color:#777;
- width:35px;
- float:left;
+ margin:0px;
+ padding:0px;
+ border:none;
+ background:#F7F7F7;
+ color:#333;
padding: 0px 5px;
border-right: 1px solid #ccc;
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-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 }
diff --git a/app/assets/stylesheets/projects.css.scss b/app/assets/stylesheets/projects.css.scss
index 8cfe58b2100..344190e6318 100644
--- a/app/assets/stylesheets/projects.css.scss
+++ b/app/assets/stylesheets/projects.css.scss
@@ -66,11 +66,8 @@ a {
}
}
-.view_file {
- border:1px solid #CCC;
- margin-bottom:1em;
-
- .view_file_header {
+.view_file .view_file_header,
+.diff_file .diff_file_header {
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: -moz-linear-gradient(#fefefe 7.6%, #F6F7F8);
@@ -81,8 +78,13 @@ a {
text-align: left;
color: #666;
border-bottom: 1px solid #DEE2E3;
- padding: .9em 1em;
- }
+ padding: 7px 10px;
+}
+
+.view_file {
+ border:1px solid #CCC;
+ margin-bottom:1em;
+
.view_file_content {
background:#fff;
color:#514721;
diff --git a/app/helpers/commits_helper.rb b/app/helpers/commits_helper.rb
index 585564aa4f8..ae7826712a5 100644
--- a/app/helpers/commits_helper.rb
+++ b/app/helpers/commits_helper.rb
@@ -1,19 +1,22 @@
module CommitsHelper
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 = " #{line_new} " + full_line
- "#DFD"
- elsif line[0] == "-"
- full_line = "#{line_old} " + full_line
- "#FDD"
- else
- full_line = "#{line_old}#{line_new} " + full_line
- "none"
- end
- raw "
#{full_line}
"
+ 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
def more_commits_link
diff --git a/app/views/commits/_diff.html.haml b/app/views/commits/_diff.html.haml
index fd929f30b39..190c95dd745 100644
--- a/app/views/commits/_diff.html.haml
+++ b/app/views/commits/_diff.html.haml
@@ -1,7 +1,7 @@
.file_stats
= render "commits/diff_head"
-- @commit.diffs.each do |diff|
+- @commit.diffs.each_with_index do |diff, i|
- next if diff.diff.empty?
- file = (@commit.tree / diff.b_path)
- next unless file
@@ -15,7 +15,7 @@
%br/
.diff_file_content
- if file.text?
- = render :partial => "commits/text_file", :locals => { :diff => diff }
+ = render :partial => "commits/text_file", :locals => { :diff => diff, :index => i }
- elsif file.image?
.diff_file_content_image
%img{:src => "data:#{file.mime_type};base64,#{Base64.encode64(file.data)}"}
diff --git a/app/views/commits/_diff_head.html.haml b/app/views/commits/_diff_head.html.haml
index 26105261dc9..6e32fca068f 100644
--- a/app/views/commits/_diff_head.html.haml
+++ b/app/views/commits/_diff_head.html.haml
@@ -1,29 +1,26 @@
-%table
- %thead
- %th Files
+%ul.bordered-list
- @commit.diffs.each do |diff|
- %tr
- %td
- - if diff.deleted_file
- %span.removed_file
- %a{:href => "##{diff.a_path}"}
- = diff.a_path
- = image_tag "blueprint_delete.png"
- - elsif diff.renamed_file
- %span.moved_file
- %a{:href => "##{diff.b_path}"}
- = diff.a_path
- = "->"
- = diff.b_path
- = image_tag "blueprint_notice.png"
- - elsif diff.new_file
- %span.new_file
- %a{:href => "##{diff.b_path}"}
- = diff.b_path
- = image_tag "blueprint_add.png"
- - else
- %span.edit_file
- %a{:href => "##{diff.b_path}"}
- = diff.b_path
- = image_tag "blueprint_info.png"
+ %li
+ - if diff.deleted_file
+ %span.removed_file
+ %a{:href => "##{diff.a_path}"}
+ = diff.a_path
+ = image_tag "blueprint_delete.png"
+ - elsif diff.renamed_file
+ %span.moved_file
+ %a{:href => "##{diff.b_path}"}
+ = diff.a_path
+ = "->"
+ = diff.b_path
+ = image_tag "blueprint_notice.png"
+ - elsif diff.new_file
+ %span.new_file
+ %a{:href => "##{diff.b_path}"}
+ = diff.b_path
+ = image_tag "blueprint_add.png"
+ - else
+ %span.edit_file
+ %a{:href => "##{diff.b_path}"}
+ = diff.b_path
+ = image_tag "blueprint_info.png"
diff --git a/app/views/commits/_text_file.html.haml b/app/views/commits/_text_file.html.haml
index 635391239e9..e39cf11700e 100644
--- a/app/views/commits/_text_file.html.haml
+++ b/app/views/commits/_text_file.html.haml
@@ -1,21 +1,28 @@
-- line_old = 0
-- line_new = 0
-- lines_arr = diff.diff.lines.to_a
-- lines_arr.each do |line|
- - line = encode(line)
- - next if line.match(/^--- \/dev\/null/)
- - next if line.match(/^--- a/)
- - next if line.match(/^\+\+\+ b/)
- - if line.match(/^@@ -/)
- - line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
- - line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
- - next
+%table
+ - line_old = 0
+ - line_new = 0
+ - lines_arr = diff.diff.lines.to_a
+ - lines_arr.each do |line|
+ - line = encode(line)
+ - next if line.match(/^--- \/dev\/null/)
+ - next if line.match(/^--- a/)
+ - next if line.match(/^\+\+\+ b/)
+ - if line.match(/^@@ -/)
+ - line_old = line.match(/\-[0-9]*/)[0].to_i.abs rescue 0
+ - line_new = line.match(/\+[0-9]*/)[0].to_i.abs rescue 0
+ - next
- = diff_line(line, line_new, line_old)
- - if line[0] == "+"
- - line_new += 1
- - elsif line[0] == "-"
- - line_old += 1
- - else
- - line_new += 1
- - line_old += 1
+ - full_line = html_escape(line.gsub(/\n/, ''))
+ %tr.line_holder
+ %td.old_line
+ = link_to raw(diff_line_class(line) == "new" ? " " : line_old), "#OLD#{index}-#{line_old}", :id => "OLD#{index}-#{line_old}"
+ %td.new_line
+ = link_to raw(diff_line_class(line) == "old" ? " " : line_new) , "#NEW#{index}-#{line_new}", :id => "NEW#{index}-#{line_new}"
+ %td.line_content{:class => diff_line_class(full_line)}= raw "#{full_line} "
+ - if line[0] == "+"
+ - line_new += 1
+ - elsif line[0] == "-"
+ - line_old += 1
+ - else
+ - line_new += 1
+ - line_old += 1