diff mercurial/hgweb/webcommands.py @ 35530:acd8a2454b47

monoblue: make actual changeset entries have backgrounds on /graph This patch removes a separate container for backgrounds only and puts backgrounds on changeset elements themselves. This makes it so that JS code doesn't need to create background elements separately anymore. There's a bit of manipulating positions of elements: every changeset entry has a "fg" element that gets a higher z-index than <canvas> element. This prioritizes text information, so that even if it somehow gets close to the graph drawn on <canvas> (which has z-index of 5), it'll still be on top of it. This can happen if commit message has a long first line and browser window is narrow, for example. 'parity' is added to each entry because there's no stripes2 class in monoblue, only in paper.
author Anton Shestakov <av6@dwimlabs.net>
date Fri, 05 Jan 2018 19:08:00 +0800
parents 0fe5d99804bb
children baca93a47992
line wrap: on
line diff
--- a/mercurial/hgweb/webcommands.py	Fri Jan 05 18:46:06 2018 +0800
+++ b/mercurial/hgweb/webcommands.py	Fri Jan 05 19:08:00 2018 +0800
@@ -1265,6 +1265,7 @@
                 for (id, type, ctx, vtx, edges) in fulltree()]
 
     def nodes():
+        parity = paritygen(web.stripecount)
         for row, (id, type, ctx, vtx, edges) in enumerate(tree):
             entry = webutil.commonentry(web.repo, ctx)
             edgedata = [{'col': edge[0],
@@ -1276,6 +1277,7 @@
 
             entry.update({'col': vtx[0],
                           'color': (vtx[1] - 1) % 6 + 1,
+                          'parity': next(parity),
                           'edges': edgedata,
                           'row': row,
                           'nextrow': row + 1})