[%# 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): Myk Melez <myk@mozilla.org>
  #                 Frédéric Buclin <LpSolit@gmail.com>
  #%]

<?xml version="1.0"[% IF Param('utf8') %] encoding="UTF-8"[% END %]?>
<!-- Note: this interface is experimental and under development.
   - We may and probably will make breaking changes to it in the future. -->

<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
     xmlns:bz="http://www.bugzilla.org/rdf#">

<bz:installation rdf:about="[% urlbase FILTER xml %]">
  <bz:install_version>[% constants.BUGZILLA_VERSION FILTER html %]</bz:install_version>
  <bz:maintainer>[% Param('maintainer') FILTER html %]</bz:maintainer>

  <bz:status>
    <Seq>
      [% FOREACH item = status %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:status>

  <bz:status_open>
    <Seq>
      [% FOREACH item = open_status %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:status_open>

  <bz:status_closed>
    <Seq>
      [% FOREACH item = closed_status %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:status_closed>

  <bz:resolution>
    <Seq>
      [% FOREACH item = resolution %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:resolution>

  <bz:keyword>
    <Seq>
      [% FOREACH item = keyword %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:keyword>

  <bz:platform>
    <Seq>
      [% FOREACH item = platform %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:platform>

  <bz:op_sys>
    <Seq>
      [% FOREACH item = op_sys %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:op_sys>

  <bz:priority>
    <Seq>
      [% FOREACH item = priority %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:priority>

  <bz:severity>
    <Seq>
      [% FOREACH item = severity %]
        <li>[% item FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:severity>

[% FOREACH cf = custom_fields %]
  <bz:[% cf.name FILTER html %]>
    <Seq>
      [% FOREACH item = cf.legal_values %]
        <li>[% item.name FILTER html %]</li>
      [% END %]
    </Seq>
  </bz:[% cf.name FILTER html %]>

[% END %]

  <bz:products>
    <Seq>
      [% FOREACH product = products %]
        <li>
          <bz:product rdf:about="[% urlbase FILTER xml %]product.cgi?name=[% product.name FILTER uri %]">
            <bz:name>[% product.name FILTER html %]</bz:name>

            <bz:components>
              <Seq>
                [% FOREACH component = product.components %]
                  <li resource="[% urlbase FILTER xml %]component.cgi?name=[% component.name FILTER uri 
                      %]&amp;product=[% product.name FILTER uri %]"/>
                [% END %]
              </Seq>
            </bz:components>

            <bz:versions>
              <Seq>
                [% FOREACH version = product.versions %]
                  <li resource="[% urlbase FILTER xml %]version.cgi?name=[% version.name FILTER uri %]"/>
                [% END %]
              </Seq>
            </bz:versions>

            [% IF Param('usetargetmilestone') %]
              <bz:target_milestones>
                <Seq>
                  [% FOREACH milestone = product.milestones %]
                    <li resource="[% urlbase FILTER xml %]milestone.cgi?name=[% milestone.name FILTER uri %]"/>
                  [% END %]
                </Seq>
              </bz:target_milestones>
            [% END %]

          </bz:product>
        </li>
      [% END %]
    </Seq>
  </bz:products>

  [% all_visible_flag_types = {} %]
  <bz:components>
    <Seq>
      [% FOREACH product = products %]
        [% FOREACH component = product.components %]
          <li>
            <bz:component rdf:about="[% urlbase FILTER xml %]component.cgi?name=[% component.name FILTER uri 
                          %]&amp;product=[% product.name FILTER uri %]">
              <bz:name>[% component.name FILTER html %]</bz:name>
              [% IF show_flags %]
                <bz:flag_types>
                  <Seq>
                    [% flag_types = component.flag_types.bug.merge(component.flag_types.attachment) %]
                    [% FOREACH flag_type = flag_types %]
                      [% NEXT UNLESS flag_type.is_active %]
                      [% all_visible_flag_types.${flag_type.id} = flag_type %]
                      <li resource="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER uri
                          %]&amp;name=[% flag_type.name FILTER uri %]" />
                    [% END %]
                  </Seq>
                </bz:flag_types>
              [% END %]
            </bz:component>
          </li>
        [% END %]
      [% END %]
    </Seq>
  </bz:components>

  <bz:versions>
    <Seq>
      [% FOREACH product = products %]
        [% FOREACH version = product.versions %]
          <li>
            <bz:version rdf:about="[% urlbase FILTER xml %]version.cgi?name=[% version.name FILTER uri %]">
              <bz:name>[% version.name FILTER html %]</bz:name>
            </bz:version>
          </li>
        [% END %]
      [% END %]
    </Seq>
  </bz:versions>

  [% IF Param('usetargetmilestone') %]
    <bz:target_milestones>
      <Seq>
        [% FOREACH product = products %]
          [% FOREACH milestone = product.milestones %]
            <li>
              <bz:target_milestone rdf:about="[% urlbase FILTER xml %]milestone.cgi?name=[% milestone.name FILTER uri %]">
                <bz:name>[% milestone.name FILTER html %]</bz:name>
              </bz:target_milestone>
            </li>
          [% END %]
        [% END %]
      </Seq>
    </bz:target_milestones>
  [% END %]

  [% IF show_flags %]
    <bz:flag_types>
      <Seq>
        [% FOREACH flag_type = all_visible_flag_types.values.sort('name') %]
          <li>
            <bz:flag_type rdf:about="[% urlbase FILTER xml %]flag.cgi?id=[% flag_type.id FILTER uri
                          %]&amp;name=[% flag_type.name FILTER uri %]">
              <bz:id>[% flag_type.id FILTER html %]</bz:id>
              <bz:name>[% flag_type.name FILTER html %]</bz:name>
              <bz:description>[% flag_type.description FILTER html %]</bz:description>
              <bz:type>[% flag_type.target_type FILTER html %]</bz:type>
              <bz:requestable>[% flag_type.is_requestable FILTER html %]</bz:requestable>
              <bz:specifically_requestable>[% flag_type.is_requesteeble FILTER html %]</bz:specifically_requestable>
              <bz:multiplicable>[% flag_type.is_multiplicable FILTER html %]</bz:multiplicable>
              [% IF user.in_group("editcomponents") %]
                <bz:grant_group>[% flag_type.grant_group.name FILTER html %]</bz:grant_group>
                <bz:request_group>[% flag_type.request_group.name FILTER html %]</bz:request_group>
              [% END %]
            </bz:flag_type>
          </li>
        [% END %]
      </Seq>
    </bz:flag_types>
  [% END %]

  <bz:fields>
    <Seq>
      [% PROCESS "global/field-descs.none.tmpl" %]
      [% FOREACH item = field %]
        <li>
          <bz:field rdf:about="[% urlbase FILTER xml %]field.cgi?name=[% item.name FILTER uri %]">
            <bz:name>[% item.name FILTER html %]</bz:name>
            <bz:description>[% (field_descs.${item.name} OR item.description) FILTER html %]</bz:description>
            [%-# These values are meaningful for custom fields only. %]
            [% IF item.custom %]
              <bz:type>[% item.type FILTER html %]</bz:type>
              <bz:type_desc>[% field_types.${item.type} FILTER html %]</bz:type_desc>
              <bz:enter_bug>[% item.enter_bug FILTER html %]</bz:enter_bug>
            [% END %]
          </bz:field>
        </li>
      [% END %]
    </Seq>
  </bz:fields>
</bz:installation>

</RDF>