Bug 8204: Add user friendly authority view to OPAC
[koha.git] / koha-tmpl / opac-tmpl / prog / en / js / basket.js
old mode 100755 (executable)
new mode 100644 (file)
index cabf4da..13a2c36
@@ -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");
         }
     }
 }
@@ -210,6 +212,13 @@ function showCartUpdate(msg){
        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){
@@ -222,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){
@@ -236,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;
                 }
@@ -305,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();
@@ -335,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,10 +400,10 @@ function showLess() {
 function updateBasket(updated_value,target) {
        if(target){
        target.$('#basketcount').html("<span>"+updated_value+"</span>");
-       target.$('#cartDetails').html(_("Your cart contains ")+updated_value+_(" items"));
+    target.$('#cartDetails').html(MSG_IN_YOUR_CART+updated_value);
        } else {
        $('#basketcount').html("<span>"+updated_value+"</span>");
-       $('#cartDetails').html(_("Your cart contains ")+updated_value+_(" items"));
+    $('#cartDetails').html(MSG_IN_YOUR_CART+updated_value);
        }
        var basketcount = updated_value;
 }
@@ -400,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 +443,72 @@ function vShelfAdd() {
 }
 
 function showCart(){
-               var position = $("#cartmenulink").offset({border: true,margin:false});
+               var position = $("#cartmenulink").offset();
+        var scrolld = $(window).scrollTop();
                var top = position.top + $("#cartmenulink").outerHeight();
-               var left = position.left;
+        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(){
-                       $("#cartDetails").dropShadow({left: 3, top: 3, blur: 0,  color: "#000", opacity: 0.1});
-               });     
+               $("#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 hideCart(){
-                $(".dropShadow").hide();
-                $("#cartDetails").fadeOut("fast");
+    $("#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(){
-       $("#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=\"basketcount\"></span></span></a>");
        $("#cartDetails,#cartmenulink").click(function(){ hideCart(); });
        $("#cartmenulink").click(function(){ openBasket(); return false; });
        $("#cartmenulink").hoverIntent(function(){
@@ -435,3 +518,5 @@ $("#cartDetails").ready(function(){
        });
        if(basketcount){ updateBasket(basketcount) }
 });
+
+