Koha/koha-tmpl/intranet-tmpl/prog/en/js/pages/batchMod.js
Owen Leonard 69d863f739 Bug 8283 - Replace usage of YUI Cookie utility with jQuery Cookie plugin
Switching from YUI Cookie utility to jQuery Cookie plugin. The
jQuery Cookie plugin is already used elsewhere in Koha, so no new
dependencies are added. The YUI Cookie files are removed.

To test, go to batch item deletion and/or batch item modification
and submit a set of barcodes. On the confirmation screen select
or deselect columns to show. Start over and submit your barcodes
again. The confirmation screen should remember which columns you
previously selected.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-07-13 11:27:33 +02:00

128 lines
4.1 KiB
JavaScript

// Set expiration date for cookies
var date = new Date();
date.setTime(date.getTime()+(365*24*60*60*1000));
var expiration = date.toGMTString();
function hideColumns(){
valCookie = $.cookie("showColumns");
if(valCookie){
valCookie = valCookie.split("/");
$("#showall").removeAttr("checked").parent().removeClass("selected");
for( i=0; i<valCookie.length; i++ ){
if(valCookie[i] !== ''){
index = valCookie[i] - 2;
$("#itemst td:nth-child("+valCookie[i]+"),#itemst th:nth-child("+valCookie[i]+")").toggle();
$("#checkheader"+index).removeAttr("checked").parent().removeClass("selected");
}
}
}
}
function hideColumn(num) {
$("#hideall,#showall").removeAttr("checked").parent().removeClass("selected");
valCookie = $.cookie("showColumns");
// set the index of the table column to hide
$("#"+num).parent().removeClass("selected");
var hide = Number(num.replace("checkheader","")) + 2;
// hide header and cells matching the index
$("#itemst td:nth-child("+hide+"),#itemst th:nth-child("+hide+")").toggle();
// set or modify cookie with the hidden column's index
if(valCookie){
valCookie = valCookie.split("/");
var found = false;
for( $i=0; $i<valCookie.length; $i++ ){
if (hide == valCookie[i]) {
found = true;
break;
}
}
if( !found ){
valCookie.push(hide);
var cookieString = valCookie.join("/");
$.cookie("showColumns", cookieString, { expires : date });
}
} else {
$.cookie("showColumns", hide, { expires : date });
}
}
// Array Remove - By John Resig (MIT Licensed)
// http://ejohn.org/blog/javascript-array-remove/
Array.prototype.remove = function(from, to) {
var rest = this.slice((to || from) + 1 || this.length);
this.length = from < 0 ? this.length + from : from;
return this.push.apply(this, rest);
};
function showColumn(num){
$("#hideall").removeAttr("checked").parent().removeClass("selected");
$("#"+num).parent().addClass("selected");
valCookie = $.cookie("showColumns");
// set the index of the table column to hide
show = Number(num.replace("checkheader","")) + 2;
// hide header and cells matching the index
$("#itemst td:nth-child("+show+"),#itemst th:nth-child("+show+")").toggle();
// set or modify cookie with the hidden column's index
if(valCookie){
valCookie = valCookie.split("/");
var found = false;
for( i=0; i<valCookie.length; i++ ){
if (show == valCookie[i]) {
valCookie.remove(i);
found = true;
}
}
if( found ){
var cookieString = valCookie.join("/");
$.cookie("showColumns", cookieString, { expires : date });
}
}
}
function showAllColumns(){
$("#selections").checkCheckboxes();
$("#selections span").addClass("selected");
$("#itemst td:nth-child(2),#itemst tr th:nth-child(2)").nextAll().show();
$.cookie("showColumns",null);
$("#hideall").removeAttr("checked").parent().removeClass("selected");
}
function hideAllColumns(){
$("#selections").unCheckCheckboxes();
$("#selections span").removeClass("selected");
$("#itemst td:nth-child(2),#itemst th:nth-child(2)").nextAll().hide();
$("#hideall").attr("checked","checked").parent().addClass("selected");
var cookieString = allColumns.join("/");
$.cookie("showColumns", cookieString, { expires : date });
}
$(document).ready(function() {
hideColumns();
$("#itemst").tablesorter({
widgets : ['zebra'],
headers: {0:{sorter: false}}
});
$("#selectallbutton").click(function(){
$("#itemst").checkCheckboxes();
return false;
});
$("#clearallbutton").click(function(){
$("#itemst").unCheckCheckboxes();
return false;
});
$("#selections input").change(function(e){
var num = $(this).attr("id");
if(num == 'showall'){
showAllColumns();
e.stopPropagation();
} else if(num == 'hideall'){
hideAllColumns();
e.stopPropagation();
} else {
if($(this).attr("checked")){
showColumn(num);
} else {
hideColumn(num);
}
}
});
});