Skip to content

Commit

Permalink
gitweb: Easier adding/changing parameters to current URL
Browse files Browse the repository at this point in the history
Add boolean option '-replay' to href() subroutine, which is used to
generate links in gitweb.  This option "replays" current URL,
overriding it with provided parameters.  It means that current value
of each CGI parameter is used unless otherwise provided.

This change is meant to make it easier to generate links which differ
from current page URL only by one parameter, for example the same view
but sorted by different column:
  href(-replay=>1, order=>"age")
or view which differs by some option, e.g. in log views
  href(-replay=>1, extra_options=>"--no-merges")
or alternate view of the same object, e.g. in the 'blob' view
  href(-replay=>1, action=>"blob_plain")

Actual use of this functionality is left for later.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jakub Narebski authored and Junio C Hamano committed Nov 2, 2007
1 parent fa9aff4 commit 1cad283
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions gitweb/gitweb.perl
Original file line number Diff line number Diff line change
Expand Up @@ -611,6 +611,15 @@ (%)
);
my %mapping = @mapping;

if ($params{-replay}) {
while (my ($name, $symbol) = each %mapping) {
if (!exists $params{$name}) {
# to allow for multivalued params we use arrayref form
$params{$name} = [ $cgi->param($symbol) ];
}
}
}

$params{'project'} = $project unless exists $params{'project'};

my ($use_pathinfo) = gitweb_check_feature('pathinfo');
Expand Down

0 comments on commit 1cad283

Please sign in to comment.