Add multiple items to virt shelf, and bugvix virtual shelf adds.
authorRyan Higgins <rch@liblime.com>
Sun, 9 Dec 2007 21:36:50 +0000 (15:36 -0600)
committerJoshua Ferraro <jmf@liblime.com>
Wed, 12 Dec 2007 14:03:11 +0000 (08:03 -0600)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
koha-tmpl/opac-tmpl/prog/en/js/basket.js
koha-tmpl/opac-tmpl/prog/en/modules/opac-addbybiblionumber.tmpl
koha-tmpl/opac-tmpl/prog/en/modules/opac-results.tmpl
opac/opac-addbybiblionumber.pl

index 5fd91a2..d761598 100644 (file)
@@ -159,11 +159,6 @@ function addMultiple(){
     }
 }
 
-function addSelToShelf() {
-    var items = document.getElementById('records').value;
-    document.location = "/cgi-bin/koha/opac-addbybiblionumber.pl?biblionumber="+items;
-}
-
 function addSelRecords(valSel) { // function for adding a selection of biblios to the basket
                                                 // from the results list
     var arrayRecords = valSel.split("/");
@@ -371,3 +366,22 @@ function openBiblio(dest,biblionumber) {
     opener.document.location = openerURL;
     opener.focus();
 }
+
+function addSelToShelf() {
+    var items = document.getElementById('records').value;
+    document.location = "/cgi-bin/koha/opac-addbybiblionumber.pl?biblionumber="+items;
+}
+
+///  vShelfAdd()  builds url string for multiple-biblio adds.
+
+function vShelfAdd() {
+        bibs= new Array;
+        if(document.bookbag_form.biblionumber.length > 0) {
+                for (var i=0; i < document.bookbag_form.biblionumber.length; i++) {
+                        if (document.bookbag_form.biblionumber[i].checked) {
+                                bibs.push("biblionumber=" +  document.bookbag_form.biblionumber[i].value);
+                        }
+                }
+        return bibs.join("&");
+        }
+}
index f28991b..ebd4b0b 100644 (file)
@@ -9,26 +9,21 @@
 <div id="custom-doc" class="yui-t7">
 
 <!-- TMPL_IF NAME="multiple"-->
-    <h1>Add these <!-- TMPL_VAR NAME="total"--> biblios to a shelf</h1>
-        <!-- TMPL_LOOP NAME="biblios"-->
-            <b><!-- TMPL_VAR NAME="title"--></b> 
-            <!-- TMPL_IF NAME="author"-->by <!-- TMPL_VAR NAME="author"--><!-- /TMPL_IF -->
-            <br /><br />
-        <!-- /TMPL_LOOP -->
+    <h1>Add <!-- TMPL_VAR NAME="total"--> items to a book list:</h1>
 <!-- TMPL_ELSE -->
-<h1>Add 
-    <i><!-- TMPL_VAR NAME="title" --></i>
-    <!-- TMPL_IF NAME="author" -->
-        by <!-- TMPL_VAR NAME="author" -->
-    <!-- /TMPL_IF --> to a Virtual Shelf
-</h1>
+       <h1>Add to a book list:</h1>
 <!-- /TMPL_IF -->
-
+     <ul> <!-- TMPL_LOOP NAME="biblios"-->
+           <li> <span class="title"><!-- TMPL_VAR NAME="title"--></span> 
+            <!-- TMPL_IF NAME="author"--><span class="author"> <!-- TMPL_VAR NAME="author"--> </span><!-- /TMPL_IF -->
+            </li>
+        <!-- /TMPL_LOOP -->
+</ul>
 <!-- TMPL_IF NAME="CGIvirtualshelves"-->
 <form name="f1" action="/cgi-bin/koha/opac-addbybiblionumber.pl" method="post">
     <fieldset class="rows"><legend>Select an Existing List</legend>
 <ol><li>    <label for="shelfnumber">Add to list:</label> <!-- TMPL_VAR NAME="CGIvirtualshelves" --></li></ol>
   <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" />
<!-- TMPL_LOOP NAME="biblios" --> <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->"><!-- /TMPL_LOOP -->
     <input type="hidden" name="modifyshelfcontents" value="1" /></fieldset>
     <fieldset class="action"><input type="submit" value="Save" class="submit" /> <a class="cancel" href="#" onclick="closePopup();">Cancel</a></fieldset>
 </form>
@@ -48,7 +43,7 @@
                 <option value="1">Private</option>
                 <option value="2">Public</option>
             </select></li></ol></fieldset>
   <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->" />
<!-- TMPL_LOOP NAME="biblios" --> <input type="hidden" name="biblionumber" value="<!-- TMPL_VAR NAME="biblionumber" -->"><!-- /TMPL_LOOP -->
     <fieldset class="action"><input type="submit" value="Save" class="submit" /> <a class="cancel" href="#" onclick="closePopup();">Cancel</a></fieldset>
 </form>
 
index 0b485db..458648a 100644 (file)
         
         <!-- TMPL_IF name="opacbookbag" --><a href="#" onclick="SelectAll()"><img src="/opac-tmpl/prog/images/checkall.gif" alt="Check All" border="0" /></a>
             <input type="button" class="icon shelf" value="Add checked items to book bag" onclick="addMultiple(); return false;" /> 
+               <!-- TMPL_IF NAME="virtualshelves" --><input type="button" class="icon shelf" value="Add Checked Items to Virtual Shelf" onclick="<!-- TMPL_IF NAME="loggedinusername" -->if (vShelfAdd()) {Dopop('/cgi-bin/koha/opac-addbybiblionumber.pl?' + vShelfAdd());} <!-- TMPL_ELSE --> alert('You must be logged in to create or add to Virtual Shelves'); <!-- /TMPL_IF -->  return false;" /><!-- /TMPL_IF -->
             <input type="reset" value="Clear All" class="icon shelf" />
         <!-- /TMPL_IF --></p></td></tr>
             <!-- Actual Search Results -->
index 4747712..2a8c788 100755 (executable)
@@ -31,7 +31,7 @@ use C4::Auth;
 use C4::Output;
 
 my $query        = new CGI;
-my $biblionumber = $query->param('biblionumber');
+my @biblionumber = $query->param('biblionumber');
 my $shelfnumber  = $query->param('shelfnumber');
 my $newvirtualshelf = $query->param('newvirtualshelf');
 my $category     = $query->param('category');
@@ -45,23 +45,19 @@ my ( $template, $loggedinuser, $cookie ) = get_template_and_user(
     }
 );
 
-$shelfnumber = AddShelf( '', $newvirtualshelf, $loggedinuser, $category ) if $newvirtualshelf;
+$shelfnumber = AddShelf(  $newvirtualshelf, $loggedinuser, $category ) if $newvirtualshelf;
 
-# to know if we had to add more than one biblio.
-my $multiple = 0;
-$multiple = 1 if $biblionumber =~ /^(\d*\/)*$/;
-
-
-if ($shelfnumber) {
+# multiple bibs might come in as '/' delimited string (from where, i don't see), or  as array.
 
-    if ($multiple){
-        foreach (split /\//,$biblionumber){
-            &AddToShelfFromBiblio($_,$shelfnumber);
+my $multiple = 0;
+my @bibs;
+if (scalar(@biblionumber) == 1) {
+       @biblionumber =  (split /\//,$biblionumber[0]);
+}
+if ($shelfnumber && ($shelfnumber != -1)) {
+        for my $bib (@biblionumber){
+            &AddToShelfFromBiblio($bib,$shelfnumber);
         }
-    }
-    else {
-        &AddToShelfFromBiblio( $biblionumber, $shelfnumber );
-    }
     print $query->header;
     print "<html><body onload=\"window.close();\"></body></html>";
     exit;
@@ -87,27 +83,20 @@ else {
         );
     }
 
-    if ( $multiple ) {
         my @biblios;
-        foreach (split /\//,$biblionumber){
-            my $data = GetBiblioData($_);
-            push @biblios,$data;
-        }
+        for my $bib (@biblionumber) {
+                       my $data = GetBiblioData( $bib );
+                       push(@biblios, 
+               { biblionumber => $bib,
+               title        => $data->{'title'},
+               author       => $data->{'author'},
+               } );
+       }
         $template->param (
-            multiple => 1,
-            biblionumber => $biblionumber,
+            multiple => (scalar(@biblios) > 1),
             total    => scalar @biblios,
             biblios  => \@biblios,
         );
-    }
-    else { # just one to add.
-        my $data = GetBiblioData( $biblionumber );
-        $template->param (
-            biblionumber => $biblionumber,
-            title        => $data->{'title'},
-            author       => $data->{'author'},
-        );
-    }
 
     $template->param (
         CGIvirtualshelves       => $CGIvirtualshelves,