koha-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Koha-cvs] CVS: koha/koha-tmpl/opac-tmpl/css/en/includes basket.js,NONE,


From: Owen Leonard
Subject: [Koha-cvs] CVS: koha/koha-tmpl/opac-tmpl/css/en/includes basket.js,NONE,1.1
Date: Tue, 20 Jul 2004 10:19:54 -0700

Update of /cvsroot/koha/koha/koha-tmpl/opac-tmpl/css/en/includes
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12545/koha-tmpl/opac-tmpl/css/en/includes

Added Files:
        basket.js 
Log Message:
Putting this file in includes for easier access. Contains updates to basket 
functionality.

--- NEW FILE ---
//////////////////////////////////////////////////////////////////////////////
// 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<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-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+")";
    }
}



reply via email to

[Prev in Thread] Current Thread [Next in Thread]