View | Details | Raw Unified | Return to bug 27752
Collapse All | Expand All

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

Return to bug 27752