Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohan Sørensen <johan@johansorensen.com>2008-01-12 13:06:06 (GMT)
committer Johan Sørensen <johan@johansorensen.com>2008-01-12 13:06:06 (GMT)
commit8ed135cce50a6b9c419e8f91277bf0a392232764 (patch)
tree72e87efae54998ba34aae8ac5fc16c09a874ed6d
parent0abaf722ddd93ed085d37142ef7e925d811a37d0 (diff)
diff mode selector
-rw-r--r--TODO.txt1
-rw-r--r--app/helpers/browse_helper.rb14
-rw-r--r--app/views/browse/commit.html.erb2
-rw-r--r--lib/gitorious/diff/sidebyside_table_callback.rb16
-rw-r--r--public/stylesheets/base.css18
5 files changed, 40 insertions, 11 deletions
diff --git a/TODO.txt b/TODO.txt
index f09f629..8f07129 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -6,6 +6,7 @@
[ ] Better SshKey#key wrap
[ ] paginate comments
[ ] OpenID login
+[ ] Clean up in commit diff CSS
[ ] Show full path in repos browser
[ ] graph Repository#parent relationships properly
[ ] (A RemoteRepository class for repositories hosted elsewhere?)
diff --git a/app/helpers/browse_helper.rb b/app/helpers/browse_helper.rb
index e7d6b81..70a4228 100644
--- a/app/helpers/browse_helper.rb
+++ b/app/helpers/browse_helper.rb
@@ -74,4 +74,18 @@ module BrowseHelper
out
end
+ def render_diffmode_selector
+ out = %Q{<ul class="diffmode_selector"}
+ out << %Q{<li class="list_header">Diff rendering mode:</li>}
+ if @diffmode == "sidebyside"
+ out << %Q{<li><a href="?diffmode=inline">inline</a></li>}
+ out << %Q{<li class="selected">side by side</li>}
+ else
+ out << %Q{<li class="selected">inline</li>}
+ out << %Q{<li><a href="?diffmode=sidebyside">side by side</a></li>}
+ end
+ out << "</ul>"
+ out
+ end
+
end
diff --git a/app/views/browse/commit.html.erb b/app/views/browse/commit.html.erb
index 80ef7cb..ae15454 100644
--- a/app/views/browse/commit.html.erb
+++ b/app/views/browse/commit.html.erb
@@ -13,7 +13,7 @@
<% #TODO: commit diff stats (as sparklines?) -%>
<h2>Commit diff</h2>
-<% #TODO diffmode selector -%>
+<%= render_diffmode_selector -%>
<% @diff.each do |file| -%>
<h4><%= h(file.path) -%><%#=link_to h(file.path), blob_path(file.sha, file.path) -%></h4>
diff --git a/lib/gitorious/diff/sidebyside_table_callback.rb b/lib/gitorious/diff/sidebyside_table_callback.rb
index aa8659e..ad7d1a9 100644
--- a/lib/gitorious/diff/sidebyside_table_callback.rb
+++ b/lib/gitorious/diff/sidebyside_table_callback.rb
@@ -4,23 +4,23 @@ module Gitorious
# Before blocks
def before_addblock(block)
- "<tbody><tr>"
+ %q{<tbody class="add"><tr>}
end
def before_remblock(block)
- "<tbody><tr>"
+ %Q{<tbody class="rem"><tr>}
end
def before_modblock(block)
- "<tbody><tr>"
+ %Q{<tbody class="mod"><tr>}
end
def before_unmodblock(block)
- "<tbody><tr>"
+ %Q{<tbody class="unmod"><tr>}
end
def before_sepblock(block)
- "<tbody><tr>"
+ %Q{<tbody class="sep"><tr>}
end
# After blocks
@@ -33,7 +33,7 @@ module Gitorious
end
def after_modblock(block)
- # "</tbody>"
+ "</tbody>"
end
def after_unmodblock(block)
@@ -41,7 +41,7 @@ module Gitorious
end
def after_sepblock(block)
- "</body>"
+ "</tbody>"
end
# Before lines
@@ -94,7 +94,7 @@ module Gitorious
end
def after_modline(line)
- # "</td></tr>"
+ "</td></tr>"
end
def after_unmodline(line)
diff --git a/public/stylesheets/base.css b/public/stylesheets/base.css
index 71eca89..48b62ad 100644
--- a/public/stylesheets/base.css
+++ b/public/stylesheets/base.css
@@ -575,6 +575,15 @@ div.comment p.byline {
font-size: 90%;
}
+/* diff mode selector */
+ul.diffmode_selector { float: right; }
+ul.diffmode_selector li {
+ display:inline;
+ margin-left: 1em;
+}
+ul.diffmode_selector li.list_header { font-weight: bold; }
+ul.diffmode_selector li.selected { border-bottom: 1px solid #666; }
+
/* Diff rendering */
.toggle_diff {
@@ -631,8 +640,13 @@ table.codediff .cut-line {
table.codediff td.hidden del { display:none; }
table.codediff td.del { background: #fdd; }
table.codediff td.ins { background: #dfd; }
-table.codediff td.del del { /*background: #fbb;*/ text-decoration: none; }
-table.codediff td.ins ins { /*background: #afa;*/ text-decoration: none; }
+table.sidebyside tbody.mod td { background: #fe9; }
+table.sidebyside tbody.mod td { background: #fe9; }
+table.sidebyside tbody.mod td ins, table.sidebyside tbody.mod td del{ background: #fc0; }
+table.codediff td.del del { text-decoration: none; }
+table.codediff td.ins ins { text-decoration: none; }
+table.sidebyside td.del del { background: #fbb; }
+table.sidebyside td.ins ins { background: #afa; }
table.codediff col.lines {
width: 3em;
} \ No newline at end of file