Browse Source

adding bookshelf features :

* create bookshelf on the fly
* modify a bookshelf (this being not finished, will commit the rest soon)
3.0.x
tipaul 20 years ago
parent
commit
0d8e203523
  1. 23
      C4/BookShelves.pm
  2. 26
      bookshelves/addbookbybiblionumber.pl
  3. 15
      bookshelves/shelves.pl
  4. 8
      koha-tmpl/intranet-tmpl/default/en/bookshelves/addbookbybiblionumber.tmpl
  5. 45
      koha-tmpl/intranet-tmpl/default/en/bookshelves/shelves.tmpl

23
C4/BookShelves.pm

@ -53,7 +53,8 @@ items to and from bookshelves.
=cut
@ISA = qw(Exporter);
@EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &AddToShelfFromBiblio
@EXPORT = qw(&GetShelfList &GetShelfContents &GetShelf
&AddToShelf &AddToShelfFromBiblio
&RemoveFromShelf &AddShelf &RemoveShelf
&ShelfPossibleAction);
@ -134,6 +135,12 @@ sub GetShelfList {
return(\%shelflist);
}
sub GetShelf {
my ($shelfnumber) = @_;
my $sth=$dbh->prepare("select shelfnumber,shelfname,owner,category from bookshelf where shelfnumber=?");
$sth->execute($shelfnumber);
return $sth->fetchrow;
}
=item GetShelfContents
$itemlist = &GetShelfContents($env, $shelfnumber);
@ -239,11 +246,12 @@ sub AddShelf {
my $sth=$dbh->prepare("select * from bookshelf where shelfname=?");
$sth->execute($shelfname);
if ($sth->rows) {
return(1, "Shelf \"$shelfname\" already exists");
return(1, "Shelf \"$shelfname\" already exists");
} else {
$sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) values (?,?,?)");
$sth->execute($shelfname,$owner,$category);
return (0, "Done");
$sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) values (?,?,?)");
$sth->execute($shelfname,$owner,$category);
my $shelfnumber = $dbh->{'mysql_insertid'};
return (0, "Done",$shelfnumber);
}
}
@ -282,6 +290,11 @@ END { } # module clean-up code here (global destructor)
#
# $Log$
# Revision 1.14 2004/12/15 17:28:23 tipaul
# adding bookshelf features :
# * create bookshelf on the fly
# * modify a bookshelf (this being not finished, will commit the rest soon)
#
# Revision 1.13 2004/03/11 16:06:20 tipaul
# *** empty log message ***
#

26
bookshelves/addbookbybiblionumber.pl

@ -36,6 +36,20 @@ my $env;
my $query = new CGI;
my $biblionumber = $query->param('biblionumber');
my $shelfnumber = $query->param('shelfnumber');
my $newbookshelf = $query->param('newbookshelf');
my $category = $query->param('category');
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "bookshelves/addbookbybiblionumber.tmpl",
query => $query,
type => "intranet",
authnotrequired => 0,
flagsrequired => {catalogue => 1},
});
my $x; # for trash
($x,$x,$shelfnumber) = AddShelf('',$newbookshelf,$loggedinuser,$category) if $newbookshelf;
if ($shelfnumber) {
&AddToShelfFromBiblio($env, $biblionumber, $shelfnumber);
print "Content-Type: text/html\n\n<html><body onload=\"window.close()\"></body></html>";
@ -43,13 +57,6 @@ if ($shelfnumber) {
} else {
my ( $bibliocount, @biblios ) = getbiblio($biblionumber);
my ($template, $loggedinuser, $cookie)
= get_template_and_user({template_name => "bookshelves/addbookbybiblionumber.tmpl",
query => $query,
type => "intranet",
authnotrequired => 0,
flagsrequired => {catalogue => 1},
});
my ($shelflist) = GetShelfList($loggedinuser,3);
my @shelvesloop;
@ -74,6 +81,11 @@ if ($shelfnumber) {
output_html_with_http_headers $query, $cookie, $template->output;
}
# $Log$
# Revision 1.3 2004/12/15 17:28:22 tipaul
# adding bookshelf features :
# * create bookshelf on the fly
# * modify a bookshelf (this being not finished, will commit the rest soon)
#
# Revision 1.2 2004/11/19 16:31:30 tipaul
# bugfix for bookshelves not in official CVS
#

15
bookshelves/shelves.pl

@ -66,6 +66,7 @@ $template->param({ loggedinuser => $loggedinuser,
headerbackgroundcolor => $headerbackgroundcolor,
circbackgroundcolor => $circbackgroundcolor });
SWITCH: {
if ($query->param('op') eq 'modif') { editshelf($query->param('shelf')); last SWITCH;}
if ($query->param('viewshelf')) { viewshelf($query->param('viewshelf')); last SWITCH;}
if ($query->param('shelves')) { shelves(); last SWITCH;}
}
@ -80,6 +81,7 @@ foreach my $element (sort keys %$shelflist) {
$line{'color'}= $color;
$line{'shelf'}=$element;
$line{'shelfname'}=$shelflist->{$element}->{'shelfname'};
$line{'mine'} = 1 if $shelflist->{$element}->{'owner'} eq $loggedinuser;
$line{'shelfbookcount'}=$shelflist->{$element}->{'count'};
$line{'canmanage'} = ShelfPossibleAction($loggedinuser,$element,'manage');
;
@ -89,6 +91,14 @@ $template->param(shelvesloop => \@shelvesloop);
output_html_with_http_headers $query, $cookie, $template->output;
sub editshelf {
my ($shelfnumber) = @_;
my ($shelfnumber,$shelfname,$owner,$category) = GetShelf($shelfnumber);
warn "($shelfnumber,$shelfname,$owner,$category)";
$template->param(edit => 1,
shelfname => $shelfname,
"category$category" => 1);
}
sub shelves {
if (my $newshelf=$query->param('addshelf')) {
my ($status, $string) = AddShelf($env,$newshelf,$query->param('owner'),$query->param('category'));
@ -157,6 +167,11 @@ sub viewshelf {
#
# $Log$
# Revision 1.4 2004/12/15 17:28:23 tipaul
# adding bookshelf features :
# * create bookshelf on the fly
# * modify a bookshelf (this being not finished, will commit the rest soon)
#
# Revision 1.3 2004/12/02 16:38:50 tipaul
# improvement in book shelves
#

8
koha-tmpl/intranet-tmpl/default/en/bookshelves/addbookbybiblionumber.tmpl

@ -6,6 +6,14 @@
<p><label>Title</label><!-- TMPL_VAR NAME="title" --></p>
<p><label>Author</label><!-- TMPL_VAR NAME="author" --></p>
<p><label>Add to virtual shelf</label><!-- TMPL_VAR NAME="CGIbookshelves" --></p>
<p>or add to a new bookshelf </p>
<p><input type="text" name="newbookshelf" maxlength=40 size=40>
<select name="category">
<option value="1">Private</option>
<option value="2">Public</option>
<option value="3">Free</option>
</select>
</p>
<input type="submit" value="Add to virtual shelf" class="button catalogue">
</form>
<!-- TMPL_INCLUDE Name="popup-bottom.inc" -->

45
koha-tmpl/intranet-tmpl/default/en/bookshelves/shelves.tmpl

@ -110,6 +110,7 @@
<tr>
<th class="catalogue">Shelf name</th>
<th class="catalogue">Content size</th>
<th class="catalogue">Modify</th>
</tr>
<!-- TMPL_LOOP Name="shelvesloop" -->
<tr>
@ -119,8 +120,11 @@
</a>
</td>
<td bgcolor="<!-- TMPL_VAR NAME="color" -->">
<!-- TMPL_VAR NAME="shelfbookcount" --> item(s)
<!-- TMPL_VAR NAME="shelfbookcount" --> item(s)
</td>
<!-- TMPL_IF name="mine" -->
<td bgcolor="<!-- TMPL_VAR NAME="color" -->"><a href="shelves.pl?op=modif&shelf=<!-- TMPL_VAR NAME="shelf" -->" class="button catalogue">Modify</a></td>
<!-- /TMPL_IF -->
</tr>
<!-- /TMPL_LOOP -->
</table>
@ -130,5 +134,44 @@
</div>
<!-- /TMPL_IF -->
<!-- /TMPL_IF -->
<!-- TMPL_IF name="edit" -->
<div id="bloc25">
<form method="post">
<input type="hidden" name="op" value="modifsave">
<h2 class="catalogue">Modify shelf</h2>
<input type="hidden" name="shelfnumber" value="<!-- TMPL_VAR name="shelfnumber" -->">
<p><label>Name</label><input type="text" name="addshelf" size="25" value="<!-- TMPL_VAR name="shelfname"-->"></p>
<p><label>Owner</label><input type="hidden" name="owner" value="<!-- TMPL_VAR NAME="loggedinuser" -->"><!-- TMPL_VAR NAME="loggedinusername" --></p>
<p><label>Category</label>
<select name="category">
<!-- TMPL_IF name="category1" -->
<option value="1" selected>Private</option>
<!-- TMPL_ELSE -->
<option value="1">Private</option>
<!-- /TMPL_IF -->
<!-- TMPL_IF name="category2" -->
<option value="2" selected>Public</option>
<!-- TMPL_ELSE -->
<option value="2">Public</option>
<!-- /TMPL_IF -->
<!-- TMPL_IF name="category3" -->
<option value="3" selected>Free</option>
<!-- TMPL_ELSE -->
<option value="3">Free</option>
<!-- /TMPL_IF -->
</select>
</p>
<p> <li>a private bookshelf is managed by you &amp; can be seen only by you.</li>
<li> A public can be seen by everybody, but managed only by you.</li>
<li> A free can be managed by any user.</li>
</p>
<p>
<input type="submit" value="Save" class="button catalogue">
</p>
</form>
</div>
<!-- /TMPL_IF -->
</div>
<!-- TMPL_INCLUDE Name="cat-bottom.inc" -->

Loading…
Cancel
Save