[PATCH] web: Made elapsed time calculation dynamic (javascript).
Benoît Allard
benoit at aeteurope.nl
Tue Apr 26 07:52:22 CDT 2011
Martin Geisler wrote:
> Benoît Allard <benoit at aeteurope.nl> writes:
>> Another solution that comes to mind would be to calculate the elapsed
>> time in javascript. That way, the content of the page is always the
>> same and can be safely cached.
>
> Heh, that is much more elegant than the server-side solution I just
> outlined!
>
Here it is !
As there are (really) long lines in the templates, you might get into
trouble with line wrapping. For this reason, the patch is also enclosed
as bundle.
# HG changeset patch
# User Benoit Allard <benoit at aeteurope.nl>
# Date 1303821734 -7200
# Node ID 64ca69686a618fd23f2aa4d9eff473f571c10b6f
# Parent bcff4759d17dc7d6eec967b4ec2d7d12cde22cf7
web: Made elapsed time calculation dynamic (javascript).
This allow safe caching of the pages by the browser and still display
the right
amount of elapsed time upon page refresh.
If javascript is disabled, absolute time is displayed, leaving it readable.
All the templates have been updated.
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/coal/header.tmpl
--- a/mercurial/templates/coal/header.tmpl Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/coal/header.tmpl Tue Apr 26 14:42:14 2011 +0200
@@ -4,3 +4,4 @@
<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="{staticurl}style-coal.css" type="text/css" />
+<script type="text/javascript" src="{staticurl}timeago.js"></script>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/coal/map
--- a/mercurial/templates/coal/map Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/coal/map Tue Apr 26 14:42:14 2011 +0200
@@ -197,7 +197,7 @@
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|age}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
</tr>\n'
indexarchiveentry = '<a
href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>'
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/gitweb/changelogentry.tmpl
--- a/mercurial/templates/gitweb/changelogentry.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/gitweb/changelogentry.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -1,5 +1,5 @@
<div>
-<a class="title"
href="{url}rev/{node|short}{sessionvars%urlparameter}"><span
class="age">{date|age}</span>{desc|strip|firstline|escape|nonempty}<span
class="logtags">
{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
+<a class="title"
href="{url}rev/{node|short}{sessionvars%urlparameter}"><span
class="age">{date|date}</span>{desc|strip|firstline|escape|nonempty}<span
class="logtags">
{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a>
</div>
<div class="title_text">
<div class="log_link">
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/gitweb/changeset.tmpl
--- a/mercurial/templates/gitweb/changeset.tmpl Mon Apr 25 21:20:44 2011
+0200
+++ b/mercurial/templates/gitweb/changeset.tmpl Tue Apr 26 14:42:14 2011
+0200
@@ -32,7 +32,7 @@
<div class="title_text">
<table cellspacing="0">
<tr><td>author</td><td>{author|obfuscate}</td></tr>
-<tr><td></td><td>{date|date} ({date|age})</td></tr>
+<tr><td></td><td class="date age">{date|date}</td></tr>
{branch%changesetbranch}
<tr><td>changeset {rev}</td><td
style="font-family:monospace">{node|short}</td></tr>
{parent%changesetparent}
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/gitweb/fileannotate.tmpl
--- a/mercurial/templates/gitweb/fileannotate.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/gitweb/fileannotate.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -40,7 +40,7 @@
<td>{author|obfuscate}</td></tr>
<tr>
<td></td>
- <td>{date|date} ({date|age})</td></tr>
+ <td class="date age">{date|date}</td></tr>
{branch%filerevbranch}
<tr>
<td>changeset {rev}</td>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/gitweb/filerevision.tmpl
--- a/mercurial/templates/gitweb/filerevision.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/gitweb/filerevision.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -40,7 +40,7 @@
<td>{author|obfuscate}</td></tr>
<tr>
<td></td>
- <td>{date|date} ({date|age})</td></tr>
+ <td class="date age">{date|date}</td></tr>
{branch%filerevbranch}
<tr>
<td>changeset {rev}</td>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/gitweb/header.tmpl
--- a/mercurial/templates/gitweb/header.tmpl Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/gitweb/header.tmpl Tue Apr 26 14:42:14 2011 +0200
@@ -5,4 +5,4 @@
<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow"/>
<link rel="stylesheet" href="{staticurl}style-gitweb.css"
type="text/css" />
-
+<script type="text/javascript" src="{staticurl}timeago.js"></script>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/gitweb/map
--- a/mercurial/templates/gitweb/map Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/gitweb/map Tue Apr 26 14:42:14 2011 +0200
@@ -162,7 +162,7 @@
tags = tags.tmpl
tagentry = '
<tr class="parity{parity}">
- <td class="age"><i>{date|age}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><a class="list"
href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{tag|escape}</b></a></td>
<td class="link">
<a
href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -173,7 +173,7 @@
bookmarks = bookmarks.tmpl
bookmarkentry = '
<tr class="parity{parity}">
- <td class="age"><i>{date|age}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><a class="list"
href="{url}rev/{node|short}{sessionvars%urlparameter}"><b>{bookmark|escape}</b></a></td>
<td class="link">
<a
href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -184,7 +184,7 @@
branches = branches.tmpl
branchentry = '
<tr class="parity{parity}">
- <td class="age"><i>{date|age}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><a class="list"
href="{url}shortlog/{node|short}{sessionvars%urlparameter}"><b>{node|short}</b></a></td>
<td class="{status}">{branch|escape}</td>
<td class="link">
@@ -228,7 +228,7 @@
bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
shortlogentry = '
<tr class="parity{parity}">
- <td class="age"><i>{date|age}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td><i>{author|person}</i></td>
<td>
<a class="list"
href="{url}rev/{node|short}{sessionvars%urlparameter}">
@@ -243,7 +243,7 @@
</tr>'
filelogentry = '
<tr class="parity{parity}">
- <td class="age"><i>{date|age}</i></td>
+ <td class="age"><i class="age">{date|date}</i></td>
<td>
<a class="list"
href="{url}rev/{node|short}{sessionvars%urlparameter}">
<b>{desc|strip|firstline|escape|nonempty}</b>
@@ -262,7 +262,7 @@
</td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|age}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
<td><div class="rss_logo"><a href="{url}rss-log">RSS</a> <a
href="{url}atom-log">Atom</a></div></td>
</tr>\n'
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/monoblue/changelogentry.tmpl
--- a/mercurial/templates/monoblue/changelogentry.tmpl Mon Apr 25
21:20:44 2011 +0200
+++ b/mercurial/templates/monoblue/changelogentry.tmpl Tue Apr 26
14:42:14 2011 +0200
@@ -1,6 +1,6 @@
<h3 class="changelog"><a class="title"
href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}<span
class="logtags">
{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a></h3>
<ul class="changelog-entry">
- <li class="age">{date|age}</li>
+ <li class="age">{date|date}</li>
<li>by <span class="name">{author|obfuscate}</span> <span
class="revdate">[{date|rfc822date}] rev {rev}</span></li>
<li class="description">{desc|strip|escape|addbreaks|nonempty}</li>
</ul>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/monoblue/changeset.tmpl
--- a/mercurial/templates/monoblue/changeset.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/monoblue/changeset.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -38,7 +38,7 @@
<h2 class="no-link no-border">changeset</h2>
<h3 class="changeset"><a
href="{url}raw-rev/{node|short}">{desc|strip|escape|firstline|nonempty}
<span
class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></a></h3>
- <p class="changeset-age"><span>{date|age}</span></p>
+ <p class="changeset-age age">{date|date}</p>
<dl class="overview">
<dt>author</dt>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/monoblue/fileannotate.tmpl
--- a/mercurial/templates/monoblue/fileannotate.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/monoblue/fileannotate.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -40,7 +40,7 @@
<h2 class="no-link no-border">{file|escape}@{node|short}
(annotated)</h2>
<h3 class="changeset">{file|escape}</h3>
- <p class="changeset-age"><span>{date|age}</span></p>
+ <p class="changeset-age age">{date|date}</p>
<dl class="overview">
<dt>author</dt>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/monoblue/filerevision.tmpl
--- a/mercurial/templates/monoblue/filerevision.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/monoblue/filerevision.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -40,7 +40,7 @@
<h2 class="no-link no-border">{file|escape}@{node|short}</h2>
<h3 class="changeset">{file|escape}</h3>
- <p class="changeset-age"><span>{date|age}</span></p>
+ <p class="changeset-age age">{date|date}</p>
<dl class="overview">
<dt>author</dt>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/monoblue/header.tmpl
--- a/mercurial/templates/monoblue/header.tmpl Mon Apr 25 21:20:44 2011
+0200
+++ b/mercurial/templates/monoblue/header.tmpl Tue Apr 26 14:42:14 2011
+0200
@@ -4,3 +4,4 @@
<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow"/>
<link rel="stylesheet" href="{staticurl}style-monoblue.css"
type="text/css" />
+ <script type="text/javascript" src="{staticurl}timeago.js"></script>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/monoblue/map
--- a/mercurial/templates/monoblue/map Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/monoblue/map Tue Apr 26 14:42:14 2011 +0200
@@ -139,7 +139,7 @@
tags = tags.tmpl
tagentry = '
<tr class="parity{parity}">
- <td class="nowrap">{date|age}</td>
+ <td class="nowrap age">{date|date}</td>
<td><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{tag|escape}</a></td>
<td class="nowrap">
<a
href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -150,7 +150,7 @@
bookmarks = bookmarks.tmpl
bookmarkentry = '
<tr class="parity{parity}">
- <td class="nowrap">{date|age}</td>
+ <td class="nowrap date">{date|date}</td>
<td><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{bookmark|escape}</a></td>
<td class="nowrap">
<a
href="{url}rev/{node|short}{sessionvars%urlparameter}">changeset</a> |
@@ -161,7 +161,7 @@
branches = branches.tmpl
branchentry = '
<tr class="parity{parity}">
- <td class="nowrap">{date|age}</td>
+ <td class="nowrap age">{date|date}</td>
<td><a
href="{url}shortlog/{node|short}{sessionvars%urlparameter}">{node|short}</a></td>
<td class="{status}">{branch|escape}</td>
<td class="nowrap">
@@ -194,7 +194,7 @@
bookmarktag = '<span class="bookmarktag" title="{name}">{name}</span> '
shortlogentry = '
<tr class="parity{parity}">
- <td class="nowrap">{date|age}</td>
+ <td class="nowrap age">{date|date}</td>
<td>{author|person}</td>
<td>
<a href="{url}rev/{node|short}{sessionvars%urlparameter}">
@@ -209,7 +209,7 @@
</tr>'
filelogentry = '
<tr class="parity{parity}">
- <td class="nowrap">{date|age}</td>
+ <td class="nowrap age">{date|date}</td>
<td><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
<td class="nowrap">
<a
href="{url}file/{node|short}/{file|urlescape}{sessionvars%urlparameter}">file</a> | <a
href="{url}diff/{node|short}/{file|urlescape}{sessionvars%urlparameter}">diff</a> | <a
href="{url}annotate/{node|short}/{file|urlescape}{sessionvars%urlparameter}">annotate</a>
@@ -222,7 +222,7 @@
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td>{lastchange|age}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
<td>
<div class="rss_logo">
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/paper/changeset.tmpl
--- a/mercurial/templates/paper/changeset.tmpl Mon Apr 25 21:20:44 2011
+0200
+++ b/mercurial/templates/paper/changeset.tmpl Tue Apr 26 14:42:14 2011
+0200
@@ -49,7 +49,7 @@
</tr>
<tr>
<th class="date">date</th>
- <td class="date">{date|date} ({date|age})</td></tr>
+ <td class="date age">{date|date}</td></tr>
<tr>
<th class="author">parents</th>
<td class="author">{parent%changesetparent}</td>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/paper/fileannotate.tmpl
--- a/mercurial/templates/paper/fileannotate.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/paper/fileannotate.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -54,7 +54,7 @@
</tr>
<tr>
<th class="date">date</th>
- <td class="date">{date|date} ({date|age})</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th class="author">parents</th>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/paper/filediff.tmpl
--- a/mercurial/templates/paper/filediff.tmpl Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/paper/filediff.tmpl Tue Apr 26 14:42:14 2011 +0200
@@ -53,7 +53,7 @@
</tr>
<tr>
<th>date</th>
- <td>{date|date} ({date|age})</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th>parents</th>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/paper/filelogentry.tmpl
--- a/mercurial/templates/paper/filelogentry.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/paper/filelogentry.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -1,5 +1,5 @@
<tr class="parity{parity}">
- <td class="age">{date|age}</td>
+ <td class="age">{date|date}</td>
<td class="author">{author|person}</td>
<td class="description"><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags%changelogtag}{rename%filelogrename}</td>
</tr>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/paper/filerevision.tmpl
--- a/mercurial/templates/paper/filerevision.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/paper/filerevision.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -52,7 +52,7 @@
</tr>
<tr>
<th class="date">date</th>
- <td class="date">{date|date} ({date|age})</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th class="author">parents</th>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/paper/header.tmpl
--- a/mercurial/templates/paper/header.tmpl Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/paper/header.tmpl Tue Apr 26 14:42:14 2011 +0200
@@ -4,3 +4,4 @@
<link rel="icon" href="{staticurl}hgicon.png" type="image/png" />
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="{staticurl}style-paper.css"
type="text/css" />
+<script type="text/javascript" src="{staticurl}timeago.js"></script>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/paper/map
--- a/mercurial/templates/paper/map Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/paper/map Tue Apr 26 14:42:14 2011 +0200
@@ -196,7 +196,7 @@
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|age}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">{archives%indexarchiveentry}</td>
</tr>\n'
indexarchiveentry = '<a
href="{url}archive/{node|short}{extension|urlescape}"> ↓{type|escape}</a>'
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/paper/shortlogentry.tmpl
--- a/mercurial/templates/paper/shortlogentry.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/paper/shortlogentry.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -1,5 +1,5 @@
<tr class="parity{parity}">
- <td class="age">{age(date)}</td>
+ <td class="age">{date|date}</td>
<td class="author">{author|person}</td>
<td class="description"><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a>{inbranch%changelogbranchname}{branches%changelogbranchhead}{tags
% '<span class="tag">{name|escape}</span> '}{bookmarks % '<span
class="tag">{name|escape}</span> '}</td>
</tr>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/spartan/changelogentry.tmpl
--- a/mercurial/templates/spartan/changelogentry.tmpl Mon Apr 25
21:20:44 2011 +0200
+++ b/mercurial/templates/spartan/changelogentry.tmpl Tue Apr 26
14:42:14 2011 +0200
@@ -1,6 +1,6 @@
<table class="logEntry parity{parity}">
<tr>
- <th class="age">{date|age}:</th>
+ <th><span class="age">{date|date}</span>:</th>
<th class="firstline">{desc|strip|firstline|escape|nonempty}</th>
</tr>
<tr>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/spartan/changeset.tmpl
--- a/mercurial/templates/spartan/changeset.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/spartan/changeset.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -31,7 +31,7 @@
</tr>
<tr>
<th class="date">date:</th>
- <td class="date">{date|date} ({date|age})</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<th class="files">files:</th>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/spartan/fileannotate.tmpl
--- a/mercurial/templates/spartan/fileannotate.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/spartan/fileannotate.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -30,7 +30,7 @@
<td>{author|obfuscate}</td></tr>
<tr>
<td class="metatag">date:</td>
- <td>{date|date} ({date|age})</td>
+ <td class="date age">{date|date}</td>
</tr>
<tr>
<td class="metatag">permissions:</td>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/spartan/filelogentry.tmpl
--- a/mercurial/templates/spartan/filelogentry.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/spartan/filelogentry.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -1,6 +1,6 @@
<table class="logEntry parity{parity}">
<tr>
- <th class="age">{date|age}:</th>
+ <th><span class="age">{date|date}</span>:</th>
<th class="firstline"><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></th>
</tr>
<tr>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/spartan/filerevision.tmpl
--- a/mercurial/templates/spartan/filerevision.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/spartan/filerevision.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -30,7 +30,7 @@
<td>{author|obfuscate}</td></tr>
<tr>
<td class="metatag">date:</td>
- <td>{date|date} ({date|age})</td></tr>
+ <td class="date age">{date|date}</td></tr>
<tr>
<td class="metatag">permissions:</td>
<td>{permissions|permissions}</td></tr>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/spartan/header.tmpl
--- a/mercurial/templates/spartan/header.tmpl Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/spartan/header.tmpl Tue Apr 26 14:42:14 2011 +0200
@@ -4,3 +4,4 @@
<link rel="icon" href="{staticurl}hgicon.png" type="image/png">
<meta name="robots" content="index, nofollow" />
<link rel="stylesheet" href="{staticurl}style.css" type="text/css" />
+<script type="text/javascript" src="{staticurl}timeago.js"></script>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/spartan/map
--- a/mercurial/templates/spartan/map Mon Apr 25 21:20:44 2011 +0200
+++ b/mercurial/templates/spartan/map Tue Apr 26 14:42:14 2011 +0200
@@ -168,7 +168,7 @@
<td><a href="{url}{sessionvars%urlparameter}">{name|escape}</a></td>
<td>{description}</td>
<td>{contact|obfuscate}</td>
- <td class="age">{lastchange|age}</td>
+ <td class="age">{lastchange|date}</td>
<td class="indexlinks">
<a href="{url}rss-log">RSS</a>
<a href="{url}atom-log">Atom</a>
diff -r bcff4759d17d -r 64ca69686a61
mercurial/templates/spartan/shortlogentry.tmpl
--- a/mercurial/templates/spartan/shortlogentry.tmpl Mon Apr 25 21:20:44
2011 +0200
+++ b/mercurial/templates/spartan/shortlogentry.tmpl Tue Apr 26 14:42:14
2011 +0200
@@ -1,6 +1,6 @@
<table class="slogEntry parity{parity}">
<tr>
- <td class="age">{date|age}</td>
+ <td class="age">{date|date}</td>
<td class="author">{author|person}</td>
<td class="node"><a
href="{url}rev/{node|short}{sessionvars%urlparameter}">{desc|strip|firstline|escape|nonempty}</a></td>
</tr>
diff -r bcff4759d17d -r 64ca69686a61 mercurial/templates/static/timeago.js
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mercurial/templates/static/timeago.js Tue Apr 26 14:42:14 2011 +0200
@@ -0,0 +1,81 @@
+// timeago.js - dynamically calculating the elapsed time
+//
+// derived from code from mercurial/templatefilter.py
+
+var scales = {
+ year: 365 * 24 * 60 * 60,
+ month: 30 * 24 * 60 * 60,
+ week: 7 * 24 * 60 * 60,
+ day: 24 * 60 * 60,
+ hour: 60 * 60,
+ minute: 60,
+ second: 1
+};
+
+function format(count, string){
+ var ret = count + ' ' + string;
+ if (count > 1){
+ ret = ret + 's';
+ }
+ return ret;
+}
+
+function age(datestr){
+ var now = new Date();
+ var once = new Date(datestr);
+
+ if (isNaN( once.getTime() )){
+ // parsing error
+ return datestr;
+ }
+
+ var delta = Math.floor((now.getTime() - once.getTime()) / 1000);
+
+ var future = false;
+ if (delta < 0){
+ future = true;
+ delta = -delta;
+ if (delta > (30 * scales.year)){
+ return "in the distant future";
+ }
+ }
+
+ if (delta > (2 * scales.year)){
+ return once.getFullYear() + '-' + once.getMonth() + '-' +
once.getDate();
+ }
+
+ for (unit in scales){
+ var s = scales[unit];
+ var n = Math.floor(delta / s);
+ if ((n >= 2) || (s == 1)){
+ if (future){
+ return format(n, unit) + ' from now';
+ } else {
+ return format(n, unit) + ' ago';
+ }
+ }
+ }
+}
+
+function process_dates(){
+ var nodes = document.getElementsByTagName('*');
+ var ageclass = new RegExp('\\bage\\b');
+ var dateclass = new RegExp('\\bdate\\b');
+ for (var i=0; i<nodes.length; ++i){
+ var node = nodes[i];
+ var classes = node.className;
+ if (ageclass.test(classes)){
+ var agevalue = age(node.textContent);
+ if (dateclass.test(classes)){
+ // We want both: date + (age)
+ node.textContent += ' ('+agevalue+')';
+ } else {
+ node.textContent = agevalue;
+ }
+ }
+ }
+}
+
+window.onload = function () {
+ process_dates();
+}
-------------- next part --------------
A non-text attachment was scrubbed...
Name: dynamicago.hg
Type: application/octet-stream
Size: 5275 bytes
Desc: not available
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20110426/ff782be6/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/x-pkcs7-signature
Size: 6370 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://selenic.com/pipermail/mercurial-devel/attachments/20110426/ff782be6/attachment.bin>
More information about the Mercurial-devel
mailing list