changeset 28268:3643b66d7f71

hgweb: add index template to json/map This template allows showing the list of all repos in an hgweb instance (in hgwebdir mode) as json. The test has "lastchange" globbed because hgweb uses here file modification time and not the last commit time.
author Anton Shestakov <av6@dwimlabs.net>
date Sat, 27 Feb 2016 19:53:18 +0800
parents 5408e532e50a
children 6e3fdd98b277
files mercurial/templates/json/map tests/test-hgwebdir.t
diffstat 2 files changed, 26 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/templates/json/map	Fri Feb 26 19:13:10 2016 +0000
+++ b/mercurial/templates/json/map	Sat Feb 27 19:53:18 2016 +0800
@@ -172,3 +172,12 @@
   }'
 filenodelink = ''
 filenolink = ''
+index = '\{
+  "entries": [{join(entries%indexentry, ", ")}]
+  }'
+indexentry = '\{
+  "name": {name|utf8|json},
+  "description": {description|utf8|json},
+  "contact": {contact|utf8|json},
+  "lastchange": {lastchange|json}
+  }'
--- a/tests/test-hgwebdir.t	Fri Feb 26 19:13:10 2016 +0000
+++ b/tests/test-hgwebdir.t	Sat Feb 27 19:53:18 2016 +0800
@@ -100,6 +100,23 @@
   /a/
   /b/
   
+  $ get-with-headers.py localhost:$HGPORT '?style=json'
+  200 Script output follows
+  
+  {
+  "entries": [{
+  "name": "a",
+  "description": "unknown",
+  "contact": "Foo Bar \u003cfoo.bar@example.com\u003e",
+  "lastchange": [*, *] (glob)
+  }, {
+  "name": "b",
+  "description": "unknown",
+  "contact": "Foo Bar \u003cfoo.bar@example.com\u003e",
+  "lastchange": [*, *] (glob)
+  }]
+  } (no-eol)
+
   $ get-with-headers.py localhost:$HGPORT 'a/file/tip/a?style=raw'
   200 Script output follows