hgweb: reuse graph node-related functions from templates
authorAnton Shestakov <av6@dwimlabs.net>
Tue, 08 May 2018 19:00:01 +0800
changeset 37953 7fae76c2c564
parent 37952 8808d5d401ee
child 37954 ec03f3aa2d14
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.
mercurial/hgweb/webcommands.py
mercurial/hgweb/webutil.py
--- 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))