From 25385f53b2dc79bf807f6fbef2f0f73491f83445 Mon Sep 17 00:00:00 2001 From: "lpsolit%gmail.com" <> Date: Wed, 7 Sep 2005 19:05:10 +0000 Subject: Bug 302669 (2nd part): show_bug.cgi?ctype=xml should allow the option of exporting attachment data - Patch by Greg Hendricks r/a=myk --- Bugzilla/Template.pm | 10 +++++++++- show_bug.cgi | 3 ++- t/004template.t | 1 + t/008filter.t | 2 +- template/en/default/bug/knob.html.tmpl | 2 ++ template/en/default/bug/show.xml.tmpl | 3 +++ template/en/default/list/list.html.tmpl | 8 ++++++++ 7 files changed, 26 insertions(+), 3 deletions(-) diff --git a/Bugzilla/Template.pm b/Bugzilla/Template.pm index 91b98f5b8..92201507f 100644 --- a/Bugzilla/Template.pm +++ b/Bugzilla/Template.pm @@ -26,6 +26,7 @@ # Myk Melez # Max Kanat-Alexander # Frédéric Buclin +# Greg Hendricks package Bugzilla::Template; @@ -37,6 +38,7 @@ use Bugzilla::Config qw(:DEFAULT $templatedir $datadir); use Bugzilla::Util; use Bugzilla::User; use Bugzilla::Error; +use MIME::Base64; # for time2str - replace by TT Date plugin?? use Date::Format (); @@ -319,7 +321,13 @@ sub create { $var =~ s/\@/\\x40/g; # anti-spam for email addresses return $var; }, - + + # Converts data to base64 + base64 => sub { + my ($data) = @_; + return encode_base64($data); + }, + # HTML collapses newlines in element attributes to a single space, # so form elements which may have whitespace (ie comments) need # to be encoded using diff --git a/show_bug.cgi b/show_bug.cgi index ddb6b2313..31619800b 100755 --- a/show_bug.cgi +++ b/show_bug.cgi @@ -108,7 +108,8 @@ $vars->{'bug_list'} = \@bug_list; # If no explicit list is defined, we show all fields. We then exclude any # on the exclusion list. This is so you can say e.g. "Everything except # attachments" without listing almost all the fields. -my @fieldlist = (Bugzilla::Bug::fields(), 'group', 'long_desc', 'attachment'); +my @fieldlist = (Bugzilla::Bug::fields(), 'group', 'long_desc', + 'attachment', 'attachmentdata'); my %displayfields; if ($cgi->param("field")) { diff --git a/t/004template.t b/t/004template.t index 4edb6a3ac..9cbfadf6e 100644 --- a/t/004template.t +++ b/t/004template.t @@ -96,6 +96,7 @@ foreach my $include_path (@include_paths) { html_linebreak => sub { return $_; }, no_break => sub { return $_; } , js => sub { return $_ } , + base64 => sub { return $_ } , inactive => [ sub { return sub { return $_; } }, 1] , closed => [ sub { return sub { return $_; } }, 1] , obsolete => [ sub { return sub { return $_; } }, 1] , diff --git a/t/008filter.t b/t/008filter.t index 59d3a2bd7..61b3dc2b6 100644 --- a/t/008filter.t +++ b/t/008filter.t @@ -218,7 +218,7 @@ sub directive_ok { # Things which are already filtered # Note: If a single directive prints two things, and only one is # filtered, we may not catch that case. - return 1 if $directive =~ /FILTER\ (html|csv|js|url_quote|css_class_quote| + return 1 if $directive =~ /FILTER\ (html|csv|js|base64|url_quote|css_class_quote| ics|quoteUrls|time|uri|xml|lower| obsolete|inactive|closed|unitconvert| none)/x; diff --git a/template/en/default/bug/knob.html.tmpl b/template/en/default/bug/knob.html.tmpl index 2ade9a373..c76251ae9 100644 --- a/template/en/default/bug/knob.html.tmpl +++ b/template/en/default/bug/knob.html.tmpl @@ -170,6 +170,8 @@   |   Format For Printing   |   + XML +   |   Clone This [% terms.Bug %] [%# Links to more things users can do with this bug. %] diff --git a/template/en/default/bug/show.xml.tmpl b/template/en/default/bug/show.xml.tmpl index 2555600ed..0a0966890 100644 --- a/template/en/default/bug/show.xml.tmpl +++ b/template/en/default/bug/show.xml.tmpl @@ -77,6 +77,9 @@ [% a.attached FILTER time FILTER xml %] [% a.description FILTER xml %] [% a.contenttype FILTER xml %] + [% IF displayfields.attachmentdata %] + [% a.data FILTER base64 %] + [% END %] [% FOREACH flag = a.flags %] +
+ + [% FOREACH id = buglist %] + + [% END %] + + +
[% IF UserInGroup(Param('timetrackinggroup')) %]
-- cgit v1.2.3-24-g4f1b