@@ -, +, @@ use for group searching functionality --- C4/Auth.pm | 4 +- Koha/Library/Groups.pm | 11 ++- installer/data/mysql/atomicupdate/bug_20157.perl | 13 ++++ installer/data/mysql/kohastructure.sql | 2 + .../prog/en/modules/admin/library_groups.tt | 87 +++++++++++++++------- opac/opac-search.pl | 4 +- 6 files changed, 85 insertions(+), 36 deletions(-) create mode 100644 installer/data/mysql/atomicupdate/bug_20157.perl --- a/C4/Auth.pm +++ a/C4/Auth.pm @@ -513,11 +513,11 @@ sub get_template_and_user { $opac_name = C4::Context->userenv->{'branch'}; } - my $search_groups = Koha::Library::Groups->get_search_groups(); + my @search_groups = Koha::Library::Groups->get_search_groups(); $template->param( OpacAdditionalStylesheet => C4::Context->preference("OpacAdditionalStylesheet"), AnonSuggestions => "" . C4::Context->preference("AnonSuggestions"), - LibrarySearchGroups => $search_groups, + LibrarySearchGroups => \@search_groups, opac_name => $opac_name, LibraryName => "" . C4::Context->preference("LibraryName"), LibraryNameTitle => "" . $LibraryNameTitle, --- a/Koha/Library/Groups.pm +++ a/Koha/Library/Groups.pm @@ -56,16 +56,15 @@ sub get_search_groups { my ( $self, $params ) = @_; my $interface = $params->{interface} || q{}; - my $title = $interface eq 'staff' ? '__SEARCH_GROUPS__' : '__SEARCH_GROUPS_OPAC__'; + my $field = $interface eq 'staff' ? 'ft_search_groups_staff' : 'ft_search_groups_opac'; - my ($search_groups_root) = - $self->search( { parent_id => undef, title => $title } ); + my @search_groups = $self->search( { $field => 1 } ); - return unless $search_groups_root; + return unless @search_groups; - my $children = $search_groups_root->children(); + my @children = map { $_->children() } @search_groups; - return wantarray ? $children->as_list : $children; + return @children; } =head3 type --- a/installer/data/mysql/atomicupdate/bug_20157.perl +++ a/installer/data/mysql/atomicupdate/bug_20157.perl @@ -0,0 +1,13 @@ +$DBversion = 'XXX'; # will be replaced by the RM +if( CheckVersion( $DBversion ) ) { + + if( !column_exists( 'library_groups', 'ft_search_groups_opac' ) ) { + $dbh->do( "ALTER TABLE library_groups ADD COLUMN ft_search_groups_opac tinyint(1) NOT NULL DEFAULT 0 AFTER ft_hide_patron_info" ); + $dbh->do( "ALTER TABLE library_groups ADD COLUMN ft_search_groups_staff tinyint(1) NOT NULL DEFAULT 0 AFTER ft_search_groups_opac" ); + $dbh->do( "UPDATE library_groups SET ft_search_groups_staff = 1 WHERE title = '__SEARCH_GROUPS__'" ); + $dbh->do( "UPDATE library_groups SET ft_search_groups_opac = 1 WHERE title = '__SEARCH_GROUPS_OPAC__'" ); + } + + SetVersion( $DBversion ); + print "Upgrade to $DBversion done (Bug 20157 - Use group 'features' to decide which groups to use for group searching functionality)\n"; +} --- a/installer/data/mysql/kohastructure.sql +++ a/installer/data/mysql/kohastructure.sql @@ -4144,6 +4144,8 @@ CREATE TABLE library_groups ( title VARCHAR(100) NULL DEFAULT NULL, -- Short description of the goup description TEXT NULL DEFAULT NULL, -- Longer explanation of the group, if necessary ft_hide_patron_info tinyint(1) NOT NULL DEFAULT 0, -- Turn on the feature "Hide patron's info" for this group + ft_search_groups_opac tinyint(1) NOT NULL DEFAULT 0, -- Use this group for staff side search groups + ft_search_groups_staff tinyint(1) NOT NULL DEFAULT 0, -- Use this group for opac side search groups created_on TIMESTAMP NULL, -- Date and time of creation updated_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- Date and time of last PRIMARY KEY id ( id ), --- a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt +++ a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt @@ -26,7 +26,9 @@ var title = $(this).data('groupTitle'); var description = $(this).data('groupDescription'); var ft_hide_patron_info = $(this).data('groupFt_hide_patron_info'); - edit_group( id, parent_id, title, description, ft_hide_patron_info ); + var ft_search_groups_opac = $(this).data('groupFt_search_groups_opac'); + var ft_search_groups_staff = $(this).data('groupFt_search_groups_staff'); + edit_group( id, parent_id, title, description, ft_hide_patron_info, ft_search_groups_opac, ft_search_groups_staff ); }); $('.delete-group').on('click', function() { @@ -54,30 +56,31 @@ }); $('#add-group-modal-ft_hide_patron_info').prop('checked', false); + $('#add-group-modal-ft_search_groups_opac').prop('checked', false); + $('#add-group-modal-ft_search_groups_staff').prop('checked', false); if ( parent_id ) { - $('#add-group-modal-ft_hide_patron_info').parent().hide(); + $('#root-group-features-edit').hide(); } else { - $('#add-group-modal-ft_hide_patron_info').parent().show(); + $('#root-group-features-edit').show(); } $('#add-group-modal').modal('show'); } - function edit_group( id, parent_id, title, description, ft_hide_patron_info ) { + function edit_group( id, parent_id, title, description, ft_hide_patron_info, ft_search_groups_opac, ft_search_groups_staff ) { $('#edit-group-modal-id').val( id ); $('#edit-group-modal-title').val( title ); $('#edit-group-modal-description').val( description ); if ( parent_id ) { $('#edit-group-modal-ft_hide_patron_info').prop('checked', false); - $('#edit-group-modal-ft_hide_patron_info').parent().hide(); + $('#edit-group-modal-ft_search_groups_opac').prop('checked', false); + $('#edit-group-modal-ft_search_groups_staff').prop('checked', false); + $('#root-group-features-edit').hide(); } else { - if ( ft_hide_patron_info ) { - $('#edit-group-modal-ft_hide_patron_info').prop('checked', true); - } else { - $('#edit-group-modal-ft_hide_patron_info').prop('checked', false); - } - - $('#edit-group-modal-ft_hide_patron_info').parent().show(); + $('#edit-group-modal-ft_hide_patron_info').prop('checked', ft_hide_patron_info ? true : false ); + $('#edit-group-modal-ft_search_groups_opac').prop('checked', ft_search_groups_opac ? true : false ); + $('#edit-group-modal-ft_search_groups_staff').prop('checked', ft_search_groups_staff ? true : false ); + $('#root-group-features-edit').show(); } $('#edit-group-modal').on('shown', function() { @@ -188,12 +191,24 @@

-

Features

-
- +
+

Features

+
+ +

+ +

+ +