summaryrefslogtreecommitdiffstats
path: root/template/en/default/list
diff options
context:
space:
mode:
authorDexter Morgan <dmorgan@mageia.org>2010-11-26 14:56:29 +0000
committerColin Guthrie <colin@mageia.org>2014-09-15 20:44:39 +0100
commit80fc05854135e575e7811b55f521e8bb9855a2ee (patch)
tree72b18ca48983a3ebb7fe2f0d658d099f5854f3db /template/en/default/list
downloadbugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar
bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.gz
bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.bz2
bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.tar.xz
bugzilla-80fc05854135e575e7811b55f521e8bb9855a2ee.zip
Add custom template with identity support
Diffstat (limited to 'template/en/default/list')
-rw-r--r--template/en/default/list/change-columns.html.tmpl127
-rw-r--r--template/en/default/list/edit-multiple.html.tmpl424
-rw-r--r--template/en/default/list/list-simple.html.tmpl53
-rw-r--r--template/en/default/list/list.atom.tmpl101
-rw-r--r--template/en/default/list/list.csv.tmpl46
-rw-r--r--template/en/default/list/list.html.tmpl291
-rw-r--r--template/en/default/list/list.ics.tmpl103
-rw-r--r--template/en/default/list/list.js.tmpl37
-rw-r--r--template/en/default/list/list.rdf.tmpl56
-rw-r--r--template/en/default/list/quips.html.tmpl168
-rw-r--r--template/en/default/list/server-push.html.tmpl47
-rw-r--r--template/en/default/list/table.html.tmpl260
12 files changed, 1713 insertions, 0 deletions
diff --git a/template/en/default/list/change-columns.html.tmpl b/template/en/default/list/change-columns.html.tmpl
new file mode 100644
index 0000000..36cd5db
--- /dev/null
+++ b/template/en/default/list/change-columns.html.tmpl
@@ -0,0 +1,127 @@
+[%# 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): Dave Lawrence <dkl@redhat.com>
+ # Pascal Held <paheld@gmail.com>
+ #%]
+
+[% PROCESS global/variables.none.tmpl %]
+
+[% PROCESS global/header.html.tmpl
+ title = "Change Columns"
+ javascript_urls = "js/change-columns.js"
+ onload = "initChangeColumns()"
+%]
+
+<p>
+ Select the columns you wish to appear in your [% terms.bug %] lists. Note that
+ this feature requires cookies to work.
+</p>
+
+[% PROCESS "global/field-descs.none.tmpl" %]
+[% field_descs.short_short_desc = "Summary (first 60 characters)" %]
+[% field_descs.short_desc = "Full Summary" %]
+[% field_descs.assigned_to_realname = "Assignee Realname" %]
+[% field_descs.reporter_realname = "Reporter Realname" %]
+[% field_descs.qa_contact_realname = "QA Contact Realname" %]
+
+<form name="changecolumns" action="colchange.cgi" onsubmit="change_submit();">
+ <input type="hidden" name="rememberedquery" value="[% buffer FILTER html %]">
+ <table>
+ <tr>
+ <th><div id="avail_header" class="bz_default_hidden">Available Columns</div></th>
+ <th></th>
+ <th>Selected Columns</th>
+ <th></th>
+ </tr>
+ <tr>
+ <td>
+ <select name="available_columns" id="available_columns"
+ size="15" multiple="multiple" onchange="updateView();"
+ class="bz_default_hidden">
+ </select>
+ </td>
+ <td>
+ <input class="image_button bz_default_hidden" type="button"
+ id="select_button" name="select" onclick="move_select()">
+ <br><br>
+ <input class="image_button bz_default_hidden" type="button"
+ id="deselect_button" name="deselect" onclick="move_deselect()">
+ </td>
+ <td>
+ <select name="selected_columns" id="selected_columns"
+ size="15" multiple="multiple" onchange="updateView();">
+ [% FOREACH column = collist %]
+ <option value="[% column FILTER html %]" selected="selected">
+ [% (field_descs.${column} || column) FILTER html %]
+ </option>
+ [% END %]
+ [% FOREACH column = masterlist %]
+ [% IF lsearch(collist, column) == -1 %]
+ <option value="[% column FILTER html %]">
+ [% (field_descs.${column} || column) FILTER html %]
+ </option>
+ [% END %]
+ [% END %]
+ </select>
+ </td>
+ <td>
+ <input class="image_button bz_default_hidden" type="button"
+ id="up_button" name="up" onclick="move_up()">
+ <br><br>
+ <input class="image_button bz_default_hidden" type="button"
+ id="down_button" name="down" onclick="move_down()">
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ <input id="nosplitheader" type="radio" name="splitheader" value="0"
+ [%+ "checked='checked'" IF NOT splitheader %]>
+ <label for="nosplitheader">
+ Normal headers (prettier)
+ </label>
+ <br>
+
+ <input id="splitheader" type="radio" name="splitheader" value="1"
+ [%+ "checked='checked'" IF splitheader %]>
+ <label for="splitheader">
+ Stagger headers (often makes list more compact)
+ </label>
+ </p>
+
+ [% IF saved_search %]
+ <p>
+ <input type="hidden" name="saved_search"
+ value="[% saved_search.id FILTER html%]" >
+ <input type="checkbox" id="save_columns_for_search" checked="checked"
+ name="save_columns_for_search" value="1">
+ <label for="save_columns_for_search">Save this column list only
+ for search '[% saved_search.name FILTER html %]'</label>
+ </p>
+ [% END %]
+
+ <p>
+ <input type="submit" id="change" value="Change Columns">
+ </p>
+
+ <input type="submit" id="resetit" name="resetit"
+ value="Reset to [% terms.Bugzilla %] default">
+</form>
+
+[% PROCESS global/footer.html.tmpl %]
+
diff --git a/template/en/default/list/edit-multiple.html.tmpl b/template/en/default/list/edit-multiple.html.tmpl
new file mode 100644
index 0000000..75f2f83
--- /dev/null
+++ b/template/en/default/list/edit-multiple.html.tmpl
@@ -0,0 +1,424 @@
+[%# 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>
+ # Max Kanat-Alexander <mkanat@bugzilla.org>
+ # Frédéric Buclin <LpSolit@gmail.com>
+ # Guy Pyrzak <guy.pyrzak@gmail.com>
+ #%]
+
+[% PROCESS global/variables.none.tmpl %]
+
+[% dontchange = "--do_not_change--" %]
+<input type="hidden" name="dontchange" value="[% dontchange FILTER html %]">
+<input type="hidden" name="token" value="[% token FILTER html %]">
+
+<script type="text/javascript">
+ function SetCheckboxes(value) {
+ var elements = document.forms.changeform.getElementsByTagName('input'),
+ numelements = elements.length,
+ item, i;
+ for (i = 0; i < numelements; i++) {
+ item = elements[i];
+ if (item.type === 'checkbox' && item.name.match(/^id_/)) {
+ item.checked = value;
+ }
+ }
+ }
+ document.write(' <input type="button" name="uncheck_all" value="Uncheck All" onclick="SetCheckboxes(false);">');
+ document.write(' <input type="button" name="check_all" value="Check All" onclick="SetCheckboxes(true);">');
+</script>
+
+<hr>
+
+<p style="font-size:smaller">
+ To change multiple [% terms.bugs %]:</p>
+<ol style="font-size:smaller">
+ <li>Check the [% terms.bugs %] you want to change above.</li>
+ <li>Make your changes in the form fields below. If the change
+ you are making requires an explanation, include it in
+ the comments box.</li>
+ <li>Click the <em>Commit</em> button.</li>
+</ol>
+
+<table id="form">
+ <tr>
+
+ <th><label for="product">Product:</label></th>
+ <td>
+ [% PROCESS selectmenu menuname = "product"
+ menuitems = products
+ property = "name" %]
+ </td>
+
+ <th><label for="version">Version:</label></th>
+ <td>
+ [% PROCESS selectmenu menuname = "version"
+ menuitems = versions
+ property = "" %]
+ </td>
+
+ </tr>
+ <tr>
+
+ <th><label for="component">Component:</label></th>
+ <td>
+ [% PROCESS selectmenu menuname = "component"
+ menuitems = components %]
+ </td>
+
+ <th>
+ <label for="priority">
+ <a href="page.cgi?id=fields.html#priority">Priority</a>:
+ </label>
+ </th>
+ <td>
+ [% PROCESS selectmenu menuname = "priority"
+ menuitems = priorities %]
+ </td>
+
+ </tr>
+ <tr>
+
+ <th>
+ <label for="rep_platform">
+ <a href="page.cgi?id=fields.html#rep_platform">Platform</a>:
+ </label>
+ </th>
+ <td>
+ [% PROCESS selectmenu menuname = "rep_platform"
+ menuitems = platforms %]
+ </td>
+
+ <th>
+ <label for="bug_severity">
+ <a href="page.cgi?id=fields.html#bug_severity">Severity</a>:
+ </label>
+ </th>
+ <td>
+ [% PROCESS selectmenu menuname = "bug_severity"
+ menuitems = severities %]
+ </td>
+
+ </tr>
+
+ <tr>
+ <th>
+ <label for="op_sys">
+ <a href="page.cgi?id=fields.html#op_sys">OS</a>:
+ </label>
+ </th>
+ <td [% " colspan=\"3\"" IF !Param("usetargetmilestone") %]>
+ [% PROCESS selectmenu menuname = "op_sys"
+ menuitems = op_sys %]
+ </td>
+
+ [% IF Param("usetargetmilestone") %]
+ <th><label for="target_milestone">Target Milestone:</label></th>
+ <td>
+ [% PROCESS selectmenu menuname = "target_milestone"
+ menuitems = targetmilestones %]
+ </td>
+ [% END %]
+ </tr>
+
+ <tr>
+ <th><label for="bug_status">Status:</label></th>
+ <td colspan="3">[% PROCESS status_section %]</td>
+ </tr>
+ [% IF user.is_timetracker %]
+ <tr>
+ <th><label for="estimated_time">Estimated Hours:</label></th>
+ <td>
+ <input id="estimated_time"
+ name="estimated_time"
+ value="[% dontchange FILTER html %]"
+ size="6">
+ </td>
+ <th><label for="deadline">Deadline (YYYY-MM-DD):</label></th>
+ <td>
+ <input id="deadline"
+ name="deadline"
+ value="[% dontchange FILTER html %]"
+ size="10">
+ </td>
+ </tr>
+ <tr>
+ <th><label for="remaining_time">Remaining Hours:</label></th>
+ <td>
+ <input id="remaining_time"
+ name="remaining_time"
+ value="[% dontchange FILTER html %]"
+ size="6">
+ </td>
+ <th>&nbsp;</th>
+ <td>&nbsp;</td>
+ </tr>
+ [% END %]
+
+ <tr>
+ <th><label for="assigned_to">Assignee:</label></th>
+ <td colspan="3">
+ [% INCLUDE global/userselect.html.tmpl
+ id => "assigned_to"
+ name => "assigned_to"
+ value => dontchange
+ size => 32
+ %]
+ <input type="checkbox" id="set_default_assignee" name="set_default_assignee" value="1">
+ <label for="set_default_assignee">Reset Assignee to default</label>
+ </td>
+ </tr>
+
+ [% IF Param("useqacontact") %]
+ <tr>
+ <th><label for="qa_contact">QA Contact:</label></th>
+ <td colspan="3">
+ [% INCLUDE global/userselect.html.tmpl
+ id => "qa_contact"
+ name => "qa_contact"
+ value => dontchange
+ size => 32
+ %]
+ <input type="checkbox" id="set_default_qa_contact" name="set_default_qa_contact" value="1">
+ <label for="set_default_qa_contact">Reset QA Contact to default</label>
+ </td>
+ </tr>
+ [% END %]
+
+ <tr>
+
+ <th><label for="masscc">CC List:</label></th>
+ <td colspan="3">
+ <input id="masscc" name="masscc" size="32">
+ <select name="ccaction">
+ <option value="add">Add these to the CC List</option>
+ <option value="remove">Remove these from the CC List</option>
+ </select>
+ </td>
+
+ </tr>
+
+ [% IF use_keywords %]
+ <tr>
+
+ <th>
+ <label for="keywords">
+ <a href="describekeywords.cgi">Keywords</a>:
+ </label>
+ </th>
+ <td colspan="3">
+ <input id="keywords" name="keywords" size="32">
+ <select name="keywordaction">
+ <option value="add">Add these keywords</option>
+ <option value="delete">Delete these keywords</option>
+ <option value="makeexact">Make the keywords be exactly this list</option>
+ </select>
+ </td>
+
+ </tr>
+ [% END %]
+
+ <tr>
+ <th>
+ <label for="dependson">
+ Depends On:
+ </label>
+ </th>
+ <td colspan="3">
+ <input id="dependson" name="dependson" size="32">
+ <select name="dependson_action">
+ <option value="add">Add these IDs</option>
+ <option value="remove">Delete these IDs</option>
+ </select>
+ </td>
+ </tr>
+
+ <tr>
+ <th>
+ <label for="blocked">
+ Blocks:
+ </label>
+ </th>
+ <td colspan="3">
+ <input id="blocked" name="blocked" size="32">
+ <select name="blocked_action">
+ <option value="add">Add these IDs</option>
+ <option value="remove">Delete these IDs</option>
+ </select>
+ </td>
+ </tr>
+
+ [% IF Param('usestatuswhiteboard') %]
+ <tr>
+ <td align="right">
+ <b>Status Whiteboard:</b>
+ </td>
+ <td colspan="7">
+ <input name="status_whiteboard"
+ value="[% dontchange FILTER html %]" size="60">
+ </td>
+ </tr>
+ [% END %]
+
+ [% USE Bugzilla %]
+ [% FOREACH field = Bugzilla.active_custom_fields %]
+ <tr>
+ [% PROCESS bug/field.html.tmpl value = dontchange
+ editable = 1
+ allow_dont_change = 1 %]
+ </tr>
+ [% END %]
+
+ [% Hook.process("after_custom_fields") %]
+
+</table>
+
+<b><label for="comment">Additional Comments:</label></b>
+[% IF user.is_insider %]
+ <input type="checkbox" name="commentprivacy" value="1"
+ id="newcommentprivacy"
+ onClick="updateCommentTagControl(this, form)"/>
+ <label for="newcommentprivacy">
+ Make comment private (visible only to members of the
+ <strong>[% Param('insidergroup') FILTER html %]</strong> group)
+ </label>
+[% END %]
+<br>
+[% INCLUDE global/textarea.html.tmpl
+ name = 'comment'
+ id = 'comment'
+ minrows = 5
+ maxrows = 25
+ cols = constants.COMMENT_COLS
+%]<br>
+
+[% Hook.process('before_groups') %]
+
+[% IF groups.size > 0 %]
+
+ <b>Groups:</b><br>
+ <table border="1">
+ <tr>
+ <th>Don't<br>change<br>this group<br>restriction</th>
+ <th>Remove<br>[% terms.bugs %]<br>from this<br>group</th>
+ <th>Add<br>[% terms.bugs %]<br>to this<br>group</th>
+ <th>Group Name:</th>
+ </tr>
+
+ [% FOREACH group = groups %]
+ <tr>
+ <td align="center">
+ <input type="radio" name="bit-[% group.id %]" value="-1" checked="checked">
+ </td>
+ <td align="center">
+ <input type="radio" name="bit-[% group.id %]" value="0">
+ </td>
+ [% IF group.is_active %]
+ <td align="center">
+ <input type="radio" name="bit-[% group.id %]" value="1">
+ </td>
+ [% ELSE %]
+ <td>&nbsp;</td>
+ [% foundinactive = 1 %]
+ [% END %]
+
+ <td>
+ [% SET inactive = !group.is_active %]
+ [% group.description FILTER html_light FILTER inactive(inactive) %]
+ </td>
+
+ </tr>
+ [% END %]
+
+ </table>
+
+ [% IF foundinactive %]
+ <p style="font-size:smaller">(Note: [% terms.Bugs %] may not be added to [% FILTER inactive %]inactive
+ groups[% END %], only removed.)</p>
+ [% END %]
+
+[% END %]
+<input type="submit" id="commit" value="Commit">
+
+[% IF Param('move-enabled') && user.is_mover %]
+ <input type="submit" name="action" id="action" value="[% Param('move-button-text') %]">
+[% END %]
+
+[%############################################################################%]
+[%# Select Menu Block #%]
+[%############################################################################%]
+
+[% BLOCK selectmenu %]
+ <select id="[% menuname %]" name="[% menuname %]">
+ <option value="[% dontchange FILTER html %]" selected="selected">
+ [% dontchange FILTER html %]
+ </option>
+ [% FOREACH menuitem = menuitems %]
+ [% IF property %][% menuitem = menuitem.$property %][% END %]
+ <option value="[% menuitem FILTER html %]">[% display_value(menuname, menuitem) FILTER html %]</option>
+ [% END %]
+ </select>
+[% END %]
+
+[%############################################################################%]
+[%# Status Block #%]
+[%############################################################################%]
+
+[% BLOCK status_section %]
+ [% all_open_bugs = !current_bug_statuses.containsany(closedstates) %]
+ [% all_closed_bugs = !current_bug_statuses.containsany(openstates) %]
+ [% closed_status_array = [] %]
+
+ <select name="bug_status" id="bug_status">
+ <option value="[% dontchange FILTER html %]" selected="selected">[% dontchange FILTER html %]</option>
+
+ [% FOREACH bug_status = new_bug_statuses %]
+ <option value="[% bug_status.name FILTER html %]">
+ [% display_value("bug_status", bug_status.name) FILTER html %]
+ </option>
+ [% IF !bug_status.is_open %]
+ [% filtered_status = bug_status.name FILTER js %]
+ [% closed_status_array.push( filtered_status ) %]
+ [% END %]
+ [% END %]
+
+ [%# If all the bugs being changed are closed, allow the user to change their resolution. %]
+ [% IF all_closed_bugs %]
+ [% filtered_status = dontchange FILTER js %]
+ [% closed_status_array.push( filtered_status ) %]
+ [% END %]
+ </select>
+
+ <span id="resolution_settings">
+ <select id="resolution" name="resolution">
+ <option value="[% dontchange FILTER html %]" selected >[% dontchange FILTER html %]</option>
+ [% FOREACH r = resolutions %]
+ [% NEXT IF !r %]
+ [% NEXT IF r == "DUPLICATE" || r == "MOVED" %]
+ <option value="[% r FILTER html %]">[% display_value("resolution", r) FILTER html %]</option>
+ [% END %]
+ </select>
+ </span>
+
+ <script type="text/javascript">
+ var close_status_array = new Array("[% closed_status_array.join('", "') FILTER none %]");
+ YAHOO.util.Event.addListener('bug_status', "change", showHideStatusItems, '[% "is_duplicate" IF bug.dup_id %]');
+ YAHOO.util.Event.onDOMReady( showHideStatusItems );
+ </script>
+
+[% END %]
diff --git a/template/en/default/list/list-simple.html.tmpl b/template/en/default/list/list-simple.html.tmpl
new file mode 100644
index 0000000..125a164
--- /dev/null
+++ b/template/en/default/list/list-simple.html.tmpl
@@ -0,0 +1,53 @@
+[%# 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>
+ #%]
+
+[%# INTERFACE:
+ # title: string. The title for this page. (optional)
+ #%]
+
+[% PROCESS global/variables.none.tmpl %]
+
+[%############################################################################%]
+[%# Initialization #%]
+[%############################################################################%]
+
+[% DEFAULT title = "$terms.Bug List" %]
+
+[%############################################################################%]
+[%# Bug Table #%]
+[%############################################################################%]
+
+<html>
+
+ <head>
+ <title>[% title FILTER html %]</title>
+ <base href="[% urlbase FILTER html %]">
+ <link href="skins/standard/buglist.css" rel="stylesheet" type="text/css">
+ </head>
+
+ <body>
+ [% IF bugs.size == 0 %]
+ <h3>[% terms.zeroSearchResults %].</h3>
+ [% ELSE %]
+ [% PROCESS list/table.html.tmpl %]
+ [% END %]
+ </body>
+
+</html>
diff --git a/template/en/default/list/list.atom.tmpl b/template/en/default/list/list.atom.tmpl
new file mode 100644
index 0000000..ed0c660
--- /dev/null
+++ b/template/en/default/list/list.atom.tmpl
@@ -0,0 +1,101 @@
+[%# 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): Walter Hoehn <wassa@columbia.edu>
+ # John Belmonte <john@neggie.net>
+ # Jason Remillard <jremillardshop@letterboxes.org>
+ # Phil Ringnalda <bugzilla@philringnalda.com>
+ #
+ # This is a template for generating an Atom representation of a buglist.
+ #%]
+
+[% PROCESS "global/field-descs.none.tmpl" %]
+
+[% DEFAULT title = "$terms.Bugzilla $terms.Bugs" %]
+
+<?xml version="1.0"[% IF Param('utf8') %] encoding="UTF-8"[% END %]?>
+<feed xmlns="http://www.w3.org/2005/Atom">
+ <title>[% title FILTER xml %]</title>
+ <link rel="alternate" type="text/html"
+ href="[% urlbase FILTER html %]buglist.cgi?
+ [%- urlquerypart.replace('ctype=atom[&]?','') FILTER xml %]"/>
+ <link rel="self" type="application/atom+xml"
+ href="[% urlbase FILTER html %]buglist.cgi?
+ [%- urlquerypart FILTER xml %]"/>
+ <updated>[% bugs.sort('changedtime').last.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC")
+ FILTER xml %]</updated>
+ <id>[% urlbase FILTER html %]buglist.cgi?[% urlquerypart FILTER xml %]</id>
+
+ [% FOREACH bug = bugs %]
+ <entry>
+ <title>[% "@" IF bug.secure_mode %][[% terms.Bug %] [%+ bug.bug_id FILTER xml %]] [% bug.short_desc FILTER xml %]</title>
+ <link rel="alternate" type="text/html"
+ href="[% urlbase FILTER html %]show_bug.cgi?id=
+ [%- bug.bug_id FILTER xml %]"/>
+ <id>[% urlbase FILTER xml %]show_bug.cgi?id=[% bug.bug_id FILTER xml %]</id>
+ <author>
+ <name>[% bug.reporter_realname ? bug.reporter_realname : bug.reporter FILTER xml %]</name>
+ </author>
+ <updated>[% bug.changedtime FILTER time("%Y-%m-%dT%H:%M:%SZ", "UTC") FILTER xml %]</updated>
+ <summary type="html">
+ [%# Filter out the entire block, so that we don't need to escape the html code out %]
+ [% FILTER xml %]
+ <table>
+ <tr>
+ <th>Field</th><th>Value</th>
+ </tr><tr class="bz_feed_product">
+ <td>[% columns.product.title FILTER html %]</td>
+ <td>[% bug.product FILTER html %]</td>
+ </tr><tr class="bz_feed_component">
+ <td>[% columns.component.title FILTER html %]</td>
+ <td>[% bug.component FILTER html %]</td>
+ </tr><tr class="bz_feed_assignee">
+ <td>[% columns.assigned_to_realname.title FILTER html %]</td>
+ <td>[% bug.assigned_to_realname ? bug.assigned_to_realname : bug.assigned_to FILTER html %]</td>
+ </tr><tr class="bz_feed_reporter">
+ <td>[% columns.reporter_realname.title FILTER html %]</td>
+ <td>[% bug.reporter_realname ? bug.reporter_realname : bug.reporter FILTER html %]</td>
+ </tr><tr class="bz_feed_bug_status">
+ <td>[% columns.bug_status.title FILTER html %]</td>
+ <td>[% display_value("bug_status", bug.bug_status) FILTER html %]</td>
+ </tr><tr class="bz_feed_resolution">
+ <td>[% columns.resolution.title FILTER html %] </td>
+ <td>[% display_value("resolution", bug.resolution) FILTER html %]</td>
+ </tr><tr class="bz_feed_priority">
+ <td>[% columns.priority.title FILTER html %]</td>
+ <td>[% display_value("priority", bug.priority) FILTER html %]</td>
+ </tr><tr class="bz_feed_severity">
+ <td>[% columns.bug_severity.title FILTER html %] </td>
+ <td>[% display_value("bug_severity", bug.bug_severity) FILTER html %]</td>
+ [% IF Param("usetargetmilestone") %]
+ </tr><tr class="bz_feed_target_milestone">
+ <td>[% columns.target_milestone.title FILTER html %]</td>
+ <td>[% bug.target_milestone FILTER html %]</td>
+ [% END %]
+ </tr><tr class="bz_feed_creation_date">
+ <td>[% columns.opendate.title FILTER html %]</td>
+ <td>[% bug.opendate FILTER html %]</td>
+ </tr><tr class="bz_feed_changed_date">
+ <td>[% columns.changeddate.title FILTER html %]</td>
+ <td>[% bug.changeddate FILTER html -%]</td>
+ </tr>
+ </table>
+ [% END %]
+ </summary>
+ </entry>
+ [% END %]
+</feed>
diff --git a/template/en/default/list/list.csv.tmpl b/template/en/default/list/list.csv.tmpl
new file mode 100644
index 0000000..6114d6f
--- /dev/null
+++ b/template/en/default/list/list.csv.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): Myk Melez <myk@mozilla.org>
+ # Gervase Markham <gerv@gerv.net>
+ #%]
+
+[% PROCESS "global/field-descs.none.tmpl" %]
+
+[% colsepchar = user.settings.csv_colsepchar.value %]
+
+bug_id
+[% FOREACH column = displaycolumns %]
+ [% colsepchar %][% column FILTER csv %]
+[% END %]
+
+[% FOREACH bug = bugs %]
+ [% bug.bug_id %]
+ [% FOREACH column = displaycolumns %]
+ [% colsepchar %]
+ [% IF column == "opendate" OR column == "changeddate" %]
+ [% rawcolumn = column.replace("date", "time") %]
+ [% bug.$column = bug.$rawcolumn FILTER time("%Y-%m-%d %H:%M:%S") %]
+ [% ELSIF column == 'bug_status' %]
+ [% bug.$column = display_value("bug_status", bug.$column) %]
+ [% ELSIF column == 'resolution' %]
+ [%- bug.$column = display_value("resolution", bug.$column) %]
+ [% END %]
+ [% bug.$column FILTER csv %]
+ [% END %]
+
+[% END %]
diff --git a/template/en/default/list/list.html.tmpl b/template/en/default/list/list.html.tmpl
new file mode 100644
index 0000000..941b34a
--- /dev/null
+++ b/template/en/default/list/list.html.tmpl
@@ -0,0 +1,291 @@
+[%# 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>
+ #%]
+
+[%# INTERFACE:
+ # searchtype: string. Type of search - either "series", "saved" or undef.
+ # ...
+ # defaultsavename: string. The default name for saving the query.
+ #%]
+
+[%############################################################################%]
+[%# Template Initialization #%]
+[%############################################################################%]
+
+[% PROCESS "global/field-descs.none.tmpl" %]
+
+[% title = "$terms.Bug List" %]
+[% IF searchname || defaultsavename %]
+ [% title = title _ ": " _ (searchname OR defaultsavename) FILTER html %]
+[% END %]
+
+[% qorder = order FILTER url_quote IF order %]
+
+
+[%############################################################################%]
+[%# Page Header #%]
+[%############################################################################%]
+
+[% PROCESS global/header.html.tmpl
+ title = title
+ style = style
+ atomlink = "buglist.cgi?$urlquerypart&title=$title&ctype=atom"
+ javascript_urls = [ "js/util.js", "js/field.js", "js/yui/calendar.js" ]
+ style_urls = [ "skins/standard/buglist.css", "skins/standard/yui/calendar.css" ]
+ doc_section = "query.html#list"
+%]
+
+<div class="bz_query_head" align="center">
+ <span class="bz_query_timestamp">
+ <b>[% currenttime FILTER time('%a %b %e %Y %T %Z') FILTER html %]</b><br>
+ </span>
+
+ [% IF debug %]
+ <p class="bz_query">[% query FILTER html %]</p>
+ [% IF query_explain.defined %]
+ <pre class="bz_query_explain">[% query_explain FILTER html %]</pre>
+ [% END %]
+ [% END %]
+
+ [% IF user.settings.display_quips.value == 'on' %]
+ [% DEFAULT quip = "$terms.Bugzilla would like to put a random quip here, but no one has entered any." %]
+ <span class="bz_quip">
+ <a href="quips.cgi"><i>[% quip FILTER html %]</i></a>
+ </span>
+ [% END %]
+
+</div>
+
+[% IF toolong %]
+ <h2 class="bz_smallminded">
+ This list is too long for [% terms.Bugzilla %]'s little mind; the
+ Next/Prev/First/Last buttons won't appear on individual [% terms.bugs %].
+ </h2>
+[% END %]
+
+[% SET shown_types = [
+ 'notequals', 'regexp', 'notregexp', 'lessthan', 'lessthaneq',
+ 'greaterthan', 'greaterthaneq', 'changedbefore', 'changedafter',
+ 'changedfrom', 'changedto', 'changedby', 'notsubstring', 'nowords',
+ 'nowordssubstr', 'notmatches',
+] %]
+<ul class="search_description">
+[% FOREACH desc_item = search_description %]
+ <li>
+ <strong>[% field_descs.${desc_item.field} FILTER html %]:</strong>
+ [% IF shown_types.contains(desc_item.type) || debug %]
+ ([% search_descs.${desc_item.type} FILTER html %])
+ [% END %]
+ [% FOREACH val IN desc_item.value.split(',') %]
+ [%+ display_value(desc_item.field, val) FILTER html %][% ',' UNLESS loop.last %]
+ [% END %]
+ [% IF debug %]
+ (<code>[% desc_item.term FILTER html %]</code>)
+ [% END %]
+ </li>
+[% END %]
+</ul>
+
+<hr>
+
+[%############################################################################%]
+[%# Preceding Status Line #%]
+[%############################################################################%]
+
+[% IF bugs.size > 9 %]
+ <span class="bz_result_count">
+ [% bugs.size %] [%+ terms.bugs %] found.
+ </span>
+[% END %]
+
+[%############################################################################%]
+[%# Start of Change Form #%]
+[%############################################################################%]
+
+[% IF dotweak %]
+ <form name="changeform" method="post" action="process_bug.cgi">
+[% END %]
+
+[%############################################################################%]
+[%# Bug Table #%]
+[%############################################################################%]
+
+[% FLUSH %]
+[% PROCESS list/table.html.tmpl %]
+
+[%############################################################################%]
+[%# Succeeding Status Line #%]
+[%############################################################################%]
+
+<span class="bz_result_count">
+ [% IF bugs.size == 0 %]
+ <span class="zero_results">[% terms.zeroSearchResults %].</span>
+ [% ELSIF bugs.size == 1 %]
+ One [% terms.bug %] found.
+ [% ELSE %]
+ [% bugs.size %] [%+ terms.bugs %] found.
+ [% END %]
+</span>
+
+[% IF bugs.size == 0 %]
+ <ul class="zero_result_links">
+ <li>[% PROCESS enter_bug_link %]</li>
+ [% IF one_product.defined %]
+ <li><a href="enter_bug.cgi">File a new [% terms.bug %] in a
+ different product</a></li>
+ [% END %]
+ <li><a href="[% PROCESS edit_search_url %]">Edit this search</a></li>
+ <li><a href="query.cgi">Start a new search</a></li>
+ </ul>
+[% END %]
+
+<br>
+
+[%############################################################################%]
+[%# Rest of Change Form #%]
+[%############################################################################%]
+
+[% IF dotweak %]
+ [% PROCESS "list/edit-multiple.html.tmpl" %]
+ </form>
+ <hr>
+[% END %]
+
+[%############################################################################%]
+[%# Navigation Bar #%]
+[%############################################################################%]
+
+<table>
+ <tr>
+ [% IF bugs.size > 0 %]
+ <td valign="middle" class="bz_query_buttons">
+ <form method="post" action="show_bug.cgi">
+ [% FOREACH id = buglist %]
+ <input type="hidden" name="id" value="[% id FILTER html %]">
+ [% END %]
+ <input type="hidden" name="format" value="multiple">
+ <input type="submit" id="long_format" value="Long Format">
+ </form>
+ <form method="post" action="show_bug.cgi">
+ <input type="hidden" name="ctype" value="xml">
+ [% FOREACH id = buglist %]
+ <input type="hidden" name="id" value="[% id FILTER html %]">
+ [% END %]
+ <input type="hidden" name="excludefield" value="attachmentdata">
+ <input type="submit" value="XML" id="xml">
+ </form>
+
+ [% IF user.is_timetracker %]
+ <form method="post" action="summarize_time.cgi">
+ <input type="hidden" name="id" value="[% buglist_joined FILTER html %]">
+ <input type="submit" id="timesummary" value="Time Summary">
+ </form>
+ [% END %]
+ </td>
+
+ <td>&nbsp;</td>
+
+ <td valign="middle" class="bz_query_links">
+ <a href="buglist.cgi?
+ [% urlquerypart FILTER html %]&amp;ctype=csv">CSV</a> |
+ <a href="buglist.cgi?
+ [% urlquerypart FILTER html %]&amp;title=
+ [%- title FILTER html %]&amp;ctype=atom">Feed</a> |
+ <a href="buglist.cgi?
+ [% urlquerypart FILTER html %]&amp;ctype=ics">iCalendar</a> |
+ <a href="colchange.cgi?
+ [% urlquerypart FILTER html %]&amp;query_based_on=
+ [% defaultsavename OR searchname FILTER url_quote %]">Change&nbsp;Columns</a> |
+
+ [% IF bugs.size > 1 && caneditbugs && !dotweak %]
+ <a href="buglist.cgi?[% urlquerypart FILTER html %]
+ [%- "&order=$qorder" FILTER html IF order %]&amp;tweak=1"
+ >Change&nbsp;Several&nbsp;[% terms.Bugs %]&nbsp;at&nbsp;Once</a>
+ |
+ [% END %]
+
+ [% IF bugowners && user.id %]
+ <a href="mailto:
+ [% bugowners FILTER html %]">Send&nbsp;Mail&nbsp;to&nbsp;[% terms.Bug %]&nbsp;Assignees</a> |
+ [% END %]
+
+ [%# Links to more things users can do with this bug list. %]
+ [% Hook.process("links") %]
+ </td>
+ [% END %]
+
+ <td valign="middle" class="bz_query_edit">
+ <a href="[% PROCESS edit_search_url %]">Edit&nbsp;Search</a>
+ </td>
+
+ [% IF searchtype == "saved" %]
+ <td valign="middle" nowrap="nowrap" class="bz_query_forget">
+ |
+ <a href="buglist.cgi?cmdtype=dorem&amp;remaction=forget&amp;namedcmd=
+ [% searchname FILTER url_quote %]&amp;token=
+ [% issue_hash_token([search_id, searchname]) FILTER url_quote %]">
+ Forget&nbsp;Search&nbsp;'[% searchname FILTER html %]'</a>
+ </td>
+ [% ELSE %]
+ <td>&nbsp;</td>
+
+ <td valign="middle" class="bz_query_remember">
+ <form method="get" action="buglist.cgi">
+ <input type="submit" id="remember" value="Remember search"> as
+ <input type="hidden" name="newquery"
+ value="[% urlquerypart FILTER html %][% "&order=$qorder" FILTER html IF order %]">
+ <input type="hidden" name="cmdtype" value="doit">
+ <input type="hidden" name="remtype" value="asnamed">
+ <input type="text" id="save_newqueryname" name="newqueryname" size="20"
+ value="[% defaultsavename FILTER html %]">
+ </form>
+ </td>
+ [% END %]
+ </tr>
+</table>
+
+[% IF one_product.defined && bugs.size %]
+ <p class="bz_query_single_product">
+ [% PROCESS enter_bug_link %]
+ </p>
+[% END %]
+
+[%############################################################################%]
+[%# Page Footer #%]
+[%############################################################################%]
+
+[% PROCESS global/footer.html.tmpl %]
+
+[% BLOCK edit_search_url %]
+ [% editqueryname = searchname OR defaultsavename OR '' %]
+ query.cgi?[% urlquerypart FILTER html %]
+ [%- IF editqueryname != '' %]&amp;known_name=
+ [%- editqueryname FILTER url_quote %]
+ [% END %]
+[% END %]
+
+[% BLOCK enter_bug_link %]
+ <a href="enter_bug.cgi
+ [%- IF one_product.defined %]?product=
+ [%- one_product.name FILTER url_quote %][% END %]">File
+ a new [% terms.bug %]
+ [% IF one_product.defined %]
+ in the "[% one_product.name FILTER html %]" product
+ [% END %]</a>
+[% END %]
diff --git a/template/en/default/list/list.ics.tmpl b/template/en/default/list/list.ics.tmpl
new file mode 100644
index 0000000..3f9e2b8
--- /dev/null
+++ b/template/en/default/list/list.ics.tmpl
@@ -0,0 +1,103 @@
+[%# 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): William Jon McCann <mccann@jhu.edu>
+ #%]
+[% PROCESS global/variables.none.tmpl %]
+BEGIN:VCALENDAR
+CALSCALE:GREGORIAN
+[%+ PROCESS ics_prodid +%]
+VERSION:2.0
+[% FOREACH bug = bugs %]
+BEGIN:VTODO
+[%+ PROCESS ics_dtstart +%]
+[%+ PROCESS ics_summary +%]
+[%+ PROCESS ics_uid base_url=urlbase bug_id=bug.bug_id +%]
+[%+ PROCESS ics_url base_url=urlbase bug_id=bug.bug_id +%]
+[%+ PROCESS ics_status bug_status = bug.bug_status +%]
+[%+ PROCESS ics_dtstamp +%]
+[%+ ics_priorities.${bug.priority} FILTER ics('PRIORITY') +%]
+[% IF bug.changeddate %]
+[%+ bug.changedtime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('LAST-MODIFIED') +%]
+[% END %]
+[% IF bug.percentage_complete %]
+[%+ bug.percentage_complete FILTER format('%d') FILTER ics('PERCENT-COMPLETE') +%]
+[% END %]
+[% IF bug.product %]
+[%+ bug.product FILTER ics('X-BUGZILLA-PRODUCT') +%]
+[% END %]
+[% IF bug.component %]
+[%+ bug.component FILTER ics('X-BUGZILLA-COMPONENT') +%]
+[% END %]
+[% IF bug.version %]
+[%+ bug.version FILTER ics('X-BUGZILLA-VERSION') +%]
+[% END %]
+[% IF bug.keywords %]
+[%+ bug.keywords FILTER ics('X-BUGZILLA-KEYWORDS') +%]
+[% END %]
+END:VTODO
+[% END %]
+END:VCALENDAR
+
+[% BLOCK ics_prodid %]
+ [% "-//Mozilla/Bugzilla $constants.BUGZILLA_VERSION//EN" FILTER ics('PRODID') %]
+[% END %]
+
+[% BLOCK ics_uid %]
+ [% "${bug_id}@${base_url}" FILTER url_quote FILTER ics('UID') %]
+[% END %]
+
+[% BLOCK ics_url %]
+ [% "${base_url}show_bug.cgi?id=${bug_id}" FILTER url_quote FILTER ics('URL;VALUE=URI') %]
+[% END %]
+
+[% BLOCK ics_dtstart %]
+ [% bug.opentime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTART') %]
+[% END %]
+
+[% BLOCK ics_dtstamp %]
+ [% currenttime FILTER time("%Y%m%dT%H%M%SZ", "UTC") FILTER ics('DTSTAMP') %]
+[% END %]
+
+[% BLOCK ics_status %]
+ [% status = "" %]
+ [% FOREACH state = closedstates %]
+ [% IF bug_status == state %]
+ [% status = 'COMPLETED' %]
+ [% LAST %]
+ [% END %]
+ [% END %]
+ [% IF NOT status %]
+ [% IF bug_status == 'ASSIGNED' %]
+ [% status = 'IN-PROGRESS' %]
+ [% ELSE %]
+ [% status = 'NEEDS-ACTION' %]
+ [% END %]
+ [% END %]
+ [% status FILTER ics('STATUS') %]
+[% END %]
+
+[% BLOCK ics_summary %]
+ [% IF bug.short_desc %]
+ [% summary = bug.short_desc %]
+ [% ELSIF bug.short_short_desc %]
+ [% summary = bug.short_short_desc %]
+ [% ELSE %]
+ [% summary = "$terms.Bug $bug.bug_id" %]
+ [% END %]
+ [% summary FILTER ics('SUMMARY') %]
+[% END %]
diff --git a/template/en/default/list/list.js.tmpl b/template/en/default/list/list.js.tmpl
new file mode 100644
index 0000000..7e9664c
--- /dev/null
+++ b/template/en/default/list/list.js.tmpl
@@ -0,0 +1,37 @@
+[%# 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>
+ #%]
+
+// Note: only publicly-accessible bugs (those not in any group) will be
+// listed when using this JavaScript format. This is to prevent malicious
+// sites stealing information about secure bugs.
+
+bugs = new Array;
+
+[% FOREACH bug = bugs %]
+ bugs[[% bug.bug_id %]] = [
+ [% FOREACH column = displaycolumns %]
+ "[%- bug.$column FILTER js -%]"[% "," UNLESS loop.last %]
+ [% END %]
+ ];
+[% END %]
+
+if (window.buglistCallback) {
+ buglistCallback(bugs);
+}
diff --git a/template/en/default/list/list.rdf.tmpl b/template/en/default/list/list.rdf.tmpl
new file mode 100644
index 0000000..99c06c1
--- /dev/null
+++ b/template/en/default/list/list.rdf.tmpl
@@ -0,0 +1,56 @@
+[%# 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>
+ #%]
+
+<?xml version="1.0"[% IF Param('utf8') %] encoding="UTF-8"[% END %]?>
+<!-- [% template_version %] -->
+<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#"
+ xmlns:nc="http://home.netscape.com/NC-rdf#">
+
+<bz:result rdf:about="[% urlbase FILTER xml %]buglist.cgi?[% urlquerypart FILTER html %]">
+ <bz:installation rdf:resource="[% urlbase FILTER xml %]" />
+ <bz:query_timestamp>[% currenttime FILTER time('%Y-%m-%d %T %Z') FILTER html %]</bz:query_timestamp>
+ <bz:bugs>
+ <Seq>
+ [% FOREACH bug = bugs %]
+ <li>
+
+ <bz:bug rdf:about="[% urlbase FILTER xml %]show_bug.cgi?id=[% bug.bug_id %]">
+
+ <bz:id nc:parseType="Integer">[% bug.bug_id %]</bz:id>
+
+ [% FOREACH column = displaycolumns %]
+ <bz:[% column %][% ' nc:parseType="Integer"' IF column == "votes" %]>[% bug.$column FILTER html %]</bz:[% column %]>
+ [% END %]
+
+ </bz:bug>
+
+ </li>
+
+ [% END %]
+
+ </Seq>
+
+ </bz:bugs>
+
+</bz:result>
+
+</RDF>
diff --git a/template/en/default/list/quips.html.tmpl b/template/en/default/list/quips.html.tmpl
new file mode 100644
index 0000000..1404b2e
--- /dev/null
+++ b/template/en/default/list/quips.html.tmpl
@@ -0,0 +1,168 @@
+[%# 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:
+ # added_quip: string. Defined if the CGI added a quip data before
+ # displaying anything; if defined, its value is that quip.
+ # show_quips: boolean. True if we are showing the entire quip list.
+ # quips: list of strings. Defined if and only if show_quips is true.
+ # List of all quips.
+ #%]
+
+[% PROCESS global/variables.none.tmpl %]
+
+[% PROCESS global/header.html.tmpl
+ title = "$terms.Bugzilla Quip System"
+ header = "Add your own clever headline"
+ %]
+
+[% IF added_quip %]
+ <p>
+ <font color="red">
+ Your quip '<tt>[% added_quip FILTER html %]</tt>' has been added.
+ [% IF Param("quip_list_entry_control") == "moderated" AND !user.in_group('admin') %]
+ It will be used as soon as it gets approved.
+ [% END %]
+ </font>
+ </p>
+[% END %]
+
+[% IF deleted_quip %]
+ <p>
+ <font color="red">
+ The quip '<tt>[% deleted_quip FILTER html %]</tt>' has been deleted.
+ </font>
+ </p>
+[% END %]
+
+[% IF approved or unapproved %]
+ <p>[% approved.size %] quips approved and [% unapproved.size %] quips unapproved</p>
+[% END %]
+
+
+<p>
+ [% terms.Bugzilla %] will pick a random quip for the headline on each
+ [% terms.bug %] list.
+</p>
+
+[% IF Param("quip_list_entry_control") != "closed" %]
+ <p>
+ You can extend the quip list. Type in something clever or funny or boring
+ (but not obscene or offensive, please) and bonk on the button.
+ [% IF Param("quip_list_entry_control") == "moderated" AND !user.in_group('admin') %]
+ Note that your quip has to be approved before it is used.
+ [% END %]
+ </p>
+
+ <form method="post" action="quips.cgi">
+ <input type="hidden" name="action" value="add">
+ <input size="80" name="quip">
+ <p>
+ <input type="submit" id="add" value="Add This Quip">
+ </p>
+ </form>
+[% ELSE %]
+ <p>No new entries may be submitted at this time.
+ </p>
+[% END %]
+
+[% IF show_quips %]
+ [% IF !user.in_group('admin') %]
+ <h2>
+ Existing quips:
+ </h2>
+ <ul>
+ [% FOREACH quipid = quipids %]
+ [% NEXT IF NOT quips.$quipid.approved %]
+ <li>[% quips.$quipid.quip FILTER html %]</li>
+ [% END %]
+ </ul>
+ [% ELSE %]
+ <h2>Edit existing quips:</h2>
+ <p>
+ <strong>Note:</strong> Only approved quips will be shown.
+ If the parameter 'quip_list_entry_control' is set to <q>open</q>,
+ entered quips are automatically approved.
+ </p>
+ <form name="editform" method="post" action="quips.cgi">
+ <input type="hidden" name="action" value="approve">
+ <table border="1">
+ <thead><tr>
+ <th>Quip</th>
+ <th>Author</th>
+ <th>Action</th>
+ <th>Approved</th>
+ </tr></thead><tbody>
+ [% FOREACH quipid = quipids %]
+ <tr>
+ <td>[% quips.$quipid.quip FILTER html %]</td>
+ <td>
+ [% userid = quips.$quipid.userid %]
+ [% users.$userid FILTER html %]
+ [% "Unknown" IF NOT users.$userid %]
+ </td>
+ <td>
+ <a href="quips.cgi?action=delete&amp;quipid=[% quipid FILTER url_quote %]">
+ Delete
+ </a>
+ </td>
+ <td>
+ <input type="hidden" name="defined_quipid_[% quipid FILTER html %]"
+ id="defined_quipid_[% quipid FILTER html %]"
+ value="1">
+ <input type="checkbox" name="quipid_[% quipid FILTER html %]"
+ id="quipid_[% quipid FILTER html %]"
+ [%- ' checked="checked"' IF quips.$quipid.approved %]>
+ </td>
+ </tr>
+ [% END %]
+ </tbody>
+ </table>
+ <script type="text/javascript"><!--
+ var numelements = document.forms.editform.elements.length;
+ function SetCheckboxes(value) {
+ var item;
+ for (var i=0 ; i<numelements ; i++) {
+ item = document.forms.editform.elements[i];
+ item.checked = value;
+ }
+ }
+ document.write(' <input type="button" name="uncheck_all" '
+ +'value="Uncheck All" onclick="SetCheckboxes(false);">');
+ document.write(' <input type="button" name="check_all" '
+ +'value="Check All" onclick="SetCheckboxes(true);">');
+ //--></script>
+
+ <input type="submit" id="update" value="Save Changes">
+ </form>
+ <br>
+ [% END %]
+[% ELSE %]
+ <p>
+ Those who like their wisdom in large doses can
+ <a href="quips.cgi?action=show">view
+ [% IF user.in_group('admin') %]
+ and edit
+ [% END %]
+ the whole quip list</a>.
+ </p>
+[% END %]
+
+[% PROCESS global/footer.html.tmpl %]
diff --git a/template/en/default/list/server-push.html.tmpl b/template/en/default/list/server-push.html.tmpl
new file mode 100644
index 0000000..d1c157f
--- /dev/null
+++ b/template/en/default/list/server-push.html.tmpl
@@ -0,0 +1,47 @@
+[%# 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>
+ #%]
+
+[%# INTERFACE:
+ # debug: boolean. True if we want the search displayed while we wait.
+ # query: string. The SQL query which makes the buglist.
+ #%]
+
+[% PROCESS global/variables.none.tmpl %]
+
+<html>
+ <head>
+ <title>[% terms.Bugzilla %] is pondering your search</title>
+ </head>
+ <body>
+ <h1 style="margin-top: 20%; text-align: center;">Please stand by ...</h1>
+
+ [% IF debug %]
+ <p>
+ [% FOREACH debugline = debugdata %]
+ <code>[% debugline FILTER html %]</code><br>
+ [% END %]
+ </p>
+ <p>
+ <code>[% query FILTER html %]</code>
+ </p>
+ [% END %]
+
+ </body>
+</html>
diff --git a/template/en/default/list/table.html.tmpl b/template/en/default/list/table.html.tmpl
new file mode 100644
index 0000000..282ea51
--- /dev/null
+++ b/template/en/default/list/table.html.tmpl
@@ -0,0 +1,260 @@
+[%# 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>
+ # Jesse Clark <jjclark1982@gmail.com>
+ #%]
+
+[%############################################################################%]
+[%# Initialization #%]
+[%############################################################################%]
+
+[%# Don't display the table or do any processing if there are no bugs
+ # to display %]
+[% RETURN IF !bugs.size %]
+
+[%# Columns whose titles or values should be abbreviated to make the list
+ # more compact. For columns whose titles should be abbreviated,
+ # the shortened title is included. For columns whose values should be
+ # abbreviated, a maximum length is provided along with the ellipsis that
+ # should be added to an abbreviated value, if any.
+ # wrap is set if a column's contents should be allowed to be word-wrapped
+ # by the browser.
+ #%]
+
+[% PROCESS "global/field-descs.none.tmpl" %]
+[% field_descs.short_short_desc = field_descs.short_desc %]
+[% field_descs.assigned_to_realname = field_descs.assigned_to %]
+[% field_descs.reporter_realname = field_descs.reporter %]
+[% field_descs.qa_contact_realname = field_descs.qa_contact %]
+
+[% abbrev =
+ {
+ "bug_severity" => { maxlength => 3 , title => "Sev" } ,
+ "priority" => { maxlength => 3 , title => "Pri" } ,
+ "rep_platform" => { maxlength => 3 , title => "Plt" } ,
+ "bug_status" => { maxlength => 4 } ,
+ "assigned_to" => { maxlength => 30 , ellipsis => "..." } ,
+ "assigned_to_realname" => { maxlength => 20 , ellipsis => "..." } ,
+ "reporter" => { maxlength => 30 , ellipsis => "..." } ,
+ "reporter_realname" => { maxlength => 20 , ellipsis => "..." } ,
+ "qa_contact" => { maxlength => 30 , ellipsis => "..." , title => "QAContact" } ,
+ "qa_contact_realname" => { maxlength => 20 , ellipsis => "..." , title => "QAContact" } ,
+ "resolution" => { maxlength => 4 } ,
+ "short_desc" => { wrap => 1 } ,
+ "short_short_desc" => { maxlength => 60 , ellipsis => "..." , wrap => 1 } ,
+ "status_whiteboard" => { title => "Whiteboard" , wrap => 1 } ,
+ "keywords" => { wrap => 1 } ,
+ "flagtypes.name" => { wrap => 1 } ,
+ "component" => { maxlength => 8 , title => "Comp" } ,
+ "product" => { maxlength => 8 } ,
+ "version" => { maxlength => 5 , title => "Vers" } ,
+ "op_sys" => { maxlength => 4 } ,
+ "target_milestone" => { title => "TargetM" } ,
+ "percentage_complete" => { format_value => "%d %%" } ,
+ }
+%]
+
+[% PROCESS bug/time.html.tmpl %]
+
+[%############################################################################%]
+[%# Table Header #%]
+[%############################################################################%]
+
+[% tableheader = BLOCK %]
+ <table class="bz_buglist" cellspacing="0" cellpadding="4" width="100%">
+ <tr class="bz_buglist_header bz_first_buglist_header">
+ [% IF dotweak %]
+ <th>&nbsp;</th>
+ [% END %]
+ <th colspan="[% splitheader ? 2 : 1 %]" class="first-child">
+ <a href="buglist.cgi?
+ [% urlquerypart FILTER html %]&amp;order=
+ [% PROCESS new_order id='bug_id' %]
+ [%-#%]&amp;query_based_on=
+ [% defaultsavename OR searchname FILTER url_quote %]">ID
+ [% PROCESS order_arrow id='bug_id' ~%]
+ </a>
+ </th>
+
+ [% IF splitheader %]
+
+ [% FOREACH id = displaycolumns %]
+ [% NEXT UNLESS loop.count() % 2 == 0 %]
+ [% column = columns.$id %]
+ [% PROCESS columnheader %]
+ [% END %]
+
+ </tr><tr class="bz_buglist_header">
+ [% IF dotweak %]
+ <th>&nbsp;</th>
+ [% END %]
+ <th>&nbsp;</th>
+
+ [% FOREACH id = displaycolumns %]
+ [% NEXT IF loop.count() % 2 == 0 %]
+ [% column = columns.$id %]
+ [% PROCESS columnheader %]
+ [% END %]
+
+ [% ELSE %]
+
+ [% FOREACH id = displaycolumns %]
+ [% column = columns.$id %]
+ [% PROCESS columnheader %]
+ [% END %]
+
+ [% END %]
+
+ </tr>
+[% END %]
+
+[% BLOCK columnheader %]
+ <th colspan="[% splitheader ? 2 : 1 %]">
+ <a href="buglist.cgi?[% urlquerypart FILTER html %]&amp;order=
+ [% PROCESS new_order %]
+ [%-#%]&amp;query_based_on=
+ [% defaultsavename OR searchname FILTER url_quote %]">
+ [%- abbrev.$id.title || field_descs.$id || column.title -%]
+ [% PROCESS order_arrow ~%]
+ </a>
+ </th>
+[% END %]
+
+[% BLOCK new_order %]
+ [% desc = '' %]
+ [% IF (om = order.match("\\b$id( DESC)?")) %]
+ [% desc = ' DESC' IF NOT om.0 %]
+ [% END %]
+ [% id _ desc FILTER url_quote %]
+ [% IF id != 'bug_id' AND order %]
+ [% ',' _ order.remove("\\b$id( DESC)?(,\\s*|\$)") FILTER url_quote %]
+ [% END %]
+[% END %]
+
+[% BLOCK order_arrow %]
+ [% IF order.match("^$id DESC") %]
+ <span class="bz_sort_order_primary">&#x25BC;</span>
+ [% ELSIF order.match("^$id(,\\s*|\$)") %]
+ <span class="bz_sort_order_primary">&#x25B2;</span>
+ [% ELSIF order.match("\\b$id DESC") %]
+ <span class="bz_sort_order_secondary">&#x25BC;</span>
+ [% ELSIF order.match("\\b$id(,\\s*|\$)") %]
+ <span class="bz_sort_order_secondary">&#x25B2;</span>
+ [% END %]
+[% END %]
+
+[%############################################################################%]
+[%# Bug Table #%]
+[%############################################################################%]
+
+[% Hook.process("before_table") %]
+
+[% tableheader %]
+
+[% FOREACH bug = bugs %]
+ [% count = loop.count() %]
+
+ <tr class="bz_bugitem
+ bz_[% bug.bug_severity FILTER css_class_quote -%]
+ bz_[% bug.priority FILTER css_class_quote -%]
+ bz_[% bug.bug_status FILTER css_class_quote -%]
+ [%+ "bz_$bug.resolution" FILTER css_class_quote IF bug.resolution -%]
+ [%+ "bz_secure" IF bug.secure_mode -%]
+ [%+ "bz_secure_mode_$bug.secure_mode" FILTER css_class_quote IF bug.secure_mode -%]
+ [%+ count % 2 == 1 ? "bz_row_odd" : "bz_row_even" -%]
+ ">
+
+ [% IF dotweak %]
+ <td class="bz_checkbox_column">
+ <input type="checkbox" name="id_[% bug.bug_id %]">
+ </td>
+ [% END %]
+ <td class="first-child bz_id_column">
+ <a name="b[% bug.bug_id %]"
+ href="show_bug.cgi?id=[% bug.bug_id %]">[% bug.bug_id %]</a>
+ <span style="display: none">[%+ '[SEC]' IF bug.secure_mode %]</span>
+ </td>
+
+ [% FOREACH column = displaycolumns %]
+ <td [% 'style="white-space: nowrap"' IF NOT abbrev.$column.wrap %]
+ class="bz_[% column FILTER css_class_quote %]_column">
+ [% IF abbrev.$column.maxlength %]
+ <span title="[%- display_value(column, bug.$column) FILTER html %]">
+ [% END %]
+ [% IF abbrev.$column.format_value %]
+ [%- bug.$column FILTER format(abbrev.$column.format_value) FILTER html -%]
+ [% ELSIF column == 'actual_time' ||
+ column == 'remaining_time' ||
+ column == 'estimated_time' %]
+ [% PROCESS formattimeunit time_unit=bug.$column %]
+ [%# Display the login name of the user if their real name is empty. %]
+ [% ELSIF column.match('_realname$') && bug.$column == '' %]
+ [% SET login_column = column.remove('_realname$') %]
+ [% bug.${login_column}.truncate(abbrev.$column.maxlength,
+ abbrev.$column.ellipsis) FILTER html %]
+
+ [% ELSE %]
+ [%- display_value(column, bug.$column).truncate(abbrev.$column.maxlength, abbrev.$column.ellipsis) FILTER html -%]
+ [% END %]
+ [% IF abbrev.$column.maxlength %]
+ </span>
+ [% END %]
+ </td>
+ [% END %]
+
+ </tr>
+
+ [% IF loop.last() && time_info.time_present == 1 %]
+ [% PROCESS time_summary_line %]
+ [% END %]
+
+[% END %]
+
+</table>
+
+[% BLOCK time_summary_line %]
+ <tr class="bz_time_summary_line">
+ [% columns_to_span = 1 %] [%# bugID %]
+ [% IF dotweak %]
+ [% columns_to_span = columns_to_span + 1 %]
+ [% END %]
+ [% FOREACH column = displaycolumns %]
+ [% IF column == 'actual_time' ||
+ column == 'remaining_time' ||
+ column == 'estimated_time' ||
+ column == 'percentage_complete' %]
+ [% IF columns_to_span > 0 %]
+ <td class="bz_total bz_total_label" colspan="
+ [%- columns_to_span FILTER html %]"><b>Totals</b></td>
+ [% columns_to_span = 0 %]
+ [% END %]
+ [% IF column == 'percentage_complete' %]
+ <td class="bz_total">[% time_info.percentage_complete
+ FILTER format(abbrev.$column.format_value) FILTER html %]</td>
+ [% ELSE %]
+ <td class="bz_total">
+ [%- PROCESS formattimeunit time_unit=time_info.$column %]</td>
+ [% END %]
+ [% ELSIF columns_to_span == 0 %] [%# A column following the first total %]
+ <td class="bz_total">&nbsp;</td>
+ [% ELSE %] [%# We haven't gotten to a time column yet, keep computing span %]
+ [% columns_to_span = columns_to_span + 1 %]
+ [% END %]
+ [% END %]
+ </tr>
+[% END %]