mkanat%bugzilla.org a77eb64833 Bug 119703: Create an attachment by pasting it into a text field
r/a=mkanat


git-svn-id: svn://10.0.0.236/trunk@260809 18797224-902f-48f8-a5cc-f745e15eee43
2010-07-18 17:31:54 +00:00

157 lines
5.9 KiB
Cheetah

[%# 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 %]"
[%# Note that the maintainer's email is not filtered,
# intentionally. Even logged-out users should be able
# to see that, since it will be in error messages anyway.
%]
maintainer="[% Param('maintainer') FILTER xml %]"
[% IF user.id %]
exporter="[% user.email FILTER 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 %]
[%# This is here so automated clients can still use process_bug.cgi %]
[% IF displayfields.token && user.id %]
<token>[% issue_hash_token([bug.id, bug.delta_ts]) FILTER xml %]</token>
[% END %]
[%# Now handle 'special' fields #%]
[% IF displayfields.group %]
[% FOREACH g = bug.groups %]
[% NEXT UNLESS g.ison %]
<group id="[% g.bit FILTER xml %]">[% g.name FILTER xml %]</group>
[% END %]
[% END %]
[%# Bug Flags %]
[% PROCESS section_flags obj => bug %]
[% IF displayfields.long_desc %]
[% FOREACH c = bug.comments %]
[% NEXT IF c.is_private && !user.is_insider %]
<long_desc isprivate="[% c.is_private FILTER xml %]">
<commentid>[% c.id FILTER xml %]</commentid>
[% IF c.is_about_attachment %]
<attachid>[% c.extra_data FILTER xml %]</attachid>
[% END %]
<who name="[% c.author.name FILTER xml %]">[% c.author.email FILTER email FILTER xml %]</who>
<bug_when>[% c.creation_ts FILTER time("%Y-%m-%d %T %z") FILTER xml %]</bug_when>
[% IF user.is_timetracker && (c.work_time - 0 != 0) %]
<work_time>[% PROCESS formattimeunit time_unit = c.work_time FILTER xml %]</work_time>
[% END %]
<thetext>[% c.body_full FILTER xml %]</thetext>
</long_desc>
[% END %]
[% END %]
[% IF displayfields.attachment %]
[% FOREACH a = bug.attachments %]
[% NEXT IF a.isprivate && !user.is_insider %]
<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("%Y-%m-%d %T %z") FILTER xml %]</date>
<delta_ts>[% a.modification_time FILTER time("%Y-%m-%d %T %z") FILTER xml %]</delta_ts>
<desc>[% a.description FILTER xml %]</desc>
<filename>[% a.filename FILTER xml %]</filename>
<type>[% a.contenttype FILTER xml %]</type>
<size>[% a.datasize FILTER xml %]</size>
<attacher>[% a.attacher.email FILTER email FILTER xml %]</attacher>
[%# This is here so automated clients can still use attachment.cgi %]
[% IF displayfields.token && user.id %]
<token>[% issue_hash_token([a.id, a.modification_time]) FILTER xml %]</token>
[% END %]
[% IF displayfields.attachmentdata %]
<data encoding="base64">[% a.data FILTER base64 %]</data>
[% END %]
[% PROCESS section_flags obj => a %]
</attachment>
[% END %]
[% END %]
[% Hook.process("bug_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 FILTER email %]
[% ELSIF field == 'cc' %]
[% val = val FILTER email %]
[% ELSIF field == 'creation_ts' OR field == 'delta_ts' %]
[% val = val FILTER time("%Y-%m-%d %T %z") %]
[% END %]
<[% field %][% IF name != '' %] name="[% name FILTER xml %]"[% END -%]>
[%- val FILTER xml %]</[% field %]>
[% END %]
[% END %]
[% BLOCK section_flags %]
[% RETURN UNLESS displayfields.flag %]
[% FOREACH flag = obj.flags %]
<flag name="[% flag.type.name FILTER xml %]"
id="[% flag.id FILTER xml %]"
type_id="[% flag.type_id FILTER xml %]"
status="[% flag.status FILTER xml %]"
setter="[% flag.setter.email FILTER email FILTER xml %]"
[% IF flag.status == "?" && flag.requestee %]
requestee="[% flag.requestee.email FILTER email FILTER xml %]"
[% END %]
/>
[% END %]
[% END %]