# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place,
# Suite 330, Boston, MA 02111-1307 USA
-# $Id$
=head1 NAME
=head1 DESCRIPTION
- this script is used to script to provide bookshelf management
+ this script is used to script to provide virtualshelf management
=head1 CGI PARAMETERS
use strict;
use CGI;
use C4::Output;
-use C4::BookShelves;
+use C4::VirtualShelves;
use C4::Circulation;
use C4::Auth;
-use C4::Interface::CGI::Output;
+use C4::Output;
+use C4::Biblio;
my $query = new CGI;
my $shelfnumber = $query->param('viewshelf');
my $barcode = $query->param('addbarcode');
my ($item) = GetItemnumberFromBarcode($barcode);
+ my ($biblio) = GetBiblioFromItemNumber($item->{'itemnumber'});
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'manage' ) ) {
- AddToShelf( $item->{'itemnumber'}, $shelfnumber );
+ AddToShelf( $biblio->{'biblionumber'}, $shelfnumber );
foreach ( $query->param ) {
if (/MOD-(\d*)/) {
- my $itemnumber = $1;
+ my $biblionumber = $1;
if ( $query->param('remove') eq "on" ) {
- DelFromShelf( $itemnumber, $shelfnumber );
+ DelFromShelf( $biblionumber, $shelfnumber );
}
}
}
}
}
+ # set the default tab, etc.
+ my $shelf_type = $query->param('display');
+ if ((!$shelf_type) || ($shelf_type eq 'privateshelves')) {
+ $template->param(showprivateshelves => 1);
+ } elsif ($shelf_type eq 'publicshelves') {
+ $template->param(showpublicshelves => 1);
+ }
+
# getting the Shelves list
my $shelflist = GetShelves( $loggedinuser, 2 );
$template->param( { loggedinuser => $loggedinuser } );
if ( $op && ( $op eq 'modifsave' ) ) {
ModShelf(
$query->param('shelfnumber'), $query->param('shelfname'),
- $loggedinuser, $query->param('category')
+ $loggedinuser, $query->param('category'), $query->param('sortfield')
);
last SWITCH;
}
if ( $op && ( $op eq 'modif' ) ) {
- my ( $shelfnumber, $shelfname, $owner, $category ) =
+ my ( $shelfnumber, $shelfname, $owner, $category, $sortfield ) =
GetShelf( $query->param('shelf') );
$template->param(
edit => 1,
shelfnumber => $shelfnumber,
shelfname => $shelfname,
- "category$category" => 1
+ "category$category" => 1,
+ "sort_$sortfield" => 1,
);
# editshelf($query->param('shelf'));
my $shelfnumber = $query->param('viewshelf');
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'view' ) ) {
my $items = GetShelfContents($shelfnumber);
- $template->param(
+ $template->param(
shelfname => $shelflist->{$shelfnumber}->{'shelfname'},
shelfnumber => $shelfnumber,
viewshelf => $query->param('viewshelf'),
$line{'toggle'} = $color;
$line{'shelf'} = $element;
$line{'shelfname'} = $shelflist->{$element}->{'shelfname'};
- $line{'shelfbookcount'} = $shelflist->{$element}->{'count'};
+ $line{'shelfvirtualcount'} = $shelflist->{$element}->{'count'};
push( @shelvesloop, \%line );
}
$template->param(
}
}
-($shelflist) =
- GetShelves( $loggedinuser, 2 )
- ; # rebuild shelflist in case a shelf has been added
+# rebuild shelflist in case a shelf has been added
+($shelflist) = GetShelves( $loggedinuser, 2 ) ;
-my $color = '';
+my $color='';
my @shelvesloop;
-foreach my $element ( sort keys %$shelflist ) {
- my %line;
- ( $color eq 1 ) ? ( $color = 0 ) : ( $color = 1 );
- $line{'toggle'} = $color;
- $line{'shelf'} = $element;
- $line{'shelfname'} = $shelflist->{$element}->{'shelfname'};
- $line{ "category" . $shelflist->{$element}->{'category'} } = 1;
- $line{'mine'} = 1 if $shelflist->{$element}->{'owner'} eq $loggedinuser;
- $line{'shelfbookcount'} = $shelflist->{$element}->{'count'};
- $line{'canmanage'} =
- ShelfPossibleAction( $loggedinuser, $element, 'manage' );
- $line{'firstname'} = $shelflist->{$element}->{'firstname'}
- unless $shelflist->{$element}->{'owner'} eq $loggedinuser;
- $line{'surname'} = $shelflist->{$element}->{'surname'}
- unless $shelflist->{$element}->{'owner'} eq $loggedinuser;
- push( @shelvesloop, \%line );
- }
+my @shelveslooppriv;
+foreach my $element (sort { lc($shelflist->{$a}->{'shelfname'}) cmp lc($shelflist->{$b}->{'shelfname'}) } keys %$shelflist) {
+ my %line;
+ my %linepriv;
+ ($color eq 0) ? ($color=1) : ($color=0);
+ if ($shelflist->{$element}->{'category'} eq 2) {
+ $line{'color'}= $color;
+ $line{'shelf'}=$element;
+ $line{'shelfname'}=$shelflist->{$element}->{'shelfname'};
+ $line{'sortfield'}=$shelflist->{$element}->{'sortfield'};
+ $line{"category".$shelflist->{$element}->{'category'}} = 1;
+ $line{'mine'} = 1 if $shelflist->{$element}->{'owner'} eq $loggedinuser;
+ $line{'shelfbookcount'}=$shelflist->{$element}->{'count'};
+ $line{'canmanage'} = ShelfPossibleAction($loggedinuser,$element,'manage');
+ $line{'firstname'}=$shelflist->{$element}->{'firstname'} unless $shelflist->{$element}->{'owner'} eq $loggedinuser;
+ $line{'surname'}=$shelflist->{$element}->{'surname'} unless $shelflist->{$element}->{'owner'} eq $loggedinuser;
+
+ push (@shelvesloop, \%line);
+ } elsif ($shelflist->{$element}->{'category'} eq 1) {
+ $linepriv{'color'}= $color;
+ $linepriv{'shelf'}=$element;
+ $linepriv{'shelfname'}=$shelflist->{$element}->{'shelfname'};
+ $linepriv{'sortfield'}=$shelflist->{$element}->{'sortfield'};
+ $linepriv{"category".$shelflist->{$element}->{'category'}} = 1;
+ $linepriv{'mine'} = 1 if $shelflist->{$element}->{'owner'} eq $loggedinuser;
+ $linepriv{'shelfbookcount'}=$shelflist->{$element}->{'count'};
+ $linepriv{'canmanage'} = ShelfPossibleAction($loggedinuser,$element,'manage');
+ $linepriv{'firstname'}=$shelflist->{$element}->{'firstname'} unless $shelflist->{$element}->{'owner'} eq $loggedinuser;
+ $linepriv{'surname'}=$shelflist->{$element}->{'surname'} unless $shelflist->{$element}->{'owner'} eq $loggedinuser;
+ push (@shelveslooppriv, \%linepriv);
+ }
+}
$template->param(
+ shelveslooppriv => \@shelveslooppriv,
shelvesloop => \@shelvesloop,
"BiblioDefaultView".C4::Context->preference("BiblioDefaultView") => 1,
);
#
-# $Log$
+# Revision 1.12 2007/04/24 13:54:29 hdl
+# functions that were in C4::Interface::CGI::Output are now in C4::Output.
+# So this implies quite a change for files.
+# Sorry about conflicts which will be caused.
+# directory Interface::CGI should now be dropped.
+# I noticed that many scripts (reports ones, but also some circ/stats.pl or opac-topissues) still use Date::Manip.
+#
# Revision 1.11 2007/04/17 08:52:19 tipaul
# circulation cleaning continued: bufixing
#
# add the link to "BiblioDefaultView systempref" and not to opac-detail.pl
#
# Revision 1.8.2.7 2006/12/14 17:22:55 toins
-# bookshelves work perfectly with mod_perl and are cleaned.
+# virtualshelves work perfectly with mod_perl and are cleaned.
#
# Revision 1.8.2.6 2006/12/14 16:04:25 toins
# sync with intranet.
#
# Revision 1.8.2.5 2006/12/11 17:10:06 toins
-# fixing some bugs on bookshelves.
+# fixing some bugs on virtualshelves.
#
# Revision 1.8.2.4 2006/12/07 15:42:15 toins
# synching opac & intranet.