# HG changeset patch # User Denis Laxalde # Date 2017-06-21 15:17:17 # Node ID 1c97df5e3b46d1b8dc3e0df3ae07b35c55c0db68 # Parent 7c82bfd55d478b5c4d76aa217f8048488bb808ef hgweb: plug followlines action in annotate view Add the followlines.js script and corresponding parameters as data attribute on element. Extend CSS rules so that they also match the DOM structure of annotate view. As previously, only address paper and gitweb styles (other styles do not have followlines at all). diff --git a/mercurial/hgweb/webcommands.py b/mercurial/hgweb/webcommands.py --- a/mercurial/hgweb/webcommands.py +++ b/mercurial/hgweb/webcommands.py @@ -865,6 +865,7 @@ def annotate(web, req, tmpl): fctx = webutil.filectx(web.repo, req) f = fctx.path() parity = paritygen(web.stripecount) + ishead = fctx.filerev() in fctx.filelog().headrevs() # parents() is called once per line and several lines likely belong to # same revision. So it is worth caching. @@ -927,6 +928,7 @@ def annotate(web, req, tmpl): symrev=webutil.symrevorshortnode(req, fctx), rename=webutil.renamelink(fctx), permissions=fctx.manifest().flags(f), + ishead=int(ishead), **webutil.commonentry(web.repo, fctx)) @webcommand('filelog') diff --git a/mercurial/templates/gitweb/fileannotate.tmpl b/mercurial/templates/gitweb/fileannotate.tmpl --- a/mercurial/templates/gitweb/fileannotate.tmpl +++ b/mercurial/templates/gitweb/fileannotate.tmpl @@ -66,10 +66,15 @@ annotate |
- + {annotate%annotateline}
+ + {footer} diff --git a/mercurial/templates/paper/fileannotate.tmpl b/mercurial/templates/paper/fileannotate.tmpl --- a/mercurial/templates/paper/fileannotate.tmpl +++ b/mercurial/templates/paper/fileannotate.tmpl @@ -73,7 +73,10 @@   line source - + {annotate%annotateline} @@ -81,4 +84,6 @@ + + {footer} diff --git a/mercurial/templates/static/style-gitweb.css b/mercurial/templates/static/style-gitweb.css --- a/mercurial/templates/static/style-gitweb.css +++ b/mercurial/templates/static/style-gitweb.css @@ -177,10 +177,12 @@ pre.sourcelines.stripes > span:target { } /* Followlines */ +div.page_body table tbody.sourcelines > tr.followlines-select:hover, div.page_body pre.sourcelines > span.followlines-select:hover { cursor: cell; } +tbody.sourcelines > tr.followlines-selected, pre.sourcelines > span.followlines-selected { background-color: #99C7E9 !important; } diff --git a/mercurial/templates/static/style-paper.css b/mercurial/templates/static/style-paper.css --- a/mercurial/templates/static/style-paper.css +++ b/mercurial/templates/static/style-paper.css @@ -280,10 +280,12 @@ td.annotate:hover div.annotate-info { di background-color: #bfdfff; } +div.overflow table tbody.sourcelines > tr.followlines-select:hover, div.overflow pre.sourcelines > span.followlines-select:hover { cursor: cell; } +tbody.sourcelines > tr.followlines-selected, pre.sourcelines > span.followlines-selected { background-color: #99C7E9; } diff --git a/tests/test-hgweb.t b/tests/test-hgweb.t --- a/tests/test-hgweb.t +++ b/tests/test-hgweb.t @@ -340,7 +340,7 @@ static file $ get-with-headers.py --twice localhost:$HGPORT 'static/style-gitweb.css' - date etag server 200 Script output follows - content-length: 8349 + content-length: 8463 content-type: text/css body { font-family: sans-serif; font-size: 12px; border:solid #d9d8d1; border-width:1px; margin:10px; background: white; color: black; } @@ -522,10 +522,12 @@ static file } /* Followlines */ + div.page_body table tbody.sourcelines > tr.followlines-select:hover, div.page_body pre.sourcelines > span.followlines-select:hover { cursor: cell; } + tbody.sourcelines > tr.followlines-selected, pre.sourcelines > span.followlines-selected { background-color: #99C7E9 !important; } diff --git a/tests/test-highlight.t b/tests/test-highlight.t --- a/tests/test-highlight.t +++ b/tests/test-highlight.t @@ -292,7 +292,10 @@ hgweb fileannotate, html   line source - + @@ -829,6 +832,8 @@ hgweb fileannotate, html + +