r=dkl a=LpSolit git-svn-id: svn://10.0.0.236/trunk@264654 18797224-902f-48f8-a5cc-f745e15eee43
268 lines
8.2 KiB
Cheetah
268 lines
8.2 KiB
Cheetah
[%# 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/header.html.tmpl
|
|
title="Request Queue"
|
|
onload="var f = document.request_form; selectProduct(f.product, f.component, null, null, 'Any');"
|
|
javascript_urls=["js/productform.js", "js/field.js"]
|
|
style_urls = ['skins/standard/buglist.css']
|
|
yui = ['autocomplete']
|
|
%]
|
|
|
|
<script type="text/javascript">
|
|
var useclassification = false; // No classification level in use
|
|
var first_load = true; // Is this the first time we load the page?
|
|
var last_sel = []; // Caches last selection
|
|
var cpts = new Array();
|
|
[% n = 1 %]
|
|
[% IF Param('useclassification') %]
|
|
[% FOREACH clas = user.get_selectable_classifications %]
|
|
[% FOREACH prod = user.get_selectable_products(clas.id) %]
|
|
[%+ PROCESS js_comp %]
|
|
[% END %]
|
|
[% END %]
|
|
[% ELSE %]
|
|
[% FOREACH prod = user.get_selectable_products %]
|
|
[%+ PROCESS js_comp %]
|
|
[% END %]
|
|
[% END %]
|
|
</script>
|
|
|
|
[% BLOCK js_comp %]
|
|
cpts['[% n %]'] = [
|
|
[%- FOREACH comp = prod.components %]'[% comp.name FILTER js %]'[% ", " UNLESS loop.last %] [%- END -%]];
|
|
[% n = n+1 %]
|
|
[% END %]
|
|
|
|
<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>
|
|
<select name="product" onchange="selectProduct(this, this.form.component, null, null, 'Any');">
|
|
<option value="">Any</option>
|
|
[% IF Param('useclassification') %]
|
|
[% FOREACH c = user.get_selectable_classifications %]
|
|
<optgroup label="[% c.name FILTER html %]">
|
|
[% FOREACH p = user.get_selectable_products(c.id) %]
|
|
<option value="[% p.name FILTER html %]"
|
|
[% " selected" IF cgi.param('product') == p.name %]>
|
|
[% p.name FILTER html %]
|
|
</option>
|
|
[% END %]
|
|
</optgroup>
|
|
[% END %]
|
|
[% ELSE %]
|
|
[% FOREACH p = user.get_selectable_products %]
|
|
<option value="[% p.name FILTER html %]"
|
|
[% " selected" IF cgi.param('product') == p.name %]>
|
|
[% p.name FILTER html %]
|
|
</option>
|
|
[% END %]
|
|
[% END %]
|
|
</select>
|
|
</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>
|
|
<label><input type="radio" name="do_union" value="0"
|
|
[% 'checked="checked"' IF !cgi.param('do_union') %]>AND *</label>
|
|
<label><input type="radio" name="do_union" value="1"
|
|
[% 'checked="checked"' IF cgi.param('do_union') %]>OR *</label>
|
|
</td>
|
|
<td colspan="3"></td>
|
|
<td><input type="submit" id="filter" value="Filter"></td>
|
|
</tr>
|
|
</table>
|
|
|
|
<p>(* The logical conjunction/disjunction between the requester
|
|
and the requestee)</p>
|
|
</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" cellspacing="0" cellpadding="4" border="1">
|
|
<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 %]
|
|
<a href="attachment.cgi?id=[% request.attach_id %]&action=edit">
|
|
[% 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 %]
|