Bug 10599: add option to unselect on loan items on the batch item modification tool
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / js / pages / batchMod.js
1 // Set expiration date for cookies
2     var date = new Date();
3     date.setTime(date.getTime()+(365*24*60*60*1000));
4     var expiration = date.toGMTString();
5
6
7 function hideColumns(){
8   valCookie = $.cookie("showColumns");
9   if(valCookie){
10     valCookie = valCookie.split("/");
11     $("#showall").removeAttr("checked").parent().removeClass("selected");
12     for( i=0; i<valCookie.length; i++ ){
13       if(valCookie[i] !== ''){
14         index = valCookie[i] - 2;
15         $("#itemst td:nth-child("+valCookie[i]+"),#itemst th:nth-child("+valCookie[i]+")").toggle();
16         $("#checkheader"+index).removeAttr("checked").parent().removeClass("selected");
17       }
18     }
19   }
20 }
21
22 function hideColumn(num) {
23   $("#hideall,#showall").removeAttr("checked").parent().removeClass("selected");
24   valCookie = $.cookie("showColumns");
25   // set the index of the table column to hide
26   $("#"+num).parent().removeClass("selected");
27   var hide = Number(num.replace("checkheader","")) + 2;
28   // hide header and cells matching the index
29   $("#itemst td:nth-child("+hide+"),#itemst th:nth-child("+hide+")").toggle();
30   // set or modify cookie with the hidden column's index
31   if(valCookie){
32     valCookie = valCookie.split("/");
33     var found = false;
34     for( $i=0; $i<valCookie.length; $i++ ){
35         if (hide == valCookie[i]) {
36             found = true;
37             break;
38         }
39     }
40     if( !found ){
41         valCookie.push(hide);
42         var cookieString = valCookie.join("/");
43         $.cookie("showColumns", cookieString, { expires : date });
44     }
45   } else {
46         $.cookie("showColumns", hide, { expires : date });
47   }
48 }
49
50 // Array Remove - By John Resig (MIT Licensed)
51 // http://ejohn.org/blog/javascript-array-remove/
52 Array.prototype.remove = function(from, to) {
53   var rest = this.slice((to || from) + 1 || this.length);
54   this.length = from < 0 ? this.length + from : from;
55   return this.push.apply(this, rest);
56 };
57
58 function showColumn(num){
59   $("#hideall").removeAttr("checked").parent().removeClass("selected");
60   $("#"+num).parent().addClass("selected");
61   valCookie = $.cookie("showColumns");
62   // set the index of the table column to hide
63   show = Number(num.replace("checkheader","")) + 2;
64   // hide header and cells matching the index
65   $("#itemst td:nth-child("+show+"),#itemst th:nth-child("+show+")").toggle();
66   // set or modify cookie with the hidden column's index
67   if(valCookie){
68     valCookie = valCookie.split("/");
69     var found = false;
70     for( i=0; i<valCookie.length; i++ ){
71         if (show == valCookie[i]) {
72           valCookie.remove(i);
73           found = true;
74         }
75     }
76     if( found ){
77         var cookieString = valCookie.join("/");
78         $.cookie("showColumns", cookieString, { expires : date });
79     }
80   }
81 }
82 function showAllColumns(){
83     $("#selections").checkCheckboxes();
84     $("#selections span").addClass("selected");
85     $("#itemst td:nth-child(2),#itemst tr th:nth-child(2)").nextAll().show();
86     $.cookie("showColumns",null);
87     $("#hideall").removeAttr("checked").parent().removeClass("selected");
88 }
89 function hideAllColumns(){
90     $("#selections").unCheckCheckboxes();
91     $("#selections span").removeClass("selected");
92     $("#itemst td:nth-child(2),#itemst th:nth-child(2)").nextAll().hide();
93     $("#hideall").attr("checked","checked").parent().addClass("selected");
94     var cookieString = allColumns.join("/");
95     $.cookie("showColumns", cookieString, { expires : date });
96 }
97
98   $(document).ready(function() {
99     hideColumns();
100     $("#itemst").dataTable($.extend(true, {}, dataTablesDefaults, {
101         "sDom": 't',
102         "aoColumnDefs": [
103             { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false }
104         ],
105         "bPaginate": false,
106     }));
107     $("#selectallbutton").click(function(){
108       $("#itemst").checkCheckboxes();
109       return false;
110     });
111     $("#clearallbutton").click(function(){
112       $("#itemst").unCheckCheckboxes();
113       return false;
114     });
115     $("#clearonloanbutton").click(function(){
116       $("#itemst input[name='itemnumber'][data-is-onloan='1']").each(function(){
117         $(this).attr('checked', false);
118       });
119       return false;
120     });
121     $("#selections input").change(function(e){
122       var num = $(this).attr("id");
123       if(num == 'showall'){
124         showAllColumns();
125         e.stopPropagation();
126       } else if(num == 'hideall'){
127         hideAllColumns();
128         e.stopPropagation();
129       } else {
130         if($(this).attr("checked")){
131           showColumn(num);
132         } else {
133           hideColumn(num);
134         }
135       }
136     });
137   });