diff options
Diffstat (limited to 'template/en/default/bug/create')
-rw-r--r-- | template/en/default/bug/create/comment-guided.txt.tmpl | 54 | ||||
-rw-r--r-- | template/en/default/bug/create/comment.txt.tmpl | 32 | ||||
-rw-r--r-- | template/en/default/bug/create/confirm-create-dupe.html.tmpl | 57 | ||||
-rw-r--r-- | template/en/default/bug/create/create-guided.html.tmpl | 523 | ||||
-rw-r--r-- | template/en/default/bug/create/create.html.tmpl | 705 | ||||
-rw-r--r-- | template/en/default/bug/create/created.html.tmpl | 61 | ||||
-rw-r--r-- | template/en/default/bug/create/make-template.html.tmpl | 46 | ||||
-rw-r--r-- | template/en/default/bug/create/user-message.html.tmpl | 36 |
8 files changed, 1514 insertions, 0 deletions
diff --git a/template/en/default/bug/create/comment-guided.txt.tmpl b/template/en/default/bug/create/comment-guided.txt.tmpl new file mode 100644 index 0000000..df04d8f --- /dev/null +++ b/template/en/default/bug/create/comment-guided.txt.tmpl @@ -0,0 +1,54 @@ +[%# 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): Gervase Markham <gerv@gerv.net> + #%] +[%# INTERFACE: + # This template has no interface. + # + # Form variables from a bug submission (i.e. the fields on a template from + # enter_bug.cgi) can be access via Bugzilla.cgi.param. It can be used to + # pull out various custom fields and format an initial Description entry + # from them. + #%] +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] +User-Agent: [%+ cgi.user_agent() %] +Build Identifier: [%+ cgi.param("buildid") %] + +[%+ cgi.param("comment") IF cgi.param("comment") %] + +[%+ IF cgi.param("reproducible") != "Choose one..." -%] +Reproducible: [%+ cgi.param("reproducible") %] +[% END %] + +[% IF !(cgi.param("reproduce_steps").match('^1\.\s*2\.\s*3\.\s*$') || cgi.param("reproduce_steps").match('^\s*$')) %] +Steps to Reproduce: +[%+ cgi.param("reproduce_steps") %] +[% END %] + +[% IF cgi.param("actual_results") -%] +Actual Results: +[%+ cgi.param("actual_results") %] +[% END %] + +[% IF cgi.param("expected_results") %] +Expected Results: +[%+ cgi.param("expected_results") %] +[% END %] + +[%+ cgi.param("additional_info") %] diff --git a/template/en/default/bug/create/comment.txt.tmpl b/template/en/default/bug/create/comment.txt.tmpl new file mode 100644 index 0000000..e7339d3 --- /dev/null +++ b/template/en/default/bug/create/comment.txt.tmpl @@ -0,0 +1,32 @@ +[%# 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): Gervase Markham <gerv@gerv.net> + #%] +[%# INTERFACE: + # This template has no interface. + # + # Form variables from a bug submission (i.e. the fields on a template from + # enter_bug.cgi) can be access via Bugzilla.cgi.param. It can be used to + # pull out various custom fields and format an initial Description entry + # from them. + #%] +[% USE Bugzilla %] +[% Hook.process("form") %] + + +[% Bugzilla.cgi.param("comment") %] diff --git a/template/en/default/bug/create/confirm-create-dupe.html.tmpl b/template/en/default/bug/create/confirm-create-dupe.html.tmpl new file mode 100644 index 0000000..b0a5cdd --- /dev/null +++ b/template/en/default/bug/create/confirm-create-dupe.html.tmpl @@ -0,0 +1,57 @@ +[%# 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 Olav Vitters. + # + # Contributor(s): Olav Vitters <olav@bkor.dhs.org> + #%] + +[%# INTERFACE: + # bugid: integer. ID of the bug previously used to create a bug. + # allow_override: boolean int. Is 1 if the user may submit the bug again. + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% PROCESS global/header.html.tmpl + title = "Already filed $terms.bug" +%] + +[% USE Bugzilla %] + +<table cellpadding="20"> + <tr> + <td bgcolor="#ff0000"> + <font size="+2"> + You already used the form to file [% "$terms.bug $bugid" FILTER bug_link(bugid) FILTER none %]. + </font> + </td> + </tr> +</table> + +<p><font size="big">You are highly encouraged to visit [% "$terms.bug $bugid" +FILTER bug_link(bugid) FILTER none %].</font></p> + +[% IF allow_override %] + <p>If you are sure you used the same form to submit a new [% terms.bug %], + click 'File [% terms.bug %] again'.<p> + + <form name="create" id="create" method="post" action="post_bug.cgi" + [%- IF Bugzilla.cgi.param("data") %] enctype="multipart/form-data"[% END %]> + [% PROCESS "global/hidden-fields.html.tmpl" + exclude="^(Bugzilla_login|Bugzilla_password|ignore_token)$" %] + <input type="hidden" name="ignore_token" value="[% bugid FILTER html %]"> + <input type="submit" value="File [% terms.bug %] again" id="file_bug_again"> + </form> +[% END %] + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/create/create-guided.html.tmpl b/template/en/default/bug/create/create-guided.html.tmpl new file mode 100644 index 0000000..9f2a21b --- /dev/null +++ b/template/en/default/bug/create/create-guided.html.tmpl @@ -0,0 +1,523 @@ +[%# 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): Gervase Markham <gerv@gerv.net> + # Christine Begle <cbegle@mozilla.org> + #%] + +[%# INTERFACE: + # This template has the same interface as create.html.tmpl + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% USE Bugzilla %] +[% cgi = Bugzilla.cgi %] + +[% PROCESS global/header.html.tmpl + title = "Enter $terms.ABug" + onload = "PutDescription()" + style = "#somebugs { width: 100%; height: 500px }" + %] + +<p> + <font color="red"> + This is a template used on mozilla.org. This template, and the + comment-guided.txt.tmpl template that formats the data submitted via + the form in this template, are included as a demo of what it's + possible to do with custom templates in general, and custom [% terms.bug %] + entry templates in particular. As much of the text will not apply, + you should alter it + if you want to use this form on your [% terms.Bugzilla %] installation. + </font> +</p> + +[% tablecolour = "#FFFFCC" %] + +[%# This script displays the descriptions for selected components. %] +<script type="text/javascript"> +var descriptions = [ +[% FOREACH c = product.components %] + '[% c.description FILTER js %]', +[% END %] +]; + +function PutDescription() { + if ((document.getElementById) && (document.body.innerHTML)) { + var componentIndex = document.getElementById('component').selectedIndex; + if (componentIndex != -1) { + var description = document.getElementById('description'); + description.innerHTML = descriptions[componentIndex]; + } + } +} +</script> + +<a name="step1"></a> +<h3>Step 1 of 3 - has your [% terms.bug %] already been reported?</h3> + +<p> + <font color="red">Please don't skip this step - half of all + [% terms.bugs %] filed are + reported already.</font> + Check the two lists of frequently-reported [% terms.bugs %]: +</p> + +[%# Include other products if sensible %] +[% IF product.name == "Firefox" %] + [% productstring = "product=Mozilla%20Application%20Suite&product=Firefox" %] +[% ELSIF product.name == "Thunderbird" %] + [% productstring = "product=Mozilla%20Application%20Suite&product=Thunderbird" %] +[% ELSE %] + [% productstring = BLOCK %]product=[% product.name FILTER url_quote %][% END %] +[% END %] + +<p> + <a href="duplicates.cgi?[% productstring %]&format=simple" target="somebugs">All-time Top 100</a> (loaded initially) | + <a href="duplicates.cgi?[% productstring %]&format=simple&sortby=delta&reverse=1&maxrows=100&changedsince=14" target="somebugs">Hot in the last two weeks</a> +</p> + +<iframe name="somebugs" id="somebugs" + style="border: 2px black solid" + src="duplicates.cgi?[% productstring %]&format=simple"> +</iframe> + +<p> + If your [% terms.bug %] isn't there, search [% terms.Bugzilla %] by entering + a few key words having to do with your [% terms.bug %] in this box. + For example: <tt><b>pop3 mail</b></tt> or <tt><b>copy paste</b></tt>. + The results will appear above. + </p> + +[%# All bugs opened inside the past six months %] + <form action="buglist.cgi" method="get" target="somebugs"> + <input type="hidden" name="format" value="simple"> + <input type="hidden" name="order" value="relevance desc"> + <input type="hidden" name="bug_status" value="__all__"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + [% IF product.name == "Firefox" OR + product.name == "Thunderbird" OR + product.name == "Mozilla Application Suite" OR + product.name == "Camino" %] + <input type="hidden" name="product" value="Core"> + <input type="hidden" name="product" value="Toolkit"> + <input type="hidden" name="product" value="PSM"> + <input type="hidden" name="product" value="NSPR"> + <input type="hidden" name="product" value="NSS"> + [% END %] + <input type="hidden" name="chfieldfrom" value="-6m"> + <input type="hidden" name="chfieldto" value="Now"> + <input type="hidden" name="chfield" value="[Bug creation]"> + <input type="text" name="content" size="40"> + <input type="submit" id="search" value="Search"> + </form> + +<p> + Look through the search results. If you get the + <tt><b>[% terms.zeroSearchResults %]</b></tt> message, [% terms.Bugzilla %] + found no [% terms.bugs %] that + match. Check for typing mistakes, or try fewer or different keywords. + If you find [% terms.abug %] that looks the same as yours, please add + any useful extra information you have to it, rather than opening a new one. +</p> + + +<a name="step2"></a> +<h3>Step 2 of 3 - give information</h3> + +<p> + If you've tried a few searches and your [% terms.bug %] really isn't in + there, tell us all about it. +</p> + +<form method="post" action="post_bug.cgi"> + <input type="hidden" name="format" value="guided"> + <input type="hidden" name="assigned_to" value=""> + <input type="hidden" name="priority" + value="[% default.priority FILTER html %]"> + <input type="hidden" name="version" + value="[% default.version FILTER html %]"> + <input type="hidden" name="token" value="[% token FILTER html %]"> + +<table valign="top" cellpadding="5" cellspacing="5" border="0"> + + <tr bgcolor="[% tablecolour %]"> + <td align="right" valign="top"> + <b>Product</b> + </td> + <td valign="top"> + <input type="hidden" name="product" value="[% product.name FILTER html %]"> + [% product.name FILTER html %] + </td> + </tr> + + <tr> + <td align="right" valign="top"> + <b>Component</b> + </td> + <td valign="top"> + <table border="0" cellpadding="0" cellspacing="0"> + <tr> + <td valign="top"> + <select name="component" id="component" + size="5" onchange="PutDescription()"> + [% IF NOT default.component_ %] + [%# Various b.m.o. products have a "General" component, + which is a useful default. %] + [% default.component_ = "General" %] + [% END %] + [% FOREACH c = product.components %] + <option value="[% c.name FILTER html %]" + [% " selected=\"selected\"" IF c.name == default.component_ %]> + [% c.name FILTER html %] + </option> + [% END %] + </select> + </td> + <td valign="top" width="100%"> + <div id="description" style="color: green; margin-left: 10px; + height: 5em; overflow: auto;"> + <script type="text/javascript"> + if ((document.getElementById) && (document.body.innerHTML)) { + document.write("\ + Select a component to see its description here."); + } + </script> + </div> + </td> + </tr> + </table> + + <p> + The area where the problem occurs. + To pick the right component, you could use the same one as + similar [% terms.bugs %] you found in your search, or read the full list of + <a target="_blank" href="describecomponents.cgi?product= + [% product.name FILTER url_quote %]">component + descriptions</a> (opens in new window) if you need more help. + </p> + </td> + </tr> + + [%# We override rep_platform and op_sys for simplicity. The values chosen + are based on which are most common in the b.m.o database %] + [% rep_platform = [ "PC", "Macintosh", "All", "Other" ] %] + + <tr bgcolor="[% tablecolour %]"> + <td align="right" valign="top"> + <b>Hardware Platform</b> + </td> + <td valign="top"> + [% PROCESS select sel = 'rep_platform' %] + </td> + </tr> + + [% op_sys = [ "Windows 2000", "Windows XP", "Windows Vista", "Windows 7", + "Mac OS X", "Linux", "All", "Other" ] %] + + <tr> + <td align="right" valign="top"> + <b>Operating System</b> + </td> + <td valign="top"> + [% PROCESS select sel = 'op_sys' %] + </td> + </tr> + + [% IF product.name.match("Firefox|Camino|Mozilla Application Suite") %] + [% matches = cgi.user_agent('Gecko/(\d+)') %] + [% buildid = cgi.user_agent() IF matches %] + [% END %] + + [%# Accept URL parameter build ID for non-browser products %] + [% IF cgi.param("buildid") %] + [% buildid = cgi.param("buildid") %] + [% END %] + + <tr bgcolor="[% tablecolour %]"> + <td align="right" valign="top"> + <b>Build Identifier</b> + </td> + <td valign="top"> + <input type="text" size="80" name="buildid" value="[% buildid FILTER html %]"> + <p> + This should identify the exact version of the product you were using. + If the above field is blank or you know it is incorrect, copy the + version text from the product's Help | + About menu (for browsers this will begin with "Mozilla/5.0..."). + If the product won't start, instead paste the complete URL you downloaded + it from. + </p> + </td> + </tr> + + <tr> + <td align="right" valign="top"> + <b>URL</b> + </td> + <td valign="top"> + <input type="text" size="80" name="bug_file_loc" value="http://"> + <p> + URL that demonstrates the problem you are seeing (optional).<br> + <b>IMPORTANT</b>: if the problem is with a broken web page, you need + to report it + <a href="https://bugzilla.mozilla.org/page.cgi?id=broken-website.html">a different way</a>. + </p> + </td> + </tr> + + <tr bgcolor="[% tablecolour %]"> + <td align="right" valign="top"> + <b>Summary</b> + </td> + <td valign="top"> + <input type="text" size="80" name="short_desc" id="short_desc" + maxlength="255" spellcheck="true"> + <p> + A sentence which summarises the problem. + Please be descriptive and use lots of keywords. + </p> + <p> + <tt> + <font color="#990000">Bad example</font>: mail crashed + </tt> + <br> + <tt> + <font color="#009900">Good example</font>: + crash if I close the mail window while checking for new POP mail + </tt> + </p> + </td> + </tr> + + <tr> + <td align="right" valign="top"> + <b>Details</b> + </td> + <td valign="top"> + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + minrows = 6 + cols = constants.COMMENT_COLS + %] + <p> + Expand on the Summary. Please be + as specific as possible about what is wrong. + </p> + <p> + <tt> + <font color="#990000">Bad example</font>: Mozilla crashed. + You suck! + </tt> + <br> + <tt> + <font color="#009900">Good example</font>: After a crash which + happened when I was sorting in the Bookmark Manager,<br> all of my + top-level bookmark folders beginning with the letters Q to Z are + no longer present. + </tt> + </p> + </td> + </tr> + + <tr bgcolor="[% tablecolour %]"> + <td align="right" valign="top"> + <b>Reproducibility</b> + </td> + <td valign="top"> + <select name="reproducible"> + <option name="AlwaysReproducible" value="Always"> + Happens every time. + </option> + <option name="Sometimes" value="Sometimes"> + Happens sometimes, but not always. + </option> + <option name="DidntTry" value="Didn't try"> + Haven't tried to reproduce it. + </option> + <option name="NotReproducible" value="Couldn't Reproduce"> + Tried, but couldn't reproduce it. + </option> + </select> + </td> + </tr> + + <tr> + <td align="right" valign="top"> + <b>Steps to Reproduce</b> + </td> + <td valign="top"> + [% INCLUDE global/textarea.html.tmpl + name = 'reproduce_steps' + minrows = 4 + cols = constants.COMMENT_COLS + defaultcontent = "1.\n2.\n3." + %] + <p> + Describe how to reproduce the problem, step by + step. Include any special setup steps. + </p> + </td> + </tr> + + <tr bgcolor="[% tablecolour %]"> + <td valign="top" align="right"> + <b>Actual Results</b> + </td> + <td valign="top"> + [% INCLUDE global/textarea.html.tmpl + name = 'actual_results' + minrows = 4 + cols = constants.COMMENT_COLS + %] + <p> + What happened after you performed the steps above? + </p> + </td> + </tr> + + <tr> + <td valign="top" align="right"> + <b>Expected Results</b> + </td> + <td valign="top"> + [% INCLUDE global/textarea.html.tmpl + name = 'expected_results' + minrows = 4 + cols = constants.COMMENT_COLS + %] + <p> + What should the software have done instead? + </p> + </td> + </tr> + + <tr bgcolor="[% tablecolour %]"> + <td valign="top" align="right"> + <b>Additional Information</b> + </td> + <td valign="top"> + [% INCLUDE global/textarea.html.tmpl + name = 'additional_info' + minrows = 8 + cols = constants.COMMENT_COLS + %] + <p> + Add any additional information you feel may be + relevant to this [% terms.bug %], such as the <b>theme</b> you were + using (does the [% terms.bug %] still occur + with the default theme?), a + <b><a href="http://kb.mozillazine.org/Quality_Feedback_Agent">Talkback crash ID</a></b>, or special + information about <b>your computer's configuration</b>. Any information + longer than a few lines, such as a <b>stack trace</b> or <b>HTML + testcase</b>, should be added + using the "Add an Attachment" link on the [% terms.bug %], after + it is filed. If you believe that it's relevant, please also include + your build configuration, obtained by typing <tt>about:buildconfig</tt> + into your URL bar. + <br> + <br> + If you are reporting a crash, note the module in + which the software crashed (e.g., <tt>Application Violation in + gkhtml.dll</tt>). + </p> + </td> + </tr> + + <tr> + <td valign="top" align="right"> + <b>Severity</b> + </td> + <td valign="top"> + <select name="bug_severity"> + <option name="critical" value="critical"> + Critical: The software crashes, hangs, or causes you to + lose data. + </option> + <option name="major" value="major"> + Major: A major feature is broken. + </option> + <option name="normal" value="normal" selected="selected"> + Normal: It's [% terms.abug %] that should be fixed. + </option> + <option name="minor" value="minor"> + Minor: Minor loss of function, and there's an easy workaround. + </option> + <option name="trivial" value="trivial"> + Trivial: A cosmetic problem, such as a misspelled word or + misaligned text. + </option> + <option name="enhancement" value="enhancement"> + Enhancement: Request for new feature or enhancement. + </option> + </select> + <p> + Say how serious the problem is, or if your [% terms.bug %] is a + request for a new feature. + </p> + </td> + </tr> +</table> + + +<a name="step3"></a> +<h3>Step 3 of 3 - submit the [% terms.bug %] report</h3> + +<p> + <input type="submit" id="report" value=" Submit [% terms.Bug %] Report " + onclick="if (this.form.comment.value == '') + { alert('Please enter some details about this [% terms.bug %].'); + this.form.comment.focus(); + return false; } return true;"> +</p> + +<p> + That's it! Thanks very much. You'll be notified by email about any + progress that is made on fixing your [% terms.bug %]. + +<p> + Please be warned + that we get a lot of [% terms.bug %] reports filed - it may take quite a + while to get around to yours. You can help the process by making sure your + [%+ terms.bug %] is + complete and easy to understand, and by quickly replying to any questions + which may arrive by email. +</p> + + </form> + +[% PROCESS global/footer.html.tmpl %] + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + <select name="[% sel %]"> + [%- IF default.$sel %] + <option value="[% default.$sel FILTER html %]" selected="selected"> + [% default.$sel FILTER html -%] + </option> + [% END %] + [%- FOREACH x = $sel %] + [% NEXT IF x == default.$sel %] + <option value="[% x FILTER html %]"> + [% x FILTER html -%] + </option> + [%- END %] + </select> +[% END %] diff --git a/template/en/default/bug/create/create.html.tmpl b/template/en/default/bug/create/create.html.tmpl new file mode 100644 index 0000000..4b17457 --- /dev/null +++ b/template/en/default/bug/create/create.html.tmpl @@ -0,0 +1,705 @@ +[%# 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): Gervase Markham <gerv@gerv.net> + # Ville Skyttä <ville.skytta@iki.fi> + # Shane H. W. Travis <travis@sedsystems.ca> + # Marc Schumann <wurblzap@gmail.com> + # Akamai Technologies <bugzilla-dev@akamai.com> + # Max Kanat-Alexander <mkanat@bugzilla.org> + # Frédéric Buclin <LpSolit@gmail.com> + #%] + +[% PROCESS "global/field-descs.none.tmpl" %] + +[% title = BLOCK %]Enter [% terms.Bug %]: [% product.name FILTER html %][% END %] + +[% PROCESS global/header.html.tmpl + title = title + style_urls = [ 'skins/standard/create_attachment.css', + 'skins/standard/yui/calendar.css' ] + javascript_urls = [ "js/attachment.js", "js/util.js", "js/yui/calendar.js", + "js/field.js", "js/TUI.js" ] + onload = 'set_assign_to();' +%] + +<script type="text/javascript"> +<!-- + +var initialowners = new Array([% product.components.size %]); +var last_initialowner; +var initialccs = new Array([% product.components.size %]); +var components = new Array([% product.components.size %]); +var comp_desc = new Array([% product.components.size %]); +var flags = new Array([% product.components.size %]); +[% IF Param("useqacontact") %] + var initialqacontacts = new Array([% product.components.size %]); + var last_initialqacontact; +[% END %] +[% count = 0 %] +[%- FOREACH c = product.components %] + components[[% count %]] = "[% c.name FILTER js %]"; + comp_desc[[% count %]] = "[% c.description FILTER html_light FILTER js %]"; + initialowners[[% count %]] = "[% c.default_assignee.login FILTER js %]"; + [% flag_list = [] %] + [% FOREACH f = c.flag_types.bug %] + [% NEXT UNLESS f.is_active %] + [% flag_list.push(f.id) %] + [% END %] + [% FOREACH f = c.flag_types.attachment %] + [% NEXT UNLESS f.is_active %] + [% flag_list.push(f.id) %] + [% END %] + flags[[% count %]] = [[% flag_list.join(",") FILTER js %]]; + [% IF Param("useqacontact") %] + initialqacontacts[[% count %]] = "[% c.default_qa_contact.login FILTER js %]"; + [% END %] + + [% SET initial_cc_list = [] %] + [% FOREACH cc_user = c.initial_cc %] + [% initial_cc_list.push(cc_user.login) %] + [% END %] + initialccs[[% count %]] = "[% initial_cc_list.join(', ') FILTER js %]"; + + [% count = count + 1 %] +[%- END %] + +function set_assign_to() { + // Based on the selected component, fill the "Assign To:" field + // with the default component owner, and the "QA Contact:" field + // with the default QA Contact. It also selectively enables flags. + var form = document.Create; + var assigned_to = form.assigned_to.value; + +[% IF Param("useqacontact") %] + var qa_contact = form.qa_contact.value; +[% END %] + + var index = -1; + if (form.component.type == 'select-one') { + index = form.component.selectedIndex; + } else if (form.component.type == 'hidden') { + // Assume there is only one component in the list + index = 0; + } + if (index != -1) { + var owner = initialowners[index]; + var component = components[index]; + if (assigned_to == last_initialowner + || assigned_to == owner + || assigned_to == '') { + form.assigned_to.value = owner; + last_initialowner = owner; + } + + document.getElementById('initial_cc').innerHTML = initialccs[index]; + document.getElementById('comp_desc').innerHTML = comp_desc[index]; + + [% IF Param("useqacontact") %] + var contact = initialqacontacts[index]; + if (qa_contact == last_initialqacontact + || qa_contact == contact + || qa_contact == '') { + form.qa_contact.value = contact; + last_initialqacontact = contact; + } + [% END %] + + // First, we disable all flags. Then we re-enable those + // which are available for the selected component. + var inputElements = document.getElementsByTagName("select"); + var inputElement, flagField; + for ( var i=0 ; i<inputElements.length ; i++ ) { + inputElement = inputElements.item(i); + if (inputElement.name.search(/^flag_type-(\d+)$/) != -1) { + var id = inputElement.name.replace(/^flag_type-(\d+)$/, "$1"); + inputElement.disabled = true; + // Also disable the requestee field, if it exists. + inputElement = document.getElementById("requestee_type-" + id); + if (inputElement) inputElement.disabled = true; + } + } + // Now enable flags available for the selected component. + for (var i = 0; i < flags[index].length; i++) { + flagField = document.getElementById("flag_type-" + flags[index][i]); + // Do not enable flags the user cannot set nor request. + if (flagField && flagField.options.length > 1) { + flagField.disabled = false; + // Re-enabling the requestee field depends on the status + // of the flag. + toggleRequesteeField(flagField, 1); + } + } + } +} + +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(); + } +} + + +TUI_alternates['expert_fields'] = 'Show Advanced Fields'; +// Hide the Advanced Fields by default, unless the user has a cookie +// that specifies otherwise. +TUI_hide_default('expert_fields'); + +--> +</script> + +[% USE Bugzilla %] +[% SET select_fields = {} %] +[% FOREACH field = Bugzilla.get_fields( + { type => constants.FIELD_TYPE_SINGLE_SELECT, custom => 0 }) +%] + [% select_fields.${field.name} = field %] +[% END %] + +<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 %]"> + +<table cellspacing="4" cellpadding="2" border="0"> +<tbody> + <tr> + <td colspan="4"> + [%# Migration note: The following file corresponds to the old Param + # 'entryheaderhtml' + #%] + [% PROCESS 'bug/create/user-message.html.tmpl' %] + </td> + </tr> + + <tr> + <td colspan="2"> + <a id="expert_fields_controller" class="controller bz_default_hidden" + href="javascript:TUI_toggle_class('expert_fields')">Hide + Advanced Fields</a> + [%# Show the link if the browser supports JS %] + <script type="text/javascript"> + YAHOO.util.Dom.removeClass('expert_fields_controller', + 'bz_default_hidden'); + </script> + </td> + <td colspan="2"> + (<span class="required_star">*</span> = + <span class="required_explanation">Required Field</span>) + </td> + </tr> + + <tr> + <th>Product:</th> + <td width="10%">[% product.name FILTER html %]</td> + + <th>Reporter:</th> + <td width="100%">[% user.login FILTER html %]</td> + </tr> + + [%# We can't use the select block in these two cases for various reasons. %] + <tr> + <th class="required"> + <a href="describecomponents.cgi?product=[% product.name FILTER url_quote %]"> + Component</a>: + </th> + <td> + <select name="component" onchange="set_assign_to();" size="7" + aria-required="true" class="required"> + [%# Build the lists of assignees and QA contacts if "usemenuforusers" is enabled. %] + [% IF Param("usemenuforusers") %] + [% assignees_list = user.get_userlist.clone %] + [% qa_contacts_list = user.get_userlist.clone %] + [% END %] + + [%- FOREACH c = product.components %] + <option value="[% c.name FILTER html %]" + [% " selected=\"selected\"" IF c.name == default.component_ %]> + [% c.name FILTER html -%] + </option> + [% IF Param("usemenuforusers") %] + [% INCLUDE build_userlist default_user = c.default_assignee, + userlist = assignees_list %] + [% INCLUDE build_userlist default_user = c.default_qa_contact, + userlist = qa_contacts_list %] + [% END %] + [%- END %] + </select> + </td> + + <td colspan="2"> + [%# Enclose the fieldset in a nested table so that its width changes based + # on the length on the component description. %] + <table> + <tr> + <td> + <fieldset> + <legend>Component Description</legend> + <div id="comp_desc" class="comment">Select a component to read its description.</div> + </fieldset> + </td> + </tr> + </table> + </td> + </tr> + + <tr> + <th rowspan="3">Version:</th> + <td rowspan="3"> + <select name="version" size="5"> + [%- FOREACH v = version %] + <option value="[% v FILTER html %]" + [% ' selected="selected"' IF v == default.version %]>[% v FILTER html -%] + </option> + [%- END %] + </select> + </td> + + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.bug_severity, editable = 1, + value = default.bug_severity %] + </tr> + + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.rep_platform, editable = 1, + value = default.rep_platform %] + </tr> + + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.op_sys, editable = 1, + value = default.op_sys %] + </tr> +</tbody> + +<tbody class="expert_fields"> + <tr> + [% IF Param('usetargetmilestone') && Param('letsubmitterchoosemilestone') %] + [% sel = { description => 'Target Milestone', name => 'target_milestone' } %] + [% INCLUDE select %] + [% ELSE %] + <td colspan="2"> </td> + [% END %] + + [% IF Param('letsubmitterchoosepriority') %] + [% INCLUDE bug/field.html.tmpl + bug = default, field = select_fields.priority, editable = 1, + value = default.priority %] + [% ELSE %] + <td colspan="2"> </td> + [% END %] + </tr> +</tbody> + +[% IF !Param('defaultplatform') || !Param('defaultopsys') %] + <tbody> + <tr> + <th> </th> + <td colspan="3" class="comment"> + We've made a guess at your + [% IF Param('defaultplatform') %] + operating system. Please check it + [% ELSIF Param('defaultopsys') %] + platform. Please check it + [% ELSE %] + operating system and platform. Please check them + [% END %] + and make any corrections if necessary. + </td> + </tr> + </tbody> +[% END %] + +<tbody class="expert_fields"> + <tr> + <td colspan="4"> </td> + </tr> + + <tr> +[% IF bug_status.size <= 1 %] + <input type="hidden" name="bug_status" + value="[% default.bug_status FILTER html %]"> + <th>Initial State:</th> + <td>[% display_value("bug_status", default.bug_status) FILTER html %]</td> +[% ELSE %] + [% sel = { description => 'Initial State', name => 'bug_status' } %] + [% INCLUDE select %] +[% END %] + + <td> </td> + [%# Calculate the number of rows we can use for flags %] + [% num_rows = 6 + (Param("useqacontact") ? 1 : 0) + + (user.is_timetracker ? 3 : 0) + + (Param("usebugaliases") ? 1 : 0) + %] + + <td rowspan="[% num_rows FILTER html %]"> + [% IF product.flag_types.bug.size > 0 %] + [% display_flag_headers = 0 %] + [% any_flags_requesteeble = 0 %] + + [% FOREACH flag_type = product.flag_types.bug %] + [% NEXT UNLESS flag_type.is_active %] + [% display_flag_headers = 1 %] + [% SET any_flags_requesteeble = 1 IF flag_type.is_requestable && flag_type.is_requesteeble %] + [% END %] + + [% IF display_flag_headers %] + [% PROCESS "flag/list.html.tmpl" flag_types = product.flag_types.bug + any_flags_requesteeble = any_flags_requesteeble + flag_table_id = "bug_flags" + %] + [% END %] + [% END %] + </td> + </tr> + + <tr> + <th><a href="page.cgi?id=fields.html#assigned_to">Assign To</a>:</th> + <td colspan="2"> + [% INCLUDE global/userselect.html.tmpl + name => "assigned_to" + value => assigned_to + disabled => assigned_to_disabled + size => 30 + emptyok => 1 + custom_userlist => assignees_list + %] + <noscript>(Leave blank to assign to component's default assignee)</noscript> + </td> + </tr> + +[% IF Param("useqacontact") %] + <tr> + <th>QA Contact:</th> + <td colspan="2"> + [% INCLUDE global/userselect.html.tmpl + name => "qa_contact" + value => qa_contact + disabled => qa_contact_disabled + size => 30 + emptyok => 1 + custom_userlist => qa_contacts_list + %] + <noscript>(Leave blank to assign to default qa contact)</noscript> + </td> + </tr> +[% END %] + + <tr> + <th>CC:</th> + <td colspan="2"> + [% INCLUDE global/userselect.html.tmpl + name => "cc" + value => cc + disabled => cc_disabled + size => 30 + multiple => 5 + %] + </td> + </tr> + + <tr> + <th>Default CC:</th> + <td colspan="2"> + <div id="initial_cc"> + </div> + </td> + </tr> + + <tr> + <td colspan="3"> </td> + </tr> + +[% IF user.is_timetracker %] + <tr> + <th>Estimated Hours:</th> + <td colspan="2"> + <input name="estimated_time" size="6" maxlength="6" value="[% estimated_time FILTER html %]"> + </td> + </tr> + <tr> + <th>Deadline:</th> + <td colspan="2"> + <input name="deadline" size="10" maxlength="10" value="[% deadline FILTER html %]"> + <small>(YYYY-MM-DD)</small> + </td> + </tr> + + <tr> + <td colspan="3"> </td> + </tr> +[% END %] + +[% IF Param("usebugaliases") %] + <tr> + <th>Alias:</th> + <td colspan="2"> + <input name="alias" size="20" value="[% alias FILTER html %]"> + </td> + </tr> +[% END %] + + <tr> + <th>URL:</th> + <td colspan="2"> + <input name="bug_file_loc" size="40" + value="[% bug_file_loc FILTER html %]"> + </td> + </tr> +</tbody> + +<tbody class="expert_fields"> + [% USE Bugzilla %] + + [% FOREACH field = Bugzilla.active_custom_fields %] + [% NEXT UNLESS field.enter_bug %] + [% SET value = ${field.name}.defined ? ${field.name} : "" %] + <tr> + [% INCLUDE bug/field.html.tmpl + bug = default, field = field, value = value, editable = 1, + value_span = 3 %] + </tr> + [% END %] +</tbody> + +<tbody> + + <tr> + <th class="required">Summary:</th> + <td colspan="3"> + <input name="short_desc" size="70" value="[% short_desc FILTER html %]" + maxlength="255" spellcheck="true" aria-required="true" + class="required"> + </td> + </tr> + + <tr> + <th>Description:</th> + <td colspan="3"> + [% defaultcontent = BLOCK %] + [% IF cloned_bug_id %] ++++ This [% terms.bug %] was initially created as a clone of [% terms.Bug %] #[% cloned_bug_id %] +++ + + + [% END %] + [%-# We are within a BLOCK. The comment will be correctly HTML-escaped + # by global/textarea.html.tmpl. So we must not escape the comment here. %] + [% comment FILTER none %] + [%- END %] + [% INCLUDE global/textarea.html.tmpl + name = 'comment' + id = 'comment' + minrows = 10 + maxrows = 25 + cols = constants.COMMENT_COLS + defaultcontent = defaultcontent + %] + <br> + </td> + </tr> + + [% IF user.is_insider %] + <tr class="expert_fields"> + <th> </th> + <td colspan="3"> + + <input type="checkbox" id="commentprivacy" name="commentprivacy" + [% " checked=\"checked\"" IF commentprivacy %]> + <label for="commentprivacy"> + Make description private (visible only to members of the + <strong>[% Param('insidergroup') FILTER html %]</strong> group) + </label> + </td> + </tr> + [% END %] + + <tr> + <th>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 + flag_types = product.flag_types.attachment + any_flags_requesteeble = 1 + flag_table_id ="attachment_flags" %] + </table> + </fieldset> + <script type="text/javascript"> + <!-- + document.write('<\/div>'); + //--> + </script> + </td> + </tr> +</tbody> + +<tbody class="expert_fields"> + [% IF user.in_group('editbugs', product.id) %] + [% IF use_keywords %] + <tr> + <th><a href="describekeywords.cgi">Keywords</a>:</th> + <td colspan="3"> + <input id="keywords" name="keywords" size="40" + value="[% keywords FILTER html %]"> (optional) + </td> + </tr> + [% END %] + + <tr> + <th>Depends on:</th> + <td colspan="3"> + <input name="dependson" accesskey="d" value="[% dependson FILTER html %]"> + </td> + </tr> + <tr> + <th>Blocks:</th> + <td colspan="3"> + <input name="blocked" accesskey="b" value="[% blocked FILTER html %]"> + </td> + </tr> + [% END %] +</tbody> + +<tbody class="expert_fields"> + [% IF group.size %] + <tr> + <th> </th> + <td colspan="3"> + <br> + <strong> + Only users in all of the selected groups can view this [% terms.bug %]: + </strong> + <br> + <font size="-1"> + (Leave all boxes unchecked to make this a public [% terms.bug %].) + </font> + <br> + <br> + + <!-- Checkboxes --> + [% FOREACH g = group %] + + <input type="checkbox" id="bit-[% g.bit %]" + name="bit-[% g.bit %]" value="1" + [% " checked=\"checked\"" IF g.checked %]> + <label for="bit-[% g.bit %]">[% g.description FILTER html_light %]</label><br> + [% END %] + </td> + </tr> + [% END %] +</tbody> + +<tbody> + [%# Form controls for entering additional data about the bug being created. %] + [% Hook.process("form") %] + + <tr> + <th> </th> + <td colspan="3"> + <input type="submit" id="commit" value="Submit [% terms.Bug %]" + onclick="if (this.form.short_desc.value == '') + { alert('Please enter a summary sentence for this [% terms.bug %].'); + return false; } return true;"> + + <input type="submit" name="maketemplate" id="maketemplate" + value="Remember values as bookmarkable template" + class="expert_fields"> + </td> + </tr> +</tbody> + </table> + <input type="hidden" name="form_name" value="enter_bug"> +</form> + +[%# Links or content with more information about the bug being created. %] +[% Hook.process("end") %] + +[% PROCESS global/footer.html.tmpl %] + +[%############################################################################%] +[%# Block for SELECT fields #%] +[%############################################################################%] + +[% BLOCK select %] + [% IF sel.description %] + <th> + <a href="page.cgi?id=fields.html#[% sel.name %]">[% sel.description %]</a>: + </th> + [% END %] + + <td> + <select name="[% sel.name %]" id="[% sel.name %]"> + [%- FOREACH x = ${sel.name} %] + <option value="[% x FILTER html %]" + [% " selected=\"selected\"" IF x == default.${sel.name} %]> + [% display_value(sel.name, x) FILTER html %] + </option> + [% END %] + </select> + + [% IF sel.name == "bug_status" %] + <script type="text/javascript"> + <!-- + [%+ INCLUDE "bug/field-events.js.tmpl" + field = select_fields.bug_status %] + //--> + </script> + [% END %] + </td> +[% END %] + +[% BLOCK build_userlist %] + [% user_found = 0 %] + [% default_login = default_user.login %] + [% RETURN UNLESS default_login %] + + [% FOREACH user = userlist %] + [% IF user.login == default_login %] + [% user_found = 1 %] + [% LAST %] + [% END %] + [% END %] + + [% userlist.push({login => default_login, + identity => default_user.identity, + visible => 1}) + UNLESS user_found %] +[% END %] diff --git a/template/en/default/bug/create/created.html.tmpl b/template/en/default/bug/create/created.html.tmpl new file mode 100644 index 0000000..d9eaccb --- /dev/null +++ b/template/en/default/bug/create/created.html.tmpl @@ -0,0 +1,61 @@ +[%# 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): Gervase Markham <gerv@gerv.net> + #%] + +[%# INTERFACE: + # id: number; the ID of the bug that was created. + # sentmail: array of hash; bugs for which BugMail should be sent, contains: + # type: string; type of change for this bug, either 'created' if this bug + # was created or 'dep' if it was added as a dependent/blocker + # id: integer; the ID of the bug + # bug: object; Bugzilla::Bug object of the bug that was created (used in + # template bug/edit.html.tmpl + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS "bug/show-header.html.tmpl" %] +[% PROCESS global/header.html.tmpl + title = "$terms.Bug $id Submitted – $filtered_desc" + header = "$terms.Bug $id Submitted" +%] + +[% header_done = 1 %] + +[% FOREACH item = sentmail %] + [% PROCESS bug/process/results.html.tmpl + type = item.type + id = item.id + sent_bugmail = item + %] +[% END %] + +<br> + +<hr> + +[% PROCESS bug/edit.html.tmpl %] + +<hr> + +[% PROCESS bug/navigate.html.tmpl bottom_navigator => 1 %] + +<br> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/create/make-template.html.tmpl b/template/en/default/bug/create/make-template.html.tmpl new file mode 100644 index 0000000..1397483 --- /dev/null +++ b/template/en/default/bug/create/make-template.html.tmpl @@ -0,0 +1,46 @@ +[%# 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): Gervase Markham <gerv@gerv.net> + # Marc Schumann <wurblzap@gmail.com> + #%] + +[%# INTERFACE: + # url: URL to a pre-filled bug entry form. + # short_desc: Bug summary as entered in the form. + #%] + +[% PROCESS global/variables.none.tmpl %] + +[% PROCESS global/header.html.tmpl + title = "Bookmarks are your friend" + header = "Template constructed" +%] + +<p> + You can bookmark this link: + “<a href="enter_bug.cgi?[% url FILTER html %]"> + [% IF short_desc %] + [% short_desc FILTER html %] + [% ELSE %] + [% terms.Bug %] entry template + [% END %]</a>”. + This bookmark will bring up the <em>Enter [% terms.Bug %]</em> page with the + fields initialized as you've requested. +</p> + +[% PROCESS global/footer.html.tmpl %] diff --git a/template/en/default/bug/create/user-message.html.tmpl b/template/en/default/bug/create/user-message.html.tmpl new file mode 100644 index 0000000..ac2cc29 --- /dev/null +++ b/template/en/default/bug/create/user-message.html.tmpl @@ -0,0 +1,36 @@ +[%# 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): Matthew Tuck <matty@chariot.net.au> + #%] + +[%# Migration note: this file corresponds to the old Param + # 'entryheaderhtml' + #%] + +[%# You can make the output of this template product-specific by using + # Template Toolkit IF statements. The current product name is stored in + # the 'product' variable. + #%] + +[% PROCESS global/variables.none.tmpl %] + +Before reporting [% terms.abug %], please read the +<a href="page.cgi?id=bug-writing.html"> +[% terms.bug %] writing guidelines</a>, please look at the list of +<a href="duplicates.cgi">most frequently reported [% terms.bugs %]</a>, and please +<a href="query.cgi">search</a> for the [% terms.bug %]. |