From 0469867195db1e9568fc1003d3b2fef9ea2db59f Mon Sep 17 00:00:00 2001 From: "ccooper%deadsquid.com" Date: Fri, 23 Dec 2005 23:08:08 +0000 Subject: [PATCH] b=321265 - add user to result display and allow searching/limiting by user email (admin only) Other: - search results now validate as XHTML transitional git-svn-id: svn://10.0.0.236/trunk@186545 18797224-902f-48f8-a5cc-f745e15eee43 --- .../webtools/litmus/Litmus/DB/Testresult.pm | 18 +++-- mozilla/webtools/litmus/Litmus/FormWidget.pm | 40 ++++++----- mozilla/webtools/litmus/advanced_search.cgi | 9 ++- mozilla/webtools/litmus/css/litmus.css | 12 +++- mozilla/webtools/litmus/search_results.cgi | 5 ++ .../default/form_widgets/input_summary.tmpl | 2 +- .../default/form_widgets/select_product.tmpl | 2 +- .../form_widgets/select_search_field.tmpl | 2 + .../form_widgets/select_sort_field.tmpl | 2 + .../en/default/global/litmus_header.tmpl | 2 +- .../instructions/test_result_navigation.tmpl | 12 ++-- .../reporting/advanced_search_form.tmpl | 72 ++++++++++--------- .../en/default/reporting/test_results.tmpl | 15 ++-- .../default/reporting/test_results_limit.tmpl | 23 ++++-- .../sidebar/widget_search_criteria.tmpl | 2 +- 15 files changed, 138 insertions(+), 80 deletions(-) diff --git a/mozilla/webtools/litmus/Litmus/DB/Testresult.pm b/mozilla/webtools/litmus/Litmus/DB/Testresult.pm index 718ffea5393..0409cd87cc5 100755 --- a/mozilla/webtools/litmus/Litmus/DB/Testresult.pm +++ b/mozilla/webtools/litmus/Litmus/DB/Testresult.pm @@ -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->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 -pr, test_result_status_lookup trsl, test_groups tg, subgroups sg - 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 +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 AND tr.user_id=u.user_id ORDER BY tr.submission_time DESC LIMIT $_num_results_default }); @@ -165,7 +165,7 @@ sub istrusted { sub getDefaultTestResults($) { my $self = shift; my @rows = $self->search_DefaultTestResults(); - my $criteria = "Default
Ordered by Created
Limit to $_num_results_default results"; + my $criteria = "Default
Ordered by Created
Limit to $_num_results_default results"; return $criteria, \@rows; } @@ -176,11 +176,11 @@ sub getDefaultTestResults($) { sub getTestResults($\@\@$) { 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 '; @@ -199,6 +199,8 @@ sub getTestResults($\@\@$) { $where .= " AND tr.test_id='" . $criterion->{'value'} . "'"; } elsif ($criterion->{'field'} eq 'summary') { $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') { $where .= " AND trsl.class_name='" . $criterion->{'value'} . "'"; } elsif ($criterion->{'field'} eq 'trusted_only') { @@ -259,6 +261,8 @@ sub getTestResults($\@\@$) { $order_by .= "b.name $criterion->{'direction'},"; } elsif ($criterion->{'field'} eq 'locale') { $order_by .= "tr.locale_abbrev $criterion->{'direction'},"; + } elsif ($criterion->{'field'} eq 'email') { + $order_by .= "u.email $criterion->{'direction'},"; } else { # Skip unknown field } diff --git a/mozilla/webtools/litmus/Litmus/FormWidget.pm b/mozilla/webtools/litmus/Litmus/FormWidget.pm index 7d237bc83ab..5fc59d0ce12 100755 --- a/mozilla/webtools/litmus/Litmus/FormWidget.pm +++ b/mozilla/webtools/litmus/Litmus/FormWidget.pm @@ -140,13 +140,6 @@ sub getBranches() return _getValues($sql); } -######################################################################### -sub getLocales() -{ - my $sql = "SELECT DISTINCT(abbrev) FROM locale_lookup ORDER BY abbrev"; - return _getValues($sql); -} - ######################################################################### sub getOpsyses() { @@ -198,6 +191,15 @@ sub getLocales() return \@locales; } +######################################################################### +sub getUsers() +{ + my @users = Litmus::DB::User->retrieve_all( + { order_by => 'email' } + ); + return \@users; +} + ######################################################################### sub getFields() { @@ -219,7 +221,7 @@ sub getFields() { name => 'subgroup', display_string => "Subgroup", }, { name => 'email', - display_string => "Submitter", }, + display_string => "Submitted By", }, { name => 'summary', display_string => "Summary", }, { name => 'test_group', @@ -260,24 +262,26 @@ sub getMatchCriteria() sub getSortFields() { my @sort_fields = ( + { name => "branch", + display_string => "Branch"}, { name => "created", display_string => "Date"}, - { name => "product", - display_string => "Product"}, + { name => "locale", + display_string => "Locale"}, { name => "platform", display_string => "Platform"}, - { name => "test_group", - display_string => "Testgroup"}, - { name => "test_id", - display_string => "Testcase ID#"}, + { name => "product", + display_string => "Product"}, + { name => "email", + display_string => "Submitted By"}, { name => "summary", display_string => "Summary"}, { name => "result_status", display_string => "Status"}, - { name => "branch", - display_string => "Branch"}, - { name => "locale", - display_string => "Locale"}, + { name => "test_id", + display_string => "Testcase ID#"}, + { name => "test_group", + display_string => "Testgroup"}, ); return \@sort_fields; } diff --git a/mozilla/webtools/litmus/advanced_search.cgi b/mozilla/webtools/litmus/advanced_search.cgi index 856b49b972c..dd5a6de5147 100755 --- a/mozilla/webtools/litmus/advanced_search.cgi +++ b/mozilla/webtools/litmus/advanced_search.cgi @@ -92,7 +92,6 @@ if ($c->param) { 'search_field' => $search_field, 'match_criteria' => $match_criteria, 'value' => $value}; - $where_criteria .= "$search_field $match_criteria '$value'
"; } elsif ($param eq 'start_date') { @@ -131,6 +130,12 @@ if ($c->param) { value => $value}; $where_criteria .= "Locale is \'".$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)."\'
"; + $defaults->{locale} = $c->param($param); } elsif ($param eq 'product') { my $value = $c->param($param); push @where, {field => $param, @@ -202,6 +207,7 @@ my $test_ids = Litmus::FormWidget->getTestIDs; my $result_statuses = Litmus::FormWidget->getResultStatuses; my $branches = Litmus::FormWidget->getBranches; my $locales = Litmus::FormWidget->getLocales; +my $users = Litmus::FormWidget->getUsers; my $fields = Litmus::FormWidget->getFields; my $match_criteria = Litmus::FormWidget->getMatchCriteria; @@ -219,6 +225,7 @@ my $vars = { result_statuses => $result_statuses, branches => $branches, locales => $locales, + users => $users, fields => $fields, match_criteria => $match_criteria, sort_fields => $sort_fields, diff --git a/mozilla/webtools/litmus/css/litmus.css b/mozilla/webtools/litmus/css/litmus.css index 072c4c41ada..d6f2d42f087 100755 --- a/mozilla/webtools/litmus/css/litmus.css +++ b/mozilla/webtools/litmus/css/litmus.css @@ -939,13 +939,23 @@ table.category h1 { font-size: 1.1em; } -input.category { +input.category, input.button { font-size: 1em; margin: 5px 0px 0px 0px; } +input.textbox { + font-size: .9em; + margin: 5px 0px 0px 0px; +} + div.advSearchForm { padding: 0px; margin: 0px; border: 0px; } + +div.formButtons { + padding-bottom: 15px; +} + diff --git a/mozilla/webtools/litmus/search_results.cgi b/mozilla/webtools/litmus/search_results.cgi index d5f0f95a8ee..145c6c31447 100755 --- a/mozilla/webtools/litmus/search_results.cgi +++ b/mozilla/webtools/litmus/search_results.cgi @@ -99,6 +99,11 @@ if ($c->param) { push @where, {field => $param, value => $value}; $where_criteria .= "Summary like \'".$c->param($param)."\'
"; + } elsif ($param eq 'email') { + my $value = quotemeta($c->param($param)); + push @where, {field => $param, + value => $value}; + $where_criteria .= "Submitted By like \'".$c->param($param)."\'
"; } elsif ($param eq 'result_status') { my $value = quotemeta($c->param($param)); push @where, {field => $param, diff --git a/mozilla/webtools/litmus/templates/en/default/form_widgets/input_summary.tmpl b/mozilla/webtools/litmus/templates/en/default/form_widgets/input_summary.tmpl index 2317307949d..6bae7c0e1e9 100644 --- a/mozilla/webtools/litmus/templates/en/default/form_widgets/input_summary.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/form_widgets/input_summary.tmpl @@ -1 +1 @@ - + diff --git a/mozilla/webtools/litmus/templates/en/default/form_widgets/select_product.tmpl b/mozilla/webtools/litmus/templates/en/default/form_widgets/select_product.tmpl index 23a99cb5747..85e93362a19 100644 --- a/mozilla/webtools/litmus/templates/en/default/form_widgets/select_product.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/form_widgets/select_product.tmpl @@ -1,4 +1,4 @@ - [% IF placeholder %][% END %] [% IF products %] [% FOREACH product=products %] diff --git a/mozilla/webtools/litmus/templates/en/default/form_widgets/select_search_field.tmpl b/mozilla/webtools/litmus/templates/en/default/form_widgets/select_search_field.tmpl index 3ed33a8ddb3..7b081c4e55a 100644 --- a/mozilla/webtools/litmus/templates/en/default/form_widgets/select_search_field.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/form_widgets/select_search_field.tmpl @@ -2,8 +2,10 @@ [% IF fields %] [% FOREACH field=fields %] + [% IF field.name!='email' || show_admin==1 %] + [% END %] [% END %] [% END %] diff --git a/mozilla/webtools/litmus/templates/en/default/form_widgets/select_sort_field.tmpl b/mozilla/webtools/litmus/templates/en/default/form_widgets/select_sort_field.tmpl index 2282c692b07..063cd4717d7 100644 --- a/mozilla/webtools/litmus/templates/en/default/form_widgets/select_sort_field.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/form_widgets/select_sort_field.tmpl @@ -2,8 +2,10 @@ [% IF sort_fields %] [% FOREACH sort_field=sort_fields %] + [% IF sort_field.name!='email' || show_admin==1 %] + [% END %] [% END %] [% END %] diff --git a/mozilla/webtools/litmus/templates/en/default/global/litmus_header.tmpl b/mozilla/webtools/litmus/templates/en/default/global/litmus_header.tmpl index 93aec87896a..66f2f0f27c9 100644 --- a/mozilla/webtools/litmus/templates/en/default/global/litmus_header.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/global/litmus_header.tmpl @@ -29,7 +29,7 @@ [% onload = "$onload selects_onload();" %] [% END %] - + diff --git a/mozilla/webtools/litmus/templates/en/default/instructions/test_result_navigation.tmpl b/mozilla/webtools/litmus/templates/en/default/instructions/test_result_navigation.tmpl index b17140b7859..22b5b7b600d 100644 --- a/mozilla/webtools/litmus/templates/en/default/instructions/test_result_navigation.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/instructions/test_result_navigation.tmpl @@ -1,10 +1,10 @@ diff --git a/mozilla/webtools/litmus/templates/en/default/reporting/advanced_search_form.tmpl b/mozilla/webtools/litmus/templates/en/default/reporting/advanced_search_form.tmpl index 45347e32a95..5c35db71e4a 100644 --- a/mozilla/webtools/litmus/templates/en/default/reporting/advanced_search_form.tmpl +++ b/mozilla/webtools/litmus/templates/en/default/reporting/advanced_search_form.tmpl @@ -29,7 +29,7 @@