Bug 8977:replace unitialized directory var in printoverdues
[koha_fer] / koha-tmpl / opac-tmpl / prog / en / js / basket.js
index ca7c0ff..13a2c36 100644 (file)
@@ -1,5 +1,5 @@
 //////////////////////////////////////////////////////////////////////////////
-// BASIC FUNCTIONS FOR COOKIE MANGEMENT //
+// BASIC FUNCTIONS FOR COOKIE MANAGEMENT //
 //////////////////////////////////////////////////////////////////////////////
 
 var CGIBIN = "/cgi-bin/koha/";
@@ -128,10 +128,12 @@ function addRecord(val, selection,NoMsgAlert) {
     if (write) {
         writeCookie(nameCookie, valCookie);
         if (selection) { // when adding a selection of records
+            updateLink(val,"add");
             return 1;
         }
         if (! NoMsgAlert ) {
             showCartUpdate(MSG_RECORD_ADDED);
+            updateLink(val,"add");
         }
     }
 }
@@ -204,11 +206,17 @@ function addSelRecords(valSel) { // function for adding a selection of biblios t
 }
 
 function showCartUpdate(msg){
-       cartUpdate.setBody(msg);
-       cartUpdate.render("cc");
-       cartUpdate.show();
-       YAHOO.util.Event.addListener("cartUpdate", "click", cartUpdate.hide, cartUpdate, true);
-       setTimeout("cartUpdate.hide()",5000);   
+       // 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) {
@@ -223,12 +231,24 @@ function selRecord(num, status) {
     document.myform.records.value = str;
 }
 
+function delSingleRecord(biblionumber){
+    var nameCookie = "bib_list";
+    var valCookie = readCookie(nameCookie);
+    var arrayRecords = valCookie.split("/");
+    var pos = jQuery.inArray(biblionumber,arrayRecords);
+    arrayRecords.splice(pos,1);
+    valCookie = arrayRecords.join("/");
+    writeCookie( nameCookie, valCookie );
+    updateBasket( arrayRecords.length-1 );
+    updateLink(biblionumber,"del");
+    showCartUpdate(MSG_RECORD_REMOVED);
+}
+
 function delSelRecords() {
     var recordsSel = 0;
     var end = 0;
     var nameCookie = "bib_list";
     var valCookie = readCookie(nameCookie, 1);
-
     if (valCookie) {
         var str = document.myform.records.value;
         if (str.length > 0){
@@ -237,9 +257,10 @@ function delSelRecords() {
             while (!end){
                 s = str.indexOf("/");
                 if (s>0){
-                    num = str.substring(0, s)
+                    num = str.substring(0, s);
                     str = delRecord(num,str);
                     str2 = delRecord(num,str2);
+                    updateLink(num,"del",top.opener);
                 } else {
                     end = 1;
                 }
@@ -306,6 +327,7 @@ function delBasket() {
     rep = confirm(MSG_CONFIRM_DEL_BASKET);
     if (rep) {
         delCookie(nameCookie);
+        updateAllLinks(top.opener);
         document.location = "about:blank";
         updateBasket(0,top.opener);
         window.close();
@@ -336,6 +358,16 @@ function sendBasket() {
     var win_form = open(loc,"win_form",optWin);
 }
 
+function downloadBasket() {
+    var nameCookie = "bib_list";
+    var valCookie = readCookie(nameCookie);
+    var strCookie = nameCookie + "=" + valCookie;
+
+    var loc = CGIBIN + "opac-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;
@@ -367,11 +399,11 @@ function showLess() {
 
 function updateBasket(updated_value,target) {
        if(target){
-       target.$('#basket').html("<span>"+updated_value+"</span>");
-       target.$('#cartDetails').html(_("Your cart contains ")+updated_value+_(" items"));
+       target.$('#basketcount').html("<span>"+updated_value+"</span>");
+    target.$('#cartDetails').html(MSG_IN_YOUR_CART+updated_value);
        } else {
-       $('#basket').html("<span>"+updated_value+"</span>");
-       $('#cartDetails').html(_("Your cart contains ")+updated_value+_(" items"));
+       $('#basketcount').html("<span>"+updated_value+"</span>");
+    $('#cartDetails').html(MSG_IN_YOUR_CART+updated_value);
        }
        var basketcount = updated_value;
 }
@@ -401,6 +433,7 @@ function vShelfAdd() {
                                 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) {
@@ -409,23 +442,81 @@ function vShelfAdd() {
         }
 }
 
-YAHOO.util.Event.onContentReady("cartDetails", function () {
-       $("#cartDetails").css("display","block").css("visibility","hidden").after("<div id=\"cc\" style=\"visibility: hidden\"></div>");
-       $("#cmspan").html("<a href=\"#\" id=\"cartmenulink\" class=\"\"><i></i><span><i></i><span></span><img src=\"/opac-tmpl/prog/images/cart.gif\" width=\"14\" height=\"14\" alt=\"\" border=\"0\" /> Cart<span id=\"basket\"></span></span></a>");
-       if(basketcount){ updateBasket(basketcount) }    
-});
+function showCart(){
+               var position = $("#cartmenulink").offset();
+        var scrolld = $(window).scrollTop();
+               var top = position.top + $("#cartmenulink").outerHeight();
+        if( scrolld > top ){
+            top = scrolld + 15;
+        }
+               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 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 cartMenuInit() {
-       $('#cartmenulink').click(function(){
-               openBasket(); return false;
+function hideCart(){
+    $("#cartDetails").fadeOut("fast");
+}
+
+function hideLists(){
+    $("#listsDetails").fadeOut("fast");
+}
+
+function updateLink(val,op,target){
+    if(target){
+        if(op == "add"){
+            target.$("a.cart"+val).html(MSG_ITEM_IN_CART).addClass("incart");
+            target.$("a.cartR"+val).show();
+        } else {
+            target.$("a.cart"+val).html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart cart"+val);
+            target.$("a.cartR"+val).hide();
+        }
+    } else {
+        if(op == "add"){
+            $("a.cart"+val).html(MSG_ITEM_IN_CART).addClass("incart");
+            $("a.cartR"+val).show();
+        } else {
+            $("a.cart"+val).html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart cart"+val);
+            $("a.cartR"+val).hide();
+        }
+    }
+}
+
+function updateAllLinks(target){
+    if(target){
+        target.$("a.incart").html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart");
+        target.$("a.cartRemove").hide();
+    } else {
+        $("a.incart").html(MSG_ITEM_NOT_IN_CART).removeClass("incart").addClass("addtocart");
+        $("a.cartRemove").hide();
+    }
+}
+
+$("#cartDetails").ready(function(){
+       $("#cartDetails,#cartmenulink").click(function(){ hideCart(); });
+       $("#cartmenulink").click(function(){ openBasket(); return false; });
+       $("#cartmenulink").hoverIntent(function(){
+               showCart();
+       },function(){
+               hideCart();
        });
-       // Build cartOverlay based on markup
-       cartOverlay = new YAHOO.widget.Overlay("cartDetails", { context:["cartmenulink","tr","br"],                                                                                                                                                                                       visible:false,width:"200px",effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
-       cartOverlay.render();
-       YAHOO.util.Event.addListener("cartmenulink", "mouseover", cartOverlay.show, cartOverlay, true);
-       YAHOO.util.Event.addListener("cartmenulink", "mouseout", cartOverlay.hide, cartOverlay, true);
-       YAHOO.util.Event.addListener("cartmenulink", "click", cartOverlay.hide, cartOverlay, true);
-       
-       cartUpdate = new YAHOO.widget.Panel("cartUpdate", { context:["cartmenulink","tr","br"],                                                                                                                                                                                   visible:false,draggable:false, close:false,width:"200px",effect:{effect:YAHOO.widget.ContainerEffect.FADE,duration:0.25} } );
-}
-YAHOO.util.Event.addListener(window, "load", cartMenuInit);
\ No newline at end of file
+       if(basketcount){ updateBasket(basketcount) }
+});
+
+