[%# The contents of this file are subject to the Mozilla Public # License Version 1.1 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or # implied. See the License for the specific language governing # rights and limitations under the License. # # The Original Code is the Bugzilla Bug Tracking System. # # The Initial Developer of the Original Code is Netscape Communications # Corporation. Portions created by Netscape are # Copyright (C) 1998 Netscape Communications Corporation. All # Rights Reserved. # # Contributor(s): Bradley Baetz <bbaetz@student.usyd.edu.au> # Colin Ogilvie <mozilla@colinogilvie.co.uk> # #%] [% PROCESS bug/time.html.tmpl %] <?xml version="1.0" [% IF Param('utf8') %]encoding="UTF-8" [% END %]standalone="yes" ?> <!DOCTYPE bugzilla SYSTEM "[% urlbase FILTER html %]bugzilla.dtd"> <bugzilla version="[% constants.BUGZILLA_VERSION %]" urlbase="[% urlbase FILTER xml %]" maintainer="[% Param('maintainer') FILTER xml %]" [% IF user.id %] exporter="[% user.email FILTER xml %]" [% END %] > [% FOREACH bug = bugs %] [% IF bug.error %] <bug error="[% bug.error FILTER xml %]"> <bug_id>[% bug.bug_id FILTER xml %]</bug_id> </bug> [% ELSE %] <bug> [% FOREACH field = bug.fields %] [% IF displayfields.$field %] [%+ PROCESS bug_field %] [% END %] [% END %] [%# Now handle 'special' fields #%] [% IF displayfields.group %] [% FOREACH g = bug.groups %] [% NEXT UNLESS g.ison %] <group>[% g.name FILTER xml %]</group> [% END %] [% END %] [%# Bug Flags %] [% FOREACH type = bug.flag_types %] [% FOREACH flag = type.flags %] <flag name="[% type.name FILTER xml %]" status="[% flag.status FILTER xml %]" setter="[% flag.setter.login FILTER xml %]" [% IF flag.requestee %] requestee="[% flag.requestee.login FILTER xml %]" [% END %] /> [% END %] [% END %] [% IF displayfields.long_desc %] [% FOREACH c = bug.longdescs %] [% NEXT IF c.isprivate && !user.in_group(Param("insidergroup")) %] <long_desc isprivate="[% c.isprivate FILTER xml %]"> <who name="[% c.author.name FILTER xml %]">[% c.author.email FILTER xml %]</who> <bug_when>[% c.time FILTER time FILTER xml %]</bug_when> [% IF user.in_group(Param('timetrackinggroup')) && (c.work_time - 0 != 0) %] <work_time>[% PROCESS formattimeunit time_unit = c.work_time FILTER xml %]</work_time> [% END %] <thetext>[% c.body FILTER xml %]</thetext> </long_desc> [% END %] [% END %] [% IF displayfields.attachment %] [% FOREACH a = bug.attachments %] [% NEXT IF a.isprivate && !user.in_group(Param("insidergroup")) %] <attachment isobsolete="[% a.isobsolete FILTER xml %]" ispatch="[% a.ispatch FILTER xml %]" isprivate="[% a.isprivate FILTER xml %]" > <attachid>[% a.id %]</attachid> <date>[% a.attached FILTER time FILTER xml %]</date> <desc>[% a.description FILTER xml %]</desc> <filename>[% a.filename FILTER xml %]</filename> <type>[% a.contenttype FILTER xml %]</type> <size>[% a.datasize FILTER xml %]</size> [% IF displayfields.attachmentdata %] <data encoding="base64">[% a.data FILTER base64 %]</data> [% END %] [% FOREACH flag = a.flags %] <flag name="[% flag.type.name FILTER xml %]" status="[% flag.status FILTER xml %]" setter="[% flag.setter.email FILTER xml %]" [% IF flag.status == "?" && flag.requestee %] requestee="[% flag.requestee.email FILTER xml %]" [% END %] /> [% END %] </attachment> [% END %] [% END %] </bug> [% END %] [% END %] </bugzilla> [% BLOCK bug_field %] [% FOREACH val = bug.$field %] [%# We need to handle some fields differently. This should become # nicer once we have custfields, and a type attribute for the fields #%] [% name = '' %] [% IF field == 'reporter' OR field == 'assigned_to' OR field == 'qa_contact' %] [% name = val.name %] [% val = val.email %] [% ELSIF field == 'creation_ts' OR field == 'delta_ts' %] [% val = val FILTER time %] [% END %] <[% field %][% IF name != '' %] name="[% name FILTER xml %]"[% END -%]>[% val FILTER xml %]</[% field %]> [% END %] [% END %]