Bugzilla – Attachment 28036 Details for
Bug 6254
Set default for privacy by patron category
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 6254 [3] - Tidy admin/categorie.pl ( whitespace changes only )
Bug-6254-3---Tidy-admincategoriepl--whitespace-cha.patch (text/plain), 23.79 KB, created by
Kyle M Hall (khall)
on 2014-05-07 17:55:26 UTC
(
hide
)
Description:
Bug 6254 [3] - Tidy admin/categorie.pl ( whitespace changes only )
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2014-05-07 17:55:26 UTC
Size:
23.79 KB
patch
obsolete
>From 51c241e9df159a5bbcab988283ec2a7882aaaeee Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 7 May 2014 13:49:03 -0400 >Subject: [PATCH] Bug 6254 [3] - Tidy admin/categorie.pl ( whitespace changes only ) > >--- > admin/categorie.pl | 440 +++++++++++--------- > .../prog/en/modules/admin/categorie.tt | 26 +- > 2 files changed, 256 insertions(+), 210 deletions(-) > >diff --git a/admin/categorie.pl b/admin/categorie.pl >index ebb91e7..c6572a6 100755 >--- a/admin/categorie.pl >+++ b/admin/categorie.pl >@@ -18,7 +18,6 @@ > # if $op=delete_confirm > # - we delete the record having primkey=$primkey > >- > # Copyright 2000-2002 Katipo Communications > # > # This file is part of Koha. >@@ -47,86 +46,101 @@ use C4::Dates; > use C4::Form::MessagingPreferences; > use Koha::Database; > >-sub StringSearch { >- my ($searchstring,$type)=@_; >- my $dbh = C4::Context->dbh; >- $searchstring //= ''; >- $searchstring=~ s/\'/\\\'/g; >- my @data=split(' ',$searchstring); >- push @data,q{} if $#data==-1; >- my $count=@data; >- my $sth=$dbh->prepare("Select * from categories where (description like ?) order by category_type,description,categorycode"); >- $sth->execute("$data[0]%"); >- my @results; >- while (my $data=$sth->fetchrow_hashref){ >- push(@results,$data); >- } >- # $sth->execute; >- $sth->finish; >- return (scalar(@results),\@results); >-} >+sub StringSearch { >+ my ( $searchstring, $type ) = @_; >+ my $dbh = C4::Context->dbh; >+ $searchstring //= ''; >+ $searchstring =~ s/\'/\\\'/g; >+ my @data = split( ' ', $searchstring ); >+ push @data, q{} if $#data == -1; >+ my $count = @data; >+ my $sth = $dbh->prepare("Select * from categories where (description like ?) order by category_type,description,categorycode"); >+ $sth->execute("$data[0]%"); >+ my @results; > >-my $input = new CGI; >-my $searchfield=$input->param('description'); >-my $script_name="/cgi-bin/koha/admin/categorie.pl"; >-my $categorycode=$input->param('categorycode'); >-my $op = $input->param('op') // ''; >-my $block_expired = $input->param("block_expired"); >+ while ( my $data = $sth->fetchrow_hashref ) { >+ push( @results, $data ); >+ } > >-my ($template, $loggedinuser, $cookie) >- = get_template_and_user({template_name => "admin/categorie.tmpl", >- query => $input, >- type => "intranet", >- authnotrequired => 0, >- flagsrequired => {parameters => 'parameters_remaining_permissions'}, >- debug => 1, >- }); >+ # $sth->execute; >+ $sth->finish; >+ return ( scalar(@results), \@results ); >+} > >+my $input = new CGI; >+my $searchfield = $input->param('description'); >+my $script_name = "/cgi-bin/koha/admin/categorie.pl"; >+my $categorycode = $input->param('categorycode'); >+my $op = $input->param('op') // ''; >+my $block_expired = $input->param("block_expired"); > >-$template->param(script_name => $script_name, >- categorycode => $categorycode, >- searchfield => $searchfield); >+my ( $template, $loggedinuser, $cookie ) = get_template_and_user( >+ { >+ template_name => "admin/categorie.tmpl", >+ query => $input, >+ type => "intranet", >+ authnotrequired => 0, >+ flagsrequired => { parameters => 'parameters_remaining_permissions' }, >+ debug => 1, >+ } >+); > >+$template->param( >+ script_name => $script_name, >+ categorycode => $categorycode, >+ searchfield => $searchfield >+); > > ################## ADD_FORM ################################## > # called by default. Used to create form to add or modify a record >-if ($op eq 'add_form') { >- $template->param(add_form => 1); >- >- #---- if primkey exists, it's a modify action, so read values to modify... >- my $data; >+if ( $op eq 'add_form' ) { >+ $template->param( add_form => 1 ); >+ >+ #---- if primkey exists, it's a modify action, so read values to modify... >+ my $data; > my @selected_branches; >- if ($categorycode) { >- my $dbh = C4::Context->dbh; >- my $sth=$dbh->prepare("SELECT * FROM categories WHERE categorycode=?"); >- $sth->execute($categorycode); >- $data=$sth->fetchrow_hashref; >- >- $sth = $dbh->prepare("SELECT b.branchcode, b.branchname FROM categories_branches AS cb, branches AS b WHERE cb.branchcode = b.branchcode AND cb.categorycode = ?"); >- $sth->execute( $categorycode ); >+ if ($categorycode) { >+ my $dbh = C4::Context->dbh; >+ my $sth = >+ $dbh->prepare("SELECT * FROM categories WHERE categorycode=?"); >+ $sth->execute($categorycode); >+ $data = $sth->fetchrow_hashref; >+ >+ $sth = $dbh->prepare( >+ "SELECT b.branchcode, b.branchname >+ FROM categories_branches AS cb, branches AS b >+ WHERE cb.branchcode = b.branchcode AND cb.categorycode = ? >+ "); >+ $sth->execute($categorycode); > while ( my $branch = $sth->fetchrow_hashref ) { > push @selected_branches, $branch; > } > $sth->finish; > } > >- if ($data->{'enrolmentperioddate'} && $data->{'enrolmentperioddate'} eq '0000-00-00') { >+ if ( $data->{'enrolmentperioddate'} >+ && $data->{'enrolmentperioddate'} eq '0000-00-00' ) >+ { > $data->{'enrolmentperioddate'} = undef; > } >+ > $data->{'category_type'} //= ''; > >- my $branches = GetBranches; >+ my $branches = GetBranches(); > my @branches_loop; >- foreach my $branch (sort keys %$branches) { >- my $selected = ( grep {$$_{branchcode} eq $branch} @selected_branches ) ? 1 : 0; >- push @branches_loop, { >+ foreach my $branch ( sort keys %$branches ) { >+ my $selected = >+ ( grep { $$_{branchcode} eq $branch } @selected_branches ) ? 1 : 0; >+ push @branches_loop, >+ { > branchcode => $$branches{$branch}{branchcode}, > branchname => $$branches{$branch}{branchname}, >- selected => $selected, >- }; >+ selected => $selected, >+ }; > } > > $template->param( >+ branches_loop => \@branches_loop, > description => $data->{'description'}, > enrolmentperiod => $data->{'enrolmentperiod'}, > enrolmentperioddate => $data->{'enrolmentperioddate'}, >@@ -138,32 +152,41 @@ if ($op eq 'add_form') { > reservefee => sprintf( "%.2f", $data->{'reservefee'} || 0 ), > hidelostitems => $data->{'hidelostitems'}, > category_type => $data->{'category_type'}, >+ default_privacy => $data->{'default_privacy'}, > SMSSendDriver => C4::Context->preference("SMSSendDriver"), >- TalkingTechItivaPhone => >- C4::Context->preference("TalkingTechItivaPhoneNotification"), > "type_" . $data->{'category_type'} => 1, >- branches_loop => \@branches_loop, > BlockExpiredPatronOpacActions => > $data->{'BlockExpiredPatronOpacActions'}, >- default_privacy => $data->{'default_privacy'}, >+ TalkingTechItivaPhone => >+ C4::Context->preference("TalkingTechItivaPhoneNotification"), > ); > >- if (C4::Context->preference('EnhancedMessagingPreferences')) { >- C4::Form::MessagingPreferences::set_form_values({ categorycode => $categorycode } , $template); >+ if ( C4::Context->preference('EnhancedMessagingPreferences') ) { >+ C4::Form::MessagingPreferences::set_form_values( >+ { categorycode => $categorycode }, $template ); > } >- # END $OP eq ADD_FORM >+ >+ # END $OP eq ADD_FORM > ################## ADD_VALIDATE ################################## >-# called by add_form, used to insert/modify data in DB >-} elsif ($op eq 'add_validate') { >- $template->param(add_validate => 1); >- my $is_a_modif = $input->param("is_a_modif"); >- my $dbh = C4::Context->dbh; >- if($input->param('enrolmentperioddate')){ >- $input->param('enrolmentperioddate' => C4::Dates::format_date_in_iso($input->param('enrolmentperioddate')) ); >- } >- >- if ($is_a_modif) { >- my $sth=$dbh->prepare(" >+ # called by add_form, used to insert/modify data in DB >+} >+elsif ( $op eq 'add_validate' ) { >+ $template->param( add_validate => 1 ); >+ >+ my $is_a_modif = $input->param("is_a_modif"); >+ >+ my $dbh = C4::Context->dbh; >+ >+ if ( $input->param('enrolmentperioddate') ) { >+ $input->param( >+ 'enrolmentperioddate' => C4::Dates::format_date_in_iso( >+ $input->param('enrolmentperioddate') >+ ) >+ ); >+ } >+ >+ if ($is_a_modif) { >+ my $sth = $dbh->prepare( " > UPDATE categories > SET description=?, > enrolmentperiod=?, >@@ -178,43 +201,38 @@ if ($op eq 'add_form') { > BlockExpiredPatronOpacActions=?, > default_privacy=? > WHERE categorycode=?" >+ ); >+ $sth->execute( >+ map { $input->param($_) } ( >+ 'description', 'enrolmentperiod', >+ 'enrolmentperioddate', 'upperagelimit', >+ 'dateofbirthrequired', 'enrolmentfee', >+ 'reservefee', 'hidelostitems', >+ 'overduenoticerequired', 'category_type', >+ 'block_expired', 'default_privacy', >+ 'categorycode' >+ ) >+ ); >+ my @branches = $input->param("branches"); >+ if (@branches) { >+ $sth = $dbh->prepare( >+ "DELETE FROM categories_branches WHERE categorycode = ?" > ); >- $sth->execute( >- map { $input->param($_) } ( >- 'description', >- 'enrolmentperiod', >- 'enrolmentperioddate', >- 'upperagelimit', >- 'dateofbirthrequired', >- 'enrolmentfee', >- 'reservefee', >- 'hidelostitems', >- 'overduenoticerequired', >- 'category_type', >- 'block_expired', >- 'default_privacy', >- 'categorycode' >- ) >+ $sth->execute( $input->param("categorycode") ); >+ $sth = $dbh->prepare( >+ "INSERT INTO categories_branches ( categorycode, branchcode ) VALUES ( ?, ? )" > ); >- my @branches = $input->param("branches"); >- if ( @branches ) { >- $sth = $dbh->prepare("DELETE FROM categories_branches WHERE categorycode = ?"); >- $sth->execute( $input->param( "categorycode" ) ); >- $sth = $dbh->prepare( >- "INSERT INTO categories_branches >- ( categorycode, branchcode ) >- VALUES ( ?, ? )" >- ); >- for my $branchcode ( @branches ) { >- next if not $branchcode; >- $sth->bind_param( 1, $input->param( "categorycode" ) ); >- $sth->bind_param( 2, $branchcode ); >- $sth->execute; >- } >+ for my $branchcode (@branches) { >+ next if not $branchcode; >+ $sth->bind_param( 1, $input->param("categorycode") ); >+ $sth->bind_param( 2, $branchcode ); >+ $sth->execute; > } >- $sth->finish; >- } else { >- my $sth=$dbh->prepare(" >+ } >+ $sth->finish; >+ } >+ else { >+ my $sth = $dbh->prepare( " > INSERT INTO categories ( > categorycode, > description, >@@ -230,131 +248,159 @@ if ($op eq 'add_form') { > BlockExpiredPatronOpacActions, > default_privacy > ) >- VALUES (?,?,?,?,?,?,?,?,?,?,?,?)"); >+ VALUES (?,?,?,?,?,?,?,?,?,?,?,?)" ); > $sth->execute( > map { $input->param($_) } ( >- 'categorycode', >- 'description', >- 'enrolmentperiod', >- 'enrolmentperioddate', >- 'upperagelimit', >- 'dateofbirthrequired', >- 'enrolmentfee', >- 'reservefee', >- 'hidelostitems', >- 'overduenoticerequired', >- 'category_type', >- 'block_expired', >+ 'categorycode', 'description', >+ 'enrolmentperiod', 'enrolmentperioddate', >+ 'upperagelimit', 'dateofbirthrequired', >+ 'enrolmentfee', 'reservefee', >+ 'hidelostitems', 'overduenoticerequired', >+ 'category_type', 'block_expired', > 'default_privacy', > ) > ); > $sth->finish; > } > >- if (C4::Context->preference('EnhancedMessagingPreferences')) { >- C4::Form::MessagingPreferences::handle_form_action($input, >- { categorycode => $input->param('categorycode') }, $template); >+ if ( C4::Context->preference('EnhancedMessagingPreferences') ) { >+ C4::Form::MessagingPreferences::handle_form_action( $input, >+ { categorycode => $input->param('categorycode') }, $template ); > } >- print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>"; >- exit; > >- # END $OP eq ADD_VALIDATE >+ print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>"; >+ exit; >+ >+ # END $OP eq ADD_VALIDATE > ################## DELETE_CONFIRM ################################## >-# called by default form, used to confirm deletion of data in DB >-} elsif ($op eq 'delete_confirm') { >+ # called by default form, used to confirm deletion of data in DB >+} >+elsif ( $op eq 'delete_confirm' ) { > my $schema = Koha::Database->new()->schema(); >- $template->param(delete_confirm => 1); >+ $template->param( delete_confirm => 1 ); >+ >+ my $count = >+ $schema->resultset('Borrower') >+ ->search( { categorycode => $categorycode } )->count(); > >- my $count = $schema->resultset('Borrower')->search( { categorycode => $categorycode } )->count(); > my $category = $schema->resultset('Category')->find($categorycode); >- $category->enrolmentperioddate( C4::Dates::format_date( $category->enrolmentperioddate() ) ); >+ >+ $category->enrolmentperioddate( >+ C4::Dates::format_date( $category->enrolmentperioddate() ) ); >+ > $template->param( category => $category, patrons_in_category => $count ); >-# END $OP eq DELETE_CONFIRM >+ >+ # END $OP eq DELETE_CONFIRM > ################## DELETE_CONFIRMED ################################## >-# called by delete_confirm, used to effectively confirm deletion of data in DB >-} elsif ($op eq 'delete_confirmed') { >- $template->param(delete_confirmed => 1); >- my $dbh = C4::Context->dbh; >- my $categorycode=uc($input->param('categorycode')); >- my $sth=$dbh->prepare("delete from categories where categorycode=?"); >- $sth->execute($categorycode); >- $sth->finish; >- print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>"; >- exit; >- >- # END $OP eq DELETE_CONFIRMED >-} else { # DEFAULT >- $template->param(else => 1); >- my @loop; >- my ($count,$results)=StringSearch($searchfield,'web'); >+ # called by delete_confirm, used to effectively confirm deletion of data in DB >+} >+elsif ( $op eq 'delete_confirmed' ) { >+ $template->param( delete_confirmed => 1 ); >+ my $dbh = C4::Context->dbh; >+ >+ my $categorycode = uc( $input->param('categorycode') ); >+ >+ my $sth = $dbh->prepare("delete from categories where categorycode=?"); >+ >+ $sth->execute($categorycode); >+ $sth->finish; >+ >+ print "Content-Type: text/html\n\n<META HTTP-EQUIV=Refresh CONTENT=\"0; URL=categorie.pl\"></html>"; >+ exit; >+ >+ # END $OP eq DELETE_CONFIRMED >+} >+else { # DEFAULT >+ $template->param( else => 1 ); >+ my @loop; >+ my ( $count, $results ) = StringSearch( $searchfield, 'web' ); >+ > my $dbh = C4::Context->dbh; >- my $sth = $dbh->prepare("SELECT b.branchcode, b.branchname FROM categories_branches AS cb, branches AS b WHERE cb.branchcode = b.branchcode AND cb.categorycode = ?"); >- for (my $i=0; $i < $count; $i++){ >+ my $sth = $dbh->prepare(" >+ SELECT b.branchcode, b.branchname >+ FROM categories_branches AS cb, branches AS b >+ WHERE cb.branchcode = b.branchcode AND cb.categorycode = ? >+ "); >+ >+ for ( my $i = 0 ; $i < $count ; $i++ ) { > $sth->execute( $results->[$i]{'categorycode'} ); >+ > my @selected_branches; > while ( my $branch = $sth->fetchrow_hashref ) { > push @selected_branches, $branch; > } >+ > my $enrolmentperioddate = $results->[$i]{'enrolmentperioddate'}; >- if ($enrolmentperioddate && $enrolmentperioddate eq '0000-00-00') { >- $enrolmentperioddate = undef; >- } >- $results->[$i]{'category_type'} //= ''; >- my %row = ( >- categorycode => $results->[$i]{'categorycode'}, >- description => $results->[$i]{'description'}, >- enrolmentperiod => $results->[$i]{'enrolmentperiod'}, >- enrolmentperioddate => $enrolmentperioddate, >- upperagelimit => $results->[$i]{'upperagelimit'}, >- dateofbirthrequired => $results->[$i]{'dateofbirthrequired'}, >- enrolmentfee => sprintf("%.2f",$results->[$i]{'enrolmentfee'} || 0), >- overduenoticerequired => $results->[$i]{'overduenoticerequired'}, >- issuelimit => $results->[$i]{'issuelimit'}, >- reservefee => sprintf("%.2f",$results->[$i]{'reservefee'} || 0), >- hidelostitems => $results->[$i]{'hidelostitems'}, >- category_type => $results->[$i]{'category_type'}, >+ if ( $enrolmentperioddate && $enrolmentperioddate eq '0000-00-00' ) { >+ $enrolmentperioddate = undef; >+ } >+ >+ $results->[$i]{'category_type'} //= ''; >+ >+ my %row = ( >+ branches => \@selected_branches, >+ categorycode => $results->[$i]{'categorycode'}, >+ description => $results->[$i]{'description'}, >+ enrolmentperiod => $results->[$i]{'enrolmentperiod'}, >+ enrolmentperioddate => $enrolmentperioddate, >+ upperagelimit => $results->[$i]{'upperagelimit'}, >+ dateofbirthrequired => $results->[$i]{'dateofbirthrequired'}, >+ overduenoticerequired => $results->[$i]{'overduenoticerequired'}, >+ issuelimit => $results->[$i]{'issuelimit'}, >+ hidelostitems => $results->[$i]{'hidelostitems'}, >+ category_type => $results->[$i]{'category_type'}, > default_privacy => $results->[$i]{'default_privacy'}, >- "type_".$results->[$i]{'category_type'} => 1, >- branches => \@selected_branches, >+ reservefee => sprintf( "%.2f", $results->[$i]{'reservefee'} || 0 ), >+ enrolmentfee => >+ sprintf( "%.2f", $results->[$i]{'enrolmentfee'} || 0 ), >+ "type_" . $results->[$i]{'category_type'} => 1, > ); >- if (C4::Context->preference('EnhancedMessagingPreferences')) { >- my $brief_prefs = _get_brief_messaging_prefs($results->[$i]{'categorycode'}); >+ >+ if ( C4::Context->preference('EnhancedMessagingPreferences') ) { >+ my $brief_prefs = >+ _get_brief_messaging_prefs( $results->[$i]{'categorycode'} ); > $row{messaging_prefs} = $brief_prefs if @$brief_prefs; > } >- push @loop, \%row; >- } >- $template->param(loop => \@loop); >- # check that I (institution) and C (child) exists. otherwise => warning to the user >- $sth=$dbh->prepare("select category_type from categories where category_type='C'"); >- $sth->execute; >- my ($categoryChild) = $sth->fetchrow; >- $template->param(categoryChild => $categoryChild); >- $sth=$dbh->prepare("select category_type from categories where category_type='I'"); >- $sth->execute; >- my ($categoryInstitution) = $sth->fetchrow; >- $template->param(categoryInstitution => $categoryInstitution); >- $sth->finish; >- >- >-} #---- END $OP eq DEFAULT >+ push @loop, \%row; >+ } >+ >+ $template->param( loop => \@loop ); >+ >+ # check that I (institution) and C (child) exists. otherwise => warning to the user >+ $sth = $dbh->prepare("select category_type from categories where category_type='C'"); >+ $sth->execute; >+ my ($categoryChild) = $sth->fetchrow; >+ $template->param( categoryChild => $categoryChild ); >+ >+ $sth = $dbh->prepare("select category_type from categories where category_type='I'"); >+ $sth->execute; >+ my ($categoryInstitution) = $sth->fetchrow; >+ $template->param( categoryInstitution => $categoryInstitution ); >+ $sth->finish; >+ >+} #---- END $OP eq DEFAULT > output_html_with_http_headers $input, $cookie, $template->output; > > exit 0; > > sub _get_brief_messaging_prefs { >- my $categorycode = shift; >+ my $categorycode = shift; > my $messaging_options = C4::Members::Messaging::GetMessagingOptions(); >- my $results = []; >- PREF: foreach my $option ( @$messaging_options ) { >- my $pref = C4::Members::Messaging::GetMessagingPreferences( { categorycode => $categorycode, >- message_name => $option->{'message_name'} } ); >- next unless $pref->{'transports'}; >+ my $results = []; >+ PREF: foreach my $option (@$messaging_options) { >+ my $pref = C4::Members::Messaging::GetMessagingPreferences( >+ { >+ categorycode => $categorycode, >+ message_name => $option->{'message_name'} >+ } >+ ); >+ next unless $pref->{'transports'}; > my $brief_pref = { >- message_attribute_id => $option->{'message_attribute_id'}, >- message_name => $option->{'message_name'}, >+ message_attribute_id => $option->{'message_attribute_id'}, >+ message_name => $option->{'message_name'}, > $option->{'message_name'} => 1 > }; >- foreach my $transport ( keys %{$pref->{'transports'}} ) { >+ foreach my $transport ( keys %{ $pref->{'transports'} } ) { > push @{ $brief_pref->{'transports'} }, { transport => $transport }; > } > push @$results, $brief_pref; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tt >index 263cc8b..d03309a 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/categorie.tt >@@ -284,19 +284,19 @@ > <tr><th scope="row">Receives overdue notices: </th><td>[% IF ( overduenoticerequired ) %]Yes[% ELSE %]No[% END %]</td></tr> > <tr><th scope="row">Lost items in staff client</th><td>[% IF ( hidelostitems ) %]Hidden by default[% ELSE %]Shown[% END %]</td></tr> > <tr><th scope="row">Hold fee: </th><td>[% reservefee %]</td></tr> >- <tr> >- <th scope="row">Default privacy: </th> >- <td> >- [% SWITCH category.default_privacy %] >- [% CASE 'default' %] >- Default >- [% CASE 'never' %] >- Never >- [% CASE 'forever' %] >- Forever >- [% END %] >- </td> >- </tr> >+ <tr> >+ <th scope="row">Default privacy: </th> >+ <td> >+ [% SWITCH category.default_privacy %] >+ [% CASE 'default' %] >+ Default >+ [% CASE 'never' %] >+ Never >+ [% CASE 'forever' %] >+ Forever >+ [% END %] >+ </td> >+ </tr> > </table> > <fieldset class="action">[% IF ( totalgtzero ) %] > <input type="submit" value="OK" /></form> >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 6254
:
19131
|
19132
|
19133
|
19272
|
19631
|
23309
|
23310
|
23317
|
23516
|
23520
|
23983
|
23985
|
23986
|
23987
|
24606
|
24696
|
24697
|
24698
|
24699
|
28033
|
28034
|
28035
| 28036