view mercurial/templates/json/map @ 28709:94494031f659

hgweb: add parents to json-log (issue5074) Entries prepared in webutil.changelistentry() skip showing parents in the trivial case when there's only one parent and it's the previous revision. This doesn't work well for the json-log template, which is supposed to just dump raw data in an easy-to-parse format, so let's provide all parents as another keyword: allparents. Using a lambda function here means that the performance of templates that don't use allparents won't be affected (see 41957e50e109).
author Anton Shestakov <av6@dwimlabs.net>
date Thu, 31 Mar 2016 18:09:09 +0800
parents 3643b66d7f71
children c1b526f55116
line wrap: on
line source

mimetype = 'application/json'
filerevision = '"not yet implemented"'
search = '"not yet implemented"'
# changelog and shortlog are the same web API but with different
# number of entries.
changelog = changelist.tmpl
shortlog = changelist.tmpl
changelistentry = '\{
  "node": {node|json},
  "date": {date|json},
  "desc": {desc|utf8|json},
  "bookmarks": [{join(bookmarks%changelistentryname, ", ")}],
  "tags": [{join(tags%changelistentryname, ", ")}],
  "user": {author|utf8|json},
  "parents": [{join(allparents%changesetparent, ", ")}]
  }'
changelistentryname = '{name|utf8|json}'
changeset = '\{
  "node": {node|json},
  "date": {date|json},
  "desc": {desc|utf8|json},
  "branch": {if(branch, branch%changesetbranch, "default"|json)},
  "bookmarks": [{join(changesetbookmark, ", ")}],
  "tags": [{join(changesettag, ", ")}],
  "user": {author|utf8|json},
  "parents": [{join(parent%changesetparent, ", ")}],
  "phase": {phase|json}
  }'
changesetbranch = '{name|utf8|json}'
changesetbookmark = '{bookmark|utf8|json}'
changesettag = '{tag|utf8|json}'
changesetparent = '{node|json}'
manifest = '\{
  "node": {node|json},
  "abspath": {path|json},
  "directories": [{join(dentries%direntry, ", ")}],
  "files": [{join(fentries%fileentry, ", ")}],
  "bookmarks": [{join(bookmarks%name, ", ")}],
  "tags": [{join(tags%name, ", ")}]
  }'
name = '{name|utf8|json}'
direntry = '\{
  "abspath": {path|json},
  "basename": {basename|json},
  "emptydirs": {emptydirs|json}
  }'
fileentry = '\{
  "abspath": {file|json},
  "basename": {basename|json},
  "date": {date|json},
  "size": {size|json},
  "flags": {permissions|json}
  }'
tags = '\{
  "node": {node|json},
  "tags": [{join(entriesnotip%tagentry, ", ")}]
  }'
tagentry = '\{
  "tag": {tag|utf8|json},
  "node": {node|json},
  "date": {date|json}
  }'
bookmarks = '\{
  "node": {node|json},
  "bookmarks": [{join(entries%bookmarkentry, ", ")}]
  }'
bookmarkentry = '\{
  "bookmark": {bookmark|utf8|json},
  "node": {node|json},
  "date": {date|json}
  }'
branches = '\{
  "branches": [{join(entries%branchentry, ", ")}]
  }'
branchentry = '\{
  "branch": {branch|utf8|json},
  "node": {node|json},
  "date": {date|json},
  "status": {status|json}
  }'
summary = '"not yet implemented"'
filediff = '\{
  "path": {file|json},
  "node": {node|json},
  "date": {date|json},
  "desc": {desc|utf8|json},
  "author": {author|utf8|json},
  "parents": [{join(parent%changesetparent, ", ")}],
  "children": [{join(child%changesetparent, ", ")}],
  "diff": [{join(diff%diffblock, ", ")}]
  }'
diffblock = '\{
  "blockno": {blockno|json},
  "lines": [{join(lines, ", ")}]
  }'
difflineplus = '\{
  "t": "+",
  "n": {lineno|json},
  "l": {line|json}
  }'
difflineminus = '\{
  "t": "-",
  "n": {lineno|json},
  "l": {line|json}
  }'
difflineat = '\{
  "t": "@",
  "n": {lineno|json},
  "l": {line|json}
  }'
diffline = '\{
  "t": "",
  "n": {lineno|json},
  "l": {line|json}
  }'
filecomparison = '\{
  "path": {file|json},
  "node": {node|json},
  "date": {date|json},
  "desc": {desc|utf8|json},
  "author": {author|utf8|json},
  "parents": [{join(parent%changesetparent, ", ")}],
  "children": [{join(child%changesetparent, ", ")}],
  "leftnode": {leftnode|json},
  "rightnode": {rightnode|json},
  "comparison": [{join(comparison, ", ")}]
  }'
comparisonblock = '\{
  "lines": [{join(lines, ", ")}]
  }'
comparisonline = '\{
  "t": {type|json},
  "ln": {leftlineno|json},
  "ll": {leftline|json},
  "rn": {rightlineno|json},
  "rl": {rightline|json}
  }'
fileannotate = '\{
  "abspath": {file|json},
  "node": {node|json},
  "author": {author|utf8|json},
  "date": {date|json},
  "desc": {desc|utf8|json},
  "parents": [{join(parent%changesetparent, ", ")}],
  "children": [{join(child%changesetparent, ", ")}],
  "permissions": {permissions|json},
  "annotate": [{join(annotate%fileannotation, ", ")}]
  }'
fileannotation = '\{
  "node": {node|json},
  "author": {author|utf8|json},
  "desc": {desc|utf8|json},
  "abspath": {file|json},
  "targetline": {targetline|json},
  "line": {line|json},
  "lineno": {lineno|json},
  "revdate": {revdate|json}
  }'
filelog = '"not yet implemented"'
graph = '"not yet implemented"'
helptopics = '\{
  "topics": [{join(topics%helptopicentry, ", ")}],
  "earlycommands": [{join(earlycommands%helptopicentry, ", ")}],
  "othercommands": [{join(othercommands%helptopicentry, ", ")}]
  }'
helptopicentry = '\{
  "topic": {topic|utf8|json},
  "summary": {summary|utf8|json}
  }'
help = '\{
  "topic": {topic|utf8|json},
  "rawdoc": {doc|utf8|json}
  }'
filenodelink = ''
filenolink = ''
index = '\{
  "entries": [{join(entries%indexentry, ", ")}]
  }'
indexentry = '\{
  "name": {name|utf8|json},
  "description": {description|utf8|json},
  "contact": {contact|utf8|json},
  "lastchange": {lastchange|json}
  }'