Bug 25890: Update sorting column for checkouts table
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / marc_subfields_structure.js
1 /* global dataTablesDefaults */
2 $(document).ready(function() {
3     $('#subfieldtabs').tabs();
4     $("input[id^='hidden_']").click(setHiddenValue);
5     $("input[id^='hidden-']").each(function() {
6         populateHiddenCheckboxes($(this).attr('id').split('-')[1]);
7     });
8     $("#table_marcsubfieldstructure").dataTable($.extend(true, {}, dataTablesDefaults, {
9         "columnDefs": [
10             { 'sortable': false, 'targets': [ 'NoSort' ] }
11         ],
12         paginate: false
13     }));
14 });
15
16 /* Function to enable/disable hidden values checkboxes when Flag is (de)selected */
17 function enable_cb(tab) {
18     if ($("#hidden_flagged_" + tab).is(':checked')) {
19         $('.inclusive_' + tab).prop('disabled', true).prop('checked', false);
20     }
21     else {
22         $('.inclusive_' + tab).prop('disabled', false);
23     }
24 }
25
26 /* Function to serialize and set the 'hidden' field */
27 function setHiddenValue() {
28
29     var tab = $(this).attr('id').split('_')[2];
30     var flagged_checked = $("#hidden_flagged_" + tab).is(':checked');
31     var opac_checked = $("#hidden_opac_" + tab).is(':checked');
32     var intranet_checked = $("#hidden_intranet_" + tab).is(':checked');
33     var editor_checked = $("#hidden_editor_" + tab).is(':checked');
34     var collapsed_checked = $("#hidden_collapsed_" + tab).is(':checked');
35     var hidden_value = "";
36
37     if ( flagged_checked ) {
38         hidden_value='-8';
39     } else if ( opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked ) {
40         hidden_value='-7';
41     } else if ( opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
42         hidden_value='-6';
43     } else if ( opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
44         hidden_value='-5';
45     } else if ( opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
46         hidden_value='-4';
47     } else if ( opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
48         hidden_value='-3';
49     } else if ( opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
50         hidden_value='-2';
51     } else if ( opac_checked && intranet_checked && editor_checked && collapsed_checked) {
52         hidden_value='-1';
53     } else if ( opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
54         hidden_value='0';
55     } else if ( ! opac_checked && intranet_checked && editor_checked && collapsed_checked) {
56         hidden_value='1';
57     } else if ( ! opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
58         hidden_value='2';
59     } else if ( ! opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
60         hidden_value='3';
61     } else if ( ! opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
62         hidden_value='4';
63     } else if ( ! opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked) {
64         hidden_value='5';
65     } else if ( ! opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
66         hidden_value='6';
67     } else if ( ! opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
68         hidden_value='7';
69     } else if ( ! opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
70         hidden_value='8';
71     }
72
73     enable_cb(tab);
74
75     $('#hidden-' + tab).val(hidden_value);
76
77 }
78
79 function populateHiddenCheckboxes(tab) {
80     // read the serialized value
81     var hidden_value = $('#hidden-' + tab).val();
82     // deafult to false
83     var opac_checked = false;
84     var intranet_checked = false;
85     var editor_checked = false;
86     var collapsed_checked = false;
87     var flagged_checked = false;
88
89     if ( hidden_value == '-8' ) {
90         flagged_checked = true;
91     } else if ( hidden_value == '-7') {
92         opac_checked = true;
93         collapsed_checked = true;
94     } else if ( hidden_value == '-6' ) {
95         opac_checked = true;
96         intranet_checked = true;
97     } else if ( hidden_value == '-5') {
98         opac_checked = true;
99         intranet_checked = true;
100         collapsed_checked = true;
101     } else if ( hidden_value == '-4' ) {
102         opac_checked = true;
103     } else if ( hidden_value == '-3') {
104         opac_checked = true;
105         editor_checked = true;
106         collapsed_checked = true;
107     } else if ( hidden_value == '-2' ) {
108         opac_checked = true;
109         editor_checked = true;
110     } else if ( hidden_value == '-1' ) {
111         opac_checked = true;
112         intranet_checked = true;
113         editor_checked = true;
114         collapsed_checked = true;
115     } else if ( hidden_value == '0' ) {
116         opac_checked = true;
117         intranet_checked = true;
118         editor_checked = true;
119     } else if ( hidden_value == '1' ) {
120         intranet_checked = true;
121         editor_checked = true;
122         collapsed_checked = true;
123     } else if ( hidden_value == '2' ) {
124         editor_checked = true;
125     } else if ( hidden_value == '3' ) {
126         editor_checked = true;
127         collapsed_checked = true;
128     } else if ( hidden_value == '4' ) {
129         intranet_checked = true;
130         editor_checked = true;
131     } else if ( hidden_value == '5' ) {
132         collapsed_checked = true;
133     } else if ( hidden_value == '6' ) {
134         intranet_checked = true;
135     } else if ( hidden_value == '7' ) {
136         intranet_checked = true;
137         collapsed_checked = true;
138     } // else if ( hidden_value == '8') { skip }
139
140     $("#hidden_opac_" + tab).prop('checked',opac_checked);
141     $("#hidden_intranet_" + tab).prop('checked',intranet_checked);
142     $("#hidden_editor_" + tab).prop('checked',editor_checked);
143     $("#hidden_collapsed_" + tab).prop('checked',collapsed_checked);
144     $("#hidden_flagged_" + tab).prop('checked',flagged_checked);
145
146     enable_cb(tab);
147
148 }