From 7d4370dc8cff507254e7b44de0fc462dcb28d52f Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Wed, 15 Jan 2003 15:59:48 +0000 Subject: Bug 136603 - show_bug.cgi's XML retrieval needs a summary mode. Patch by gerv; r=bbaetz, a=justdave. --- show_bug.cgi | 23 ++++++++++++++++++- template/en/default/bug/show.xml.tmpl | 42 +++++++++++++++++++++-------------- 2 files changed, 47 insertions(+), 18 deletions(-) diff --git a/show_bug.cgi b/show_bug.cgi index 52c7f83f9..80e53e616 100755 --- a/show_bug.cgi +++ b/show_bug.cgi @@ -76,9 +76,30 @@ my @bug_list; if ($::COOKIE{"BUGLIST"}) { @bug_list = split(/:/, $::COOKIE{"BUGLIST"}); } + $vars->{'bug_list'} = \@bug_list; +# Work out which fields we are displaying (currently XML only.) +# 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 = (Bug::fields(), 'group', 'long_desc', 'attachment'); +my %displayfields; + +if ($cgi->param("field")) { + @fieldlist = $cgi->param("field"); +} + +foreach (@fieldlist) { + $displayfields{$_} = 1; +} + +foreach ($cgi->param("excludefield")) { + $displayfields{$_} = undef; +} + +$vars->{'displayfields'} = \%displayfields; + print "Content-type: $format->{'ctype'}\n\n"; $template->process("$format->{'template'}", $vars) || ThrowTemplateError($template->error()); - diff --git a/template/en/default/bug/show.xml.tmpl b/template/en/default/bug/show.xml.tmpl index 501ec2c17..618745902 100644 --- a/template/en/default/bug/show.xml.tmpl +++ b/template/en/default/bug/show.xml.tmpl @@ -38,29 +38,37 @@ [% ELSE %] [% FOREACH field = bug.fields %] - [%+ PROCESS bug_field %] + [% IF displayfields.$field %] + [%+ PROCESS bug_field %] + [% END %] [% END %] [%# Now handle 'special' fields #%] - [% FOREACH g = bug.groups %] - [% NEXT UNLESS g.ison %] - [% g.name FILTER xml %] + [% IF displayfields.group %] + [% FOREACH g = bug.groups %] + [% NEXT UNLESS g.ison %] + [% g.name FILTER xml %] + [% END %] [% END %] - [% FOREACH c = bug.longdescs %] - - [% c.email FILTER xml %] - [% c.time FILTER time FILTER xml %] - [% c.body FILTER xml %] - + [% IF displayfields.long_desc %] + [% FOREACH c = bug.longdescs %] + + [% c.email FILTER xml %] + [% c.time FILTER time FILTER xml %] + [% c.body FILTER xml %] + + [% END %] [% END %] - - [% FOREACH a = bug.attachments %] - - [% a.attachid %] - [% a.date FILTER time FILTER xml %] - [% a.description FILTER xml %] - + + [% IF displayfields.attachment %] + [% FOREACH a = bug.attachments %] + + [% a.attachid %] + [% a.date FILTER time FILTER xml %] + [% a.description FILTER xml %] + + [% END %] [% END %] [% END %] -- cgit v1.2.3-24-g4f1b