annotate mercurial/templates/gitweb/filelog.tmpl @ 34391:6797f1fbc642

hgweb: add HTML elements to control whitespace settings for annotate Building on top of the new URL query string arguments to control whitespace settings for annotate, this commit adds HTML checkboxes reflecting the values of these arguments to the paper and gitweb themes. The actual diff settings are now exported to the templating layer. The HTML templates add these as data-* attributes so they are accessible to the DOM. A new <form> with various <input> elements is added. The <form> is initially hidden via CSS. A shared JavaScript function (which runs after the <form> has been rendered but before the annotate HTML (because annotate HTML could take a while to load and we want the form to render quickly) takes care of setting the checked state of each box from the data-* attributes. It also registers an event handler to modify the URL and refresh the page whenever the checkbox state is changed. I'm using the URLSearchParams interface to perform URL manipulation. https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams tells me this may not be supported on older web browsers. Yes, apparently the web API didn't have a standard API to parse and format query strings until recently. Hence the check for the presence of this feature in the JavaScript. If the browser doesn't support the feature, the <form> will remain hidden and behavior will like it currently is. We could polyfill this feature or implement our own query string parsing. But I'm lazy and this could be done as a follow-up if people miss it. We could certainly expand this feature to support more diff options (such as lines of context). That's why the potentially reusable code is stored in a reusable place. It is also certainly possible to add diff controls to other pages that display diffs. But since Mozillians are making noise about controlling which revisions annotate shows, I figured I'd start there. .. feature:: Control whitespace settings for annotation on hgweb /annotate URLs on hgweb now accept query string arguments to influence how whitespace changes impact results. The arguments "ignorews," "ignorewsamount," "ignorewseol," and "ignoreblanklines" now have the same meaning as their [annotate] config section counterparts. Any provided setting overrides the server default. HTML checkboxes have been added to the paper and gitweb themes to expose current whitespace settings and to easily modify the current view. Differential Revision: https://phab.mercurial-scm.org/D850
author Gregory Szorc <gregory.szorc@gmail.com>
date Sat, 30 Sep 2017 09:01:36 +0100
parents 816a4fa7d5f8
children 79cbf5cc4fb8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8427
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
1 {header}
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
2 <title>{repo|escape}: File revisions</title>
5269
46c5e1ee8aaa Added support for the Atom syndication format
Robert Bachmann <rbach@rbach.priv.at>
parents: 4460
diff changeset
3 <link rel="alternate" type="application/atom+xml"
18526
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
4 href="{url|urlescape}atom-log" title="Atom feed for {repo|escape}"/>
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
5 <link rel="alternate" type="application/rss+xml"
18526
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
6 href="{url|urlescape}rss-log" title="RSS feed for {repo|escape}"/>
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
7 </head>
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
8 <body>
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
9
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
10 <div class="page_header">
18258
bebb05a7e249 hgweb: add a "URL breadcrumb" to the index and repository pages
Angel Ezquerra <angel.ezquerra at gmail.com>
parents: 17202
diff changeset
11 <a href="{logourl}" title="Mercurial" style="float: right;">Mercurial</a>
bebb05a7e249 hgweb: add a "URL breadcrumb" to the index and repository pages
Angel Ezquerra <angel.ezquerra at gmail.com>
parents: 17202
diff changeset
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / file revisions
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
13 </div>
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
14
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
15 <div class="page_nav">
32762
2d93d2159e30 hgweb: refresh styling of gitweb's search form
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32761
diff changeset
16 <div>
18526
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
17 <a href="{url|urlescape}summary{sessionvars%urlparameter}">summary</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
18 <a href="{url|urlescape}shortlog{sessionvars%urlparameter}">shortlog</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
19 <a href="{url|urlescape}log{sessionvars%urlparameter}">changelog</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
20 <a href="{url|urlescape}graph{sessionvars%urlparameter}">graph</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
21 <a href="{url|urlescape}tags{sessionvars%urlparameter}">tags</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
22 <a href="{url|urlescape}bookmarks{sessionvars%urlparameter}">bookmarks</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
23 <a href="{url|urlescape}branches{sessionvars%urlparameter}">branches</a> |
25605
dd89304687a3 hgweb: don't dereference symbolic revision in gitweb style
Anton Shestakov <av6@dwimlabs.net>
parents: 18526
diff changeset
24 <a href="{url|urlescape}file/{symrev}/{file|urlescape}{sessionvars%urlparameter}">file</a> |
3271
36fa5db79dd5 hgweb: convert gitweb to NWI
Brendan Cully <brendan@kublai.com>
parents: 3234
diff changeset
25 revisions |
25605
dd89304687a3 hgweb: don't dereference symbolic revision in gitweb style
Anton Shestakov <av6@dwimlabs.net>
parents: 18526
diff changeset
26 <a href="{url|urlescape}annotate/{symrev}/{file|urlescape}{sessionvars%urlparameter}">annotate</a> |
dd89304687a3 hgweb: don't dereference symbolic revision in gitweb style
Anton Shestakov <av6@dwimlabs.net>
parents: 18526
diff changeset
27 <a href="{url|urlescape}diff/{symrev}/{file|urlescape}{sessionvars%urlparameter}">diff</a> |
dd89304687a3 hgweb: don't dereference symbolic revision in gitweb style
Anton Shestakov <av6@dwimlabs.net>
parents: 18526
diff changeset
28 <a href="{url|urlescape}comparison/{symrev}/{file|urlescape}{sessionvars%urlparameter}">comparison</a> |
18526
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
29 <a href="{url|urlescape}rss-log/tip/{file|urlescape}">rss</a> |
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
30 <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
3407
03e7e8958a27 hgweb: hoist changenav up, and use it in the filelog
Brendan Cully <brendan@kublai.com>
parents: 3363
diff changeset
31 <br/>
10254
8d5de52431f2 hgweb: changenav: separate pages before and after the current position
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9999
diff changeset
32 {nav%filenav}
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
33 </div>
32762
2d93d2159e30 hgweb: refresh styling of gitweb's search form
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32761
diff changeset
34 {searchform}
2d93d2159e30 hgweb: refresh styling of gitweb's search form
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32761
diff changeset
35 </div>
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
36
31947
6c08dfd19e0b gitweb: add information about "linerange" filtering in filelog view
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 31077
diff changeset
37 <div class="title" >
6c08dfd19e0b gitweb: add information about "linerange" filtering in filelog view
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 31077
diff changeset
38 {file|urlescape}{if(linerange,
6c08dfd19e0b gitweb: add information about "linerange" filtering in filelog view
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 31077
diff changeset
39 ' (following lines {linerange}{if(descend, ', descending')} <a href="{url|urlescape}log/{symrev}/{file|urlescape}{sessionvars%urlparameter}">back to filelog</a>)')}
6c08dfd19e0b gitweb: add information about "linerange" filtering in filelog view
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 31077
diff changeset
40 </div>
2012
d07c322e0033 add missing filename title to gitweb's filelog page
TK Soh <teekaysoh@yahoo.com>
parents: 1668
diff changeset
41
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
42 <table>
8427
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
43 {entries%filelogentry}
1576
145cc9f68c05 File log and some FIXMEs
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents: 1572
diff changeset
44 </table>
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
45
32992
816a4fa7d5f8 hgweb: use separate CSS class for navigation links in footer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32762
diff changeset
46 <div class="extra_nav">
31077
0f39055c9be5 gitweb: add "more" and "less" navigation links in filelog template
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 25605
diff changeset
47 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{lessvars%urlparameter}">less</a>
0f39055c9be5 gitweb: add "more" and "less" navigation links in filelog template
Denis Laxalde <denis.laxalde@logilab.fr>
parents: 25605
diff changeset
48 <a href="{url|urlescape}log/{symrev}/{file|urlescape}{morevars%urlparameter}">more</a>
10254
8d5de52431f2 hgweb: changenav: separate pages before and after the current position
Nicolas Dumazet <nicdumz.commits@gmail.com>
parents: 9999
diff changeset
49 {nav%filenav}
4460
717b96751431 gitweb: file log: display nav links near the bottom
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 4459
diff changeset
50 </div>
717b96751431 gitweb: file log: display nav links near the bottom
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 4459
diff changeset
51
8427
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
52 {footer}