Re: [PATCH 3/4] gitweb: Don't append ';js=(0|1)' to external links
- From
Jürgen Kreileder <jk@blackdown.de>
- Date
- Apr 9, 2013, 17:54 UTC
- Message-ID
- <m2mwt7a8tz.fsf@zahir.fritz.box>
- In-Reply-To
- <516430D5.6030201@gmail.com>
Jakub Narębski <jnareb@gmail.com> writes:
Show 9 quoted lines
> Jürgen Kreileder wrote: > >> Don't add js parameters to links outside of gitweb itself. > > Hmmm... this limits adding ';js=(0|1)' to only links which begin with > $my_url, i.e. absolute links beginning with gitweb's base URL. > > Wouldn't that mean that most internal gitweb-generated links wouldn't > get ';js=(0|1)'? href(..., -full => 1) is not the default...
No, link.href is always absolute in JavaScript - even if the emitted URL was relative.
Old: https://git.blackdown.de/old.cgi?p=contactalbum.git;a=summary;js=1 New: https://git.blackdown.de/?p=contactalbum.git;a=summary;js=1
With the old version the external links in the description got ';js=1' appended. With the new version, ';js=1' isn't on those links. Other links are the same in both versions.
Show 38 quoted lines
>> Signed-off-by: Jürgen Kreileder <jk@blackdown.de>
>> ---
>> gitweb/gitweb.perl | 2 +-
>> gitweb/static/js/javascript-detection.js | 4 ++--
>> 2 files changed, 3 insertions(+), 3 deletions(-)
>>
>> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
>> index 1309196..f0912d7 100755
>> --- a/gitweb/gitweb.perl
>> +++ b/gitweb/gitweb.perl
>> @@ -4165,7 +4165,7 @@ sub git_footer_html {
>> print qq!<script type="text/javascript">\n!.
>> qq!window.onload = function () {\n!;
>> if (gitweb_check_feature('javascript-actions')) {
>> - print qq! fixLinks();\n!;
>> + print qq! fixLinks('$my_url');\n!;
>> }
>> if ($jstimezone && $tz_cookie && $datetime_class) {
>> print qq! var tz_cookie = { name: '$tz_cookie', expires: 14, path: '/' };\n!. # in days
>> diff --git a/gitweb/static/js/javascript-detection.js b/gitweb/static/js/javascript-detection.js
>> index fa2596f..36964ad 100644
>> --- a/gitweb/static/js/javascript-detection.js
>> +++ b/gitweb/static/js/javascript-detection.js
>> @@ -29,11 +29,11 @@ var jsExceptionsRe = /[;?]js=[01](#.*)?$/;
>> *
>> * @globals jsExceptionsRe
>> */
>> -function fixLinks() {
>> +function fixLinks(baseurl) {
>> var allLinks = document.getElementsByTagName("a") || document.links;
>> for (var i = 0, len = allLinks.length; i < len; i++) {
>> var link = allLinks[i];
>> - if (!jsExceptionsRe.test(link)) {
>> + if (!jsExceptionsRe.test(link) && !link.href.indexOf(baseurl)) {
>> link.href = link.href.replace(/(#|$)/,
>> (link.href.indexOf('?') === -1 ? '?' : ';') + 'js=1$1');
>> }
>>