- add user to result display and allow searching/limiting by user email (admin only)

Other:
- search results now validate as XHTML transitional
This commit is contained in:
ccooper%deadsquid.com 2005-12-23 23:08:08 +00:00
Родитель 683322a8ad
Коммит 6bd65a6d5f
15 изменённых файлов: 138 добавлений и 80 удалений

Просмотреть файл

@ -81,10 +81,10 @@ Litmus::DB::Testresult->has_many(bugs => "Litmus::DB::Resultbug", {order_by => '
Litmus::DB::Testresult->autoinflate(dates => 'Time::Piece'); Litmus::DB::Testresult->autoinflate(dates => 'Time::Piece');
Litmus::DB::Testresult->set_sql(DefaultTestResults => qq{ Litmus::DB::Testresult->set_sql(DefaultTestResults => qq{
SELECT tr.testresult_id,tr.test_id,t.summary,tr.submission_time AS created,p.name AS platform_name,pr.name as product_name,trsl.name AS result_status,trsl.class_name result_status_class,b.name AS branch_name,tg.name AS test_group_name, tr.locale_abbrev SELECT tr.testresult_id,tr.test_id,t.summary,tr.submission_time AS created,p.name AS platform_name,pr.name as product_name,trsl.name AS result_status,trsl.class_name result_status_class,b.name AS branch_name,tg.name AS test_group_name, tr.locale_abbrev, u.email
FROM test_results tr, tests t, platforms p, opsyses o, branches b, products FROM test_results tr, tests t, platforms p, opsyses o, branches b, products
pr, test_result_status_lookup trsl, test_groups tg, subgroups sg pr, test_result_status_lookup trsl, test_groups tg, subgroups sg, users u
WHERE tr.test_id=t.test_id AND tr.platform_id=p.platform_id AND tr.opsys_id=o.opsys_id AND tr.branch_id=b.branch_id AND b.product_id=pr.product_id AND tr.result_id=trsl.result_status_id AND t.subgroup_id=sg.subgroup_id AND sg.testgroup_id=tg.testgroup_id WHERE tr.test_id=t.test_id AND tr.platform_id=p.platform_id AND tr.opsys_id=o.opsys_id AND tr.branch_id=b.branch_id AND b.product_id=pr.product_id AND tr.result_id=trsl.result_status_id AND t.subgroup_id=sg.subgroup_id AND sg.testgroup_id=tg.testgroup_id AND tr.user_id=u.user_id
ORDER BY tr.submission_time DESC ORDER BY tr.submission_time DESC
LIMIT $_num_results_default LIMIT $_num_results_default
}); });
@ -165,7 +165,7 @@ sub istrusted {
sub getDefaultTestResults($) { sub getDefaultTestResults($) {
my $self = shift; my $self = shift;
my @rows = $self->search_DefaultTestResults(); my @rows = $self->search_DefaultTestResults();
my $criteria = "Default<br/>Ordered by Created<br>Limit to $_num_results_default results"; my $criteria = "Default<br/>Ordered by Created<br/>Limit to $_num_results_default results";
return $criteria, \@rows; return $criteria, \@rows;
} }
@ -176,11 +176,11 @@ sub getDefaultTestResults($) {
sub getTestResults($\@\@$) { sub getTestResults($\@\@$) {
my ($self,$where_criteria,$order_by_criteria,$limit_value) = @_; my ($self,$where_criteria,$order_by_criteria,$limit_value) = @_;
my $select = 'SELECT tr.testresult_id,tr.test_id,t.summary,tr.submission_time AS created,p.name AS platform_name,pr.name as product_name,trsl.name AS result_status,trsl.class_name AS result_status_class,b.name AS branch_name,tg.name AS test_group_name, tr.locale_abbrev'; my $select = 'SELECT tr.testresult_id,tr.test_id,t.summary,tr.submission_time AS created,p.name AS platform_name,pr.name as product_name,trsl.name AS result_status,trsl.class_name AS result_status_class,b.name AS branch_name,tg.name AS test_group_name, tr.locale_abbrev, u.email';
my $from = 'FROM test_results tr, tests t, platforms p, opsyses o, branches b, products pr, test_result_status_lookup trsl, test_groups tg, subgroups sg'; my $from = 'FROM test_results tr, tests t, platforms p, opsyses o, branches b, products pr, test_result_status_lookup trsl, test_groups tg, subgroups sg, users u';
my $where = 'WHERE tr.test_id=t.test_id AND tr.platform_id=p.platform_id AND tr.opsys_id=o.opsys_id AND tr.branch_id=b.branch_id AND b.product_id=pr.product_id AND tr.result_id=trsl.result_status_id AND t.subgroup_id=sg.subgroup_id AND sg.testgroup_id=tg.testgroup_id'; my $where = 'WHERE tr.test_id=t.test_id AND tr.platform_id=p.platform_id AND tr.opsys_id=o.opsys_id AND tr.branch_id=b.branch_id AND b.product_id=pr.product_id AND tr.result_id=trsl.result_status_id AND t.subgroup_id=sg.subgroup_id AND sg.testgroup_id=tg.testgroup_id AND tr.user_id=u.user_id';
my $limit = 'LIMIT '; my $limit = 'LIMIT ';
@ -199,6 +199,8 @@ sub getTestResults($\@\@$) {
$where .= " AND tr.test_id='" . $criterion->{'value'} . "'"; $where .= " AND tr.test_id='" . $criterion->{'value'} . "'";
} elsif ($criterion->{'field'} eq 'summary') { } elsif ($criterion->{'field'} eq 'summary') {
$where .= ' AND t.summary LIKE \'%%' . $criterion->{'value'} . '%%\''; $where .= ' AND t.summary LIKE \'%%' . $criterion->{'value'} . '%%\'';
} elsif ($criterion->{'field'} eq 'email') {
$where .= ' AND u.email LIKE \'%%' . $criterion->{'value'} . '%%\'';
} elsif ($criterion->{'field'} eq 'result_status') { } elsif ($criterion->{'field'} eq 'result_status') {
$where .= " AND trsl.class_name='" . $criterion->{'value'} . "'"; $where .= " AND trsl.class_name='" . $criterion->{'value'} . "'";
} elsif ($criterion->{'field'} eq 'trusted_only') { } elsif ($criterion->{'field'} eq 'trusted_only') {
@ -259,6 +261,8 @@ sub getTestResults($\@\@$) {
$order_by .= "b.name $criterion->{'direction'},"; $order_by .= "b.name $criterion->{'direction'},";
} elsif ($criterion->{'field'} eq 'locale') { } elsif ($criterion->{'field'} eq 'locale') {
$order_by .= "tr.locale_abbrev $criterion->{'direction'},"; $order_by .= "tr.locale_abbrev $criterion->{'direction'},";
} elsif ($criterion->{'field'} eq 'email') {
$order_by .= "u.email $criterion->{'direction'},";
} else { } else {
# Skip unknown field # Skip unknown field
} }

Просмотреть файл

@ -140,13 +140,6 @@ sub getBranches()
return _getValues($sql); return _getValues($sql);
} }
#########################################################################
sub getLocales()
{
my $sql = "SELECT DISTINCT(abbrev) FROM locale_lookup ORDER BY abbrev";
return _getValues($sql);
}
######################################################################### #########################################################################
sub getOpsyses() sub getOpsyses()
{ {
@ -198,6 +191,15 @@ sub getLocales()
return \@locales; return \@locales;
} }
#########################################################################
sub getUsers()
{
my @users = Litmus::DB::User->retrieve_all(
{ order_by => 'email' }
);
return \@users;
}
######################################################################### #########################################################################
sub getFields() sub getFields()
{ {
@ -219,7 +221,7 @@ sub getFields()
{ name => 'subgroup', { name => 'subgroup',
display_string => "Subgroup", }, display_string => "Subgroup", },
{ name => 'email', { name => 'email',
display_string => "Submitter", }, display_string => "Submitted By", },
{ name => 'summary', { name => 'summary',
display_string => "Summary", }, display_string => "Summary", },
{ name => 'test_group', { name => 'test_group',
@ -260,24 +262,26 @@ sub getMatchCriteria()
sub getSortFields() sub getSortFields()
{ {
my @sort_fields = ( my @sort_fields = (
{ name => "branch",
display_string => "Branch"},
{ name => "created", { name => "created",
display_string => "Date"}, display_string => "Date"},
{ name => "product", { name => "locale",
display_string => "Product"}, display_string => "Locale"},
{ name => "platform", { name => "platform",
display_string => "Platform"}, display_string => "Platform"},
{ name => "test_group", { name => "product",
display_string => "Testgroup"}, display_string => "Product"},
{ name => "test_id", { name => "email",
display_string => "Testcase ID#"}, display_string => "Submitted By"},
{ name => "summary", { name => "summary",
display_string => "Summary"}, display_string => "Summary"},
{ name => "result_status", { name => "result_status",
display_string => "Status"}, display_string => "Status"},
{ name => "branch", { name => "test_id",
display_string => "Branch"}, display_string => "Testcase ID#"},
{ name => "locale", { name => "test_group",
display_string => "Locale"}, display_string => "Testgroup"},
); );
return \@sort_fields; return \@sort_fields;
} }

Просмотреть файл

@ -92,7 +92,6 @@ if ($c->param) {
'search_field' => $search_field, 'search_field' => $search_field,
'match_criteria' => $match_criteria, 'match_criteria' => $match_criteria,
'value' => $value}; 'value' => $value};
$where_criteria .= "$search_field $match_criteria '$value'<br/>"; $where_criteria .= "$search_field $match_criteria '$value'<br/>";
} elsif ($param eq 'start_date') { } elsif ($param eq 'start_date') {
@ -131,6 +130,12 @@ if ($c->param) {
value => $value}; value => $value};
$where_criteria .= "Locale is \'".$c->param($param)."\'<br/>"; $where_criteria .= "Locale is \'".$c->param($param)."\'<br/>";
$defaults->{locale} = $c->param($param); $defaults->{locale} = $c->param($param);
} elsif ($param eq 'email') {
my $value = $c->param($param);
push @where, {field => 'email',
value => $value};
$where_criteria .= "Submitted By is \'".$c->param($param)."\'<br/>";
$defaults->{locale} = $c->param($param);
} elsif ($param eq 'product') { } elsif ($param eq 'product') {
my $value = $c->param($param); my $value = $c->param($param);
push @where, {field => $param, push @where, {field => $param,
@ -202,6 +207,7 @@ my $test_ids = Litmus::FormWidget->getTestIDs;
my $result_statuses = Litmus::FormWidget->getResultStatuses; my $result_statuses = Litmus::FormWidget->getResultStatuses;
my $branches = Litmus::FormWidget->getBranches; my $branches = Litmus::FormWidget->getBranches;
my $locales = Litmus::FormWidget->getLocales; my $locales = Litmus::FormWidget->getLocales;
my $users = Litmus::FormWidget->getUsers;
my $fields = Litmus::FormWidget->getFields; my $fields = Litmus::FormWidget->getFields;
my $match_criteria = Litmus::FormWidget->getMatchCriteria; my $match_criteria = Litmus::FormWidget->getMatchCriteria;
@ -219,6 +225,7 @@ my $vars = {
result_statuses => $result_statuses, result_statuses => $result_statuses,
branches => $branches, branches => $branches,
locales => $locales, locales => $locales,
users => $users,
fields => $fields, fields => $fields,
match_criteria => $match_criteria, match_criteria => $match_criteria,
sort_fields => $sort_fields, sort_fields => $sort_fields,

Просмотреть файл

@ -939,13 +939,23 @@ table.category h1 {
font-size: 1.1em; font-size: 1.1em;
} }
input.category { input.category, input.button {
font-size: 1em; font-size: 1em;
margin: 5px 0px 0px 0px; margin: 5px 0px 0px 0px;
} }
input.textbox {
font-size: .9em;
margin: 5px 0px 0px 0px;
}
div.advSearchForm { div.advSearchForm {
padding: 0px; padding: 0px;
margin: 0px; margin: 0px;
border: 0px; border: 0px;
} }
div.formButtons {
padding-bottom: 15px;
}

Просмотреть файл

@ -99,6 +99,11 @@ if ($c->param) {
push @where, {field => $param, push @where, {field => $param,
value => $value}; value => $value};
$where_criteria .= "Summary like \'".$c->param($param)."\'<br/>"; $where_criteria .= "Summary like \'".$c->param($param)."\'<br/>";
} elsif ($param eq 'email') {
my $value = quotemeta($c->param($param));
push @where, {field => $param,
value => $value};
$where_criteria .= "Submitted By like \'".$c->param($param)."\'<br/>";
} elsif ($param eq 'result_status') { } elsif ($param eq 'result_status') {
my $value = quotemeta($c->param($param)); my $value = quotemeta($c->param($param));
push @where, {field => $param, push @where, {field => $param,

Просмотреть файл

@ -1 +1 @@
<input type="text" size="20" name="summary" value="-Summary-" onFocus="if(this.value=='-Summary-'){this.value = '';}"> <input class="textbox" type="text" size="20" name="summary" value="-Summary-" onFocus="if(this.value=='-Summary-'){this.value = '';}">

Просмотреть файл

@ -1,4 +1,4 @@
<select name="[% name %]"[% IF size %] size="[% size %]"[% END %][% IF disabled %] disabled[% END %][% IF onChange %] onChange="[% onChange %]"[% END %]> <select id="[% name %]" name="[% name %]"[% IF size %] size="[% size %]"[% END %][% IF disabled %] disabled[% END %][% IF onChange %] onChange="[% onChange %]"[% END %]>
[% IF placeholder %]<option value="">-Product-</option>[% END %] [% IF placeholder %]<option value="">-Product-</option>[% END %]
[% IF products %] [% IF products %]
[% FOREACH product=products %] [% FOREACH product=products %]

Просмотреть файл

@ -2,8 +2,10 @@
<option value="">-Field-</option> <option value="">-Field-</option>
[% IF fields %] [% IF fields %]
[% FOREACH field=fields %] [% FOREACH field=fields %]
[% IF field.name!='email' || show_admin==1 %]
<option value="[% field.name | html %]"> <option value="[% field.name | html %]">
[% field.display_string | html %]</option> [% field.display_string | html %]</option>
[% END %]
[% END %] [% END %]
[% END %] [% END %]
</select> </select>

Просмотреть файл

@ -2,8 +2,10 @@
<option value="">-Sort Field-</option> <option value="">-Sort Field-</option>
[% IF sort_fields %] [% IF sort_fields %]
[% FOREACH sort_field=sort_fields %] [% FOREACH sort_field=sort_fields %]
[% IF sort_field.name!='email' || show_admin==1 %]
<option value="[% sort_field.name | html %]"> <option value="[% sort_field.name | html %]">
[% sort_field.display_string | html %]</option> [% sort_field.display_string | html %]</option>
[% END %]
[% END %] [% END %]
[% END %] [% END %]
</select> </select>

Просмотреть файл

@ -29,7 +29,7 @@
[% onload = "$onload selects_onload();" %] [% onload = "$onload selects_onload();" %]
[% END %] [% END %]
<body onLoad="init();[% IF onload %][% onload %][% END %]"> <body onload="init();[% IF onload %][% onload %][% END %]">
<script type="text/javascript">function init(){}</script> <script type="text/javascript">function init(){}</script>
<script type="text/javascript" src="js/FormPersist.js"></script> <script type="text/javascript" src="js/FormPersist.js"></script>

Просмотреть файл

@ -1,10 +1,10 @@
<ul class="instructions"> <ul class="instructions">
<li>click on the number in the "result id#" column to see a full <li>Click on the number in the "result id#" column to see a full
listing of the test result, including comments</li> listing of the test result, including comments.</li>
<li>click on the number at the start of the "testcase id#: summary" <li>Click on the number at the start of the "testcase id#: summary"
column to see a more detailed description of that particular column to see a more detailed description of that particular
testcase</li> testcase.</li>
<li>results marked with the star icon ([% icon %]) have comments <li>Results marked with the star icon ([% icon %]) have comments
associated with them. Clicking on the star will display the associated with them. Clicking on the star will display the
comments in-page more test is required to get this to wrap</li> comments in-page.</li>
</ul> </ul>

Просмотреть файл

@ -29,7 +29,7 @@
<form id="advanced_search" name="advanced_search" method="get" action="advanced_search.cgi"> <form id="advanced_search" name="advanced_search" method="get" action="advanced_search.cgi">
<script> <script type="text/javascript">
function init() function init()
{ {
FormInit(document.forms['advanced_search'], document.location.search); FormInit(document.forms['advanced_search'], document.location.search);
@ -48,26 +48,6 @@ Limit your search to specific values of visible fields.
</td> </td>
</tr> </tr>
<tr> <tr>
<td class="heading">Product:</td>
<td>[% INCLUDE form_widgets/select_product.tmpl name="product" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Platform:</td>
<td>[% INCLUDE form_widgets/select_unique_platform.tmpl name="platform" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Testgroup:</td>
<td>[% INCLUDE form_widgets/select_test_group.tmpl name="test_group" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Testcase ID#:</td>
<td>[% INCLUDE form_widgets/select_test_id.tmpl name="test_id" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Status:</td>
<td>[% INCLUDE form_widgets/select_result_status.tmpl name="result_status" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Branch:</td> <td class="heading">Branch:</td>
<td>[% INCLUDE form_widgets/select_branch.tmpl name="branch" placeholder=1 %]</td> <td>[% INCLUDE form_widgets/select_branch.tmpl name="branch" placeholder=1 %]</td>
</tr> </tr>
@ -75,6 +55,32 @@ Limit your search to specific values of visible fields.
<td class="heading">Locale:</td> <td class="heading">Locale:</td>
<td>[% INCLUDE form_widgets/select_locale.tmpl name="locale" placeholder=1 %]</td> <td>[% INCLUDE form_widgets/select_locale.tmpl name="locale" placeholder=1 %]</td>
</tr> </tr>
<tr>
<td class="heading">Platform:</td>
<td>[% INCLUDE form_widgets/select_unique_platform.tmpl name="platform" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Product:</td>
<td>[% INCLUDE form_widgets/select_product.tmpl name="product" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Status:</td>
<td>[% INCLUDE form_widgets/select_result_status.tmpl name="result_status" placeholder=1 %]</td>
</tr>
[% IF show_admin==1 %]
<tr>
<td class="heading">Submitted By:</td>
<td>[% INCLUDE form_widgets/select_email.tmpl name="email" placeholder=1 %]</td>
</tr>
[% END %]
<tr>
<td class="heading">Testcase ID#:</td>
<td>[% INCLUDE form_widgets/select_test_id.tmpl name="test_id" placeholder=1 %]</td>
</tr>
<tr>
<td class="heading">Testgroup:</td>
<td>[% INCLUDE form_widgets/select_test_group.tmpl name="test_group" placeholder=1 %]</td>
</tr>
</table> </table>
</div> </div>
</div> </div>
@ -86,15 +92,15 @@ Limit your search to specific values of visible fields.
<div class="section-content"> <div class="section-content">
<table class="advanced-search"> <table class="advanced-search">
<tr> <tr>
<td colspan="2" class="instructions">Display only results between these two dates.</p><p>NOTE: the preferred format for dates is YYYYMMDDhhmmss, although the search engine will do its best (within reason) to parse dates from whatever is submitted.</td> <td colspan="2" class="instructions"><p>Display only results between these two dates.</p><p>NOTE: the preferred format for dates is YYYYMMDDhhmmss, although the search engine will do its best (within reason) to parse dates from whatever is submitted.</p></td>
</tr> </tr>
<tr> <tr>
<td class="heading">Start Date:</td> <td class="heading">Start Date:</td>
<td><input type="text" name="start_date" value=""></td> <td><input type="text" name="start_date" value="" /></td>
</tr> </tr>
<tr> <tr>
<td class="heading">End Date:</td> <td class="heading">End Date:</td>
<td><input type="text" name="end_date" value="Now"></td> <td><input type="text" name="end_date" value="Now" /></td>
</tr> </tr>
</table> </table>
</div> </div>
@ -114,22 +120,22 @@ Perform more elaborate pattern matching against all fields.
<tr> <tr>
<td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field1" %]</td> <td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field1" %]</td>
<td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria1" %]</td> <td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria1" %]</td>
<td><input type="text" name="search_value1" value=""></td> <td><input type="text" name="search_value1" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field2" %]</td> <td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field2" %]</td>
<td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria2" %]</td> <td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria2" %]</td>
<td><input type="text" name="search_value2" value=""></td> <td><input type="text" name="search_value2" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field3" %]</td> <td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field3" %]</td>
<td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria3" %]</td> <td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria3" %]</td>
<td><input type="text" name="search_value3" value=""></td> <td><input type="text" name="search_value3" value="" /></td>
</tr> </tr>
<tr> <tr>
<td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field4" %]</td> <td>[% INCLUDE form_widgets/select_search_field.tmpl name="search_field4" %]</td>
<td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria4" %]</td> <td>[% INCLUDE form_widgets/select_match_criteria.tmpl name="match_criteria4" %]</td>
<td><input type="text" name="search_value4" value=""></td> <td><input type="text" name="search_value4" value="" /></td>
</tr> </tr>
</table> </table>
</div> </div>
@ -181,7 +187,8 @@ Define the sort order for your results.
Use this to limit the number of results displayed. Use this to limit the number of results displayed.
</td> </td>
</tr> </tr>
<td colspan="2">Limit to <input type="text" name="limit" value="15" size="5"> results</td> <tr>
<td colspan="2">Limit to <input type="text" name="limit" value="15" size="5" /> results</td>
</tr> </tr>
</table> </table>
</div> </div>
@ -198,14 +205,15 @@ Use this to limit the number of results displayed.
Admin-specific limiting criteria go here. These criteria are not available to regular users. Admin-specific limiting criteria go here. These criteria are not available to regular users.
</td> </td>
</tr> </tr>
<td colspan="2"><input type="checkbox" name="trusted_only">&nbsp;Display only test results from trusted sources</td> <tr>
<td colspan="2"><input type="checkbox" name="trusted_only" />&nbsp;Display only test results from trusted sources</td>
</tr> </tr>
</table> </table>
</div> </div>
</div> </div>
<div> <div class="formButtons">
<input class="button" type="reset" onclick="FormInit(this.parent, '');">&nbsp;<input class="button" type="submit"> <input class="button" type="reset" onclick="FormInit(this.parent, '');" />&nbsp;<input class="button" type="submit" />
</div> </div>
</form> </form>

Просмотреть файл

@ -28,8 +28,8 @@
[% icon="<img class=icon src='images/star1.gif' title='This result has comments' alt='*'>" %] [% icon="<img class=icon src='images/star1.gif' title='This result has comments' alt='*'>" %]
[% IF results %] [% IF results %]
<script src="js/Comments.js"></script> <script type="text/javascript" src="js/Comments.js"></script>
<script> <script type="text/javascript">
var comments = new Array(); var comments = new Array();
[% subscript=0 %] [% subscript=0 %]
[% FOREACH result=results %] [% FOREACH result=results %]
@ -57,13 +57,18 @@
<td colspan="2" class="header">Submission Date</td> <td colspan="2" class="header">Submission Date</td>
<td class="header">Result ID#</td> <td class="header">Result ID#</td>
<td class="header">Testcase ID#: Summary</td> <td class="header">Testcase ID#: Summary</td>
[% IF show_admin==1 %]<td class="header">Submitted By</td>[% END %]
<td class="header">Testgroup</td> <td class="header">Testgroup</td>
<td class="header">Product</td> <td class="header">Product</td>
<td class="header">Platform</td> <td class="header">Platform</td>
<td class="header">Branch</td> <td class="header">Branch</td>
<td class="header">Locale</td> <td class="header">Locale</td>
</tr> </tr>
<tr>
[% colspan=9 %]
[% IF show_admin==1 %]
[% colspan=10 %]
[% END %]
[% IF results AND results.size > 0 %] [% IF results AND results.size > 0 %]
[% subscript=0 %] [% subscript=0 %]
@ -79,6 +84,7 @@
</td> </td>
<td align="left"><a href="show_test.cgi?id=[% result.test_id | html | uri %]"> <td align="left"><a href="show_test.cgi?id=[% result.test_id | html | uri %]">
[% result.test_id | html %]</a>: [% result.summary | html %]</td> [% result.test_id | html %]</a>: [% result.summary | html %]</td>
[% IF show_admin==1 %]<td align="center">[% result.email FILTER html | uri | email %]</td>[% END %]
<td align="center">[% result.test_group_name | html %]</td> <td align="center">[% result.test_group_name | html %]</td>
<td align="center">[% result.product_name | html %]</td> <td align="center">[% result.product_name | html %]</td>
<td align="center">[% result.platform_name | html %]</td> <td align="center">[% result.platform_name | html %]</td>
@ -90,13 +96,12 @@
[% ELSE %] [% ELSE %]
<tr> <tr>
<td class="no-results" colspan="8">No test results match the search criteria.</td> <td class="no-results" colspan="[% colspan %]">No test results match the search criteria.</td>
</tr> </tr>
[% END %] [% END %]
[% IF include_limit_criteria==1 %] [% IF include_limit_criteria==1 %]
[% INCLUDE reporting/test_results_limit.tmpl %] [% INCLUDE reporting/test_results_limit.tmpl %]
[% END %] [% END %]
</table> </table>

Просмотреть файл

@ -27,9 +27,9 @@
[% PROCESS global/selects.none.tmpl %] [% PROCESS global/selects.none.tmpl %]
<form name="search_results" method="get" action="search_results.cgi" onSubmit="if(this.summary.value=='-Summary-'){this.summary.value = '';}"> <form name="search_results" method="get" action="search_results.cgi" onSubmit="if(this.summary.value=='-Summary-'){this.summary.value = '';}if(this.email.value=='-Submitted By-'){this.email.value = '';}">
<script> <script type="text/javascript">
function init() function init()
{ {
FormInit(document.forms['search_results'], document.location.search); FormInit(document.forms['search_results'], document.location.search);
@ -54,6 +54,16 @@ function init()
<option[% IF order_bys.test_id == 'DESC' %] selected[% END %] value="DESC">Z->A</option> <option[% IF order_bys.test_id == 'DESC' %] selected[% END %] value="DESC">Z->A</option>
</select></td> </select></td>
[% colspan=7 %]
[% IF show_admin==1 %]
[% colspan=8 %]
<td class="search"><select name="order_by_email">
<option value="">-Sort-</option>
<option[% IF order_bys.email == 'ASC' %] selected[% END %] value="ASC">A->Z</option>
<option[% IF order_bys.email == 'DESC' %] selected[% END %] value="DESC">Z->A</option>
</select></td>
[% END %]
<td class="search"><select name="order_by_test_group"> <td class="search"><select name="order_by_test_group">
<option value="">-Sort-</option> <option value="">-Sort-</option>
<option[% IF order_bys.test_group == 'ASC' %] selected[% END %] value="ASC">A->Z</option> <option[% IF order_bys.test_group == 'ASC' %] selected[% END %] value="ASC">A->Z</option>
@ -92,6 +102,7 @@ function init()
<td class="search">[% INCLUDE form_widgets/select_timespan.tmpl %]</td> <td class="search">[% INCLUDE form_widgets/select_timespan.tmpl %]</td>
<td class="search"></td> <td class="search"></td>
<td class="search">[% INCLUDE form_widgets/input_summary.tmpl %]</td> <td class="search">[% INCLUDE form_widgets/input_summary.tmpl %]</td>
[% IF show_admin==1 %]<td class="search">[% INCLUDE form_widgets/input_email.tmpl %]</td>[% END %]
<td class="search">[% INCLUDE form_widgets/select_test_group.tmpl name="test_group" placeholder=1 %]</td> <td class="search">[% INCLUDE form_widgets/select_test_group.tmpl name="test_group" placeholder=1 %]</td>
<td class="search">[% INCLUDE form_widgets/select_product.tmpl name="product" placeholder=1 %]</td> <td class="search">[% INCLUDE form_widgets/select_product.tmpl name="product" placeholder=1 %]</td>
<td class="search">[% INCLUDE form_widgets/select_unique_platform.tmpl name="platform" placeholder=1 %]</td> <td class="search">[% INCLUDE form_widgets/select_unique_platform.tmpl name="platform" placeholder=1 %]</td>
@ -103,10 +114,10 @@ function init()
<td class="search-heading" align="center"> <td class="search-heading" align="center">
Limit to</td> Limit to</td>
<td class="search"> <td class="search">
<input type="text" name="limit" value="[% limit | html %]" size="5"> results</td> <input type="text" name="limit" value="[% limit | html %]" size="5" /> results</td>
<td class="search-submit" colspan="7"> <td class="search-submit" colspan="[% colspan %]">
<input class="button" type="reset" onclick="FormInit(this.parent, '');">&nbsp; <input class="button" type="reset" onclick="FormInit(this.parent, '');" />&nbsp;
<input class="button" type="submit" value="Show Results"> <input class="button" type="submit" value="Show Results" />
</td> </td>
</tr> </tr>

Просмотреть файл

@ -1,7 +1,7 @@
<div class="pagetools"> <div class="pagetools">
<div> <div>
<h3>Search Criteria</h3> <h3>Search Criteria</h3>
<p>[% criteria | none %]</p> <p>[% criteria | email %]</p>
[% IF results AND results.size > 0 %] [% IF results AND results.size > 0 %]
<hr/> <hr/>
<p># results: [% results.size %]</p> <p># results: [% results.size %]</p>