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 =cut
@ISA = qw(Exporter); @ISA = qw(Exporter);
@EXPORT = qw(&GetShelfList &GetShelfContents &AddToShelf &AddToShelfFromBiblio @EXPORT = qw(&GetShelfList &GetShelfContents &GetShelf
&AddToShelf &AddToShelfFromBiblio
&RemoveFromShelf &AddShelf &RemoveShelf &RemoveFromShelf &AddShelf &RemoveShelf
&ShelfPossibleAction); &ShelfPossibleAction);
@ -134,6 +135,12 @@ sub GetShelfList {
return(\%shelflist); 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 =item GetShelfContents
$itemlist = &GetShelfContents($env, $shelfnumber); $itemlist = &GetShelfContents($env, $shelfnumber);
@ -239,11 +246,12 @@ sub AddShelf {
my $sth=$dbh->prepare("select * from bookshelf where shelfname=?"); my $sth=$dbh->prepare("select * from bookshelf where shelfname=?");
$sth->execute($shelfname); $sth->execute($shelfname);
if ($sth->rows) { if ($sth->rows) {
return(1, "Shelf \"$shelfname\" already exists"); return(1, "Shelf \"$shelfname\" already exists");
} else { } else {
$sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) values (?,?,?)"); $sth=$dbh->prepare("insert into bookshelf (shelfname,owner,category) values (?,?,?)");
$sth->execute($shelfname,$owner,$category); $sth->execute($shelfname,$owner,$category);
return (0, "Done"); my $shelfnumber = $dbh->{'mysql_insertid'};
return (0, "Done",$shelfnumber);
} }
} }
@ -282,6 +290,11 @@ END { } # module clean-up code here (global destructor)
# #
# $Log$ # $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 # Revision 1.13 2004/03/11 16:06:20 tipaul
# *** empty log message *** # *** empty log message ***
# #

26
bookshelves/addbookbybiblionumber.pl

@ -36,6 +36,20 @@ my $env;
my $query = new CGI; my $query = new CGI;
my $biblionumber = $query->param('biblionumber'); my $biblionumber = $query->param('biblionumber');
my $shelfnumber = $query->param('shelfnumber'); 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) { if ($shelfnumber) {
&AddToShelfFromBiblio($env, $biblionumber, $shelfnumber); &AddToShelfFromBiblio($env, $biblionumber, $shelfnumber);
print "Content-Type: text/html\n\n<html><body onload=\"window.close()\"></body></html>"; print "Content-Type: text/html\n\n<html><body onload=\"window.close()\"></body></html>";
@ -43,13 +57,6 @@ if ($shelfnumber) {
} else { } else {
my ( $bibliocount, @biblios ) = getbiblio($biblionumber); 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 ($shelflist) = GetShelfList($loggedinuser,3);
my @shelvesloop; my @shelvesloop;
@ -74,6 +81,11 @@ if ($shelfnumber) {
output_html_with_http_headers $query, $cookie, $template->output; output_html_with_http_headers $query, $cookie, $template->output;
} }
# $Log$ # $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 # Revision 1.2 2004/11/19 16:31:30 tipaul
# bugfix for bookshelves not in official CVS # bugfix for bookshelves not in official CVS
# #

15
bookshelves/shelves.pl

@ -66,6 +66,7 @@ $template->param({ loggedinuser => $loggedinuser,
headerbackgroundcolor => $headerbackgroundcolor, headerbackgroundcolor => $headerbackgroundcolor,
circbackgroundcolor => $circbackgroundcolor }); circbackgroundcolor => $circbackgroundcolor });
SWITCH: { 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('viewshelf')) { viewshelf($query->param('viewshelf')); last SWITCH;}
if ($query->param('shelves')) { shelves(); last SWITCH;} if ($query->param('shelves')) { shelves(); last SWITCH;}
} }
@ -80,6 +81,7 @@ foreach my $element (sort keys %$shelflist) {
$line{'color'}= $color; $line{'color'}= $color;
$line{'shelf'}=$element; $line{'shelf'}=$element;
$line{'shelfname'}=$shelflist->{$element}->{'shelfname'}; $line{'shelfname'}=$shelflist->{$element}->{'shelfname'};
$line{'mine'} = 1 if $shelflist->{$element}->{'owner'} eq $loggedinuser;
$line{'shelfbookcount'}=$shelflist->{$element}->{'count'}; $line{'shelfbookcount'}=$shelflist->{$element}->{'count'};
$line{'canmanage'} = ShelfPossibleAction($loggedinuser,$element,'manage'); $line{'canmanage'} = ShelfPossibleAction($loggedinuser,$element,'manage');
; ;
@ -89,6 +91,14 @@ $template->param(shelvesloop => \@shelvesloop);
output_html_with_http_headers $query, $cookie, $template->output; 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 { sub shelves {
if (my $newshelf=$query->param('addshelf')) { if (my $newshelf=$query->param('addshelf')) {
my ($status, $string) = AddShelf($env,$newshelf,$query->param('owner'),$query->param('category')); my ($status, $string) = AddShelf($env,$newshelf,$query->param('owner'),$query->param('category'));
@ -157,6 +167,11 @@ sub viewshelf {
# #
# $Log$ # $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 # Revision 1.3 2004/12/02 16:38:50 tipaul
# improvement in book shelves # 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>Title</label><!-- TMPL_VAR NAME="title" --></p>
<p><label>Author</label><!-- TMPL_VAR NAME="author" --></p> <p><label>Author</label><!-- TMPL_VAR NAME="author" --></p>
<p><label>Add to virtual shelf</label><!-- TMPL_VAR NAME="CGIbookshelves" --></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"> <input type="submit" value="Add to virtual shelf" class="button catalogue">
</form> </form>
<!-- TMPL_INCLUDE Name="popup-bottom.inc" --> <!-- TMPL_INCLUDE Name="popup-bottom.inc" -->

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

@ -110,6 +110,7 @@
<tr> <tr>
<th class="catalogue">Shelf name</th> <th class="catalogue">Shelf name</th>
<th class="catalogue">Content size</th> <th class="catalogue">Content size</th>
<th class="catalogue">Modify</th>
</tr> </tr>
<!-- TMPL_LOOP Name="shelvesloop" --> <!-- TMPL_LOOP Name="shelvesloop" -->
<tr> <tr>
@ -119,8 +120,11 @@
</a> </a>
</td> </td>
<td bgcolor="<!-- TMPL_VAR NAME="color" -->"> <td bgcolor="<!-- TMPL_VAR NAME="color" -->">
<!-- TMPL_VAR NAME="shelfbookcount" --> item(s) <!-- TMPL_VAR NAME="shelfbookcount" --> item(s)
</td> </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> </tr>
<!-- /TMPL_LOOP --> <!-- /TMPL_LOOP -->
</table> </table>
@ -130,5 +134,44 @@
</div> </div>
<!-- /TMPL_IF --> <!-- /TMPL_IF -->
<!-- /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> </div>
<!-- TMPL_INCLUDE Name="cat-bottom.inc" --> <!-- TMPL_INCLUDE Name="cat-bottom.inc" -->

Loading…
Cancel
Save