diff options
-rw-r--r-- | Bugzilla/Template.pm | 10 | ||||
-rwxr-xr-x | show_bug.cgi | 3 | ||||
-rw-r--r-- | t/004template.t | 1 | ||||
-rw-r--r-- | t/008filter.t | 2 | ||||
-rw-r--r-- | template/en/default/bug/knob.html.tmpl | 2 | ||||
-rw-r--r-- | template/en/default/bug/show.xml.tmpl | 3 | ||||
-rw-r--r-- | 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 <myk@mozilla.org> # Max Kanat-Alexander <mkanat@bugzilla.org> # Frédéric Buclin <LpSolit@gmail.com> +# Greg Hendricks <ghendricks@novell.com> 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 @@ | <a href="show_bug.cgi?format=multiple&id=[% bug.bug_id %]">Format For Printing</a> | + <a href="show_bug.cgi?ctype=xml&id=[% bug.bug_id %]">XML</a> + | <a href="enter_bug.cgi?cloned_bug_id=[% bug.bug_id %]">Clone This [% terms.Bug %]</a> [%# 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 @@ <date>[% a.attached FILTER time FILTER xml %]</date> <desc>[% a.description FILTER xml %]</desc> <ctype>[% a.contenttype FILTER xml %]</ctype> + [% IF displayfields.attachmentdata %] + <data>[% a.data FILTER base64 %]</data> + [% END %] [% FOREACH flag = a.flags %] <flag name="[% flag.type.name FILTER xml %]" status="[% flag.status FILTER xml %]" diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl index a7b2b344c..dfe57b755 100644 --- a/template/en/default/list/list.html.tmpl +++ b/template/en/default/list/list.html.tmpl @@ -140,6 +140,14 @@ <input type="hidden" name="format" value="multiple"> <input type="submit" value=" Long Format "> </form> + <form method="post" action="show_bug.cgi"> + <input type="hidden" name="ctype" value="xml"> + [% FOREACH id = buglist %] + <input type="hidden" name="id" value="[% id FILTER html %]"> + [% END %] + <input type="hidden" name="excludefield" value="attachmentdata"> + <input type="submit" value="XML"> + </form> [% IF UserInGroup(Param('timetrackinggroup')) %] <form method="post" action="summarize_time.cgi"> |