require Exporter;
@ISA = qw(Exporter);
@EXPORT = qw(
- &GetShelves &GetShelfContents &GetShelf
+ &GetShelves &GetShelfContents
&AddToShelf &AddShelf
&ModShelf
&ShelfPossibleAction
return ( { bartotal => $bar? scalar @$bar: 0, pubtotal => $pub? scalar @$pub: 0}, $pub, $bar);
}
-=head2 GetShelf
-
- (shelfnumber,shelfname,owner,category,sortfield,allow_add,allow_delete_own,allow_delete_other) = &GetShelf($shelfnumber);
-
-Returns the above-mentioned fields for passed virtual shelf number.
-
-=cut
-
-sub GetShelf {
- my ($shelfnumber) = @_;
- my $dbh = C4::Context->dbh;
- my $query = qq(
- SELECT shelfnumber, shelfname, owner, category, sortfield,
- allow_add, allow_delete_own, allow_delete_other
- FROM virtualshelves
- WHERE shelfnumber=?
- );
- my $sth = $dbh->prepare($query);
- $sth->execute($shelfnumber);
- return $sth->fetchrow;
-}
-
=head2 GetShelfContents
$biblist = &GetShelfContents($shelfnumber);
use C4::Csv;
use C4::XSLT;
+use Koha::Virtualshelves;
+
use constant VIRTUALSHELVES_COUNT => 20;
use vars qw($debug @EXPORT @ISA $VERSION);
}
#Editing a shelf
elsif ( $op eq 'modif' ) {
- my ( $shelfnumber2, $shelfname, $owner, $category, $sortfield, $allow_add, $allow_delete_own, $allow_delete_other) = GetShelf($shelfnumber);
- my $member = GetMember( 'borrowernumber' => $owner );
+ my $shelf = Koha::Virtualshelves->find( $shelfnumber );
+ my $member = GetMember( 'borrowernumber' => $shelf->owner );
my $ownername = defined($member) ? $member->{firstname} . " " . $member->{surname} : '';
$edit = 1;
$template->param(
edit => 1,
display => $displaymode,
- shelfnumber => $shelfnumber2,
- shelfname => $shelfname,
- owner => $owner,
+ shelfnumber => $shelf->shelfnumber,
+ shelfname => $shelf->shelfname,
+ owner => $shelf->owner,
ownername => $ownername,
- "category$category" => 1,
- category => $category,
- sortfield => $sortfield,
- allow_add => $allow_add,
- allow_delete_own => $allow_delete_own,
- allow_delete_other => $allow_delete_other,
+ "category".$shelf->category => 1,
+ category => $shelf->category,
+ sortfield => $shelf->sortfield,
+ allow_add => $shelf->allow_add,
+ allow_delete_own => $shelf->allow_delete_own,
+ allow_delete_other => $shelf->allow_delete_other,
);
}
last SWITCH;
#View a shelf
if ( $shelfnumber = $query->param('viewshelf') ) {
- # explicitly fetch this shelf
- my ($shelfnumber2,$shelfname,$owner,$category,$sorton) = GetShelf($shelfnumber);
-
+ my $shelf = Koha::Virtualshelves->find( $shelfnumber );
$template->param(
'DisplayMultiPlaceHold' => C4::Context->preference('DisplayMultiPlaceHold'),
);
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'view' ) ) {
my $items;
my $tag_quantity;
- my $sortfield = ( $sorton ? $sorton : 'title' );
+ my $sortfield = ( $shelf->sortfield ? $shelf->sortfield : 'title' );
$sortfield = $query->param('sort') || $sortfield; ## Passed in sorting overrides default sorting
my $direction = $query->param('direction') || 'asc';
$template->param(
addpubshelvesloop => $pubshelves,
);
}
- push @paramsloop, { display => 'privateshelves' } if $category == 1;
+ push @paramsloop, { display => 'privateshelves' } if $shelf->category == 1;
$showadd = 1;
my $i = 0;
my $manageshelf = ShelfPossibleAction( $loggedinuser, $shelfnumber, 'manage' );
my $can_delete_shelf = ShelfPossibleAction( $loggedinuser, $shelfnumber, 'delete_shelf' );
$template->param(
- shelfname => $shelfname,
+ shelfname => $shelf->shelfname,
shelfnumber => $shelfnumber,
viewshelf => $shelfnumber,
sortfield => $sortfield,
allowremovingitems => ShelfPossibleAction( $loggedinuser, $shelfnumber, 'delete'),
allowaddingitem => ShelfPossibleAction( $loggedinuser, $shelfnumber, 'add'),
allowdeletingshelf => $can_delete_shelf,
- "category$category" => 1,
- category => $category,
+ "category".$shelf->category => 1,
+ category => $shelf->category,
itemsloop => $items,
- showprivateshelves => $category==1,
+ showprivateshelves => $shelf->category==1,
);
} else {
push @paramsloop, { nopermission => $shelfnumber };
=cut
sub type {
- return 'Virtualshelf';
+ return 'Virtualshelve';
}
1;
=cut
sub type {
- return 'Virtualshelf';
+ return 'Virtualshelve';
}
sub object_class {
use C4::Output;
use C4::Auth;
+use Koha::Virtualshelves;
+
our $query = new CGI;
our @biblionumber = $query->param('biblionumber');
our $selectedshelf = $query->param('selectedshelf');
sub HandleSelectedShelf {
if($authorized= ShelfPossibleAction( $loggedinuser, $selectedshelf, 'add')){
#adding to specific shelf
- my ($singleshelf, $singleshelfname)= GetShelf($query->param('selectedshelf'));
+ my $shelfnumber = $query->param('selectedshelf');
+ my $shelf = Koha::Virtualshelves->find( $shelfnumber );
$template->param(
- singleshelf => 1,
- shelfnumber => $singleshelf,
- shelfname => $singleshelfname,
+ singleshelf => 1,
+ shelfnumber => $shelf->shelfnumber,
+ shelfname => $shelf->shelfname,
);
}
}
use C4::Record;
use C4::Ris;
use C4::Csv;
+
+use Koha::Virtualshelves;
+
use utf8;
my $query = new CGI;
} else {
- # get details of the list
- my ($shelfnumber,$shelfname,$owner,$category,$sorton) = GetShelf($shelfid);
+ my $shelf = Koha::Virtualshelves->find( $shelfid );
# if modal context is passed set a variable so that page markup can be different
if($context eq "modal"){
$template->param(csv_profiles => GetCsvProfilesLoop('marc'));
$template->param(
showprivateshelves => $showprivateshelves,
- shelfid => $shelfid,
- shelfname => $shelfname,
- shelfnumber => $shelfnumber,
- viewshelf => $shelfnumber
+ shelfid => $shelf->shelfnumber,
+ shelfnumber => $shelf->shelfnumber,
+ viewshelf => $shelf->shelfnumber,
+ shelfname => $shelf->shelfname,
);
output_html_with_http_headers $query, $cookie, $template->output;
}
use C4::VirtualShelves;
use C4::Members;
use Koha::Email;
+use Koha::Virtualshelves;
my $query = new CGI;
}
);
- my @shelf = GetShelf($shelfid);
+ my $shelf = Koha::Virtualshelves->find( $shelfid );
my ($items, $totitems) = GetShelfContents($shelfid);
my $marcflavour = C4::Context->preference('marcflavour');
my $iso2709;
$template2->param(
BIBLIO_RESULTS => \@results,
comment => $comment,
- shelfname => $shelf[1],
+ shelfname => $shelf->shelfname,
firstname => $user->{firstname},
surname => $user->{surname},
);
use C4::Output;
use C4::VirtualShelves;
+use Koha::Virtualshelves;
+
#-------------------------------------------------------------------------------
my $pvar = _init( {} );
}
#get some list details
- my @temp;
- @temp = GetShelf( $param->{shelfnumber} ) if !$param->{errcode};
- $param->{shelfname} = @temp ? $temp[1] : '';
- $param->{owner} = @temp ? $temp[2] : -1;
- $param->{category} = @temp ? $temp[3] : -1;
+ my $shelf;
+ my $shelfnumber = $param->{shelfnumber};
+ $shelf = Koha::Virtualshelves->find( $shelfnumber ) unless $param->{errcode};
+ $param->{shelfname} = $shelf ? $shelf->shelfname : q||;
+ $param->{owner} = $shelf ? $shelf->owner : -1;
+ $param->{category} = $shelf ? $shelf->category : -1;
load_template($param);
return $param;
use C4::Context;
use C4::Members qw( AddMember );
+use Koha::Virtualshelves;
+
my $dbh = C4::Context->dbh;
$dbh->{RaiseError} = 1;
ok(1, 'skip duplicate test for earlier name clash');
next;
}
- my @shlf=GetShelf($shelves[$i]->{number}); #number, name, owner, catg, ...
+ my $shelf = Koha::Virtualshelves->find( $shelves[$i]->{number} );
# A shelf name is not per se unique!
- if( $shlf[3]==2 ) { #public list: try to create with same name
+ if( $shelf->category == 2 ) { #public list: try to create with same name
my $badNumShelf= AddShelf( {
shelfname=> $shelves[$i]->{name},
category => 2
DelShelf($badNumShelf) if $badNumShelf>-1; #delete if went wrong..
}
else { #private list, try to add another one for SAME user (owner)
- my $badNumShelf= defined($shlf[2])? AddShelf(
+ my $badNumShelf= defined($shelf->owner)? AddShelf(
{
shelfname=> $shelves[$i]->{name},
category => 1,
},
- $shlf[2]): -1;
+ $shelf->owner): -1;
is($badNumShelf, -1, 'do not create private lists with duplicate name for same user');
DelShelf($badNumShelf) if $badNumShelf>-1; #delete if went wrong..
}
$used{$key}++;
}
-#-----------------------TEST ModShelf & GetShelf functions------------------------#
+#-----------------------TEST ModShelf & Koha::Virtualshelves->find functions/methods------------------------#
# usage : ModShelf($shelfnumber, $shelfname, $owner, $category )
-# usage : (shelfnumber,shelfname,owner,category) = GetShelf($shelfnumber);
for my $i (0..9){
my $rand = int(rand(9));
if(C4::VirtualShelves::_CheckShelfName($newname,$shelf->{category},
$shelves[$rand]->{owner}, $numA)) {
ModShelf($numA,$shelf);
- my ($numB,$nameB,$ownerB,$categoryB) = GetShelf($numA);
- is($numA, $numB, 'modified shelf');
- is($shelf->{shelfname}, $nameB, '... and name change took');
- is($shelf->{category}, $categoryB, '... and category change took');
+ my $shelf_b = Koha::Virtualshelves->find( $numA );
+ is($numA, $shelf_b->shelfnumber, 'modified shelf');
+ is($shelf->{shelfname}, $shelf_b->shelfname, '... and name change took');
+ is($shelf->{category}, $shelf_b->category, '... and category change took');
}
else {
ok(1, "No ModShelf for $newname") for 1..3;
use C4::VirtualShelves qw/:DEFAULT GetAllShelves/;
use C4::Auth;
+use Koha::Virtualshelves;
our $query = new CGI;
our @biblionumber = HandleBiblioPars();
sub HandleSelectedShelf {
if($authorized= ShelfPossibleAction( $loggedinuser, $shelfnumber, 'add')){
#confirm adding to specific shelf
- my ($singleshelf, $singleshelfname)= GetShelf($shelfnumber);
+ my $shelf = Koha::Virtualshelves->find( $shelfnumber );
$template->param(
singleshelf => 1,
- shelfnumber => $singleshelf,
- shelfname => $singleshelfname,
+ shelfnumber => $shelf->shelfnumber,
+ shelfname => $shelf->shelfname,
);
}
else {
use C4::Output;
use C4::VirtualShelves;
use Koha::Email;
+use Koha::Virtualshelves;
my $query = new CGI;
}
);
- my @shelf = GetShelf($shelfid);
- my ( $items, $totitems ) = GetShelfContents($shelfid);
+ my $shelf = Koha::Virtualshelves->find( $shelfid );
+ my ( $items, $totitems ) = GetShelfContents($shelf->shelfnumber);
my $marcflavour = C4::Context->preference('marcflavour');
my $iso2709;
my @results;
$template2->param(
BIBLIO_RESULTS => \@results,
comment => $comment,
- shelfname => $shelf[1],
+ shelfname => $shelf->shelfname,
);
# Getting template result