| [%# This Source Code Form is subject to the terms of the Mozilla Public |
| # License, v. 2.0. If a copy of the MPL was not distributed with this |
| # file, You can obtain one at http://mozilla.org/MPL/2.0/. |
| # |
| # This Source Code Form is "Incompatible With Secondary Licenses", as |
| # defined by the Mozilla Public License, v. 2.0. |
| #%] |
| |
| [% USE Bugzilla %] |
| [% cgi = Bugzilla.cgi %] |
| |
| [% PROCESS "global/js-products.html.tmpl" %] |
| |
| [% PROCESS global/header.html.tmpl |
| title="Request Queue" |
| generate_api_token = 1 |
| onload="var f = document.request_form; selectProduct(f.product, f.component, 'Any');" |
| javascript_urls=["js/productform.js", "js/field.js"] |
| style_urls = ['skins/standard/buglist.css'] |
| yui = ['autocomplete'] |
| %] |
| |
| <p> |
| When you are logged in, only requests made by you or addressed to you |
| are shown by default. You can change the criteria using the form below. |
| When you are logged out, all pending requests that are not restricted |
| to some group are shown by default. |
| </p> |
| |
| <form id="request_form" name="request_form" action="request.cgi" method="get"> |
| <input type="hidden" name="action" value="queue"> |
| |
| <table id="filtering"> |
| <tr> |
| <th>Requester:</th> |
| <td> |
| [% INCLUDE global/userselect.html.tmpl |
| id => "requester" |
| name => "requester" |
| value => cgi.param('requester') |
| size => 20 |
| emptyok => 1 |
| field_title => "Requester's email address" |
| %] |
| </td> |
| <th>Product:</th> |
| <td> |
| [% INCLUDE "global/product-select.html.tmpl" |
| id => "product" |
| name => "product" |
| add => "Any" |
| onchange => "selectProduct(this, this.form.component, 'Any');" |
| %] |
| </td> |
| <th>Flag:</th> |
| <td> |
| [% PROCESS "global/select-menu.html.tmpl" |
| name="type" |
| options=types |
| default=cgi.param('type') %] |
| </td> |
| |
| [%# We could let people see a "queue" of non-pending requests. %] |
| <!-- |
| <th>Status:</th> |
| <td> |
| [%# PROCESS "global/select-menu.html.tmpl" |
| name="status" |
| options=["all", "?", "+-", "+", "-"] |
| default=cgi.param('status') %] |
| </td> |
| --> |
| |
| </tr> |
| <tr> |
| <th>Requestee:</th> |
| <td> |
| [% INCLUDE global/userselect.html.tmpl |
| id => "requestee" |
| name => "requestee" |
| value => cgi.param('requestee') |
| size => 20 |
| emptyok => 1 |
| hyphenok => 1 |
| field_title => "Requestee's email address or \"-\" (hyphen) for requests with no requestee" |
| %] |
| </td> |
| <th>Component:</th> |
| <td> |
| <select name="component"> |
| <option value="">Any</option> |
| [% FOREACH comp = components %] |
| <option value="[% comp FILTER html %]" [% "selected" IF cgi.param('component') == comp %]> |
| [% comp FILTER html %]</option> |
| [% END %] |
| </select> |
| </td> |
| <th>Group By:</th> |
| <td> |
| [% groups = { |
| "Requester" => 'requester' , |
| "Requestee" => 'requestee', |
| "Flag" => 'type' , |
| "Product/Component" => 'category' |
| } %] |
| [% PROCESS "global/select-menu.html.tmpl" name="group" options=groups default=cgi.param('group') %] |
| </td> |
| </tr> |
| <tr> |
| <th></th> |
| <td> |
| <select id="do_union" name="do_union"> |
| <option value="0">Match the requester AND requestee</option> |
| <option value="1" [% 'selected="selected"' IF cgi.param('do_union') %]> |
| Match the requester OR requestee</option> |
| </select> |
| </td> |
| <td colspan="3"></td> |
| <td><input type="submit" id="filter" value="Filter"></td> |
| </tr> |
| </table> |
| </form> |
| |
| [% column_headers = { |
| "type" => "Flag" , |
| "status" => "Status" , |
| "bug" => "$terms.Bug" , |
| "attachment" => "Attachment" , |
| "requester" => "Requester" , |
| "requestee" => "Requestee" , |
| "created" => "Created" , |
| "category" => "Product/Component" } %] |
| |
| [% DEFAULT display_columns = ["requester", "requestee", "type", "bug", "attachment", "created"] |
| group_field = "Requestee" |
| group_value = "" |
| %] |
| |
| [% IF debug %] |
| <p>[% query FILTER html %]</p> |
| [% END %] |
| |
| [% IF requests.size == 0 %] |
| <p> |
| No requests. |
| </p> |
| [% ELSE %] |
| [% FOREACH request = requests %] |
| [% IF request.$group_field != group_value || loop.first %] |
| [% group_value = request.$group_field %] |
| [% PROCESS display_buglist UNLESS loop.first %] |
| [% PROCESS start_new_table %] |
| [% END %] |
| [% buglist.${request.bug_id} = 1 %] |
| <tr> |
| [% FOREACH column = display_columns %] |
| [% NEXT IF column == group_field || excluded_columns.contains(column) %] |
| <td> |
| [% PROCESS "display_$column" %] |
| [% Hook.process('after_column') %] |
| </td> |
| [% END %] |
| </tr> |
| [% END %] |
| [% PROCESS display_buglist %] |
| <br><br> |
| <a href="request.cgi?[% urlquerypart FILTER html %]&ctype=csv">View entire list as CSV</a> |
| [% END %] |
| |
| [% PROCESS global/footer.html.tmpl %] |
| |
| [% BLOCK start_new_table %] |
| [% buglist = {} %] |
| |
| <h3>[% column_headers.$group_field %]: |
| [%+ (request.$group_field || "None") FILTER email FILTER html %]</h3> |
| <table class="requests"> |
| <tr> |
| [% FOREACH column = display_columns %] |
| [% NEXT IF column == group_field || excluded_columns.contains(column) %] |
| <th>[% column_headers.$column %]</th> |
| [% END %] |
| </tr> |
| [% END %] |
| |
| [% BLOCK display_type %] |
| [% request.type FILTER html %] |
| [% END %] |
| |
| [% BLOCK display_status %] |
| [% request.status %] |
| [% END %] |
| |
| [% BLOCK display_bug %] |
| <a href="show_bug.cgi?id=[% request.bug_id %]" |
| [%- ' class="bz_secure"' IF request.restricted %]> |
| [% request.bug_id %]: [%+ request.bug_summary FILTER html %]</a> |
| [% END %] |
| |
| [% BLOCK display_attachment %] |
| [% IF request.attach_id %] |
| [%# if WEBKIT_CHANGES #%] |
| <a href="attachment.cgi?id=[% request.attach_id %]&action=review"> |
| [%# endif // WEBKIT_CHANGES #%] |
| [% request.attach_id %]: [%+ request.attach_summary FILTER html %]</a> |
| [% ELSE %] |
| N/A |
| [% END %] |
| [% END %] |
| |
| [% BLOCK display_requestee %] |
| [% request.requestee FILTER email FILTER html %] |
| [% END %] |
| |
| [% BLOCK display_requester %] |
| [% request.requester FILTER email FILTER html %] |
| [% END %] |
| |
| [% BLOCK display_created %] |
| [% request.created FILTER time %] |
| [% END %] |
| |
| [% BLOCK display_buglist %] |
| </table> |
| [% NEXT UNLESS buglist.keys.size %] |
| <a href="buglist.cgi?bug_id= |
| [%- buglist.keys.nsort.join(",") FILTER html %]">View as |
| [%+ terms.bug %] list</a> |
| [% END %] |