MT 1110, Follow-up : Balance cart and lists : cart is now in the intranet

This commit is contained in:
Matthias Meusburger 2009-10-14 15:27:40 +02:00
parent 1bed30a2a8
commit 38b3a375b4
9 changed files with 696 additions and 24 deletions

View File

@ -352,6 +352,7 @@ sub get_template_and_user {
intranetreadinghistory => C4::Context->preference("intranetreadinghistory"),
intranetstylesheet => C4::Context->preference("intranetstylesheet"),
intranetuserjs => C4::Context->preference("intranetuserjs"),
intranetbookbag => C4::Context->preference("intranetbookbag"),
noItemTypeImages => C4::Context->preference("noItemTypeImages"),
suggestion => C4::Context->preference("suggestion"),
virtualshelves => C4::Context->preference("virtualshelves"),
@ -894,6 +895,7 @@ sub checkauth {
intranetcolorstylesheet =>
C4::Context->preference("intranetcolorstylesheet"),
intranetstylesheet => C4::Context->preference("intranetstylesheet"),
intranetbookbag => C4::Context->preference("intranetbookbag"),
IntranetNav => C4::Context->preference("IntranetNav"),
intranetuserjs => C4::Context->preference("intranetuserjs"),
TemplateEncoding => C4::Context->preference("TemplateEncoding"),
@ -901,7 +903,6 @@ sub checkauth {
AutoLocation => C4::Context->preference("AutoLocation"),
wrongip => $info{'wrongip'}
);
$template->param( loginprompt => 1 ) unless $info{'nopermission'};
my $self_url = $query->url( -absolute => 1 );

View File

@ -3064,6 +3064,13 @@ if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
SetVersion ($DBversion);
}
$DBversion = "3.01.00.116";
if (C4::Context->preference("Version") < TransformToNum($DBversion)) {
$dbh->do( qq# INSERT INTO `systempreferences` VALUES ('intranetbookbag','1','','If ON, enables display of Cart feature in the intranet','YesNo') #);
print "Upgrade to $DBversion done (intranetbookbag syspref added)\n";
SetVersion ($DBversion);
}
=item DropAllForeignKeys($table)

View File

@ -1789,3 +1789,175 @@ h1#xml a {
padding:44px 0 0;
text-decoration:none;
width:35px;
}
#cartDetails,#cartUpdate,#holdDetails,#listsDetails {
background-color : #FFF;
border: 1px solid #739acf;
color : black;
display : none;
margin : 0;
padding : 10px;
text-align : center;
width : 180px;
}
#cartmenulink, #listsmenulink {
background : #aaa;
padding : 5px;
color : #333;
text-decoration : none;
cursor : pointer;
}
#cartmenulink *, #listsmenulink * {
font-style : normal;
background-image : url(../../images/button-background.png);
background-repeat : no-repeat;
}
#cartmenulink i, #listsmenulink i {
background-position : top left;
position : absolute;
margin-bottom : -5px;
top : 0;
left : 0;
width : 5px;
height : 5px;
}
#cartmenulink span, #listsmenulink span {
background-position : bottom left;
left : -5px;
padding : 0 0 5px 10px;
margin-bottom : -5px;
}
/* For IE7 */
*:first-child+html #cartmenulink span { padding-top : 3px; padding-bottom : 7px; }
*:first-child+html #listsmenulink span { padding-top : 5px; }
#cartmenulink span i, #listsmenulink span i {
background-position : bottom right;
margin-bottom : 0;
position : absolute;
left : 100%;
width : 10px;
height : 100%;
top : 0;
}
#cartmenulink span span, #listsmenulink span span {
background-position : top right;
position : absolute;
right : -10px;
margin-left : 10px;
top : -5px;
height : 0;
}
* html #cartmenulink span, * html #cartmenulink i, * html #listsmenulink span, * html #listsmenulink i {
float : left;
width : auto;
background-image : none;
cursor : pointer;
}
* html #cartmenulink span, * html #listsmenulink span {
padding-top : 5px;
}
#listsmenulink {
background : #9FBFFF;
}
#cartmenulink {
background : #98CB58;
color : #336600;
font-size : 105%;
}
#listsmenulink:hover {
background-color : #b8d0e6;
}
#cartmenulink:hover {
background-color : #BFDE96;
}
#cartmenulink img {
background-image : none;
display : inline;
padding : 3px 3px 0 3px;
}
#cartmenulink span#basketcount {
background-image : none;
float : none;
display : inline;
height : auto;
position : relative;
margin : 0;
padding : 0;
left : auto;
right : auto;
top : auto;
}
#cartmenulink span#basketcount span {
background-image : none;
background-color : #E6FCB7;
color : #000;
display : inline;
float : none;
font-size : 80%;
font-weight : normal;
margin : 0 0 0 .9em;
padding : 0 .3em 0 .3em;
position : relative;
left : auto;
right : auto;
top : auto;
}
a#listsmenulink, a#listsmenulink:hover {
color : #006699;
font-size : 105%;
font-weight : bold;
line-height : 185%;
margin-left : 1.5em;
}
a#cartmenulink, a#cartmenulink:hover {
color : #336600;
font-size : 105%;
font-weight : bold;
line-height : 185%;
margin-left : 1.5em;
}
* html a#cartmenulink {
padding-top: 0;
}
* html a#cartmenulink:hover {
padding-top : 0;
}
/* For IE7 */
*:first-child+html a#listsmenulink { padding-top : 0; }
*:first-child+html a#listsmenulink:hover { padding-top : 0; }
*:first-child+html a#cartmenulink { padding-top : 0; }
*:first-child+html a#cartmenulink:hover { padding-top : 0; }
*:first-child+html #cartmenulink span i{ top : -4px; }
*:first-child+html #listsmenulink span i { top : -5px; }
#listsmenulink img {
background-image : none;
display : inline;
padding : 0 0 2px 0;
}
* html #cartmenulink {
border : 1px solid #336600;
}
* html #listsmenulink {
border : 1px solid #006699;
}

View File

@ -17,8 +17,13 @@
<link rel="stylesheet" type="text/css" href="<!-- TMPL_VAR NAME="themelang" -->/<!-- TMPL_VAR NAME="widget" -->" />
<!-- /TMPL_LOOP -->
<!-- /TMPL_IF -->
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/jquery.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/ui.tabs.js"></script><script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.hotkeys.min.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/ui.tabs.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.hotkeys.min.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.dropshadow-min.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/lib/jquery/plugins/jquery.highlight-3.js"></script>
<!-- TMPL_IF NAME="js_libs" -->
<!-- TMPL_LOOP NAME="js_libs" --><script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/<!-- TMPL_VAR NAME="lib" -->"></script>
<!-- /TMPL_LOOP -->
@ -29,8 +34,7 @@
<!-- TMPL_IF NAME="js_page" -->
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/js/pages/<!-- TMPL_VAR NAME="js_page" -->"></script>
<!-- /TMPL_IF -->
<script type="text/javascript" language="javascript"
<!-- TMPL_IF NAME="opacbookbag" -->src="<!-- TMPL_VAR NAME="themelang" -->/js/basket.js"><!-- TMPL_ELSIF NAME="virtualshelves" -->src="<!-- TMPL_VAR NAME="themelang" -->/js/basket.js"><!-- TMPL_ELSE -->>var readCookie;<!-- /TMPL_IF --></script>
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/js/tags.js"></script>
<!-- TMPL_IF NAME="js_widgets" -->
<!-- TMPL_LOOP NAME="js_widgets" -->
@ -48,10 +52,12 @@
<!-- yui js -->
<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/utilities/utilities.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/datasource/datasource.js"></script>
<!-- TMPL_IF NAME="CircAutocompl" --><script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/autocomplete/autocomplete-min.js"></script> <!-- /TMPL_IF -->
<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/button/button-min.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/container/container_core-min.js"></script>
<script type="text/javascript" src="<!-- TMPL_VAR NAME="yuipath" -->/menu/menu-min.js"></script>
<!-- koha core js -->
<script type="text/javascript" src="<!-- TMPL_VAR name="themelang" -->/js/staff-global.js"></script>
<!-- TMPL_IF NAME="intranetuserjs" --><script type="text/javascript">
@ -59,3 +65,21 @@
<!-- TMPL_VAR NAME="intranetuserjs" -->
//]]>
</script><!-- /TMPL_IF -->
<script type="text/javascript" language="javascript">
//<![CDATA[
<!-- TMPL_IF NAME="intranetbookbag" -->var MSG_BASKET_EMPTY = _("Your cart is currently empty");
var MSG_RECORD_IN_BASKET = _("This item is already in your cart");
var MSG_RECORD_ADDED = _("This item has been added to your cart");
var MSG_NRECORDS_ADDED = _(" item(s) added to your cart");
var MSG_NRECORDS_IN_BASKET = _("already in your cart");
var MSG_NO_RECORD_SELECTED = _("No item was selected");
var MSG_NO_RECORD_ADDED = _("No item was added to your cart");
var MSG_CONFIRM_DEL_BASKET = _("Are you sure you want to empty your cart?");
var MSG_CONFIRM_DEL_RECORDS = _("Are you sure you want to remove the selected items?");
var MSG_NON_RESERVES_SELECTED = _("One or more selected items cannot be reserved.");
<!-- /TMPL_IF -->
//]]>
</script>
<!-- TMPL_IF EXPR="virtualshelves || intranetbookbag" --><script type="text/javascript" language="javascript" src="<!-- TMPL_VAR NAME="themelang" -->/js/basket.js"></script><!-- /TMPL_IF -->
<!-- /TMPL_IF -->

View File

@ -1,3 +1,5 @@
<!-- TMPL_IF NAME="intranetbookbag" --><div id="cartDetails">Your cart is empty.</div><!-- /TMPL_IF -->
<div id="header" class="clearfix">
<div id="toplevelnav">
<ul id="toplevelmenu">
@ -35,6 +37,9 @@
</div>
</div>
</li>
<!-- TMPL_IF NAME="intranetbookbag" -->
<li><a href="#" id="cartmenulink"><i></i><span><i></i><span></span><img src="/intranet-tmpl/prog/img/cart.gif" width="14" height="14" alt="" border="0" />Cart<span id="basketcount"></span></span></a></li>
<!-- /TMPL_IF -->
</ul>
</div>
<div id="login">

View File

@ -1 +0,0 @@
../../../../opac-tmpl/prog/en/js/basket.js

View File

@ -0,0 +1,470 @@
//////////////////////////////////////////////////////////////////////////////
// BASIC FUNCTIONS FOR COOKIE MANAGEMENT //
//////////////////////////////////////////////////////////////////////////////
var CGIBIN = "/cgi-bin/koha/";
var nameCookie = "intranet_bib_list";
var nameParam = "bib_list";
var valCookie = readCookie(nameCookie);
if(valCookie){
var arrayRecords = valCookie.split("/");
if(arrayRecords.length > 0){
var basketcount = arrayRecords.length-1;
} else {
var basketcount = "";
}
} else {
var basketcount = "";
}
function writeCookie(name, val, wd) {
if (wd) {
parent.opener.document.cookie = name + "=" + val + "; path=/";
}
else {
parent.document.cookie = name + "=" + val + "; path=/";
}
}
function readCookieValue (str, val_beg) {
var val_end = str.indexOf(";", val_end);
if (val_end == -1)
val_end = str.length;
return str.substring(val_beg, val_end);
}
function readCookie(name, wd) {
var str_name = name + "=";
var str_len = str_name.length;
var str_cookie = "";
if (wd) {
str_cookie = parent.opener.document.cookie;
}
else {
str_cookie = parent.document.cookie;
}
// fixed - getting the part of the basket that is bib_list
var cookie_parts = str_cookie.split(";");
for(var i=0;i < cookie_parts.length;i++) {
var c = cookie_parts[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if(c.indexOf(str_name) == 0) return c.substring(str_name.length,c.length);
}
return null;
}
function delCookie(name) {
var exp = new Date();
exp.setTime(exp.getTime()-1);
if(parent.opener){
parent.opener.document.cookie = name + "=null; path=/; expires=" + exp.toGMTString();
} else {
document.cookie = name + "=null; path=/; expires=" + exp.toGMTString();
}
}
///////////////////////////////////////////////////////////////////
// SPECIFIC FUNCTIONS USING COOKIES //
///////////////////////////////////////////////////////////////////
function openBasket() {
var strCookie = "";
var valCookie = readCookie(nameCookie);
if ( valCookie ) {
strCookie = nameParam + "=" + valCookie;
}
if ( strCookie ) {
var iW = 820;
var iH = 450;
var optWin = "dependant=yes,status=yes,scrollbars=yes,resizable=yes,toolbar=no,location=yes,height="+iH+",width="+iW;
var loc = CGIBIN + "basket/basket.pl?" + strCookie;
var basket = open(loc, "basket", optWin);
if (window.focus) {basket.focus()}
}
else {
showCartUpdate(MSG_BASKET_EMPTY);
}
}
function addRecord(val, selection,NoMsgAlert) {
var valCookie = readCookie(nameCookie);
var write = 0;
if ( ! valCookie ) { // empty basket
valCookie = val + '/';
write = 1;
updateBasket(1);
}
else {
// is this record already in the basket ?
var found = false;
var arrayRecords = valCookie.split("/");
for (var i = 0; i < valCookie.length - 1; i++) {
if (val == arrayRecords[i]) {
found = true;
break;
}
}
if ( found ) {
if (selection) {
return 0;
}
if (! NoMsgAlert ) {
showCartUpdate(MSG_RECORD_IN_BASKET);
}
}
else {
valCookie += val + '/';
write = 1;
updateBasket(arrayRecords.length);
}
}
if (write) {
writeCookie(nameCookie, valCookie);
if (selection) { // when adding a selection of records
return 1;
}
if (! NoMsgAlert ) {
showCartUpdate(MSG_RECORD_ADDED);
}
}
}
function AllAreChecked(s){
if (! s.length) { return false;}
var l = s.length;
for (var i=0; i < l; i++) {
if(! s[i].checked) { return false; }
}
return true;
}
function SelectAll(){
if(document.bookbag_form.biblionumber.length > 0) {
var checky = AllAreChecked(document.bookbag_form.biblionumber);
var l = document.bookbag_form.biblionumber.length;
for (var i=0; i < l; i++) {
document.bookbag_form.biblionumber[i].checked = (checky) ? false : true;
}
}
}
function addMultiple(){
var c_value = "";
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) {
c_value = c_value + document.bookbag_form.biblionumber[i].value + "/";
}
}
addSelRecords(c_value);
} else {
c_value = c_value + document.bookbag_form.biblionumber.value + "/";
addSelRecords(c_value);
}
}
function addSelRecords(valSel) { // function for adding a selection of biblios to the basket
// from the results list
var arrayRecords = valSel.split("/");
var i = 0;
var nbAdd = 0;
for (i=0;i<arrayRecords.length;i++) {
if (arrayRecords[i]) {
nbAdd += addRecord(arrayRecords[i], 1);
}
else {
break;
}
}
var msg = "";
if (nbAdd) {
if (i > nbAdd) {
msg = nbAdd+" "+MSG_NRECORDS_ADDED+", "+(i-nbAdd)+" "+MSG_NRECORDS_IN_BASKET;
}
else {
msg = nbAdd+" "+MSG_NRECORDS_ADDED;
}
}
else {
if (i < 1) {
msg = MSG_NO_RECORD_SELECTED;
}
else {
msg = MSG_NO_RECORD_ADDED+" ("+MSG_NRECORDS_IN_BASKET+") !";
}
}
showCartUpdate(msg);
}
function showCartUpdate(msg){
// set body of popup window
$("#cartDetails").html(msg);
showCart();
setTimeout("hideCart()",2000);
}
function showListsUpdate(msg){
// set body of popup window
$("#listsDetails").html(msg);
showLists();
setTimeout("hideLists()",2000);
}
function selRecord(num, status) {
var str = document.myform.records.value
if (status){
str += num+"/";
}
else {
str = delRecord(num, str);
}
document.myform.records.value = str;
}
function delSelRecords() {
var recordsSel = 0;
var end = 0;
var valCookie = readCookie(nameCookie, 1);
if (valCookie) {
var str = document.myform.records.value;
if (str.length > 0){
recordsSel = 1;
var str2 = valCookie;
while (!end){
s = str.indexOf("/");
if (s>0){
num = str.substring(0, s)
str = delRecord(num,str);
str2 = delRecord(num,str2);
} else {
end = 1;
}
}
if (str2.length == 0) { // equivalent to emptying the basket
var rep = false;
rep = confirm(MSG_CONFIRM_DEL_BASKET);
if (rep) {
delCookie(nameCookie);
document.location = "about:blank";
updateBasket(0,top.opener);
window.close();
} else {
return;
}
} else {
writeCookie(nameCookie, str2, 1);
}
}
}
if (recordsSel) {
var strCookie = "";
var valCookie = readCookie(nameCookie, 1);
strCookie = nameParam + "=" + valCookie;
var arrayRecords = valCookie.split("/");
updateBasket(arrayRecords.length-1,top.opener);
document.location = CGIBIN + "basket/basket.pl?" + strCookie;
}
else {
alert(MSG_NO_RECORD_SELECTED);
}
}
function delRecord (n, s) {
var re = /\d/;
var aux = s;
var found = 0;
var pos = -1;
while (!found) {
pos = aux.indexOf(n, pos+1);
var charAfter = aux.charAt(pos+n.length); // character right after the researched string
if (charAfter.match(re)) { // record number inside another one
continue;
}
else { // good record number
aux = s.substring(0, pos)+ s.substring(pos+n.length+1, s.length);
s = aux;
found = 1;
}
}
return s;
}
function delBasket() {
var rep = false;
rep = confirm(MSG_CONFIRM_DEL_BASKET);
if (rep) {
delCookie(nameCookie);
document.location = "about:blank";
updateBasket(0,top.opener);
window.close();
}
}
function quit() {
if (document.myform.records.value) {
var rep = false;
rep = confirm(MSG_CONFIRM_DEL_RECORDS);
if (rep) {
delSelRecords();
}
}
updateBasket(arrayRecords.length-1,top.opener);
window.close();
}
function sendBasket() {
var valCookie = readCookie(nameCookie);
var strCookie = nameParam + "=" + valCookie;
var loc = CGIBIN + "basket/sendbasket.pl?" + strCookie;
var optWin="dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100";
var win_form = open(loc,"win_form",optWin);
}
function downloadBasket() {
var valCookie = readCookie(nameCookie);
var strCookie = nameParam + "=" + valCookie;
var loc = CGIBIN + "basket/downloadcart.pl?" + strCookie;
open(loc,"win_form",'dependant=yes,scrollbars=no,resizable=no,height=300,width=450,top=50,left=100');
}
function printBasket() {
var loc = document.location + "&print=1";
document.location = loc;
}
function showMore() {
var strCookie = "";
var valCookie = readCookie(nameCookie);
if (valCookie) {
strCookie = nameParam + "=" + valCookie;
}
var loc = CGIBIN + "basket/basket.pl?" + strCookie + "&verbose=1";
document.location = loc;
}
function showLess() {
var strCookie = "";
var valCookie = readCookie(nameCookie);
if (valCookie) {
strCookie = nameParam + "=" + valCookie;
}
var loc = CGIBIN + "basket/basket.pl?" + strCookie + "&verbose=0";
document.location = loc;
}
function updateBasket(updated_value,target) {
if(target){
target.$('#basketcount').html("<span>"+updated_value+"</span>");
target.$('#cartDetails').html(_("Your cart contains ")+updated_value+_(" items"));
} else {
$('#basketcount').html("<span>"+updated_value+"</span>");
$('#cartDetails').html(_("Your cart contains ")+updated_value+_(" items"));
}
var basketcount = updated_value;
}
function openBiblio(dest,biblionumber) {
openerURL=dest+"?biblionumber="+biblionumber;
opener.document.location = openerURL;
opener.focus();
}
function addSelToShelf() {
var items = document.getElementById('records').value;
if(items){
document.location = "/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?biblionumber="+items;
} else {
alert(MSG_NO_RECORD_SELECTED);
}
}
/// 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);
}
}
if (bibs.length == 0) { showListsUpdate(MSG_NO_RECORD_SELECTED); }
return bibs.join("&");
} else {
if (document.bookbag_form.biblionumber.checked) {
return "biblionumber=" + document.bookbag_form.biblionumber.value;
}
}
}
function showCart(){
var position = $("#cartmenulink").offset();
var top = position.top + $("#cartmenulink").outerHeight();
var menuWidth = 200;
var buttonWidth = $("#cartmenulink").innerWidth();
var buttonOffset = menuWidth - buttonWidth;
var left = position.left - buttonOffset;
$("#cartDetails").css("position","absolute").css("top",top);
$("#cartDetails").css("position","absolute").css("left",left);
$("#cartDetails").fadeIn("fast",function(){
$("#cartDetails").dropShadow({left: 3, top: 3, blur: 0, color: "#000", opacity: 0.1});
});
}
function showLists(){
var position = $("#listsmenulink").offset();
var top = position.top + $("#listsmenulink").outerHeight();
var menuWidth = 200;
var buttonWidth = $("#listsmenulink").innerWidth();
var buttonOffset = menuWidth - buttonWidth;
var left = position.left - buttonOffset;
$("#listsDetails").css("position","absolute").css("top",top);
$("#listsDetails").css("position","absolute").css("left",left);
$("#listsDetails").fadeIn("fast",function(){
$("#listsDetails").dropShadow({left: 3, top: 3, blur: 0, color: "#000", opacity: 0.1});
});
}
function hideCart(){
$("#cartDetails").removeShadow();
$("#cartDetails").fadeOut("fast");
}
function hideLists(){
$("#listsDetails").removeShadow();
$("#listsDetails").fadeOut("fast");
}
$(document).ready(function(){
$("#cartmenulink").click(function(){ openBasket(); return false; });
$("#cartDetails,#cartmenulink").click(function(){ hideCart(); });
$("#cartmenulink").hover(function(){
showCart();
},function(){
hideCart();
});
if(basketcount){ updateBasket(basketcount); }
});

View File

@ -39,7 +39,7 @@ $('#sort_by').change(function() {
$(".addtocart").show();
var param1 = "<label for=\"addto\">Add to: <\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>";
<!-- TMPL_IF name="intranetbookbag" --> param1 += "<option value=\"addtocart\">"+_("Cart")+"<\/option>"; <!-- /TMPL_IF -->
<!-- TMPL_IF NAME="virtualshelves" --><!-- TMPL_IF NAME="addbarshelves" -->
param1 += "<optgroup label=\"Your Lists:\">";<!-- TMPL_LOOP NAME="addbarshelvesloop" -->
param1 += "<option id=\"s<!-- TMPL_VAR NAME="shelfnumber" -->\" value=\"addtolist\"><!-- TMPL_VAR NAME="shelfname" ESCAPE="html"--><\/option>";<!-- /TMPL_LOOP -->
@ -79,6 +79,11 @@ $(".addtocart").show();
}
return false;
}
if($("#addto").find("option:selected").attr("value") == "addtocart"){
addMultiple();
return false;
}
}
$("#selection_ops").show();

View File

@ -128,6 +128,7 @@ function tagAdded() {
<ul>
<li><!-- TMPL_IF NAME="verbose" --><a href="opac-basket.pl" class="brief" onclick="showLess(); return false;">Brief Display</a><!-- TMPL_ELSE --><a href="opac-basket.pl" class="detail" onclick="showMore(); return false;">More Details</a><!-- /TMPL_IF --></li>
<li><a class="send" href="opac-basket.pl" onclick="sendBasket(); return false;">Send</a></li>
<li><a class="download" href="opac-basket.pl" onclick="downloadBasket(); return false;">Download</a></li>
<li><a class="print" href="opac-basket.pl" onclick="printBasket(); return false;">Print</a></li>
<li><a class="empty" href="opac-basket.pl" onclick="delBasket(); return false;">Empty and Close</a></li>
<li><a class="hide" href="opac-basket.pl" onclick="quit(); return false;">Hide Window</a></li>

View File

@ -65,28 +65,13 @@ use C4::Output;
use C4::VirtualShelves qw/:DEFAULT GetRecentShelves/;
use C4::Circulation;
use C4::Auth;
#splits incoming biblionumber(s) to array and adds each to shelf.
sub AddBibliosToShelf {
my ($shelfnumber,@biblionumber)=@_;
# multiple bibs might come in as '/' delimited string (from where, i don't see), or as array.
if (scalar(@biblionumber) == 1) {
@biblionumber = (split /\//,$biblionumber[0]);
}
for my $bib (@biblionumber){
AddToShelfFromBiblio($bib, $shelfnumber);
}
}
#use it only to debug !
use warnings;
# splits incoming biblionumber(s) to array and adds each to shelf.
sub AddBibliosToShelf {
my ($shelfnumber,@biblionumber)=@_;
# multiple bibs might come in as '/' delimited string (from where, i don't see), or as array.
# (Note : they come in as '/' when added from the cart)
if (scalar(@biblionumber) == 1) {
@biblionumber = (split /\//,$biblionumber[0]);
}
@ -128,6 +113,9 @@ if ($biblionumbers) {
} else {
@biblionumbers = (@biblionumber);
}
if (scalar(@biblionumber) == 1) {
@biblionumber = (split /\//,$biblionumber[0]);
}
$shelfnumber = AddShelf( $newvirtualshelf, $loggedinuser, $category, $sortfield ) if $newvirtualshelf;
if ( $shelfnumber || ( $shelfnumber == -1 ) ) { # the shelf already exist.