From 0131b54976afdd3662475e7e84ad66c2997c0287 Mon Sep 17 00:00:00 2001 From: Byron Jones Date: Fri, 15 Mar 2013 13:30:57 +0800 Subject: Bug 850675: editing the splinter url always appends a /, which results in a broken url --- extensions/Splinter/Extension.pm | 10 +++++++ extensions/Splinter/lib/Util.pm | 34 ++++++++++------------ .../en/default/admin/params/splinter.html.tmpl | 2 +- .../default/hook/attachment/edit-action.html.tmpl | 10 ++----- .../default/hook/attachment/list-action.html.tmpl | 10 ++----- .../hook/request/email-after_summary.txt.tmpl | 5 ++-- .../hook/request/queue-after_column.html.tmpl | 8 ++--- .../template/en/default/pages/splinter.html.tmpl | 8 ++--- 8 files changed, 40 insertions(+), 47 deletions(-) (limited to 'extensions/Splinter') diff --git a/extensions/Splinter/Extension.pm b/extensions/Splinter/Extension.pm index 980ab0054..ecf61ea9a 100644 --- a/extensions/Splinter/Extension.pm +++ b/extensions/Splinter/Extension.pm @@ -18,6 +18,16 @@ use Bugzilla::Extension::Splinter::Util; our $VERSION = '0.1'; +BEGIN { + *Bugzilla::splinter_review_base = \&get_review_base; + *Bugzilla::splinter_review_url = \&_get_review_url; +} + +sub _get_review_url { + my ($class, $bug_id, $attach_id) = @_; + return get_review_url(Bugzilla::Bug->check({ id => $bug_id, cache => 1 }), $attach_id); +} + sub page_before_template { my ($self, $args) = @_; my ($vars, $page) = @$args{qw(vars page_id)}; diff --git a/extensions/Splinter/lib/Util.pm b/extensions/Splinter/lib/Util.pm index 9f09d3dcc..5258334a7 100644 --- a/extensions/Splinter/lib/Util.pm +++ b/extensions/Splinter/lib/Util.pm @@ -29,10 +29,11 @@ use Bugzilla::Util; use base qw(Exporter); @Bugzilla::Extension::Splinter::Util::EXPORT = qw( - attachment_is_visible + attachment_is_visible attachment_id_is_patch - get_review_url - get_review_link + get_review_base + get_review_url + get_review_link add_review_links_to_email ); @@ -80,23 +81,20 @@ sub attachment_id_is_patch { return ($attachment && $attachment->ispatch); } -sub get_review_url { - my ($bug, $attach_id, $absolute) = @_; +sub get_review_base { my $base = Bugzilla->params->{'splinter_base'}; - my $bug_id = $bug->id; - - if (defined $absolute && $absolute) { - my $urlbase = correct_urlbase(); - $urlbase =~ s!/$!! if $base =~ "^/"; - $base = $urlbase . $base; - } + $base =~ s!/$!!; + my $urlbase = correct_urlbase(); + $urlbase =~ s!/$!! if $base =~ "^/"; + $base = $urlbase . $base; + return $base; +} - if ($base =~ /\?/) { - return "$base&bug=$bug_id&attachment=$attach_id"; - } - else { - return "$base?bug=$bug_id&attachment=$attach_id"; - } +sub get_review_url { + my ($bug, $attach_id) = @_; + my $base = get_review_base(); + my $bug_id = $bug->id; + return $base . ($base =~ /\?/ ? '&' : '?') . "bug=$bug_id&attachment=$attach_id"; } sub get_review_link { diff --git a/extensions/Splinter/template/en/default/admin/params/splinter.html.tmpl b/extensions/Splinter/template/en/default/admin/params/splinter.html.tmpl index c92c62e5d..b28a4bd37 100644 --- a/extensions/Splinter/template/en/default/admin/params/splinter.html.tmpl +++ b/extensions/Splinter/template/en/default/admin/params/splinter.html.tmpl @@ -32,7 +32,7 @@ "the following lines to the .htaccess for Bugzilla: " _ "
" _
                    "RewriteEngine On\n" _
-                   "RewriteRule ^review(\?(.*))? page.cgi?id=splinter.html&$2 [L]" _
+                   "RewriteRule ^review(.*) page.cgi?id=splinter.html\$1 [QSA]" _
                    "
" } %] diff --git a/extensions/Splinter/template/en/default/hook/attachment/edit-action.html.tmpl b/extensions/Splinter/template/en/default/hook/attachment/edit-action.html.tmpl index ba564d4b4..7648e1d76 100644 --- a/extensions/Splinter/template/en/default/hook/attachment/edit-action.html.tmpl +++ b/extensions/Splinter/template/en/default/hook/attachment/edit-action.html.tmpl @@ -20,12 +20,6 @@ #%] [% IF attachment.ispatch %] - | - [% IF Param("splinter_base").search('\?') %] - - Splinter Review - [% ELSE %] - - Splinter Review - [% END %] + | + Review [% END %] diff --git a/extensions/Splinter/template/en/default/hook/attachment/list-action.html.tmpl b/extensions/Splinter/template/en/default/hook/attachment/list-action.html.tmpl index 51babf079..cd2db2770 100644 --- a/extensions/Splinter/template/en/default/hook/attachment/list-action.html.tmpl +++ b/extensions/Splinter/template/en/default/hook/attachment/list-action.html.tmpl @@ -20,12 +20,6 @@ #%] [% IF attachment.ispatch %] - | - [% IF Param("splinter_base").search('\?') %] - - Splinter Review - [% ELSE %] - - Splinter Review - [% END %] + | + Review [% END %] diff --git a/extensions/Splinter/template/en/default/hook/request/email-after_summary.txt.tmpl b/extensions/Splinter/template/en/default/hook/request/email-after_summary.txt.tmpl index 320d20a82..c9717fbd6 100644 --- a/extensions/Splinter/template/en/default/hook/request/email-after_summary.txt.tmpl +++ b/extensions/Splinter/template/en/default/hook/request/email-after_summary.txt.tmpl @@ -1,6 +1,7 @@ +[% USE Bugzilla %] [% IF flag && flag.status == '?' && flag.type.name == 'review' && attachment && attachment.ispatch %] -Splinter Review -[%+ urlbase FILTER none %][% Param('splinter_base') %]&bug=[% bug.bug_id FILTER uri %]&attachment=[% attachment.id FILTER uri %] +Review +[%+ Bugzilla.splinter_review_url(request.bug_id, request.attach_id) FILTER none %] [%- END %] diff --git a/extensions/Splinter/template/en/default/hook/request/queue-after_column.html.tmpl b/extensions/Splinter/template/en/default/hook/request/queue-after_column.html.tmpl index 5d1c7a2bb..a5fc61cea 100644 --- a/extensions/Splinter/template/en/default/hook/request/queue-after_column.html.tmpl +++ b/extensions/Splinter/template/en/default/hook/request/queue-after_column.html.tmpl @@ -1,8 +1,4 @@ [% IF column == 'attachment' && request.ispatch %] -   - [% IF Param("splinter_base").search('\?') %] - [review] - [% ELSE %] - [review] - [% END %] +   + [review] [% END %] diff --git a/extensions/Splinter/template/en/default/pages/splinter.html.tmpl b/extensions/Splinter/template/en/default/pages/splinter.html.tmpl index 1814da58c..fc4748548 100644 --- a/extensions/Splinter/template/en/default/pages/splinter.html.tmpl +++ b/extensions/Splinter/template/en/default/pages/splinter.html.tmpl @@ -44,10 +44,10 @@ [% can_edit = 0 %]