summaryrefslogtreecommitdiffstats
path: root/template/en/default/attachment/edit.html.tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'template/en/default/attachment/edit.html.tmpl')
-rw-r--r--template/en/default/attachment/edit.html.tmpl226
1 files changed, 226 insertions, 0 deletions
diff --git a/template/en/default/attachment/edit.html.tmpl b/template/en/default/attachment/edit.html.tmpl
new file mode 100644
index 000000000..1d06bfb6f
--- /dev/null
+++ b/template/en/default/attachment/edit.html.tmpl
@@ -0,0 +1,226 @@
+<!-- 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): Myk Melez <myk@mozilla.org>
+ #%]
+
+[%# Define strings that will serve as the title and header of this page %]
+[% title = BLOCK %]Edit Attachment #[% attachid %] for Bug #[% bugid %][% END %]
+[% h1 = BLOCK %]Edit Attachment #[% attachid %] for <a href="show_bug.cgi?id=[% bugid %]">Bug #[% bugid %]</a>[% END %]
+[% h2 = BLOCK %][% bugsummary FILTER html %][% END %]
+
+[% INCLUDE global/header
+ title = title
+ h1 = h1
+ h2 = h2
+ style = "
+ th { text-align: right; vertical-align: top; }
+ td { text-align: left; vertical-align: top; }
+ td#info { text-align: right; vertical-align: top; }
+ td#actions { text-align: right; vertical-align: bottom; }
+ td#noview { text-align: left; vertical-align: center; }
+ "
+%]
+
+<script type="application/x-javascript" language="JavaScript">
+ <!--
+ function editAsComment()
+ {
+ // Get the content of the document as a string.
+ var viewFrame = document.getElementById('viewFrame');
+ var aSerializer = new XMLSerializer();
+ var contentDocument = viewFrame.contentDocument;
+ var theContent = aSerializer.serializeToString(contentDocument);
+
+ // If this is a plaintext document, remove cruft that Mozilla adds
+ // because it treats it as an HTML document with a big PRE section.
+ // http://bugzilla.mozilla.org/show_bug.cgi?id=86012
+ var contentType = '[% contenttype %]';
+ if ( contentType == 'text/plain' )
+ {
+ theContent = theContent.replace( /^<html><head\/><body><pre>/ , "" );
+ theContent = theContent.replace( /<\/pre><\/body><\/html>$/ , "" );
+ theContent = theContent.replace( /&lt;/gi , "<" );
+ theContent = theContent.replace( /&gt;/gi , ">" );
+ theContent = theContent.replace( /&amp;/gi , "&" );
+ }
+
+ // Add mail-style quote indicators (>) to the beginning of each line.
+ // ".*\n" matches lines that end with a newline, while ".+" matches
+ // the rare situation in which the last line of a file does not end
+ // with a newline.
+ theContent = theContent.replace( /(.*\n|.+)/g , ">$1" );
+
+ hideElementById('viewFrame');
+ hideElementById('editButton');
+ hideElementById('smallCommentFrame');
+
+ showElementById('undoEditButton');
+
+ // Show the TEXTAREA that will contain the editable attachment
+ // and copy the content of the attachment into it.
+ showElementById('editFrame');
+
+ var editFrame = document.getElementById('editFrame');
+ editFrame.value = theContent;
+ editFrame.value += "\n\n";
+ }
+ function undoEditAsComment()
+ {
+ // Hide the "edit attachment as comment" TEXTAREA and the "undo" button.
+ hideElementById('undoEditButton');
+ hideElementById('editFrame');
+
+ // Show the "view attachment" IFRAME, the "redo" button that allows the user
+ // to go back to editing the attachment as a comment, and the small comment field.
+ showElementById('viewFrame');
+ showElementById('redoEditButton');
+ showElementById('smallCommentFrame');
+
+ }
+ function redoEditAsComment()
+ {
+ // Hide the "view attachment" IFRAME, the "redo" button that allows the user
+ // to go back to editing the attachment as a comment, and the small comment field.
+ hideElementById('viewFrame');
+ hideElementById('redoEditButton');
+ hideElementById('smallCommentFrame');
+
+ // Show the "edit attachment as comment" TEXTAREA and the "undo" button.
+ showElementById('undoEditButton');
+ showElementById('editFrame');
+ }
+
+ function hideElementById(id)
+ {
+ var elm = document.getElementById(id);
+ if (elm) {
+ elm.style.display = 'none';
+ }
+ }
+
+ function showElementById(id, val)
+ {
+ var elm = document.getElementById(id);
+ if (elm) {
+ if (!val) val = 'inline';
+ elm.style.display = val;
+ }
+ }
+
+ function normalizeComments()
+ {
+ // Remove the unused comment field from the document so its contents
+ // do not get transmitted back to the server.
+
+ var small = document.getElementById('smallCommentFrame');
+ var big = document.getElementById('editFrame');
+ if ( small.style.display == 'none' )
+ {
+ small.parentNode.removeChild(small);
+ }
+ if ( big.style.display == 'none' )
+ {
+ big.parentNode.removeChild(big);
+ }
+ }
+ //-->
+</script>
+
+<form method="post" action="attachment.cgi" onsubmit="normalizeComments();">
+ <input type="hidden" name="id" value="[% attachid %]">
+ <input type="hidden" name="action" value="update">
+ <input type="hidden" name="contenttypemethod" value="manual">
+
+ <table width="100%">
+
+ <tr>
+ <td width="25%">
+ <small>
+ <b>Description:</b><br>
+ <textarea rows="3" cols="25" name="description" wrap="soft">[% description FILTER html %]</textarea><br>
+
+ <b>MIME Type:</b><br>
+ <input type="text" size="20" name="contenttypeentry" value="[% contenttype FILTER html %]"><br>
+
+ <b>Flags:</b><br>
+ <input type="checkbox" name="ispatch" value="1"[% " checked" IF ispatch %]>patch
+ <input type="checkbox" name="isobsolete" value="1"[% " checked" IF isobsolete %]>obsolete<br>
+
+ [% IF statusdefs.size %]
+ <b>Status:</b><br>
+ [% FOREACH def = statusdefs %]
+ <input type="checkbox" name="status" value="[% def.id %]"[% " checked" IF statuses.${def.id} %]>[% def.name FILTER html %]<br>
+ [% END %]
+ [% END %]
+
+ <div id="smallCommentFrame">
+ <b>Comment (on the bug):</b><br>
+ <textarea name="comment" rows="5" cols="25" wrap="soft"></textarea><br>
+ </div>
+
+ <input type="submit" value="Submit">
+
+ </small>
+ </td>
+
+ [% IF isviewable %]
+ <td width="75%">
+ <textarea id="editFrame" name="comment" style="height: 400px; width: 100%; display: none;" cols="80" wrap="soft"></textarea>
+ <iframe id="viewFrame" src="attachment.cgi?id=[% attachid %]&action=view" style="height: 400px; width: 100%;">
+ <b>You cannot view the attachment while editing it because your browser does not support IFRAMEs.
+ <a href="attachment.cgi?id=[% attachid %]&action=view">View the attachment on a separate page</a>.</b>
+ </iframe>
+ <script type="application/x-javascript" language="JavaScript">
+ <!--
+ if (typeof document.getElementById == "function") {
+ document.write('<button type="button" id="editButton" onclick="editAsComment();">Edit Attachment As Comment</button>');
+ document.write('<button type="button" id="undoEditButton" onclick="undoEditAsComment();" style="display: none;">Undo Edit As Comment</button>');
+ document.write('<button type="button" id="redoEditButton" onclick="redoEditAsComment();" style="display: none;">Redo Edit As Comment</button>');
+ }
+ //-->
+ </script>
+ </td>
+ [% ELSE %]
+ <td id="noview" width="50%">
+ <p><b>
+ Attachment cannot be viewed because its MIME type is not either text/*, image/*, or application/vnd.mozilla.*.
+ <a href="attachment.cgi?id=[% attachid %]&action=view">Download the attachment instead</a>.
+ </b></p>
+ </td>
+ [% END %]
+
+ </tr>
+
+ </table>
+
+ Attachments on this Bug:
+ [% FOREACH a = attachments %]
+ [% IF a == attachid %]
+ #[% a %]
+ [% ELSE %]
+ <a href="attachment.cgi?id=[% a %]&action=edit">#[% a %]</a>
+ [% END %]
+ [% "|" UNLESS loop.last() %]
+ [% END %]
+
+</form>
+
+<br>
+
+[% INCLUDE global/footer %]