MT 1110, Follow-up : Balance cart and lists : cart is now in the intranet
This commit is contained in:
parent
1bed30a2a8
commit
38b3a375b4
|
|
@ -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 );
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -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 -->
|
||||
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -1 +0,0 @@
|
|||
../../../../opac-tmpl/prog/en/js/basket.js
|
||||
|
|
@ -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); }
|
||||
});
|
||||
|
||||
|
||||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Reference in New Issue