Bugzilla – Attachment 43236 Details for
Bug 14544
Move the list related code to Koha::Virtualshelves
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 14544: Get rid of GetShelfContent
Bug-14544-Get-rid-of-GetShelfContent.patch (text/plain), 23.69 KB, created by
Jonathan Druart
on 2015-10-08 09:10:53 UTC
(
hide
)
Description:
Bug 14544: Get rid of GetShelfContent
Filename:
MIME Type:
Creator:
Jonathan Druart
Created:
2015-10-08 09:10:53 UTC
Size:
23.69 KB
patch
obsolete
>From d45d9644ca58d900805e0597dca69f4aedfde64b Mon Sep 17 00:00:00 2001 >From: Jonathan Druart <jonathan.druart@bugs.koha-community.org> >Date: Mon, 17 Aug 2015 18:46:42 +0100 >Subject: [PATCH] Bug 14544: Get rid of GetShelfContent > >Signed-off-by: Alex Arnaud <alex.arnaud@biblibre.com> >--- > C4/VirtualShelves.pm | 60 ------------------------------------- > opac/opac-addbybiblionumber.pl | 45 ++++++++++++---------------- > opac/opac-downloadshelf.pl | 12 ++++---- > opac/opac-sendshelf.pl | 7 ++--- > opac/opac-shelves.pl | 38 +++++++++++++---------- > virtualshelves/addbybiblionumber.pl | 25 +++++++--------- > virtualshelves/downloadshelf.pl | 10 +++---- > virtualshelves/sendshelf.pl | 7 ++--- > virtualshelves/shelves.pl | 36 +++++++++++++--------- > 9 files changed, 91 insertions(+), 149 deletions(-) > >diff --git a/C4/VirtualShelves.pm b/C4/VirtualShelves.pm >index 3e8a686..e85f920 100644 >--- a/C4/VirtualShelves.pm >+++ b/C4/VirtualShelves.pm >@@ -40,7 +40,6 @@ BEGIN { > require Exporter; > @ISA = qw(Exporter); > @EXPORT = qw( >- &GetShelfContents > ); > @EXPORT_OK = qw( > &ShelvesMax >@@ -103,65 +102,6 @@ sub GetSomeShelfNames { > return ( { bartotal => $bar? scalar @$bar: 0, pubtotal => $pub? scalar @$pub: 0}, $pub, $bar); > } > >-=head2 GetShelfContents >- >- $biblist = &GetShelfContents($shelfnumber); >- >-Looks up information about the contents of virtual virtualshelves number >-C<$shelfnumber>. Sorted by a field in the biblio table. copyrightdate >-gives a desc sort. >- >-Returns a reference-to-array, whose elements are references-to-hash, >-as returned by C<C4::Biblio::GetBiblioFromItemNumber>. >- >-Note: the notforloan status comes from the itemtype, and where it equals 0 >-it does not ensure that related items.notforloan status is likewise 0. The >-caller has to check any items on their own, possibly with CanBookBeIssued >-from C4::Circulation. >- >-=cut >- >-sub GetShelfContents { >- my ($shelfnumber, $row_count, $offset, $sortfield, $sort_direction ) = @_; >- my $dbh=C4::Context->dbh(); >- my $sth1 = $dbh->prepare("SELECT count(*) FROM virtualshelfcontents WHERE shelfnumber = ?"); >- $sth1->execute($shelfnumber); >- my $total = $sth1->fetchrow; >- if(!$sortfield) { >- my $sth2 = $dbh->prepare('SELECT sortfield FROM virtualshelves WHERE shelfnumber=?'); >- $sth2->execute($shelfnumber); >- ($sortfield) = $sth2->fetchrow_array; >- } >- my $query = >- " SELECT DISTINCT vc.biblionumber, vc.shelfnumber, vc.dateadded, itemtypes.*, >- biblio.*, biblioitems.itemtype, biblioitems.publicationyear as year, biblioitems.publishercode, biblioitems.place, biblioitems.size, biblioitems.pages >- FROM virtualshelfcontents vc >- JOIN biblio ON vc.biblionumber = biblio.biblionumber >- LEFT JOIN biblioitems ON biblio.biblionumber = biblioitems.biblionumber >- LEFT JOIN items ON items.biblionumber=vc.biblionumber >- LEFT JOIN itemtypes ON biblioitems.itemtype = itemtypes.itemtype >- WHERE vc.shelfnumber=? "; >- my @params = ($shelfnumber); >- if($sortfield) { >- $query .= " ORDER BY " . $dbh->quote_identifier( $sortfield ); >- $query .= " DESC " if ( $sort_direction eq 'desc' ); >- } >- if($row_count){ >- $query .= " LIMIT ?, ? "; >- push (@params, ($offset ? $offset : 0)); >- push (@params, $row_count); >- } >- my $sth3 = $dbh->prepare($query); >- $sth3->execute(@params); >- return ($sth3->fetchall_arrayref({}), $total); >- # Like the perldoc says, >- # returns reference-to-array, where each element is reference-to-hash of the row: >- # like [ $sth->fetchrow_hashref(), $sth->fetchrow_hashref() ... ] >- # Suitable for use in TMPL_LOOP. >- # See http://search.cpan.org/~timb/DBI-1.601/DBI.pm#fetchall_arrayref >- # or newer, for your version of DBI. >-} >- > =head2 ShelvesMax > > $howmany= ShelvesMax($context); >diff --git a/opac/opac-addbybiblionumber.pl b/opac/opac-addbybiblionumber.pl >index b20702d..9ca2a3a 100755 >--- a/opac/opac-addbybiblionumber.pl >+++ b/opac/opac-addbybiblionumber.pl >@@ -41,6 +41,11 @@ our $authorized = 1; > our $errcode = 0; > our @biblios; > >+ >+if (scalar(@biblionumber) == 1) { >+ @biblionumber = (split /\//,$biblionumber[0]); >+} >+ > our ( $template, $loggedinuser, $cookie ) = get_template_and_user( > { > template_name => "opac-addbybiblionumber.tt", >@@ -72,20 +77,6 @@ else { > } > #end > >-sub AddBibliosToShelf { >- #splits incoming biblionumber(s) to array and adds each to shelf. >- my ($shelfnumber,@biblionumber)=@_; >- >- #multiple bibs might come in as '/' delimited string (from where, i don't see), or as array. >- if (scalar(@biblionumber) == 1) { >- @biblionumber = (split /\//,$biblionumber[0]); >- } >- for my $bib (@biblionumber) { >- my $shelf = Koha::Virtualshelves->find( $shelfnumber ); >- $shelf->add_biblio( $bib, $loggedinuser ); >- } >-} >- > sub HandleNewVirtualShelf { > if ( $loggedinuser > 0 and > ( >@@ -100,14 +91,18 @@ sub HandleNewVirtualShelf { > category => $category, > owner => $loggedinuser, > } >- ); >+ )->store; > }; > if ( $@ or not $shelf ) { > $authorized = 0; > $errcode = 1; > return; > } >- AddBibliosToShelf($shelfnumber, @biblionumber); >+ >+ for my $bib (@biblionumber) { >+ $shelf->add_biblio( $bib, $loggedinuser ); >+ } >+ > #Reload the page where you came from > print $query->header; > print "<html><meta http-equiv=\"refresh\" content=\"0\" /><body onload=\"window.opener.location.reload(true);self.close();\"></body></html>"; >@@ -118,7 +113,9 @@ sub HandleShelfNumber { > my $shelfnumber = $query->param('shelfnumber'); > my $shelf = Koha::Virtualshelves->find( $shelfnumber ); > if ( $shelf->can_biblios_be_added( $loggedinuser ) ) { >- AddBibliosToShelf($shelfnumber,@biblionumber); >+ for my $bib (@biblionumber) { >+ $shelf->add_biblio( $bib, $loggedinuser ); >+ } > #Close this page and return > print $query->header; > print "<html><meta http-equiv=\"refresh\" content=\"0\" /><body onload=\"self.close();\"></body></html>"; >@@ -181,17 +178,13 @@ sub HandleSelect { > } > > sub LoadBib { >- #see comment in AddBibliosToShelf >- if (scalar(@biblionumber) == 1) { >- @biblionumber = (split /\//,$biblionumber[0]); >- } > for my $bib (@biblionumber) { > my $data = GetBiblioData( $bib ); >- push(@biblios, >- { biblionumber => $bib, >- title => $data->{'title'}, >- author => $data->{'author'}, >- } ); >+ push(@biblios, >+ { biblionumber => $bib, >+ title => $data->{'title'}, >+ author => $data->{'author'}, >+ } ); > } > $template->param( > multiple => (scalar(@biblios) > 1), >diff --git a/opac/opac-downloadshelf.pl b/opac/opac-downloadshelf.pl >index f7e5571..320b161 100755 >--- a/opac/opac-downloadshelf.pl >+++ b/opac/opac-downloadshelf.pl >@@ -56,7 +56,8 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) { > > if ($shelfnumber && $format) { > >- my ($items, $totitems) = GetShelfContents($shelfnumber); >+ >+ my $contents = $shelf->get_contents; > my $marcflavour = C4::Context->preference('marcflavour'); > my $output; > my $extension; >@@ -65,15 +66,14 @@ if ( $shelf and $shelf->can_be_viewed( $borrowernumber ) ) { > # CSV > if ($format =~ /^\d+$/) { > my @biblios; >- foreach (@$items) { >- push @biblios, $_->{biblionumber}; >+ while ( my $content = $contents->next ) { >+ push @biblios, $content->biblionumber->biblionumber; > } > $output = marc2csv(\@biblios, $format); >- > # Other formats > } else { >- foreach my $biblio (@$items) { >- my $biblionumber = $biblio->{biblionumber}; >+ while ( my $content = $contents->next ) { >+ my $biblionumber = $content->biblionumber->biblionumber; > > my $record = GetMarcBiblio($biblionumber, 1); > next unless $record; >diff --git a/opac/opac-sendshelf.pl b/opac/opac-sendshelf.pl >index b0215cc..a1b6105 100755 >--- a/opac/opac-sendshelf.pl >+++ b/opac/opac-sendshelf.pl >@@ -75,14 +75,13 @@ if ( $email ) { > ); > > my $shelf = Koha::Virtualshelves->find( $shelfid ); >- my ($items, $totitems) = GetShelfContents($shelfid); >+ my $contents = $shelf->get_contents; > my $marcflavour = C4::Context->preference('marcflavour'); > my $iso2709; > my @results; > >- # retrieve biblios from shelf >- foreach my $biblio (@$items) { >- my $biblionumber = $biblio->{biblionumber}; >+ while ( my $content = $contents->next ) { >+ my $biblionumber = $content->biblionumber->biblionumber; > my $fw = GetFrameworkCode($biblionumber); > my $dat = GetBiblioData($biblionumber); > my $record = GetMarcBiblio($biblionumber, 1); >diff --git a/opac/opac-shelves.pl b/opac/opac-shelves.pl >index 632177f..c5f0a35 100755 >--- a/opac/opac-shelves.pl >+++ b/opac/opac-shelves.pl >@@ -213,13 +213,12 @@ if ( $op eq 'view' ) { > $category = $shelf->category; > my $sortfield = $query->param('sortfield') || $shelf->sortfield; # Passed in sorting overrides default sorting > my $direction = $query->param('direction') || 'asc'; >- my ( $shelflimit, $shelfoffset, $itemoff ); >+ my ( $page, $rows ); > unless ( $query->param('print') or $query->param('rss') ) { >- $shelflimit = C4::Context->preference('OPACnumSearchResults') || 20; >- $itemoff = ( $query->param('itemoff') ? $query->param('itemoff') : 1 ); >- $shelfoffset = ( $itemoff - 1 ) * $shelflimit; # Sets the offset to begin retrieving items at >+ $rows = C4::Context->preference('OPACnumSearchResults') || 20; >+ $page = ( $query->param('page') ? $query->param('page') : 1 ); > } >- my ( $items, $totitems ) = GetShelfContents( $shelfnumber, $shelflimit, $shelfoffset, $sortfield, $direction ); >+ my $contents = $shelf->get_contents->search({}, { join => [ 'biblionumber' ], page => $page, rows => $rows, order_by => "$sortfield $direction", }); > > # get biblionumbers stored in the cart > my @cart_list; >@@ -229,8 +228,10 @@ if ( $op eq 'view' ) { > > my $borrower = GetMember( borrowernumber => $loggedinuser ); > >- for my $this_item (@$items) { >- my $biblionumber = $this_item->{biblionumber}; >+ my @items; >+ while ( my $content = $contents->next ) { >+ my $this_item; >+ my $biblionumber = $content->biblionumber->biblionumber; > my $record = GetMarcBiblio($biblionumber); > > if ( C4::Context->preference("OPACXSLTResultsDisplay") ) { >@@ -238,9 +239,12 @@ if ( $op eq 'view' ) { > } > > my $marcflavour = C4::Context->preference("marcflavour"); >- $this_item->{'imageurl'} = getitemtypeinfo( $this_item->{'itemtype'}, 'intranet' )->{'imageurl'}; >+ my $itemtypeinfo = getitemtypeinfo( $content->biblionumber->biblioitems->first->itemtype, 'intranet' ); >+ $this_item->{imageurl} = $itemtypeinfo->{imageurl}; >+ $this_item->{description} = $itemtypeinfo->{description}; >+ $this_item->{notforloan} = $itemtypeinfo->{notforloan}; > $this_item->{'coins'} = GetCOinSBiblio($record); >- $this_item->{'subtitle'} = GetRecordValue( 'subtitle', $record, GetFrameworkCode( $this_item->{'biblionumber'} ) ); >+ $this_item->{'subtitle'} = GetRecordValue( 'subtitle', $record, GetFrameworkCode( $biblionumber ) ); > $this_item->{'normalized_upc'} = GetNormalizedUPC( $record, $marcflavour ); > $this_item->{'normalized_ean'} = GetNormalizedEAN( $record, $marcflavour ); > $this_item->{'normalized_oclc'} = GetNormalizedOCLCNumber( $record, $marcflavour ); >@@ -253,12 +257,12 @@ if ( $op eq 'view' ) { > } > > # Getting items infos for location display >- my @items_infos = &GetItemsLocationInfo( $this_item->{'biblionumber'} ); >+ my @items_infos = &GetItemsLocationInfo( $biblionumber ); > $this_item->{'ITEM_RESULTS'} = \@items_infos; > > if (C4::Context->preference('TagsEnabled') and C4::Context->preference('TagsShowOnList')) { > $this_item->{TagLoop} = get_tags({ >- biblionumber=>$this_item->{'biblionumber'}, approved=>1, 'sort'=>'-weight', >+ biblionumber => $biblionumber, approved=>1, 'sort'=>'-weight', > limit => C4::Context->preference('TagsShowOnList'), > }); > } >@@ -273,8 +277,9 @@ if ( $op eq 'view' ) { > if ( $query->param('rss') ) { > $this_item->{title} = $content->biblionumber->title; > $this_item->{author} = $content->biblionumber->author; >- $this_item->{biblionumber} = $biblionumber; > } >+ >+ $this_item->{biblionumber} = $biblionumber; > push @items, $this_item; > } > >@@ -290,15 +295,16 @@ if ( $op eq 'view' ) { > can_remove_biblios => $shelf->can_biblios_be_removed($loggedinuser), > can_add_biblios => $shelf->can_biblios_be_added($loggedinuser), > sortfield => $sortfield, >- itemsloop => $items, >+ itemsloop => \@items, > sortfield => $sortfield, > direction => $direction, > ); >- if ($shelflimit) { >+ if ( $page ) { >+ my $pager = $contents->pager; > $template->param( > pagination_bar => pagination_bar( >- q||, ( int( $totitems / $shelflimit ) ) + ( ( $totitems % $shelflimit ) > 0 ? 1 : 0 ), >- $itemoff, "itemoff", { op => 'view', shelfnumber => $shelf->shelfnumber, sortfield => $sortfield, direction => $direction, } >+ q||, $pager->last_page - $pager->first_page + 1, >+ $page, "page", { op => 'view', shelfnumber => $shelf->shelfnumber, sortfield => $sortfield, direction => $direction, } > ), > ); > } >diff --git a/virtualshelves/addbybiblionumber.pl b/virtualshelves/addbybiblionumber.pl >index e6a1630..8690000 100755 >--- a/virtualshelves/addbybiblionumber.pl >+++ b/virtualshelves/addbybiblionumber.pl >@@ -124,13 +124,6 @@ sub HandleBiblioPars { > return @bib; > } > >-sub AddBibliosToShelf { >- my ($shelfnumber, @biblionumber)=@_; >- for my $bib (@biblionumber){ >- Koha::Virtualshelves->find( $shelfnumber )->add_biblio( $bib, $loggedinuser ); >- } >-} >- > sub HandleNewVirtualShelf { > my $shelf = eval { > Koha::Virtualshelf->new( >@@ -141,14 +134,16 @@ sub HandleNewVirtualShelf { > owner => $loggedinuser, > } > ); >- }; >+ }->store; > if ( $@ or not $shelf ) { > $authorized = 0; > $errcode = 1; > return; > } > >- AddBibliosToShelf($shelfnumber, @biblionumber); >+ for my $bib (@biblionumber){ >+ $shelf->add_biblio( $bib, $loggedinuser ); >+ } > #Reload the page where you came from > print $query->header; > print "<html><meta http-equiv=\"refresh\" content=\"0\" /><body onload=\"window.opener.location.reload(true);self.close();\"></body></html>"; >@@ -157,13 +152,15 @@ sub HandleNewVirtualShelf { > sub HandleShelfNumber { > my $shelf = Koha::Virtualshelves->find( $shelfnumber ); > if($authorized = $shelf->can_biblios_be_added( $loggedinuser ) ) { >- AddBibliosToShelf($shelfnumber, @biblionumber); >- #Close this page and return >- print $query->header; >- print "<html><meta http-equiv=\"refresh\" content=\"0\" /><body onload=\"self.close();\"></body></html>"; >+ for my $bib (@biblionumber){ >+ $shelf->add_biblio( $bib, $loggedinuser ); >+ } >+ #Close this page and return >+ print $query->header; >+ print "<html><meta http-equiv=\"refresh\" content=\"0\" /><body onload=\"self.close();\"></body></html>"; > } > else { >- $errcode=2; #no perm >+ $errcode=2; #no perm > } > } > >diff --git a/virtualshelves/downloadshelf.pl b/virtualshelves/downloadshelf.pl >index 156e261..3d1b10d 100755 >--- a/virtualshelves/downloadshelf.pl >+++ b/virtualshelves/downloadshelf.pl >@@ -54,7 +54,6 @@ my @messages; > > if ($shelfid && $format) { > >- my ($items, $totitems) = GetShelfContents($shelfid); > my $marcflavour = C4::Context->preference('marcflavour'); > my $output=''; > >@@ -62,17 +61,18 @@ if ($shelfid && $format) { > if ( $shelf ) { > if ( $shelf->can_be_viewed( $loggedinuser ) ) { > >+ my $contents = $shelf->get_contents; > # CSV > if ($format =~ /^\d+$/) { > my @biblios; >- foreach (@$items) { >- push @biblios, $_->{biblionumber}; >+ while ( my $content = $contents->next ) { >+ push @biblios, $content->biblionumber->biblionumber; > } > $output = marc2csv(\@biblios, $format); > } > else { #Other formats >- foreach my $biblio (@$items) { >- my $biblionumber = $biblio->{biblionumber}; >+ while ( my $content = $contents->next ) { >+ my $biblionumber = $content->biblionumber->biblionumber; > my $record = GetMarcBiblio($biblionumber, 1); > if ($format eq 'iso2709') { > $output .= $record->as_usmarc(); >diff --git a/virtualshelves/sendshelf.pl b/virtualshelves/sendshelf.pl >index 7f1ddbf..0ef6e1e 100755 >--- a/virtualshelves/sendshelf.pl >+++ b/virtualshelves/sendshelf.pl >@@ -72,14 +72,13 @@ if ($email) { > ); > > my $shelf = Koha::Virtualshelves->find( $shelfid ); >- my ( $items, $totitems ) = GetShelfContents($shelf->shelfnumber); >+ my $contents = $shelf->get_contents; > my $marcflavour = C4::Context->preference('marcflavour'); > my $iso2709; > my @results; > >- # retrieve biblios from shelf >- foreach my $biblio (@$items) { >- my $biblionumber = $biblio->{biblionumber}; >+ while ( my $content = $contents->next ) { >+ my $biblionumber = $content->biblionumber->biblionumber; > my $fw = GetFrameworkCode($biblionumber); > my $dat = GetBiblioData($biblionumber); > my $record = GetMarcBiblio($biblionumber, 1); >diff --git a/virtualshelves/shelves.pl b/virtualshelves/shelves.pl >index 8e7ecc0..53f9c24 100755 >--- a/virtualshelves/shelves.pl >+++ b/virtualshelves/shelves.pl >@@ -196,18 +196,20 @@ if ( $op eq 'view' ) { > if ( $shelf->can_be_viewed( $loggedinuser ) ) { > my $sortfield = $query->param('sortfield') || $shelf->sortfield; # Passed in sorting overrides default sorting > my $direction = $query->param('direction') || 'asc'; >- my ( $shelflimit, $shelfoffset, $itemoff ); >+ my ( $rows, $page ); > unless ( $query->param('print') ) { >- $shelflimit = C4::Context->preference('numSearchResults') || 20; >- $itemoff = ( $query->param('itemoff') ? $query->param('itemoff') : 1 ); >- $shelfoffset = ( $itemoff - 1 ) * $shelflimit; # Sets the offset to begin retrieving items at >+ $rows = C4::Context->preference('numSearchResults') || 20; >+ $page = ( $query->param('page') ? $query->param('page') : 1 ); > } >- my ( $items, $totitems ) = GetShelfContents( $shelfnumber, $shelflimit, $shelfoffset, $sortfield, $direction ); >+ >+ my $contents = $shelf->get_contents->search({}, { join => [ 'biblionumber' ], page => $page, rows => $rows, order_by => "$sortfield $direction", }); > > my $borrower = GetMember( borrowernumber => $loggedinuser ); > >- for my $this_item (@$items) { >- my $biblionumber = $this_item->{biblionumber}; >+ my @items; >+ while ( my $content = $contents->next ) { >+ my $this_item; >+ my $biblionumber = $content->biblionumber->biblionumber; > my $record = GetMarcBiblio($biblionumber); > > if ( C4::Context->preference("XSLTResultsDisplay") ) { >@@ -215,9 +217,12 @@ if ( $op eq 'view' ) { > } > > my $marcflavour = C4::Context->preference("marcflavour"); >- $this_item->{'imageurl'} = getitemtypeinfo( $this_item->{'itemtype'}, 'intranet' )->{'imageurl'}; >+ my $itemtypeinfo = getitemtypeinfo( $content->biblionumber->biblioitems->first->itemtype, 'intranet' ); >+ $this_item->{imageurl} = $itemtypeinfo->{imageurl}; >+ $this_item->{description} = $itemtypeinfo->{description}; >+ $this_item->{notforloan} = $itemtypeinfo->{notforloan}; > $this_item->{'coins'} = GetCOinSBiblio($record); >- $this_item->{'subtitle'} = GetRecordValue( 'subtitle', $record, GetFrameworkCode( $this_item->{'biblionumber'} ) ); >+ $this_item->{'subtitle'} = GetRecordValue( 'subtitle', $record, GetFrameworkCode( $biblionumber ) ); > $this_item->{'normalized_upc'} = GetNormalizedUPC( $record, $marcflavour ); > $this_item->{'normalized_ean'} = GetNormalizedEAN( $record, $marcflavour ); > $this_item->{'normalized_oclc'} = GetNormalizedOCLCNumber( $record, $marcflavour ); >@@ -230,8 +235,10 @@ if ( $op eq 'view' ) { > } > > # Getting items infos for location display >- my @items_infos = &GetItemsLocationInfo( $this_item->{'biblionumber'} ); >+ my @items_infos = &GetItemsLocationInfo( $biblionumber ); > $this_item->{'ITEM_RESULTS'} = \@items_infos; >+ $this_item->{biblionumber} = $biblionumber; >+ push @items, $this_item; > } > > # Build drop-down list for 'Add To:' menu... >@@ -246,15 +253,16 @@ if ( $op eq 'view' ) { > can_remove_biblios => $shelf->can_biblios_be_removed($loggedinuser), > can_add_biblios => $shelf->can_biblios_be_added($loggedinuser), > sortfield => $sortfield, >- itemsloop => $items, >+ itemsloop => \@items, > sortfield => $sortfield, > direction => $direction, > ); >- if ($shelflimit) { >+ if ( $page ) { >+ my $pager = $contents->pager; > $template->param( > pagination_bar => pagination_bar( >- q||, ( int( $totitems / $shelflimit ) ) + ( ( $totitems % $shelflimit ) > 0 ? 1 : 0 ), >- $itemoff, "itemoff", { op => 'view', shelfnumber => $shelf->shelfnumber, sortfield => $sortfield, direction => $direction, } >+ q||, $pager->last_page - $pager->first_page + 1, >+ $page, "page", { op => 'view', shelfnumber => $shelf->shelfnumber, sortfield => $sortfield, direction => $direction, } > ), > ); > } >-- >2.1.0
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 14544
:
41034
|
41035
|
41036
|
41037
|
41038
|
41039
|
41040
|
41041
|
41042
|
41403
|
41404
|
41405
|
41406
|
41407
|
41408
|
41409
|
41410
|
41411
|
41412
|
41584
|
41585
|
41586
|
41587
|
41588
|
41589
|
41590
|
41591
|
41592
|
41593
|
41594
|
41595
|
41596
|
41597
|
41598
|
41599
|
41600
|
41601
|
41716
|
41717
|
41718
|
41719
|
41720
|
41721
|
41722
|
41723
|
41724
|
41725
|
41726
|
41727
|
41728
|
41729
|
41730
|
41731
|
41732
|
41733
|
41766
|
41909
|
41910
|
41913
|
41914
|
41915
|
41917
|
41918
|
41919
|
41924
|
41927
|
41931
|
41932
|
41953
|
41954
|
41955
|
41956
|
41957
|
41958
|
41959
|
41960
|
41961
|
41962
|
41963
|
41964
|
41965
|
41966
|
41967
|
41968
|
41969
|
41970
|
41973
|
41974
|
41975
|
41976
|
41977
|
41978
|
41979
|
41980
|
41981
|
41982
|
41983
|
41986
|
41988
|
42192
|
42199
|
42200
|
42201
|
42202
|
42203
|
42204
|
42205
|
42206
|
42207
|
42208
|
42209
|
42210
|
42211
|
42212
|
42213
|
42214
|
42215
|
42216
|
42217
|
42218
|
42219
|
42638
|
43223
|
43224
|
43225
|
43226
|
43227
|
43228
|
43229
|
43230
|
43231
|
43232
|
43233
|
43234
|
43235
|
43236
|
43237
|
43238
|
43239
|
43240
|
43241
|
43242
|
43243
|
43296
|
43334
|
43335
|
43403
|
43456
|
43457
|
43458
|
43459
|
43460
|
43461
|
43462
|
43463
|
43464
|
43465
|
43466
|
43467
|
43469
|
43470
|
43471
|
43472
|
43473
|
43474
|
43475
|
43476
|
43477
|
43478
|
43479
|
43480
|
43481
|
43482
|
43485
|
43486
|
43487
|
44467
|
44468
|
44469
|
44470
|
44471
|
44472
|
44473
|
44474
|
44475
|
44476
|
44477
|
44478
|
44479
|
44480
|
44481
|
44482
|
44483
|
44484
|
44485
|
44486
|
44487
|
44758
|
44845
|
44852
|
44863
|
44872