From 9a73d10bfd0357361526ce87a0e2ad43ab7efa24 Mon Sep 17 00:00:00 2001 From: James Moger Date: Mon, 17 Sep 2012 11:25:39 -0400 Subject: [PATCH] Restore zebra stripping, added line hovering, fix overflow (issue 130) --- resources/gitblit.css | 58 ++++++++++++++++++---- src/com/gitblit/wicket/pages/BlobPage.java | 54 +++----------------- 2 files changed, 55 insertions(+), 57 deletions(-) diff --git a/resources/gitblit.css b/resources/gitblit.css index bbd3c0c2..fc948b64 100644 --- a/resources/gitblit.css +++ b/resources/gitblit.css @@ -163,8 +163,9 @@ th { } div.sourceview { - overflow: auto; + overflow: hidden; } + pre.prettyprint ol { padding-left:25px; } @@ -178,29 +179,68 @@ pre.prettyprint ol { vertical-align:top; } +#nums pre { + white-space: pre; +} + +#nums pre, #lines pre { + margin: 0; +} + +#lines pre { + padding: 0px !important; + border: 0px !important; + white-space: nowrap; +} + /* CSS trick to workaround #link topOfWindow offset problem */ -#lines .line { +#nums .num { border-top: 160px solid transparent; margin-top: -160px; -webkit-background-clip: padding-box; -moz-background-clip: padding; background-clip: padding-box; + + color: #888; } -#lines span:target { +#nums span:target { background-color: #ffffbf; + color: black; + font-weight: bold; + border-bottom: 1px solid red; } -#nums pre { - white-space: pre; +#lines table { + margin: 0; } -#lines pre { - padding: 0px 5px !important; - border: 0px !important; - white-space: nowrap; +#lines td { + padding: 0; +} + +#lines a { + padding-left: 5px; +} + +#lines a:hover { + background-color: #ffffbf; + text-decoration: none; +} + +#lines tr:hover { + background-color: #ffffbf; +} +#lines .odd { + background-color: white; +} + +#lines .even { + background-color: #fafafa; } + + h1 small, h2 small, h3 small, h4 small, h5 small, h6 small { color: #888; } diff --git a/src/com/gitblit/wicket/pages/BlobPage.java b/src/com/gitblit/wicket/pages/BlobPage.java index ebe539f2..f4d6e5b6 100644 --- a/src/com/gitblit/wicket/pages/BlobPage.java +++ b/src/com/gitblit/wicket/pages/BlobPage.java @@ -131,7 +131,7 @@ public class BlobPage extends RepositoryPage { } else { // plain text String source = JGitUtils.getStringContent(r, commit.getTree(), blobPath, encodings); - String table = generateSourceTable(source, false); + String table = generateSourceView(source, false); add(new Label("blobText", table).setEscapeModelStrings(false)); add(new Image("blobImage").setVisible(false)); } @@ -149,7 +149,7 @@ public class BlobPage extends RepositoryPage { sb.append(""); sb.append(""); sb.append("
");
-		String numPattern = "{0}\n";
+		String numPattern = "{0}\n";
 		for (int i = 0; i < lines.length; i++) {
 			sb.append(MessageFormat.format(numPattern, "" + (i + 1)));
 		}
@@ -166,59 +166,17 @@ public class BlobPage extends RepositoryPage {
 			sb.append("
");
 		}
 		lines = StringUtils.escapeForHtml(source, true).split("\n");
-		for (int i = 0; i < lines.length; i++) {
-			sb.append(MessageFormat.format("", "" + (i + 1)));
-			sb.append(lines[i]);
-			sb.append("");
-		}
-		sb.append("
"); - sb.append(""); - sb.append(""); - sb.append(""); - - sb.append(""); - sb.append(""); - - return sb.toString(); - } - - protected String generateSourceTable(String source, boolean prettyPrint) { - String [] lines = source.split("\n"); - - // be careful adding line breaks to this method - // GoogleCode Prettify is sensitive - StringBuilder sb = new StringBuilder(); - sb.append(""); - sb.append(""); - // nums column - sb.append(""); - sb.append(""); - - sb.append(""); - sb.append(""); sb.append(""); -- 2.39.5
"); - sb.append("
");
-		String numPattern = "";
-		for (int i = 0; i < lines.length; i++) {
-			sb.append(MessageFormat.format(numPattern, "" + (i + 1)));
-		}
-		sb.append("");
-		sb.append("
{0}
"); - sb.append("
"); - if (prettyPrint) { - sb.append("
");
-		} else {
-			sb.append("
");
-		}
 		sb.append("");
 		
-		String linePattern = "";
+		String linePattern = "";
 		for (int i = 0; i < lines.length; i++) {
-			String l = StringUtils.escapeForHtml(lines[i], true);
 			String cssClass = (i % 2 == 0) ? "even" : "odd";
-			sb.append(MessageFormat.format(linePattern, cssClass, l));
+			sb.append(MessageFormat.format(linePattern, cssClass, lines[i], "" + (i + 1)));
 		}
 		sb.append("
{1}
{1}
"); + sb.append("
"); + sb.append(""); sb.append("