Use common blob header for file detail and blame Change-Id: Ia6e4efce3580fef7467ba307a0c00b99a7515f47
diff --git a/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java b/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java index ab5d89e..9d02ac6 100644 --- a/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java +++ b/gitiles-servlet/src/main/java/com/google/gitiles/BlobSoyData.java
@@ -85,6 +85,7 @@ data.put("size", Long.toString(loader.getSize())); } if (path != null && view.getRevision().getPeeledType() == OBJ_COMMIT) { + data.put("fileUrl", GitilesView.path().copyFrom(view).toUrl()); data.put("logUrl", GitilesView.log().copyFrom(view).toUrl()); data.put("blameUrl", GitilesView.blame().copyFrom(view).toUrl()); }
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/static/gitiles.css b/gitiles-servlet/src/main/resources/com/google/gitiles/static/gitiles.css index d0cc951..0a89f75 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/static/gitiles.css +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/static/gitiles.css
@@ -336,7 +336,10 @@ /* Styles for the blame detail template. */ #blame { - margin: 0; + margin-top: 10px; + margin-bottom: 10px; + margin-left: 0px; + margin-right: 0px; padding: 0; } #blame td { @@ -379,7 +382,7 @@ /* Styles for pretty-print regions, including overriding some defaults from * prettify.css. */ -ol.prettyprint { +ol.prettyprint, #blame { border-top: #ddd solid 1px; /* BORDER */ border-bottom: #ddd solid 1px; /* BORDER */ border-left: none;
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy index 6a0c25e..8f8ac40 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/BlameDetail.soy
@@ -41,6 +41,8 @@ {param css: [gitiles.PRETTIFY_CSS_URL] /} {/call} + {call .blobHeader data="$data" /} + <table id="blame"> {let $regionIdx: 0 /} {foreach $line in $data.lines}
diff --git a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy index edb3100..e3f6a2a 100644 --- a/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy +++ b/gitiles-servlet/src/main/resources/com/google/gitiles/templates/ObjectDetail.soy
@@ -209,33 +209,36 @@ {/template} /** + * Common header for a blob shared between detail, blame, etc. views. + * + * @param sha SHA of this file's blob. + * @param? fileUrl optional URL to a detail view of this file. + * @param? logUrl optional URL to a log for this file. + * @param? blameUrl optional URL to a blame for this file. + */ +{template .blobHeader} +<div class="sha1"> + {msg desc="SHA-1 for the file's blob"}blob: {$sha}{/msg} + {if $fileUrl}{sp}[<a href="{$fileUrl}">{msg desc="detail view of a file"}file{/msg}</a>]{/if} + {if $logUrl}{sp}[<a href="{$logUrl}">{msg desc="history for a file"}log{/msg}</a>]{/if} + {if $blameUrl}{sp}[<a href="{$blameUrl}">{msg desc="blame for a file"}blame{/msg}</a>]{/if} +</div> +{/template} + +/** * Detailed listing of a blob. * * @param sha SHA of this file's blob. * @param? logUrl optional URL to a log for this file. * @param? blameUrl optional URL to a blame for this file. - * @param lines lines in the file (may be empty), or null for a binary file. - * @param? size for binary files only, size in bytes. - */ -{template .blobDetail} -<div class="sha1"> - {msg desc="SHA-1 for the file's blob"}blob: {$sha}{/msg} - {if $logUrl}{sp}[<a href="{$logUrl}">{msg desc="history for a file"}file history{/msg}</a>]{/if} - {if $blameUrl}{sp}[<a href="{$blameUrl}">{msg desc="blame for a file"}blame{/msg}</a>]{/if} -</div> - -{call .blobBox data="all" /} -{/template} - -/** - * Preformatted box containing blob contents. - * * @param lines lines (may be empty), or null for a binary file. Each line * is a list of entries with "classes" and "text" fields for pretty-printed * spans. * @param? size for binary files only, size in bytes. */ -{template .blobBox} +{template .blobDetail} + {call .blobHeader data="all" /} + {if $lines != null} {if $lines} <ol class="prettyprint">