Bug 30090: Don't export some columns in patron search results
[koha.git] / koha-tmpl / intranet-tmpl / prog / js / marc_subfields_structure.js
1 /* global dataTablesDefaults */
2 $(document).ready(function() {
3     var tabs = $('#subfieldtabs').tabs();
4     var current_index;
5     tabs.find( ".ui-tabs-nav" ).sortable({
6         axis: "x",
7         start: function (e, ui) {
8             current_index = $(ui.item[0]).index();
9         },
10         stop: function (e, ui) {
11             var new_index = $(ui.item[0]).index();
12             if (current_index < new_index) new_index++;
13             var subfield_code = $(ui.item[0]).attr('id').replace( /^tab_subfield_/, '');
14             var content = $('#sub' + subfield_code + 'field');
15             var panels = $("#subfieldtabs > div");
16             if ( new_index < $(panels).size() ){
17                 $(content).insertBefore($("#subfieldtabs > div")[new_index]);
18             } else {
19                 $(content).insertAfter($("#subfieldtabs > div")[new_index-1]);
20             }
21             tabs.tabs("refresh");
22         }
23     });
24     $("input[id^='hidden_']").click(setHiddenValue);
25     $("input[id^='hidden-']").each(function() {
26         populateHiddenCheckboxes($(this).attr('id').split('-')[1]);
27     });
28     $("#table_marcsubfieldstructure").dataTable($.extend(true, {}, dataTablesDefaults, {
29         "columnDefs": [
30             { 'sortable': false, 'targets': [ 'NoSort' ] }
31         ],
32         aaSorting: [],
33         paginate: false
34     }));
35 });
36
37 /* Function to enable/disable hidden values checkboxes when Flag is (de)selected */
38 function enable_cb(tab) {
39     if ($("#hidden_flagged_" + tab).is(':checked')) {
40         $('.inclusive_' + tab).prop('disabled', true).prop('checked', false);
41     }
42     else {
43         $('.inclusive_' + tab).prop('disabled', false);
44     }
45 }
46
47 /* Function to serialize and set the 'hidden' field */
48 function setHiddenValue() {
49
50     var tab = $(this).attr('id').split('_')[2];
51     var flagged_checked = $("#hidden_flagged_" + tab).is(':checked');
52     var opac_checked = $("#hidden_opac_" + tab).is(':checked');
53     var intranet_checked = $("#hidden_intranet_" + tab).is(':checked');
54     var editor_checked = $("#hidden_editor_" + tab).is(':checked');
55     var collapsed_checked = $("#hidden_collapsed_" + tab).is(':checked');
56     var hidden_value = "";
57
58     if ( flagged_checked ) {
59         hidden_value='-8';
60     } else if ( opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked ) {
61         hidden_value='-7';
62     } else if ( opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
63         hidden_value='-6';
64     } else if ( opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
65         hidden_value='-5';
66     } else if ( opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
67         hidden_value='-4';
68     } else if ( opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
69         hidden_value='-3';
70     } else if ( opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
71         hidden_value='-2';
72     } else if ( opac_checked && intranet_checked && editor_checked && collapsed_checked) {
73         hidden_value='-1';
74     } else if ( opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
75         hidden_value='0';
76     } else if ( ! opac_checked && intranet_checked && editor_checked && collapsed_checked) {
77         hidden_value='1';
78     } else if ( ! opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
79         hidden_value='2';
80     } else if ( ! opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
81         hidden_value='3';
82     } else if ( ! opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
83         hidden_value='4';
84     } else if ( ! opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked) {
85         hidden_value='5';
86     } else if ( ! opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
87         hidden_value='6';
88     } else if ( ! opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
89         hidden_value='7';
90     } else if ( ! opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
91         hidden_value='8';
92     }
93
94     var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
95     if ( hidden_protected != 1 ) {
96         enable_cb(tab);
97     }
98
99     $('#hidden-' + tab).val(hidden_value);
100
101 }
102
103 function populateHiddenCheckboxes(tab) {
104     // read the serialized value
105     var hidden_value = $('#hidden-' + tab).val();
106     var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
107     // deafult to false
108     var opac_checked = false;
109     var intranet_checked = false;
110     var editor_checked = false;
111     var collapsed_checked = false;
112     var flagged_checked = false;
113
114     if ( hidden_value == '-8' ) {
115         flagged_checked = true;
116     } else if ( hidden_value == '-7') {
117         opac_checked = true;
118         collapsed_checked = true;
119     } else if ( hidden_value == '-6' ) {
120         opac_checked = true;
121         intranet_checked = true;
122     } else if ( hidden_value == '-5') {
123         opac_checked = true;
124         intranet_checked = true;
125         collapsed_checked = true;
126     } else if ( hidden_value == '-4' ) {
127         opac_checked = true;
128     } else if ( hidden_value == '-3') {
129         opac_checked = true;
130         editor_checked = true;
131         collapsed_checked = true;
132     } else if ( hidden_value == '-2' ) {
133         opac_checked = true;
134         editor_checked = true;
135     } else if ( hidden_value == '-1' ) {
136         opac_checked = true;
137         intranet_checked = true;
138         editor_checked = true;
139         collapsed_checked = true;
140     } else if ( hidden_value == '0' ) {
141         opac_checked = true;
142         intranet_checked = true;
143         editor_checked = true;
144     } else if ( hidden_value == '1' ) {
145         intranet_checked = true;
146         editor_checked = true;
147         collapsed_checked = true;
148     } else if ( hidden_value == '2' ) {
149         editor_checked = true;
150     } else if ( hidden_value == '3' ) {
151         editor_checked = true;
152         collapsed_checked = true;
153     } else if ( hidden_value == '4' ) {
154         intranet_checked = true;
155         editor_checked = true;
156     } else if ( hidden_value == '5' ) {
157         collapsed_checked = true;
158     } else if ( hidden_value == '6' ) {
159         intranet_checked = true;
160     } else if ( hidden_value == '7' ) {
161         intranet_checked = true;
162         collapsed_checked = true;
163     } // else if ( hidden_value == '8') { skip }
164
165     $("#hidden_opac_" + tab).prop('checked',opac_checked);
166     $("#hidden_intranet_" + tab).prop('checked',intranet_checked);
167     $("#hidden_editor_" + tab).prop('checked',editor_checked);
168     $("#hidden_collapsed_" + tab).prop('checked',collapsed_checked);
169     $("#hidden_flagged_" + tab).prop('checked',flagged_checked);
170
171     if ( hidden_protected == 1 ) {
172         $("#hidden_opac_" + tab).prop('disabled','disabled');
173         $("#hidden_intranet_" + tab).prop('disabled','disabled');
174         $("#hidden_editor_" + tab).prop('disabled','disabled');
175         $("#hidden_collapsed_" + tab).prop('disabled','disabled');
176         $("#hidden_flagged_" + tab).prop('disabled','disabled');
177     }
178     else {
179         enable_cb(tab);
180     }
181 }