Bug 26988: Add API route to fetch hold pickup locations and use it in the holds 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     var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
74     if ( hidden_protected != 1 ) {
75         enable_cb(tab);
76     }
77
78     $('#hidden-' + tab).val(hidden_value);
79
80 }
81
82 function populateHiddenCheckboxes(tab) {
83     // read the serialized value
84     var hidden_value = $('#hidden-' + tab).val();
85     var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
86     // deafult to false
87     var opac_checked = false;
88     var intranet_checked = false;
89     var editor_checked = false;
90     var collapsed_checked = false;
91     var flagged_checked = false;
92
93     if ( hidden_value == '-8' ) {
94         flagged_checked = true;
95     } else if ( hidden_value == '-7') {
96         opac_checked = true;
97         collapsed_checked = true;
98     } else if ( hidden_value == '-6' ) {
99         opac_checked = true;
100         intranet_checked = true;
101     } else if ( hidden_value == '-5') {
102         opac_checked = true;
103         intranet_checked = true;
104         collapsed_checked = true;
105     } else if ( hidden_value == '-4' ) {
106         opac_checked = true;
107     } else if ( hidden_value == '-3') {
108         opac_checked = true;
109         editor_checked = true;
110         collapsed_checked = true;
111     } else if ( hidden_value == '-2' ) {
112         opac_checked = true;
113         editor_checked = true;
114     } else if ( hidden_value == '-1' ) {
115         opac_checked = true;
116         intranet_checked = true;
117         editor_checked = true;
118         collapsed_checked = true;
119     } else if ( hidden_value == '0' ) {
120         opac_checked = true;
121         intranet_checked = true;
122         editor_checked = true;
123     } else if ( hidden_value == '1' ) {
124         intranet_checked = true;
125         editor_checked = true;
126         collapsed_checked = true;
127     } else if ( hidden_value == '2' ) {
128         editor_checked = true;
129     } else if ( hidden_value == '3' ) {
130         editor_checked = true;
131         collapsed_checked = true;
132     } else if ( hidden_value == '4' ) {
133         intranet_checked = true;
134         editor_checked = true;
135     } else if ( hidden_value == '5' ) {
136         collapsed_checked = true;
137     } else if ( hidden_value == '6' ) {
138         intranet_checked = true;
139     } else if ( hidden_value == '7' ) {
140         intranet_checked = true;
141         collapsed_checked = true;
142     } // else if ( hidden_value == '8') { skip }
143
144     $("#hidden_opac_" + tab).prop('checked',opac_checked);
145     $("#hidden_intranet_" + tab).prop('checked',intranet_checked);
146     $("#hidden_editor_" + tab).prop('checked',editor_checked);
147     $("#hidden_collapsed_" + tab).prop('checked',collapsed_checked);
148     $("#hidden_flagged_" + tab).prop('checked',flagged_checked);
149
150     if ( hidden_protected == 1 ) {
151         $("#hidden_opac_" + tab).prop('disabled','disabled');
152         $("#hidden_intranet_" + tab).prop('disabled','disabled');
153         $("#hidden_editor_" + tab).prop('disabled','disabled');
154         $("#hidden_collapsed_" + tab).prop('disabled','disabled');
155         $("#hidden_flagged_" + tab).prop('disabled','disabled');
156     }
157     else {
158         enable_cb(tab);
159     }
160 }