diff options
author | gerv%gerv.net <> | 2001-09-11 06:26:05 +0200 |
---|---|---|
committer | gerv%gerv.net <> | 2001-09-11 06:26:05 +0200 |
commit | a0951fc965aafba2c182d761bc0636ddbd324cf2 (patch) | |
tree | d69a8c01e755de2a8f6c9e7e8cf1551f0b5ee3aa | |
parent | c58ca9fbad118fd898bdd6aedee9fbf82abd2fb8 (diff) | |
download | bugzilla-a0951fc965aafba2c182d761bc0636ddbd324cf2.tar.gz bugzilla-a0951fc965aafba2c182d761bc0636ddbd324cf2.tar.xz |
Make Bugzilla support <link> tag for buglists. Bug 87818. r=jake, caillon.
-rw-r--r-- | CGI.pl | 43 | ||||
-rwxr-xr-x | buglist.cgi | 2 | ||||
-rwxr-xr-x | show_bug.cgi | 2 |
3 files changed, 45 insertions, 2 deletions
@@ -22,6 +22,7 @@ # Joe Robins <jmrobins@tgix.com> # Dave Miller <justdave@syndicomm.com> # Christopher Aillon <christopher@aillon.com> +# Gervase Markham <gerv@gerv.net> # Contains some global routines used throughout the CGI scripts of Bugzilla. @@ -408,6 +409,48 @@ sub navigation_header { print " <A HREF=enter_bug.cgi>Enter new bug</A>\n" } +# Adds <link> elements for bug lists. These can be inserted into the header by +# (ab)using the "jscript" parameter to PutHeader, which inserts an arbitrary +# string into the header. This function is modelled on the one above. +sub navigation_links($) { + my ($buglist) = @_; + + my $retval = ""; + + # We need to be able to pass in a buglist because when you sort on a column + # the bugs in the cookie you are given will still be in the old order. + # If a buglist isn't passed, we just use the cookie. + $buglist ||= $::COOKIE{"BUGLIST"}; + + if (defined $buglist && $buglist ne "") { + my @bugs = split(/:/, $buglist); + + if (defined $::FORM{'id'}) { + # We are on an individual bug + my $cur = lsearch(\@bugs, $::FORM{"id"}); + + if ($cur > 0) { + $retval .= "<link rel=\"First\" href=\"show_bug.cgi?id=$bugs[0]\" />\n"; + $retval .= "<link rel=\"Prev\" href=\"show_bug.cgi?id=$bugs[$cur - 1]\" />\n"; + } + if ($cur < $#bugs) { + $retval .= "<link rel=\"Next\" href=\"show_bug.cgi?id=$bugs[$cur + 1]\" />\n"; + $retval .= "<link rel=\"Last\" href=\"show_bug.cgi?id=$bugs[$#bugs]\" />\n"; + } + + $retval .= "<link rel=\"Up\" href=\"buglist.cgi?regetlastlist=1\" />\n"; + $retval .= "<link rel=\"Contents\" href=\"buglist.cgi?regetlastlist=1\" />\n"; + } else { + # We are on a bug list + $retval .= "<link rel=\"First\" href=\"show_bug.cgi?id=$bugs[0]\" />\n"; + $retval .= "<link rel=\"Next\" href=\"show_bug.cgi?id=$bugs[0]\" />\n"; + $retval .= "<link rel=\"Last\" href=\"show_bug.cgi?id=$bugs[$#bugs]\" />\n"; + } + } + + return $retval; +} + sub make_checkboxes { my ($src,$default,$isregexp,$name) = (@_); my $last = ""; diff --git a/buglist.cgi b/buglist.cgi index e08df3952..f6143abaa 100755 --- a/buglist.cgi +++ b/buglist.cgi @@ -1313,7 +1313,7 @@ if (length($buglist) < 4000) { print "Set-Cookie: BUGLIST=\n\n"; $toolong = 1; } -PutHeader($::querytitle); +PutHeader($::querytitle, undef, "", "", navigation_links($buglist)); print " diff --git a/show_bug.cgi b/show_bug.cgi index eced9cfbe..c5b569a45 100755 --- a/show_bug.cgi +++ b/show_bug.cgi @@ -68,7 +68,7 @@ GetVersionTable(); SendSQL("SELECT short_desc FROM bugs WHERE bug_id = $::FORM{'id'}"); my ($summary) = FetchSQLData(); $summary = html_quote($summary); -PutHeader("Bug $::FORM{'id'} - $summary", "Bugzilla Bug $::FORM{'id'}", $summary ); +PutHeader("Bug $::FORM{'id'} - $summary", "Bugzilla Bug $::FORM{'id'}", $summary, "", navigation_links() ); navigation_header(); |