From e2713097d6d9b075ac49e8ba106c0cac7d2f2220 Mon Sep 17 00:00:00 2001 From: oleonard Date: Tue, 20 Jul 2004 17:19:52 +0000 Subject: [PATCH] Putting this file in includes for easier access. Contains updates to basket functionality. --- koha-tmpl/opac-tmpl/css/en/includes/basket.js | 375 ++++++++++++++++++ 1 file changed, 375 insertions(+) create mode 100644 koha-tmpl/opac-tmpl/css/en/includes/basket.js diff --git a/koha-tmpl/opac-tmpl/css/en/includes/basket.js b/koha-tmpl/opac-tmpl/css/en/includes/basket.js new file mode 100644 index 0000000000..3b1599a9c8 --- /dev/null +++ b/koha-tmpl/opac-tmpl/css/en/includes/basket.js @@ -0,0 +1,375 @@ +////////////////////////////////////////////////////////////////////////////// +// BASIC FUNCTIONS FOR COOKIE MANGEMENT // +////////////////////////////////////////////////////////////////////////////// + +var CGIBIN = "/cgi-bin/koha/"; + + +var nameCookie = "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 addMultiple(){ +var c_value = ""; +if(document.myform.bibid.length > 0){ +for (var i=0; i < document.myform.bibid.length; i++) + { + if (document.myform.bibid[i].checked) + { + c_value = c_value + document.myform.bibid[i].value + "|"; + } + } + var arrayChosen = c_value.split("|"); + for(i=0;i<(arrayChosen.length-1);i++){ + addRecord(arrayChosen[i],"","silent"); + } + alert(i+MSG_NRECORDS_ADDED); + } else { + alert(MSG_NO_RECORD_SELECTED); + } +} + +function writeCookie(name, val, wd) { + if (wd) { + parent.opener.document.cookie = name + "=" + val; + } + else { + parent.document.cookie = name + "=" + val; + } +} + +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; + } + var coo_len = str_cookie.length; + var i = 0; + + while (i < coo_len) { + var j = i + str_len; + if (str_cookie.substring(i, j) == str_name) + return readCookieValue(str_cookie, j); + i = str_cookie.indexOf(" ", i) + 1; + if (i == 0) + break; + } + + return null; +} + +function delCookie(name) { + var exp = new Date(); + exp.setTime(exp.getTime()-1); + parent.opener.document.cookie = name + "=null; expires=" + exp.toGMTString(); +} + + +/////////////////////////////////////////////////////////////////// +// SPECIFIC FUNCTIONS USING COOKIES // +/////////////////////////////////////////////////////////////////// + +function openBasket() { + var strCookie = ""; + + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie); + if (valCookie) { + strCookie = nameCookie + "=" + valCookie; + } + + if (strCookie) { +// alert(strCookie); +// return; + +// var Wmax = screen.width; +// var Hmax = screen.height; + + var iW = 620; + var iH = 450; + + var optWin = "dependant=yes,status=yes,scrollbars=yes,resizable=yes,toolbar=yes,height="+iH+",width="+iW; + var loc = CGIBIN + "opac-basket.pl?" + strCookie; + var basket = open(loc, "basket", optWin); + } + else { + alert(MSG_BASKET_EMPTY); + //alert("Il n'y a aucune notice !"); + } +} + + +function addRecord(val, selection, display) { + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie); + var write = 0; + + if ( ! valCookie ) { // empty basket + valCookie = val + '/'; + write = 1; + updateBasket(1,document); + } + 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( display != "silent" ){ + alert(MSG_RECORD_IN_BASKET); + } + } + else { + valCookie += val + '/'; + write = 1; + updateBasket(arrayRecords.length,document); + } + } + + if (write) { + writeCookie(nameCookie, valCookie); + if (selection) { // ajout à partir d'une sélection de notices + return 1; + } + if( display != "silent" ){ + alert(MSG_RECORD_ADDED); + } + } +} + + +function addSelRecords(valSel) { // fonction permettant d'ajouter une sélection de notices + // (à partir d'une page de résultats) au panier + var arrayRecords = valSel.split("/"); + var i = 0; + var nbAdd = 0; + for (i=0;i nbAdd) { + msg = nbAdd+" "+MSG_NRECORDS_ADDED+", "+(i-nbAj)+" "+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+") !"; + } + } + alert(msg); +} + + +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 nameCookie = "bib_list"; + 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.document); + window.close(); + } else { + return; + } + } else { + writeCookie(nameCookie, str2, 1); + } + } + } + + if (recordsSel) { + var strCookie = ""; + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie, 1); + strCookie = nameCookie + "=" + valCookie; + var arrayRecords = valCookie.split("/"); + updateBasket(arrayRecords.length-1,top.opener.document); + document.location = CGIBIN + "opac-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 nameCookie = "bib_list"; + + var rep = false; + rep = confirm(MSG_CONFIRM_DEL_BASKET); + if (rep) { + delCookie(nameCookie); + document.location = "about:blank"; + updateBasket(0,top.opener.document); + 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.document); + window.close(); +} + +function sendBasket() { + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie); + var strCookie = nameCookie + "=" + valCookie; + + var loc = CGIBIN + "opac-sendbasket.pl?" + strCookie; + + var optWin="dependant=yes,scrollbars=no,resizable=no,height=300,width=400,top=50,left=100"; + var win_form = open(loc,"win_form",optWin); +} + +function printBasket() { + var loc = document.location + "&print=1"; + document.location = loc; +} + +function showMore() { + var strCookie = ""; + + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie); + if (valCookie) { + strCookie = nameCookie + "=" + valCookie; + } + var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=1"; + document.location = loc; +} + +function showLess() { + var strCookie = ""; + + var nameCookie = "bib_list"; + var valCookie = readCookie(nameCookie); + if (valCookie) { + strCookie = nameCookie + "=" + valCookie; + } + var loc = CGIBIN + "opac-basket.pl?" + strCookie + "&verbose=0"; + document.location = loc; +} + +function updateBasket(updated_value,target) { + if(typeof document.getElementById != "undefined") { + target.getElementById('basket').innerHTML = " ("+updated_value+")"; + } else if (typeof document.layers != "undefined") { + target.layers['basket'].open(); + target.layers['basket'].write(" ("+updated_value+")"); + target.layers['basket'].close(); + } else if(typeof document.all != "undefined" && typeof +document.getElementById == "undefined") { + target.all['basket'].innerHTML = " ("+updated_value+")"; + } +} \ No newline at end of file -- 2.39.2