blob: 2555600ed65246574b7cf07326e41e59c1a5ea1b (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
[%# 1.0@bugzilla.org #%]
[%# 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>
#
#%]
<?xml version="1.0" [% IF Param('utf8') %]encoding="UTF-8" [% END %]standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "[% Param('urlbase') %]bugzilla.dtd">
<bugzilla version="[% VERSION %]"
urlbase="[% Param('urlbase') %]"
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 %]
[% IF displayfields.long_desc %]
[% FOREACH c = bug.longdescs %]
[% NEXT IF c.isprivate && !UserInGroup(Param("insidergroup")) %]
<long_desc>
<who>[% c.email FILTER xml %]</who>
<bug_when>[% c.time FILTER time FILTER xml %]</bug_when>
<thetext>[% c.body FILTER xml %]</thetext>
</long_desc>
[% END %]
[% END %]
[% IF displayfields.attachment %]
[% FOREACH a = bug.attachments %]
[% NEXT IF a.isprivate && !UserInGroup(Param("insidergroup")) %]
<attachment
[% IF a.isobsolete %]
isobsolete="1"
[% END %]
[% IF a.ispatch %]
ispatch="1"
[% END %]
>
<attachid>[% a.id %]</attachid>
<date>[% a.attached FILTER time FILTER xml %]</date>
<desc>[% a.description FILTER xml %]</desc>
<ctype>[% a.contenttype FILTER xml %]</ctype>
[% FOREACH flag = a.flags %]
<flag name="[% flag.type.name FILTER xml %]"
status="[% flag.status FILTER xml %]"
[% IF flag.setter %]
setter="[% flag.setter.email FILTER xml %]"
[% END %]
[% 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
#%]
[% IF field == 'reporter' OR field == 'assigned_to' OR
field == 'qa_contact' %]
[% val = val.email %]
[% ELSIF field == 'creation_ts' OR field == 'delta_ts' %]
[% val = val FILTER time %]
[% END %]
<[% field %]>[% val FILTER xml %]</[% field %]>
[% END %]
[% END %]
|