show.xml.tmpl 4.91 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
[%# 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>
19
  #                 Colin Ogilvie <mozilla@colinogilvie.co.uk>
20 21
  #
  #%]
22
[% PROCESS bug/time.html.tmpl %]
23
<?xml version="1.0" [% IF Param('utf8') %]encoding="UTF-8" [% END %]standalone="yes" ?>
24
<!DOCTYPE bugzilla SYSTEM "[% urlbase FILTER html %]bugzilla.dtd">
25

26
<bugzilla version="[% constants.BUGZILLA_VERSION %]"
27
          urlbase="[% urlbase FILTER xml %]"
28
          maintainer="[% Param('maintainer') FILTER xml %]"
29
[% IF user.id %]
30
          exporter="[% user.email FILTER xml %]"
31 32 33 34 35 36 37 38 39 40 41
[% 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 %]
42 43 44
        [% IF displayfields.$field %]
          [%+ PROCESS bug_field %]
        [% END %]
45 46 47
      [% END %]

      [%# Now handle 'special' fields #%]
48 49 50 51 52
      [% IF displayfields.group %]
        [% FOREACH g = bug.groups %]
          [% NEXT UNLESS g.ison %]
          <group>[% g.name FILTER xml %]</group>
        [% END %]
53 54
      [% END %]

55 56 57 58 59 60 61 62 63 64 65 66
      [%# 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 %]
67 68
      [% IF displayfields.long_desc %]
        [% FOREACH c = bug.longdescs %]
69
          [% NEXT IF c.isprivate && !user.in_group(Param("insidergroup")) %]
70
          <long_desc isprivate="[% c.isprivate FILTER xml %]">
71
            <who name="[% c.author.name FILTER xml %]">[% c.author.email FILTER xml %]</who>
72
            <bug_when>[% c.time FILTER time FILTER xml %]</bug_when>
73
            [% IF user.in_group(Param('timetrackinggroup')) && (c.work_time - 0 != 0) %]
74 75
              <work_time>[% PROCESS formattimeunit time_unit = c.work_time FILTER xml %]</work_time>
            [% END %]
76 77 78
            <thetext>[% c.body FILTER xml %]</thetext>
          </long_desc>
        [% END %]
79
      [% END %]
80 81 82
      
      [% IF displayfields.attachment %]
        [% FOREACH a = bug.attachments %]
83
          [% NEXT IF a.isprivate && !user.in_group(Param("insidergroup")) %]
84
          <attachment
85 86 87
              isobsolete="[% a.isobsolete FILTER xml %]"
              ispatch="[% a.ispatch FILTER xml %]"
              isprivate="[% a.isprivate FILTER xml %]"
88
          >
89 90
            <attachid>[% a.id %]</attachid>
            <date>[% a.attached FILTER time FILTER xml %]</date>
91
            <desc>[% a.description FILTER xml %]</desc>
92 93
            <filename>[% a.filename FILTER xml %]</filename>
            <type>[% a.contenttype FILTER xml %]</type>
94
            <size>[% a.datasize FILTER xml %]</size>
95
        [% IF displayfields.attachmentdata %]
96
            <data encoding="base64">[% a.data FILTER base64 %]</data>
97
        [% END %]        
98

99 100 101
            [% FOREACH flag = a.flags %]
              <flag name="[% flag.type.name FILTER xml %]"
                    status="[% flag.status FILTER xml %]"
102
                    setter="[% flag.setter.email FILTER xml %]"
103 104 105 106 107
                    [% IF flag.status == "?" && flag.requestee %]
                      requestee="[% flag.requestee.email FILTER xml %]"
                    [% END %]
               />
            [% END %]
108 109
          </attachment>
        [% END %]
110 111 112 113 114 115 116 117 118 119 120 121
      [% 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
      #%]
122
    [% name = '' %]
123 124
    [% IF field == 'reporter' OR field == 'assigned_to' OR
          field == 'qa_contact' %]
125
      [% name = val.name %]
126 127 128 129
      [% val = val.email %]
    [% ELSIF field == 'creation_ts' OR field == 'delta_ts' %]
      [% val = val FILTER time %]
    [% END %]
130
    <[% field %][% IF name != '' %] name="[% name FILTER xml %]"[% END -%]>[% val FILTER xml %]</[% field %]>
131 132
  [% END %]
[% END %]