my $sth = $dbh->prepare($query);
$sth->execute( $shelfnumber, $biblionumber );
- unless ( $sth->rows ) {
- # already on shelf
- my $query = qq(
- INSERT INTO virtualshelfcontents
- (shelfnumber, biblionumber, flags)
- VALUES
- (?, ?, 0)
- );
- $sth = $dbh->prepare($query);
- $sth->execute( $shelfnumber, $biblionumber );
- }
+ ($sth->rows) and return undef; # already on shelf
+ my $query = qq(
+ INSERT INTO virtualshelfcontents
+ (shelfnumber, biblionumber, flags)
+ VALUES
+ (?, ?, 0)
+ );
+ $sth = $dbh->prepare($query);
+ $sth->execute( $shelfnumber, $biblionumber );
}
=item AddToShelfFromBiblio
($pages{$type}) or $type = 'opac';
$query or die "No query";
$template or die "No template";
+ $template->param( { loggedinuser => $loggedinuser } );
+ my @paramsloop;
+ # getting the Shelves list
+ my $shelflist = GetShelves( $loggedinuser, 2 );
+ my $op = $query->param('op');
# the format of this is unindented for ease of diff comparison to the old script
+# Note: do not mistake the assignment statements below for comparisons!
if ( $query->param('modifyshelfcontents') ) {
- my $shelfnumber = $query->param('viewshelf');
- my $barcode = $query->param('addbarcode');
- my ($item) = GetItem( 0, $barcode );
- my ($biblio) = GetBiblioFromItemNumber($item->{'itemnumber'});
- if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'manage' ) ) {
- AddToShelf( $biblio->{'biblionumber'}, $shelfnumber );
- foreach ( $query->param ) {
- /REM-(\d*)/ or next;
- $debug and warn "SHELVES: user $loggedinuser removing item $1 from shelf $shelfnumber";
- DelFromShelf( $1, $shelfnumber ); # $1 is biblionumber
- }
- }
+ my ($shelfnumber,$barcode,$item,$biblio);
+ if ($shelfnumber = $query->param('viewshelf')) {
+ if (ShelfPossibleAction($loggedinuser, $shelfnumber, 'manage')) {
+ if ($barcode = $query->param('addbarcode')) {
+ if ($item = GetItem( 0, $barcode )) {
+ $biblio = GetBiblioFromItemNumber($item->{'itemnumber'});
+ AddToShelf($biblio->{'biblionumber'}, $shelfnumber) or
+ push @paramsloop, {duplicatebiblio=>$barcode};
+ } else { push @paramsloop, {failgetitem=>$barcode}; }
+ } else {
+ (grep {/REM-(\d+)/} $query->param) or push @paramsloop, {nobarcode=>1};
+ foreach ($query->param) {
+ /REM-(\d+)/ or next;
+ $debug and warn
+ "SHELVES: user $loggedinuser removing item $1 from shelf $shelfnumber";
+ DelFromShelf($1, $shelfnumber); # $1 is biblionumber
+ }
+ }
+ } else { push @paramsloop, {nopermission=>$shelfnumber}; }
+ } else { push @paramsloop, {noshelfnumber=>1}; }
}
my $showadd = 1;
$template->param(showprivateshelves => 1);
}
-# getting the Shelves list
-my $shelflist = GetShelves( $loggedinuser, 2 );
-$template->param( { loggedinuser => $loggedinuser } );
-my $op = $query->param('op');
SWITCH: {
if ( $op ) {
}
last SWITCH;
}
- if ( $query->param('viewshelf') ) {
+ if (my $shelfnumber = $query->param('viewshelf') ) {
#check that the user can view the shelf
- my $shelfnumber = $query->param('viewshelf');
if ( ShelfPossibleAction( $loggedinuser, $shelfnumber, 'view' ) ) {
my $items = GetShelfContents($shelfnumber);
$showadd = 1;
$template->param(
shelfname => $shelflist->{$shelfnumber}->{'shelfname'},
shelfnumber => $shelfnumber,
- viewshelf => $query->param('viewshelf'),
+ viewshelf => $shelfnumber,
manageshelf => &ShelfPossibleAction( $loggedinuser, $shelfnumber, 'manage' ),
itemsloop => $items,
);
- }
+ } else { push @paramsloop, {nopermission=>$shelfnumber}; }
last SWITCH;
}
if ( $query->param('shelves') ) {
if ( $shelfnumber == -1 ) { #shelf already exists.
$showadd = 1;
- $template->param(
- shelfnumber => $shelfnumber,
- already => 1
- );
+ push @paramsloop, { already => $newshelf };
+ $template->param(shelfnumber => $shelfnumber);
} else {
print $query->redirect($pages{$type}->{redirect} . "?viewshelf=$shelfnumber");
exit;
}
}
- my @paramsloop;
+ my $stay = 1;
foreach ( $query->param() ) {
/DEL-(\d+)/ or next;
my $number = $1;
if (DelShelf($number)) {
delete $shelflist->{$number};
$line{delete_ok} = $name;
+ $stay = 0;
} else {
$line{delete_fail} = $name;
}
$line{unrecognized} = $number;
}
push(@paramsloop, \%line);
- # print $query->redirect("/cgi-bin/koha/virtualshelves/shelves.pl"); exit;
+ # print $query->redirect($pages{$type}->{redirect});
+ # exit;
}
$showadd = 1;
- $template->param(
- paramsloop => \@paramsloop,
- shelves => 1,
- );
+ $stay and $template->param(shelves => 1);
last SWITCH;
}
}
+(@paramsloop) and $template->param(paramsloop => \@paramsloop);
# rebuild shelflist in case a shelf has been added
-$shelflist = GetShelves( $loggedinuser, 2 );
+# $shelflist = GetShelves( $loggedinuser, 2 );
$showadd and $template->param(showadd => 1);
my $i = 0;
my @shelvesloop;
=item C<op>
- Op can be equals to:
- * modifsave to save change on the shelves
- * modif to change the template to allow to modify the shelves.
+ Op can be:
+ * modif: show the template allowing modification of the shelves;
+ * modifsave: save changes from modif mode.
=item C<viewshelf>
- To load the template with 'viewshelves param' which allow to read the shelves information.
+ Load template with 'viewshelves param' displaying the shelf's information.
=item C<shelves>
- If equals to 1. then call the function shelves which add
- or delete a shelf.
+ If the param shelves == 1, then add or delete a shelf.
=item C<addshelf>
- If the param shelves = 1 then addshelf must be equals to the name of the shelf to add.
+ If the param shelves == 1, then addshelf is the name of the shelf to add.
=back
</script>
<ul class="toolbar">
-
<li><a id="newshelf" href="/cgi-bin/koha/virtualshelves/shelves.pl?shelves=1">New List</a></li>
- <!-- TMPL_IF NAME="viewshelf" --><!-- TMPL_IF name="manageshelf" --><li><a id="editshelf" href="/cgi-bin/koha/virtualshelves/shelves.pl?op=modif&shelf=<!-- TMPL_VAR NAME="shelfnumber" -->">Edit List</a></li><li id="deleteshelfc"><a id="deleteshelf" href="/cgi-bin/koha/virtualshelves/shelves.pl?shelves=1&DEL-<!-- TMPL_VAR NAME="shelfnumber" -->=1">Delete List</a></li><!-- /TMPL_IF --><!-- /TMPL_IF -->
-</ul></div>
+ <!-- TMPL_IF NAME="viewshelf" --><!-- TMPL_IF name="manageshelf" -->
+ <li><a id="editshelf" href="/cgi-bin/koha/virtualshelves/shelves.pl?op=modif&shelf=<!-- TMPL_VAR NAME="shelfnumber" -->">Edit List</a></li>
+ <li id="deleteshelfc"><a id="deleteshelf" href="/cgi-bin/koha/virtualshelves/shelves.pl?shelves=1&DEL-<!-- TMPL_VAR NAME="shelfnumber" -->=1">Delete List</a></li>
+ <!-- /TMPL_IF --><!-- /TMPL_IF -->
+</ul>
+</div>
//<![CDATA[
$(document).ready(function(){
+ $("#addbarcode").focus();
$("th.checkall").html("<a href=\"/cgi-bin/koha/shelves.pl\" id=\"CheckAll\"><img src=\"<!-- TMPL_VAR NAME="themelang" -->/../img/checkall.gif\" height=\"18\" width=\"18\" alt=\"Check All\" title=\"Check All\" border=\"0\" /></a>");
$("#CheckAll").click(function(){
$(".checkboxed").checkCheckboxes();
$("#CheckAll img").attr("src","<!-- TMPL_VAR NAME="themelang" -->/../img/checknone.gif").attr("title","Check None").attr("alt","Check None");
+ // FIXME: a checknone.gif image should be made!
$("#CheckAll").attr("id","CheckNone");
return false;
});
});
});
-function confirmDelete(s,n){
- if (window.confirm(s)) {
- location.href="/cgi-bin/koha/virtualshelves/shelves.pl?shelves=1&DEL-<!-- TMPL_VAR NAME="shelfnumber" -->=1"; } else {
- return false;
- }
- }
+ function confirmDelete(message,n){
+ if (window.confirm(message)) {
+ location.href="/cgi-bin/koha/virtualshelves/shelves.pl?shelves=1&DEL-<!-- TMPL_VAR NAME="shelfnumber" -->=1";
+ } else {
+ return false;
+ }
+ }
/**
* this function checks all checkbox
* or uncheck all if there are already checked.
var checkboxes = document.getElementsByTagName('input');
var nbCheckbox = checkboxes.length;
var check = areAllChecked();
- check = !check;
for(var i=0;i<nbCheckbox;i++){
if(checkboxes[i].getAttribute('type') == "checkbox" ){
- checkboxes[i].checked = check;
+ checkboxes[i].checked = (check) ? 0 : 1;
}
}
}
<div id="yui-main">
<div class="yui-g"><!-- TMPL_INCLUDE NAME="virtualshelves-toolbar.inc" -->
</div>
+
+<!-- TMPL_IF NAME="paramsloop" -->
+<!-- TMPL_LOOP NAME="paramsloop" -->
+<div class="yui-ge">
+ <div class="yui-u first">
+ <!-- TMPL_IF NAME="already" --><div class="dialog alert">A List named <!-- TMPL_VAR NAME="already" --> already exists!</div><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="status" --><div class="dialog alert"><!-- TMPL_VAR NAME="string" --></div><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="nobarcode" --><div class="dialog alert">ERROR: No barcode given.</div><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="noshelfnumber" --><div class="dialog alert">ERROR: No shelfnumber given.</div><!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="nopermission" -->
+ <div class="dialog alert">ERROR: You do not have adequate permission for that action on list <!-- TMPL_VAR NAME="nopermission" -->.</div>
+ <!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="failgetitem" -->
+ <div class="dialog alert">ERROR: No item found with barcode <!-- TMPL_VAR NAME="failgetitem" -->.</div>
+ <!-- /TMPL_IF -->
+ <!-- TMPL_IF NAME="duplicatebiblio" -->
+ <div class="dialog alert">A record matching barcode <b><!-- TMPL_VAR NAME="duplicatebiblio" --></b> has already been added.</div>
+ <!-- /TMPL_IF -->
+ </div>
+</div>
+<!-- /TMPL_LOOP -->
+<!-- /TMPL_IF -->
+
<!-- TMPL_IF NAME="viewshelf" -->
<div class="yui-g">
<!-- TMPL_IF NAME="itemsloop" -->
<!-- /TMPL_IF -->
</div>
<!-- /TMPL_IF --><!-- /viewshelf -->
- <div class="yui-g">
+
<!-- TMPL_IF name="manageshelf" -->
+<div class="yui-g">
<form action="/cgi-bin/koha/virtualshelves/shelves.pl" method="post">
<fieldset class="brief">
<legend>Add an item to <i><!-- TMPL_VAR NAME="shelfname" --></i></legend>
</ol>
</fieldset>
</form>
+</div>
<!-- /TMPL_IF --><!-- /manageshelf -->
- </div>
<!-- TMPL_IF name="debug" -->
<!-- TMPL_IF name="edit" --><div>Edit is on (<!-- TMPL_VAR name="shelfname" -->)</div><!-- /TMPL_IF -->
<!-- TMPL_IF NAME="seflag" -->
<div class="yui-ge">
<div class="yui-u first">
- <!-- TMPL_IF NAME="already" --><div class="dialog alert">A List with that name already exists!</div><!-- /TMPL_IF -->
- <!-- TMPL_IF NAME="status1" -->
- <div class="dialog alert"><!-- TMPL_VAR NAME="string1" --></div>
- <!-- /TMPL_IF -->
- <!-- TMPL_LOOP NAME="paramsloop" -->
- <!-- TMPL_IF NAME="status" -->
- <div class="dialog alert"><!-- TMPL_VAR NAME="string" --></div>
- <!-- /TMPL_IF -->
- <!-- /TMPL_LOOP -->
<form method="post" action="/cgi-bin/koha/virtualshelves/shelves.pl">
<fieldset class="rows">
<h3>Lists</h3>
<table>
<tr><th>Name</th><th>Category</th><th>Items</th><th> </th></tr>
-<!-- TMPL_LOOP NAME="shelvesloop" -->
+<!-- TMPL_LOOP NAME="shelvesloopall" -->
<tr<!-- TMPL_IF name="color" --> class="highlight"<!-- /TMPL_IF -->>
<td><a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=<!-- TMPL_VAR NAME="shelf" -->"><!-- TMPL_VAR NAME="shelfname" --></a></td>
<td>
-/**
+ /**
* this function checks all checkbox
* or uncheck all if there are already checked.
*/
var checkboxes = document.getElementsByTagName('input');
var nbCheckbox = checkboxes.length;
var check = areAllChecked();
- check = !check;
for(var i=0;i<nbCheckbox;i++){
if(checkboxes[i].getAttribute('type') == "checkbox" ){
- checkboxes[i].checked = check;
+ checkboxes[i].checked = (check) ? 0 : 1;
}
}
}
}
function confirmDelete(message) {
- var agree = confirm(message);
- if(agree) {
- return true;
- } else {
- return false;
- }
+ return (confirm(message) ? true : false);
}
function Dopop(link) {
newin=window.open(link,'popup','width=500,height=400,toolbar=false,scrollbars=yes');
- }
\ No newline at end of file
+}
+