summaryrefslogtreecommitdiffstats
path: root/template
diff options
context:
space:
mode:
Diffstat (limited to 'template')
-rw-r--r--template/en/default/attachment/create.html.tmpl210
-rw-r--r--template/en/default/attachment/createformcontents.html.tmpl100
-rw-r--r--template/en/default/bug/create/create.html.tmpl52
-rw-r--r--template/en/default/global/messages.html.tmpl6
4 files changed, 174 insertions, 194 deletions
diff --git a/template/en/default/attachment/create.html.tmpl b/template/en/default/attachment/create.html.tmpl
index 6da5b0c19..180fc5c49 100644
--- a/template/en/default/attachment/create.html.tmpl
+++ b/template/en/default/attachment/create.html.tmpl
@@ -19,6 +19,7 @@
# Contributor(s): Myk Melez <myk@mozilla.org>
# Joel Peshkin <bugreport@peshkin.net>
# Erik Stambaugh <erik@dasbistro.com>
+ # Marc Schumann <wurblzap@gmail.com>
#%]
[% PROCESS global/variables.none.tmpl %]
@@ -33,180 +34,19 @@
title = title
h1 = h1
h2 = h2
- style = "
- table.attachment_entry th {
- text-align: right;
- vertical-align: baseline;
- white-space: nowrap;
- }
-
- table.attachment_entry td {
- text-align: left;
- vertical-align: baseline;
- padding-bottom: 5px;
- }
-
- table#flags th, table#flags td {
- text-align: left;
- vertical-align: baseline;
- font-size: small;
- }
- "
- onload="setContentTypeDisabledState();"
+ onload="setContentTypeDisabledState(document.entryform);"
+ style_urls = [ 'skins/standard/create_attachment.css' ]
+ javascript_urls = [ "js/attachment.js" ]
%]
-[% IF Param("allow_attach_url") %]
- <script type="text/javascript">
-
- function URLFieldHandler() {
- var field_attachurl = document.getElementById("attachurl");
- var greyfields = new Array("data", "ispatch", "autodetect",
- "list", "manual", "bigfile",
- "contenttypeselection",
- "contenttypeentry");
- var i;
- if (field_attachurl.value.match(/^\s*$/)) {
- for (i = 0; i < greyfields.length; i++) {
- thisfield = document.getElementById(greyfields[i]);
- if (thisfield) {
- thisfield.removeAttribute("disabled");
- }
- }
- } else {
- for (i = 0; i < greyfields.length; i++) {
- thisfield = document.getElementById(greyfields[i]);
- if (thisfield) {
- thisfield.setAttribute("disabled", "disabled");
- }
- }
- }
- }
-
- function DataFieldHandler() {
- var field_data = document.getElementById("data");
- var greyfields = new Array("attachurl");
- if (field_data.value.match(/^\s*$/)) {
- var i;
- for (i = 0; i < greyfields.length; i++) {
- thisfield = document.getElementById(greyfields[i]);
- if (thisfield) {
- thisfield.removeAttribute("disabled");
- }
- }
- } else {
- for (i = 0; i < greyfields.length; i++) {
- thisfield = document.getElementById(greyfields[i]);
- if (thisfield) {
- thisfield.setAttribute("disabled", "disabled");
- }
- }
- }
- }
-
- </script>
-[% END %]
-<script type="text/javascript">
- function updateCommentPrivacy(checkbox) {
- var text_elem = document.getElementById('comment');
- if (checkbox.checked) {
- text_elem.className='bz_private';
- } else {
- text_elem.className='';
- }
- }
-
-</script>
-
-
<form name="entryform" method="post" action="attachment.cgi" enctype="multipart/form-data">
<input type="hidden" name="bugid" value="[% bugid %]">
<input type="hidden" name="action" value="insert">
<table class="attachment_entry">
- <tr>
- <th><label for="data">File:</label></th>
- <td>
- <em>Enter the path to the file on your computer.</em><br>
- <input type="file" id="data" name="data" size="50"
- [% IF Param("allow_attach_url") %]
- onchange="DataFieldHandler()"
- [% END %]
- >
- </td>
- </tr>
- [% IF Param("maxlocalattachment") %]
- <tr>
- <th>BigFile:</th>
- <td>
- <input type="checkbox" id="bigfile"
- name="bigfile" value="bigfile">
- <label for="bigfile">
- Big File - Stored locally and may be purged
- </label>
- </td>
- </tr>
- [% END %]
- [% IF Param("allow_attach_url") %]
- <tr>
- <th><label for="attachurl">AttachURL:</label></th>
- <td>
- <em>URL to be attached instead.</em><br>
- <input type="text" id="attachurl" name="attachurl" size="60"
- maxlength="2000"
- onkeyup="URLFieldHandler()" onblur="URLFieldHandler()">
- </td>
- </tr>
- [% END %]
- <tr>
- <th><label for="description">Description:</label></th>
- <td>
- <em>Describe the attachment briefly.</em><br>
- <input type="text" id="description" name="description" size="60" maxlength="200">
- </td>
- </tr>
- <tr>
- <th></th>
- <td>
- </td>
- </tr>
- <tr>
- <th>Content Type:</th>
- <td>
- <em>If the attachment is a patch, check the box below.</em><br>
- <input type="checkbox" id="ispatch" name="ispatch" value="1"
- onchange="setContentTypeDisabledState();">
- <label for="ispatch">patch</label><br><br>
+ [% PROCESS attachment/createformcontents.html.tmpl %]
- <em>Otherwise, choose a method for determining the content type.</em><br>
- <input type="radio" id="autodetect"
- name="contenttypemethod" value="autodetect" checked="checked">
- <label for="autodetect">auto-detect</label><br>
- <input type="radio" id="list"
- name="contenttypemethod" value="list">
- <label for="list">select from list:</label>
- <select name="contenttypeselection" id="contenttypeselection"
- onchange="this.form.contenttypemethod[1].checked = true;">
- [% PROCESS "attachment/content-types.html.tmpl" %]
- </select><br>
- <input type="radio" id="manual"
- name="contenttypemethod" value="manual">
- <label for="manual">enter manually:</label>
- <input type="text" name="contenttypeentry" id="contenttypeentry"
- size="30" maxlength="200"
- onchange="if (this.value) this.form.contenttypemethod[2].checked = true;">
- </td>
- </tr>
- [% IF (Param("insidergroup") && UserInGroup(Param("insidergroup"))) %]
- <tr>
- <th>Privacy:</th>
- <td>
- <em>If the attachment is private, check the box below.</em><br>
- <input type="checkbox" name="isprivate" id="isprivate"
- value="1" onClick="updateCommentPrivacy(this)">
- <label for="isprivate">Private</label>
- </td>
- </tr>
- [% END %]
+ [%# Additional fields for attachments on existing bugs: %]
<tr>
<th>Obsoletes:</th>
<td>
@@ -238,14 +78,6 @@
</tr>
[% END %]
<tr>
- <td> </td>
- <td>
- [% IF flag_types.size > 0 %]
- [% PROCESS "flag/list.html.tmpl" bug_id=bugid attach_id=attachid %]<br>
- [% END %]
- </td>
- </tr>
- <tr>
<th><label for="comment">Comment:</label></th>
<td>
<em>(optional) Add a comment about this attachment to the [% terms.bug %].</em><br>
@@ -259,6 +91,17 @@
%]
</td>
</tr>
+ [% IF (Param("insidergroup") && UserInGroup(Param("insidergroup"))) %]
+ <tr>
+ <th>Privacy:</th>
+ <td>
+ <em>If the attachment is private, check the box below.</em><br>
+ <input type="checkbox" name="isprivate" id="isprivate"
+ value="1" onClick="updateCommentPrivacy(this)">
+ <label for="isprivate">Private</label>
+ </td>
+ </tr>
+ [% END %]
<tr>
<th>&nbsp;</th>
<td><input type="submit" value="Submit"></td>
@@ -267,23 +110,4 @@
</form>
-<script type="text/javascript">
- <!--
- function setContentTypeDisabledState()
- {
- var entryform = document.entryform;
-
- var isdisabled = false;
- if (entryform.ispatch.checked)
- isdisabled = true;
-
- for (var i=0 ; i<entryform.contenttypemethod.length ; i++)
- entryform.contenttypemethod[i].disabled = isdisabled;
-
- entryform.contenttypeselection.disabled = isdisabled;
- entryform.contenttypeentry.disabled = isdisabled;
- }
- //-->
-</script>
-
[% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/attachment/createformcontents.html.tmpl b/template/en/default/attachment/createformcontents.html.tmpl
new file mode 100644
index 000000000..2056490c9
--- /dev/null
+++ b/template/en/default/attachment/createformcontents.html.tmpl
@@ -0,0 +1,100 @@
+[%# 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>
+ # Joel Peshkin <bugreport@peshkin.net>
+ # Erik Stambaugh <erik@dasbistro.com>
+ # Marc Schumann <wurblzap@gmail.com>
+ #%]
+
+<tr>
+ <th><label for="data">File</label>:</th>
+ <td>
+ <em>Enter the path to the file on your computer.</em><br>
+ <input type="file" id="data" name="data" size="50"
+ [% IF Param("allow_attach_url") %]
+ onchange="DataFieldHandler()"
+ [% END %]
+ >
+ </td>
+</tr>
+[% IF Param("maxlocalattachment") %]
+<tr>
+ <th>BigFile:</th>
+ <td>
+ <input type="checkbox" id="bigfile"
+ name="bigfile" value="bigfile">
+ <label for="bigfile">
+ Big File - Stored locally and may be purged
+ </label>
+ </td>
+</tr>
+[% END %]
+[% IF Param("allow_attach_url") %]
+<tr>
+ <th><label for="attachurl">AttachURL</label>:</th>
+ <td>
+ <em>URL to be attached instead.</em><br>
+ <input type="text" id="attachurl" name="attachurl" size="60"
+ maxlength="2000"
+ onkeyup="URLFieldHandler()" onblur="URLFieldHandler()">
+ </td>
+</tr>
+[% END %]
+<tr>
+ <th><label for="description">Description</label>:</th>
+ <td>
+ <em>Describe the attachment briefly.</em><br>
+ <input type="text" id="description" name="description" size="60" maxlength="200">
+ </td>
+</tr>
+<tr>
+ <th>Content Type:</th>
+ <td>
+ <em>If the attachment is a patch, check the box below.</em><br>
+ <input type="checkbox" id="ispatch" name="ispatch" value="1"
+ onchange="setContentTypeDisabledState(this.form);">
+ <label for="ispatch">patch</label><br><br>
+
+ <em>Otherwise, choose a method for determining the content type.</em><br>
+ <input type="radio" id="autodetect"
+ name="contenttypemethod" value="autodetect" checked="checked">
+ <label for="autodetect">auto-detect</label><br>
+ <input type="radio" id="list"
+ name="contenttypemethod" value="list">
+ <label for="list">select from list</label>:
+ <select name="contenttypeselection" id="contenttypeselection"
+ onchange="this.form.contenttypemethod[1].checked = true;">
+ [% PROCESS "attachment/content-types.html.tmpl" %]
+ </select><br>
+ <input type="radio" id="manual"
+ name="contenttypemethod" value="manual">
+ <label for="manual">enter manually</label>:
+ <input type="text" name="contenttypeentry" id="contenttypeentry"
+ size="30" maxlength="200"
+ onchange="if (this.value) this.form.contenttypemethod[2].checked = true;">
+ </td>
+</tr>
+<tr>
+ <td> </td>
+ <td>
+ [% IF flag_types && flag_types.size > 0 %]
+ [% PROCESS "flag/list.html.tmpl" bug_id=bugid attach_id=attachid %]<br>
+ [% END %]
+ </td>
+</tr>
diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl
index a0b186072..38656b813 100644
--- a/template/en/default/bug/create/create.html.tmpl
+++ b/template/en/default/bug/create/create.html.tmpl
@@ -19,12 +19,15 @@
# Contributor(s): Gervase Markham <gerv@gerv.net>
# Ville Skyttä <ville.skytta@iki.fi>
# Shane H. W. Travis <travis@sedsystems.ca>
+ # Marc Schumann <wurblzap@gmail.com>
#%]
[% PROCESS "global/field-descs.none.tmpl" %]
[% PROCESS global/header.html.tmpl
title = "Enter $terms.Bug: $product.name"
+ style_urls = [ 'skins/standard/create_attachment.css' ]
+ javascript_urls = [ "js/attachment.js" ]
onload="set_assign_to();"
%]
@@ -86,10 +89,24 @@ function set_assign_to() {
[% END %]
}
}
+
+function handleWantsAttachment(wants_attachment) {
+ if (wants_attachment) {
+ document.getElementById('attachment_false').style.display = 'none';
+ document.getElementById('attachment_true').style.display = 'block';
+ }
+ else {
+ document.getElementById('attachment_false').style.display = 'block';
+ document.getElementById('attachment_true').style.display = 'none';
+ clearAttachmentFields();
+ }
+}
+
-->
</script>
-<form name="Create" id="Create" method="post" action="post_bug.cgi">
+<form name="Create" id="Create" method="post" action="post_bug.cgi"
+ enctype="multipart/form-data">
<input type="hidden" name="product" value="[% product.name FILTER html %]">
<input type="hidden" name="token" value="[% token FILTER html %]">
@@ -316,6 +333,7 @@ function set_assign_to() {
[%- END %]
[% INCLUDE global/textarea.html.tmpl
name = 'comment'
+ id = 'comment'
minrows = 10
maxrows = 25
cols = constants.COMMENT_COLS
@@ -341,6 +359,38 @@ function set_assign_to() {
<input type="hidden" name="commentprivacy" value="0">
[% END %]
+ <tr>
+ <th align="right" valign="top">Attachment:</th>
+ <td colspan="3">
+ <script type="text/javascript">
+ <!--
+ document.write( '<div id="attachment_false">'
+ + '<input type="button" value="Add an attachment" '
+ + 'onClick="handleWantsAttachment(true)"> '
+ + '<em style="display: none">This button has no '
+ + 'functionality for you because your browser does '
+ + 'not support CSS or does not use it.</em>'
+ + '</div>'
+ + '<div id="attachment_true" style="display: none">'
+ + '<input type="button" '
+ + 'value="Don\'t add an attachment " '
+ + 'onClick="handleWantsAttachment(false)">');
+ //-->
+ </script>
+ <fieldset>
+ <legend>Add an attachment</legend>
+ <table class="attachment_entry">
+ [% PROCESS attachment/createformcontents.html.tmpl %]
+ </table>
+ </fieldset>
+ <script type="text/javascript">
+ <!--
+ document.write('</div>');
+ //-->
+ </script>
+ </td>
+ </tr>
+
[% IF UserInGroup('editbugs') %]
[% IF use_keywords %]
<tr>
diff --git a/template/en/default/global/messages.html.tmpl b/template/en/default/global/messages.html.tmpl
index 6730e8835..bb8a08fdd 100644
--- a/template/en/default/global/messages.html.tmpl
+++ b/template/en/default/global/messages.html.tmpl
@@ -100,6 +100,12 @@
The user account [% otheruser.login FILTER html %] has been deleted
successfully.
+ [% ELSIF message_tag == "attachment_creation_failed" %]
+ The [% terms.bug %] was created successfully, but attachment creation
+ failed.
+ Please add your attachment by clicking the "Create a New Attachment" link
+ below.
+
[% ELSIF message_tag == "buglist_adding_field" %]
[% title = "Adding field to search page..." %]
[% link = "Click here if the page does not redisplay automatically." %]