annotate mercurial/templates/gitweb/manifest.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 2d93d2159e30
children e9a8a941950a
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}: files</title>
5269
46c5e1ee8aaa Added support for the Atom syndication format
Robert Bachmann <rbach@rbach.priv.at>
parents: 4538
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}"/>
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
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}"/>
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
7 </head>
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
8 <body>
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
9
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
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: 13964
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: 13964
diff changeset
12 <a href="/">Mercurial</a> {pathdef%breadcrumb} / files
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
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
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> |
6177
673d8a6bc709 Renamed "manifest" to "files" in web templates.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5820
diff changeset
24 files |
25605
dd89304687a3 hgweb: don't dereference symbolic revision in gitweb style
Anton Shestakov <av6@dwimlabs.net>
parents: 18526
diff changeset
25 <a href="{url|urlescape}rev/{symrev}{sessionvars%urlparameter}">changeset</a> {archives%archiveentry} |
18526
9409aeaafdc1 hgweb: urlescape all urls, HTML escape repo/tag/branch/... names
Thomas Arendsen Hein <thomas@intevation.de>
parents: 18258
diff changeset
26 <a href="{url|urlescape}help{sessionvars%urlparameter}">help</a>
32762
2d93d2159e30 hgweb: refresh styling of gitweb's search form
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32761
diff changeset
27 </div>
2d93d2159e30 hgweb: refresh styling of gitweb's search form
Gregory Szorc <gregory.szorc@gmail.com>
parents: 32761
diff changeset
28 {searchform}
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
29 </div>
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
30
13863
b602ac02f1ba hgweb: add bookmark labels to gitweb theme (based on 270f57d35525)
Yuya Nishihara <yuya@tcha.org>
parents: 12666
diff changeset
31 <div class="title">{path|escape} <span class="logtags">{inbranch%inbranchtag}{branches%branchtag}{tags%tagtag}{bookmarks%bookmarktag}</span></div>
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
32 <table cellspacing="0">
8427
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
33 <tr class="parity{upparity}">
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
34 <td style="font-family:monospace">drwxr-xr-x</td>
3305
0708bdb4987a hgweb: add file sizes to manifest browsing
Matt Mackall <mpm@selenic.com>
parents: 3271
diff changeset
35 <td style="font-family:monospace"></td>
5273
6e0f05f6f68d hgweb: Show date of last change for each file in manifest
Thomas Arendsen Hein <thomas@intevation.de>
parents: 5269
diff changeset
36 <td style="font-family:monospace"></td>
25605
dd89304687a3 hgweb: don't dereference symbolic revision in gitweb style
Anton Shestakov <av6@dwimlabs.net>
parents: 18526
diff changeset
37 <td><a href="{url|urlescape}file/{symrev}{up|urlescape}{sessionvars%urlparameter}">[up]</a></td>
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
38 <td class="link">&nbsp;</td>
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
39 </tr>
8427
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
40 {dentries%direntry}
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
41 {fentries%fileentry}
1572
385b8872b8e3 [hgweb] Initial import of the "gitweb" style
Josef "Jeff" Sipek <jeffpc@optonline.net>
parents:
diff changeset
42 </table>
4453
862dc0c020ad gitweb: Fixed manifest template opening an extra div tag
Josef "Jeff" Sipek <jeffpc@josefsipek.net>
parents: 3363
diff changeset
43
8427
cebdfdcc3e42 git: use newer template syntax everywhere
Dirkjan Ochtman <dirkjan@ochtman.nl>
parents: 8356
diff changeset
44 {footer}