hgweb: reuse graph node-related functions from templates
The difference between templatekw.getgraphnode() and webutil.getgraphnode() is
that the latter is not limited to 1 character.
--- a/mercurial/hgweb/webcommands.py Tue May 08 17:54:57 2018 +0800
+++ b/mercurial/hgweb/webcommands.py Tue May 08 19:00:01 2018 +0800
@@ -13,7 +13,7 @@
import re
from ..i18n import _
-from ..node import hex, nullid, short
+from ..node import hex, short
from .common import (
ErrorResponse,
@@ -1314,24 +1314,6 @@
tree = list(item for item in graphmod.colored(dag, web.repo)
if item[1] == graphmod.CHANGESET)
- def nodecurrent(ctx):
- wpnodes = web.repo.dirstate.parents()
- if wpnodes[1] == nullid:
- wpnodes = wpnodes[:1]
- if ctx.node() in wpnodes:
- return '@'
- return ''
-
- def nodesymbol(ctx):
- if ctx.obsolete():
- return 'x'
- elif ctx.isunstable():
- return '*'
- elif ctx.closesbranch():
- return '_'
- else:
- return 'o'
-
def fulltree():
pos = web.repo[graphtop].rev()
tree = []
@@ -1344,7 +1326,7 @@
def jsdata():
return [{'node': pycompat.bytestr(ctx),
- 'graphnode': nodecurrent(ctx) + nodesymbol(ctx),
+ 'graphnode': webutil.getgraphnode(web.repo, ctx),
'vertex': vtx,
'edges': edges}
for (id, type, ctx, vtx, edges) in fulltree()]
--- a/mercurial/hgweb/webutil.py Tue May 08 17:54:57 2018 +0800
+++ b/mercurial/hgweb/webutil.py Tue May 08 19:00:01 2018 +0800
@@ -733,3 +733,7 @@
repo.ui.warn(_("websub: invalid regexp for %s: %s\n")
% (key, regexp))
return websubtable
+
+def getgraphnode(repo, ctx):
+ return (templatekw.getgraphnodecurrent(repo, ctx) +
+ templatekw.getgraphnodesymbol(ctx))