[PATCH 2 of 3] paper, coal: display diffstat on the changeset page
Steven Brown
stevengbrown at gmail.com
Thu Jun 2 08:12:15 CDT 2011
# HG changeset patch
# User Steven Brown <StevenGBrown at gmail.com>
# Date 1307014711 -28800
# Node ID b76b2ca94099121ed0b073af7db51853b07ee4c3
# Parent a9941bd9c6b03f2cb17e0183ca63736cad16097f
paper, coal: display diffstat on the changeset page
The list of changed files can be expanded to display the diffstat. This expanded
view also includes 'file', 'annotate', 'diff' and 'revisions' links, similar to
the monoblue changeset page.
diff --git a/mercurial/templates/coal/map b/mercurial/templates/coal/map
--- a/mercurial/templates/coal/map
+++ b/mercurial/templates/coal/map
@@ -23,6 +23,36 @@
filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
filenolink = '{file|escape} '
fileellipses = '...'
+diffstatlink = '
+ <tr class="parity{parity}">
+ <td class="diffstat-files"><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+ <td align="right">{total}</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:{addpct}%;"> </span>
+ <span class="diffstat-remove" style="width:{removepct}%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+ <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+ <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+ <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+ </td>
+ </tr>'
+diffstatnolink = '
+ <tr class="parity{parity}">
+ <td class="diffstat-files"><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+ <td align="right">{total}</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:{addpct}%;"> </span>
+ <span class="diffstat-remove" style="width:{removepct}%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ file |
+ annotate |
+ <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+ <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+ </td>
+ </tr>'
changelogentry = ../paper/shortlogentry.tmpl
searchentry = ../paper/shortlogentry.tmpl
changeset = ../paper/changeset.tmpl
diff --git a/mercurial/templates/paper/changeset.tmpl b/mercurial/templates/paper/changeset.tmpl
--- a/mercurial/templates/paper/changeset.tmpl
+++ b/mercurial/templates/paper/changeset.tmpl
@@ -60,7 +60,13 @@
</tr>
<tr>
<th class="files">files</th>
- <td class="files">{files}</td>
+ <td class="files">
+ <div id="files">{files} <a href="javascript:showDiffstat()"/>[+]</a></div>
+ <div id="diffstat" style="display:none;">
+ <table id="diffstat">{diffstat}</table>
+ <a href="javascript:hideDiffstat()"/>[-]</a>
+ </div>
+ </td>
</tr>
</table>
diff --git a/mercurial/templates/paper/map b/mercurial/templates/paper/map
--- a/mercurial/templates/paper/map
+++ b/mercurial/templates/paper/map
@@ -22,6 +22,37 @@
filenodelink = '<a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a> '
filenolink = '{file|escape} '
fileellipses = '...'
+diffstatlink = '
+ <tr class="parity{parity}">
+ <td class="diffstat-files"><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+ <td align="right">{total}</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:{addpct}%;"> </span>
+ <span class="diffstat-remove" style="width:{removepct}%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
+ <a href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
+ <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+ <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+ </td>
+ </tr>'
+diffstatnolink = '
+ <tr class="parity{parity}">
+ <td class="diffstat-files"><a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">{file|escape}</a></td>
+ <td align="right">{total}</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:{addpct}%;"> </span>
+ <span class="diffstat-remove" style="width:{removepct}%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ file |
+ annotate |
+ <a href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
+ <a href="{url}log/{node|short}/{file|urlescape}{sessionvars%urlparameter}">revisions</a>
+ </td>
+ </tr>'
+
changelogentry = shortlogentry.tmpl
searchentry = shortlogentry.tmpl
changeset = changeset.tmpl
diff --git a/mercurial/templates/static/mercurial.js b/mercurial/templates/static/mercurial.js
--- a/mercurial/templates/static/mercurial.js
+++ b/mercurial/templates/static/mercurial.js
@@ -2,6 +2,7 @@
//
// Rendering of branch DAGs on the client side
// Display of elapsed time
+// Show or hide diffstat
//
// Copyright 2008 Dirkjan Ochtman <dirkjan AT ochtman DOT nl>
// Copyright 2006 Alexander Schremmer <alex AT alexanderweb DOT de>
@@ -218,3 +219,13 @@
}
}
})(document, RegExp, Math, isNaN, Date, false, true)
+
+function showDiffstat() {
+ document.getElementById('files').style.display = 'none';
+ document.getElementById('diffstat').style.display = 'block';
+}
+
+function hideDiffstat() {
+ document.getElementById('diffstat').style.display = 'none';
+ document.getElementById('files').style.display = 'block';
+}
diff --git a/mercurial/templates/static/style-coal.css b/mercurial/templates/static/style-coal.css
--- a/mercurial/templates/static/style-coal.css
+++ b/mercurial/templates/static/style-coal.css
@@ -103,6 +103,24 @@
.minusline { color: #dc143c; } /* crimson */
.atline { color: purple; }
+td.diffstat {
+ width:100%;
+}
+td.diffstat-files {
+ white-space:nowrap;
+}
+td.diffstat-links {
+ white-space:nowrap;
+}
+span.diffstat-add {
+ background-color: green;
+ float: left;
+}
+span.diffstat-remove {
+ background-color: red;
+ float: left;
+}
+
.navigate {
text-align: right;
font-size: 60%;
diff --git a/mercurial/templates/static/style-paper.css b/mercurial/templates/static/style-paper.css
--- a/mercurial/templates/static/style-paper.css
+++ b/mercurial/templates/static/style-paper.css
@@ -94,6 +94,24 @@
.minusline { color: #dc143c; } /* crimson */
.atline { color: purple; }
+td.diffstat {
+ width:100%;
+}
+td.diffstat-files {
+ white-space:nowrap;
+}
+td.diffstat-links {
+ white-space:nowrap;
+}
+span.diffstat-add {
+ background-color: green;
+ float: left;
+}
+span.diffstat-remove {
+ background-color: red;
+ float: left;
+}
+
.navigate {
text-align: right;
font-size: 60%;
diff --git a/tests/test-hgweb-commands.t b/tests/test-hgweb-commands.t
--- a/tests/test-hgweb-commands.t
+++ b/tests/test-hgweb-commands.t
@@ -350,7 +350,41 @@
</tr>
<tr>
<th class="files">files</th>
- <td class="files"><a href="/file/2ef0ac749a14/da/foo">da/foo</a> <a href="/file/2ef0ac749a14/foo">foo</a> </td>
+ <td class="files">
+ <div id="files"><a href="/file/2ef0ac749a14/da/foo">da/foo</a> <a href="/file/2ef0ac749a14/foo">foo</a> <a href="javascript:showDiffstat()"/>[+]</a></div>
+ <div id="diffstat" style="display:none;">
+ <table id="diffstat">
+ <tr class="parity0">
+ <td class="diffstat-files"><a href="/diff/2ef0ac749a14/da/foo">da/foo</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:100.0%;"> </span>
+ <span class="diffstat-remove" style="width:0.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="/file/2ef0ac749a14/da/foo">file</a> |
+ <a href="/annotate/2ef0ac749a14/da/foo">annotate</a> |
+ <a href="/diff/2ef0ac749a14/da/foo">diff</a> |
+ <a href="/log/2ef0ac749a14/da/foo">revisions</a>
+ </td>
+ </tr>
+ <tr class="parity1">
+ <td class="diffstat-files"><a href="/diff/2ef0ac749a14/foo">foo</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:100.0%;"> </span>
+ <span class="diffstat-remove" style="width:0.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="/file/2ef0ac749a14/foo">file</a> |
+ <a href="/annotate/2ef0ac749a14/foo">annotate</a> |
+ <a href="/diff/2ef0ac749a14/foo">diff</a> |
+ <a href="/log/2ef0ac749a14/foo">revisions</a>
+ </td>
+ </tr></table>
+ <a href="javascript:hideDiffstat()"/>[-]</a>
+ </div>
+ </td>
</tr>
</table>
diff --git a/tests/test-hgweb-diffs.t b/tests/test-hgweb-diffs.t
--- a/tests/test-hgweb-diffs.t
+++ b/tests/test-hgweb-diffs.t
@@ -92,7 +92,41 @@
</tr>
<tr>
<th class="files">files</th>
- <td class="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> </td>
+ <td class="files">
+ <div id="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> <a href="javascript:showDiffstat()"/>[+]</a></div>
+ <div id="diffstat" style="display:none;">
+ <table id="diffstat">
+ <tr class="parity0">
+ <td class="diffstat-files"><a href="/diff/0cd96de13884/a">a</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:100.0%;"> </span>
+ <span class="diffstat-remove" style="width:0.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="/file/0cd96de13884/a">file</a> |
+ <a href="/annotate/0cd96de13884/a">annotate</a> |
+ <a href="/diff/0cd96de13884/a">diff</a> |
+ <a href="/log/0cd96de13884/a">revisions</a>
+ </td>
+ </tr>
+ <tr class="parity1">
+ <td class="diffstat-files"><a href="/diff/0cd96de13884/b">b</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:100.0%;"> </span>
+ <span class="diffstat-remove" style="width:0.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="/file/0cd96de13884/b">file</a> |
+ <a href="/annotate/0cd96de13884/b">annotate</a> |
+ <a href="/diff/0cd96de13884/b">diff</a> |
+ <a href="/log/0cd96de13884/b">revisions</a>
+ </td>
+ </tr></table>
+ <a href="javascript:hideDiffstat()"/>[-]</a>
+ </div>
+ </td>
</tr>
</table>
@@ -323,7 +357,41 @@
</tr>
<tr>
<th class="files">files</th>
- <td class="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> </td>
+ <td class="files">
+ <div id="files"><a href="/file/0cd96de13884/a">a</a> <a href="/file/0cd96de13884/b">b</a> <a href="javascript:showDiffstat()"/>[+]</a></div>
+ <div id="diffstat" style="display:none;">
+ <table id="diffstat">
+ <tr class="parity0">
+ <td class="diffstat-files"><a href="/diff/0cd96de13884/a">a</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:100.0%;"> </span>
+ <span class="diffstat-remove" style="width:0.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="/file/0cd96de13884/a">file</a> |
+ <a href="/annotate/0cd96de13884/a">annotate</a> |
+ <a href="/diff/0cd96de13884/a">diff</a> |
+ <a href="/log/0cd96de13884/a">revisions</a>
+ </td>
+ </tr>
+ <tr class="parity1">
+ <td class="diffstat-files"><a href="/diff/0cd96de13884/b">b</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:100.0%;"> </span>
+ <span class="diffstat-remove" style="width:0.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ <a href="/file/0cd96de13884/b">file</a> |
+ <a href="/annotate/0cd96de13884/b">annotate</a> |
+ <a href="/diff/0cd96de13884/b">diff</a> |
+ <a href="/log/0cd96de13884/b">revisions</a>
+ </td>
+ </tr></table>
+ <a href="javascript:hideDiffstat()"/>[-]</a>
+ </div>
+ </td>
</tr>
</table>
diff --git a/tests/test-hgweb-removed.t b/tests/test-hgweb-removed.t
--- a/tests/test-hgweb-removed.t
+++ b/tests/test-hgweb-removed.t
@@ -87,7 +87,27 @@
</tr>
<tr>
<th class="files">files</th>
- <td class="files">a </td>
+ <td class="files">
+ <div id="files">a <a href="javascript:showDiffstat()"/>[+]</a></div>
+ <div id="diffstat" style="display:none;">
+ <table id="diffstat">
+ <tr class="parity0">
+ <td class="diffstat-files"><a href="/diff/c78f6c5cbea9/a">a</a></td>
+ <td align="right">1</td>
+ <td class="diffstat">
+ <span class="diffstat-add" style="width:0.0%;"> </span>
+ <span class="diffstat-remove" style="width:100.0%;"> </span>
+ </td>
+ <td class="diffstat-links">
+ file |
+ annotate |
+ <a href="/diff/c78f6c5cbea9/a">diff</a> |
+ <a href="/log/c78f6c5cbea9/a">revisions</a>
+ </td>
+ </tr></table>
+ <a href="javascript:hideDiffstat()"/>[-]</a>
+ </div>
+ </td>
</tr>
</table>
More information about the Mercurial-devel
mailing list