1 /* global dataTablesDefaults tagsubfield selectBsTabByHash */
2 $(document).ready(function() {
3 if( tagsubfield && tagsubfield == "@"){
4 $("#subfieldtabs a[href='#subATfield']").tab("show");
5 } else if ( tagsubfield && tagsubfield != "@"){
6 $("#subfieldtabs a[href='#sub" + tagsubfield + "field'").tab("show");
8 $("#subfieldtabs a:first").tab("show");
12 $("#subfieldtabs > ul").sortable({
14 start: function (e, ui) {
15 current_index = $(ui.item[0]).index();
17 stop: function (e, ui) {
18 var new_index = $(ui.item[0]).index();
19 if (current_index < new_index) new_index++;
20 var subfield_code = $(ui.item[0]).attr('id').replace( /^tab_subfield_/, '');
21 var content = $('#sub' + subfield_code + 'field');
22 var panels = $("#subfieldtabs .tab-pane");
23 if ( new_index < $(panels).size() ){
24 $(content).insertBefore( panels[new_index]);
26 $(content).insertAfter( panels[new_index-1]);
31 $("input[id^='hidden_']").click(setHiddenValue);
32 $("input[id^='hidden-']").each(function() {
33 populateHiddenCheckboxes($(this).attr('id').split('-')[1]);
35 $("#table_marcsubfieldstructure").dataTable($.extend(true, {}, dataTablesDefaults, {
37 { 'sortable': false, 'targets': [ 'NoSort' ] }
43 selectBsTabByHash("subfieldtabs");
47 /* Function to enable/disable hidden values checkboxes when Flag is (de)selected */
48 function enable_cb(tab) {
49 if ($("#hidden_flagged_" + tab).is(':checked')) {
50 $('.inclusive_' + tab).prop('disabled', true).prop('checked', false);
53 $('.inclusive_' + tab).prop('disabled', false);
57 /* Function to serialize and set the 'hidden' field */
58 function setHiddenValue() {
60 var tab = $(this).attr('id').split('_')[2];
61 var flagged_checked = $("#hidden_flagged_" + tab).is(':checked');
62 var opac_checked = $("#hidden_opac_" + tab).is(':checked');
63 var intranet_checked = $("#hidden_intranet_" + tab).is(':checked');
64 var editor_checked = $("#hidden_editor_" + tab).is(':checked');
65 var collapsed_checked = $("#hidden_collapsed_" + tab).is(':checked');
66 var hidden_value = "";
68 if ( flagged_checked ) {
70 } else if ( opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked ) {
72 } else if ( opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
74 } else if ( opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
76 } else if ( opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
78 } else if ( opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
80 } else if ( opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
82 } else if ( opac_checked && intranet_checked && editor_checked && collapsed_checked) {
84 } else if ( opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
86 } else if ( ! opac_checked && intranet_checked && editor_checked && collapsed_checked) {
88 } else if ( ! opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
90 } else if ( ! opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
92 } else if ( ! opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
94 } else if ( ! opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked) {
96 } else if ( ! opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
98 } else if ( ! opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
100 } else if ( ! opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
104 var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
105 if ( hidden_protected != 1 ) {
109 $('#hidden-' + tab).val(hidden_value);
113 function populateHiddenCheckboxes(tab) {
114 // read the serialized value
115 var hidden_value = $('#hidden-' + tab).val();
116 var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
118 var opac_checked = false;
119 var intranet_checked = false;
120 var editor_checked = false;
121 var collapsed_checked = false;
122 var flagged_checked = false;
124 if ( hidden_value == '-8' ) {
125 flagged_checked = true;
126 } else if ( hidden_value == '-7') {
128 collapsed_checked = true;
129 } else if ( hidden_value == '-6' ) {
131 intranet_checked = true;
132 } else if ( hidden_value == '-5') {
134 intranet_checked = true;
135 collapsed_checked = true;
136 } else if ( hidden_value == '-4' ) {
138 } else if ( hidden_value == '-3') {
140 editor_checked = true;
141 collapsed_checked = true;
142 } else if ( hidden_value == '-2' ) {
144 editor_checked = true;
145 } else if ( hidden_value == '-1' ) {
147 intranet_checked = true;
148 editor_checked = true;
149 collapsed_checked = true;
150 } else if ( hidden_value == '0' ) {
152 intranet_checked = true;
153 editor_checked = true;
154 } else if ( hidden_value == '1' ) {
155 intranet_checked = true;
156 editor_checked = true;
157 collapsed_checked = true;
158 } else if ( hidden_value == '2' ) {
159 editor_checked = true;
160 } else if ( hidden_value == '3' ) {
161 editor_checked = true;
162 collapsed_checked = true;
163 } else if ( hidden_value == '4' ) {
164 intranet_checked = true;
165 editor_checked = true;
166 } else if ( hidden_value == '5' ) {
167 collapsed_checked = true;
168 } else if ( hidden_value == '6' ) {
169 intranet_checked = true;
170 } else if ( hidden_value == '7' ) {
171 intranet_checked = true;
172 collapsed_checked = true;
173 } // else if ( hidden_value == '8') { skip }
175 $("#hidden_opac_" + tab).prop('checked',opac_checked);
176 $("#hidden_intranet_" + tab).prop('checked',intranet_checked);
177 $("#hidden_editor_" + tab).prop('checked',editor_checked);
178 $("#hidden_collapsed_" + tab).prop('checked',collapsed_checked);
179 $("#hidden_flagged_" + tab).prop('checked',flagged_checked);
181 if ( hidden_protected == 1 ) {
182 $("#hidden_opac_" + tab).prop('disabled','disabled');
183 $("#hidden_intranet_" + tab).prop('disabled','disabled');
184 $("#hidden_editor_" + tab).prop('disabled','disabled');
185 $("#hidden_collapsed_" + tab).prop('disabled','disabled');
186 $("#hidden_flagged_" + tab).prop('disabled','disabled');