Tomas Cohen Arazi
b0c47ad824
This patch tweaks the UI so it forbids changing the hidden values when they are correct (i.e. when they are not hidden in OPAC and intranet). To test: 1. Apply the first patch 2. Play with the hidden values of the subfield you have mapped to biblio.biblionumber in your picked framework. This is usually 999$c in MARC21, and 001 in UNIMARC. => SUCCESS: When you verify the about.pl, it mentions issues when you hide in some of the interfaces 3. Apply this patch and reload everything 4. Repeat 2 => SUCCESS: If your framework is 'ok', it prevents you from editing this values, otherwise you can change them. Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io> Signed-off-by: Nick Clemens <nick@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
160 lines
6.2 KiB
JavaScript
160 lines
6.2 KiB
JavaScript
/* global dataTablesDefaults */
|
|
$(document).ready(function() {
|
|
$('#subfieldtabs').tabs();
|
|
$("input[id^='hidden_']").click(setHiddenValue);
|
|
$("input[id^='hidden-']").each(function() {
|
|
populateHiddenCheckboxes($(this).attr('id').split('-')[1]);
|
|
});
|
|
$("#table_marcsubfieldstructure").dataTable($.extend(true, {}, dataTablesDefaults, {
|
|
"columnDefs": [
|
|
{ 'sortable': false, 'targets': [ 'NoSort' ] }
|
|
],
|
|
paginate: false
|
|
}));
|
|
});
|
|
|
|
/* Function to enable/disable hidden values checkboxes when Flag is (de)selected */
|
|
function enable_cb(tab) {
|
|
if ($("#hidden_flagged_" + tab).is(':checked')) {
|
|
$('.inclusive_' + tab).prop('disabled', true).prop('checked', false);
|
|
}
|
|
else {
|
|
$('.inclusive_' + tab).prop('disabled', false);
|
|
}
|
|
}
|
|
|
|
/* Function to serialize and set the 'hidden' field */
|
|
function setHiddenValue() {
|
|
|
|
var tab = $(this).attr('id').split('_')[2];
|
|
var flagged_checked = $("#hidden_flagged_" + tab).is(':checked');
|
|
var opac_checked = $("#hidden_opac_" + tab).is(':checked');
|
|
var intranet_checked = $("#hidden_intranet_" + tab).is(':checked');
|
|
var editor_checked = $("#hidden_editor_" + tab).is(':checked');
|
|
var collapsed_checked = $("#hidden_collapsed_" + tab).is(':checked');
|
|
var hidden_value = "";
|
|
|
|
if ( flagged_checked ) {
|
|
hidden_value='-8';
|
|
} else if ( opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked ) {
|
|
hidden_value='-7';
|
|
} else if ( opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
|
|
hidden_value='-6';
|
|
} else if ( opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
|
|
hidden_value='-5';
|
|
} else if ( opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
|
|
hidden_value='-4';
|
|
} else if ( opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
|
|
hidden_value='-3';
|
|
} else if ( opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
|
|
hidden_value='-2';
|
|
} else if ( opac_checked && intranet_checked && editor_checked && collapsed_checked) {
|
|
hidden_value='-1';
|
|
} else if ( opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
|
|
hidden_value='0';
|
|
} else if ( ! opac_checked && intranet_checked && editor_checked && collapsed_checked) {
|
|
hidden_value='1';
|
|
} else if ( ! opac_checked && ! intranet_checked && editor_checked && ! collapsed_checked) {
|
|
hidden_value='2';
|
|
} else if ( ! opac_checked && ! intranet_checked && editor_checked && collapsed_checked) {
|
|
hidden_value='3';
|
|
} else if ( ! opac_checked && intranet_checked && editor_checked && ! collapsed_checked) {
|
|
hidden_value='4';
|
|
} else if ( ! opac_checked && ! intranet_checked && ! editor_checked && collapsed_checked) {
|
|
hidden_value='5';
|
|
} else if ( ! opac_checked && intranet_checked && ! editor_checked && ! collapsed_checked) {
|
|
hidden_value='6';
|
|
} else if ( ! opac_checked && intranet_checked && ! editor_checked && collapsed_checked) {
|
|
hidden_value='7';
|
|
} else if ( ! opac_checked && ! intranet_checked && ! editor_checked && ! collapsed_checked) {
|
|
hidden_value='8';
|
|
}
|
|
|
|
var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
|
|
if ( hidden_protected != 1 ) {
|
|
enable_cb(tab);
|
|
}
|
|
|
|
$('#hidden-' + tab).val(hidden_value);
|
|
|
|
}
|
|
|
|
function populateHiddenCheckboxes(tab) {
|
|
// read the serialized value
|
|
var hidden_value = $('#hidden-' + tab).val();
|
|
var hidden_protected = $('#hidden-'+ tab).attr('data-koha-protected');
|
|
// deafult to false
|
|
var opac_checked = false;
|
|
var intranet_checked = false;
|
|
var editor_checked = false;
|
|
var collapsed_checked = false;
|
|
var flagged_checked = false;
|
|
|
|
if ( hidden_value == '-8' ) {
|
|
flagged_checked = true;
|
|
} else if ( hidden_value == '-7') {
|
|
opac_checked = true;
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '-6' ) {
|
|
opac_checked = true;
|
|
intranet_checked = true;
|
|
} else if ( hidden_value == '-5') {
|
|
opac_checked = true;
|
|
intranet_checked = true;
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '-4' ) {
|
|
opac_checked = true;
|
|
} else if ( hidden_value == '-3') {
|
|
opac_checked = true;
|
|
editor_checked = true;
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '-2' ) {
|
|
opac_checked = true;
|
|
editor_checked = true;
|
|
} else if ( hidden_value == '-1' ) {
|
|
opac_checked = true;
|
|
intranet_checked = true;
|
|
editor_checked = true;
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '0' ) {
|
|
opac_checked = true;
|
|
intranet_checked = true;
|
|
editor_checked = true;
|
|
} else if ( hidden_value == '1' ) {
|
|
intranet_checked = true;
|
|
editor_checked = true;
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '2' ) {
|
|
editor_checked = true;
|
|
} else if ( hidden_value == '3' ) {
|
|
editor_checked = true;
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '4' ) {
|
|
intranet_checked = true;
|
|
editor_checked = true;
|
|
} else if ( hidden_value == '5' ) {
|
|
collapsed_checked = true;
|
|
} else if ( hidden_value == '6' ) {
|
|
intranet_checked = true;
|
|
} else if ( hidden_value == '7' ) {
|
|
intranet_checked = true;
|
|
collapsed_checked = true;
|
|
} // else if ( hidden_value == '8') { skip }
|
|
|
|
$("#hidden_opac_" + tab).prop('checked',opac_checked);
|
|
$("#hidden_intranet_" + tab).prop('checked',intranet_checked);
|
|
$("#hidden_editor_" + tab).prop('checked',editor_checked);
|
|
$("#hidden_collapsed_" + tab).prop('checked',collapsed_checked);
|
|
$("#hidden_flagged_" + tab).prop('checked',flagged_checked);
|
|
|
|
if ( hidden_protected == 1 ) {
|
|
$("#hidden_opac_" + tab).prop('disabled','disabled');
|
|
$("#hidden_intranet_" + tab).prop('disabled','disabled');
|
|
$("#hidden_editor_" + tab).prop('disabled','disabled');
|
|
$("#hidden_collapsed_" + tab).prop('disabled','disabled');
|
|
$("#hidden_flagged_" + tab).prop('disabled','disabled');
|
|
}
|
|
else {
|
|
enable_cb(tab);
|
|
}
|
|
}
|