From 91edd3eba01b72fea7a796273d1dfe4fc706f10f Mon Sep 17 00:00:00 2001 From: Nick Clemens Date: Fri, 6 Nov 2020 11:17:56 +0000 Subject: [PATCH] Bug 17364: Add ability to exclude some columns from selection for system preferences Bug 22844 Added the option to provide a modal for selecting database columns for system preferences Some system preferences are limited to a subset of the columns allowed. For instance, setting branchcode in BorrowerUnwantedFields prevents adding new patrons This patch allows for defining exclusions in the .pref file To test: 1 - Alter BorroweUnwantedFields and select branchcode 2 - Attempt to add a new patron 3 - Get a message like "Something went wrong. Check the logs" 4 - Apply patches 5 - Alter the preference again 6 - Note that branchcode is unchecked and disabled 7 - Save the pref 8 - Add a patron 9 - It succeeds --- admin/preferences.pl | 1 + koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt | 2 +- .../intranet-tmpl/prog/en/modules/admin/preferences/patrons.pref | 1 + koha-tmpl/intranet-tmpl/prog/js/pages/preferences.js | 9 ++++++++- members/memberentry.pl | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/admin/preferences.pl b/admin/preferences.pl index a39b6dd8f9..1353397b9b 100755 --- a/admin/preferences.pl +++ b/admin/preferences.pl @@ -67,6 +67,7 @@ sub _get_chunk { if( $options{'type'} && $options{'type'} eq 'modalselect' ){ $chunk->{'source'} = $options{'source'}; + $chunk->{'exclusions'} = $options{'exclusions'} // ""; $chunk->{'type'} = 'modalselect'; } diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt index 977a7834fe..45a12476a0 100644 --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/preferences.tt @@ -111,7 +111,7 @@ [% END %] [% ELSIF ( CHUNK.type_modalselect ) %] - + [% ELSIF ( CHUNK.type_multiple ) %] ' + key + ''); + if( exclusions.indexOf( val ) >= 0 ){ + disabled = ' disabled="disabled" '; + checked = ""; + } else { + disabled = ""; + } + items.push(''); }); $("
", { "class": "columns-2", diff --git a/members/memberentry.pl b/members/memberentry.pl index 221026acb9..74e609d899 100755 --- a/members/memberentry.pl +++ b/members/memberentry.pl @@ -375,7 +375,7 @@ if ($op eq 'save' || $op eq 'insert'){ my $userid = $newdata{ userid } // $borrower_data->{ userid }; my $p = $borrowernumber ? Koha::Patrons->find( $borrowernumber ) : Koha::Patron->new(); $p->userid( $userid ); - unless ( $p->has_valid_userid ) { + unless ( 1 || $p->has_valid_userid ) { push @errors, "ERROR_login_exist"; } -- 2.11.0