View | Details | Raw Unified | Return to bug 20157
Collapse All | Expand All

(-)a/C4/Auth.pm (-2 / +2 lines)
Lines 513-523 sub get_template_and_user { Link Here
513
            $opac_name = C4::Context->userenv->{'branch'};
513
            $opac_name = C4::Context->userenv->{'branch'};
514
        }
514
        }
515
515
516
        my $search_groups = Koha::Library::Groups->get_search_groups();
516
        my @search_groups = Koha::Library::Groups->get_search_groups();
517
        $template->param(
517
        $template->param(
518
            OpacAdditionalStylesheet                   => C4::Context->preference("OpacAdditionalStylesheet"),
518
            OpacAdditionalStylesheet                   => C4::Context->preference("OpacAdditionalStylesheet"),
519
            AnonSuggestions                       => "" . C4::Context->preference("AnonSuggestions"),
519
            AnonSuggestions                       => "" . C4::Context->preference("AnonSuggestions"),
520
            LibrarySearchGroups                   => $search_groups,
520
            LibrarySearchGroups                   => \@search_groups,
521
            opac_name                             => $opac_name,
521
            opac_name                             => $opac_name,
522
            LibraryName                           => "" . C4::Context->preference("LibraryName"),
522
            LibraryName                           => "" . C4::Context->preference("LibraryName"),
523
            LibraryNameTitle                      => "" . $LibraryNameTitle,
523
            LibraryNameTitle                      => "" . $LibraryNameTitle,
(-)a/Koha/Library/Groups.pm (-6 / +5 lines)
Lines 56-71 sub get_search_groups { Link Here
56
    my ( $self, $params ) = @_;
56
    my ( $self, $params ) = @_;
57
    my $interface = $params->{interface} || q{};
57
    my $interface = $params->{interface} || q{};
58
58
59
    my $title = $interface eq 'staff' ? '__SEARCH_GROUPS__' : '__SEARCH_GROUPS_OPAC__';
59
    my $field = $interface eq 'staff' ? 'ft_search_groups_staff' : 'ft_search_groups_opac';
60
60
61
    my ($search_groups_root) =
61
    my @search_groups = $self->search( { $field => 1 } );
62
      $self->search( { parent_id => undef, title => $title } );
63
62
64
    return unless $search_groups_root;
63
    return unless @search_groups;
65
64
66
    my $children = $search_groups_root->children();
65
    my @children = map { $_->children() } @search_groups;
67
66
68
    return wantarray ? $children->as_list : $children;
67
    return @children;
69
}
68
}
70
69
71
=head3 type
70
=head3 type
(-)a/installer/data/mysql/atomicupdate/bug_20157.perl (+13 lines)
Line 0 Link Here
1
$DBversion = 'XXX';  # will be replaced by the RM
2
if( CheckVersion( $DBversion ) ) {
3
4
    if( !column_exists( 'library_groups', 'ft_search_groups_opac' ) ) {
5
        $dbh->do( "ALTER TABLE library_groups ADD COLUMN ft_search_groups_opac tinyint(1) NOT NULL DEFAULT 0 AFTER ft_hide_patron_info" );
6
        $dbh->do( "ALTER TABLE library_groups ADD COLUMN ft_search_groups_staff tinyint(1) NOT NULL DEFAULT 0 AFTER ft_search_groups_opac" );
7
        $dbh->do( "UPDATE library_groups SET ft_search_groups_staff = 1 WHERE title = '__SEARCH_GROUPS__'" );
8
        $dbh->do( "UPDATE library_groups SET ft_search_groups_opac = 1 WHERE title = '__SEARCH_GROUPS_OPAC__'" );
9
    }
10
11
    SetVersion( $DBversion );
12
    print "Upgrade to $DBversion done (Bug 20157 - Use group 'features' to decide which groups to use for group searching functionality)\n";
13
}
(-)a/installer/data/mysql/kohastructure.sql (+2 lines)
Lines 4144-4149 CREATE TABLE library_groups ( Link Here
4144
    title VARCHAR(100) NULL DEFAULT NULL,     -- Short description of the goup
4144
    title VARCHAR(100) NULL DEFAULT NULL,     -- Short description of the goup
4145
    description TEXT NULL DEFAULT NULL,    -- Longer explanation of the group, if necessary
4145
    description TEXT NULL DEFAULT NULL,    -- Longer explanation of the group, if necessary
4146
    ft_hide_patron_info tinyint(1) NOT NULL DEFAULT 0, -- Turn on the feature "Hide patron's info" for this group
4146
    ft_hide_patron_info tinyint(1) NOT NULL DEFAULT 0, -- Turn on the feature "Hide patron's info" for this group
4147
    ft_search_groups_opac tinyint(1) NOT NULL DEFAULT 0, -- Use this group for staff side search groups
4148
    ft_search_groups_staff tinyint(1) NOT NULL DEFAULT 0, -- Use this group for opac side search groups
4147
    created_on TIMESTAMP NULL,             -- Date and time of creation
4149
    created_on TIMESTAMP NULL,             -- Date and time of creation
4148
    updated_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- Date and time of last
4150
    updated_on TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, -- Date and time of last
4149
    PRIMARY KEY id ( id ),
4151
    PRIMARY KEY id ( id ),
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/library_groups.tt (-26 / +61 lines)
Lines 26-32 Link Here
26
            var title = $(this).data('groupTitle');
26
            var title = $(this).data('groupTitle');
27
            var description = $(this).data('groupDescription');
27
            var description = $(this).data('groupDescription');
28
            var ft_hide_patron_info = $(this).data('groupFt_hide_patron_info');
28
            var ft_hide_patron_info = $(this).data('groupFt_hide_patron_info');
29
            edit_group( id, parent_id, title, description, ft_hide_patron_info );
29
            var ft_search_groups_opac = $(this).data('groupFt_search_groups_opac');
30
            var ft_search_groups_staff = $(this).data('groupFt_search_groups_staff');
31
            edit_group( id, parent_id, title, description, ft_hide_patron_info, ft_search_groups_opac, ft_search_groups_staff );
30
        });
32
        });
31
33
32
        $('.delete-group').on('click', function() {
34
        $('.delete-group').on('click', function() {
Lines 54-83 Link Here
54
        });
56
        });
55
57
56
        $('#add-group-modal-ft_hide_patron_info').prop('checked', false);
58
        $('#add-group-modal-ft_hide_patron_info').prop('checked', false);
59
        $('#add-group-modal-ft_search_groups_opac').prop('checked', false);
60
        $('#add-group-modal-ft_search_groups_staff').prop('checked', false);
57
        if ( parent_id ) {
61
        if ( parent_id ) {
58
            $('#add-group-modal-ft_hide_patron_info').parent().hide();
62
            $('#root-group-features-edit').hide();
59
        } else {
63
        } else {
60
            $('#add-group-modal-ft_hide_patron_info').parent().show();
64
            $('#root-group-features-edit').show();
61
        }
65
        }
62
        $('#add-group-modal').modal('show');
66
        $('#add-group-modal').modal('show');
63
    }
67
    }
64
68
65
    function edit_group( id, parent_id, title, description, ft_hide_patron_info ) {
69
    function edit_group( id, parent_id, title, description, ft_hide_patron_info, ft_search_groups_opac, ft_search_groups_staff ) {
66
        $('#edit-group-modal-id').val( id );
70
        $('#edit-group-modal-id').val( id );
67
        $('#edit-group-modal-title').val( title );
71
        $('#edit-group-modal-title').val( title );
68
        $('#edit-group-modal-description').val( description );
72
        $('#edit-group-modal-description').val( description );
69
73
70
        if ( parent_id ) {
74
        if ( parent_id ) {
71
            $('#edit-group-modal-ft_hide_patron_info').prop('checked', false);
75
            $('#edit-group-modal-ft_hide_patron_info').prop('checked', false);
72
            $('#edit-group-modal-ft_hide_patron_info').parent().hide();
76
            $('#edit-group-modal-ft_search_groups_opac').prop('checked', false);
77
            $('#edit-group-modal-ft_search_groups_staff').prop('checked', false);
78
            $('#root-group-features-edit').hide();
73
        } else {
79
        } else {
74
            if ( ft_hide_patron_info ) {
80
            $('#edit-group-modal-ft_hide_patron_info').prop('checked', ft_hide_patron_info ? true : false );
75
                $('#edit-group-modal-ft_hide_patron_info').prop('checked', true);
81
            $('#edit-group-modal-ft_search_groups_opac').prop('checked', ft_search_groups_opac ? true : false );
76
            } else {
82
            $('#edit-group-modal-ft_search_groups_staff').prop('checked', ft_search_groups_staff ? true : false );
77
                $('#edit-group-modal-ft_hide_patron_info').prop('checked', false);
83
            $('#root-group-features-edit').show();
78
            }
79
80
            $('#edit-group-modal-ft_hide_patron_info').parent().show();
81
        }
84
        }
82
85
83
        $('#edit-group-modal').on('shown', function() {
86
        $('#edit-group-modal').on('shown', function() {
Lines 188-199 Link Here
188
                            <label for="add-group-modal-description">Description: </label>
191
                            <label for="add-group-modal-description">Description: </label>
189
                            <input type="text" name="description" id="add-group-modal-description" />
192
                            <input type="text" name="description" id="add-group-modal-description" />
190
                        </p>
193
                        </p>
191
                        <h3>Features</h3>
194
                        <div id="root-group-features-add">
192
                        <div class="checkbox">
195
                            <h3>Features</h3>
193
                            <label>
196
                            <div class="checkbox">
194
                                <input type="checkbox" name="ft_hide_patron_info" id="add-group-modal-ft_hide_patron_info" value="1" />
197
                                <label>
195
                                Limit patron data access by group
198
                                    <input type="checkbox" name="ft_hide_patron_info" id="add-group-modal-ft_hide_patron_info" value="1" />
196
                            </label>
199
                                    Limit patron data access by group
200
                                </label>
201
                                <p>
202
                                <label>
203
                                    <input type="checkbox" name="ft_search_groups_opac" id="add-group-modal-ft_search_groups_opac" value="1" />
204
                                    Use for OPAC search groups
205
                                </label>
206
                                <p>
207
                                <label>
208
                                    <input type="checkbox" name="ft_search_groups_staff" id="add-group-modal-ft_search_groups_staff" value="1" />
209
                                    Use for staff search groups
210
                                </label>
211
                            </div>
197
                        </div>
212
                        </div>
198
                    </div>
213
                    </div>
199
                    <div class="modal-footer">
214
                    <div class="modal-footer">
Lines 226-237 Link Here
226
                            <label for="edit-group-modal-description">Description: </label>
241
                            <label for="edit-group-modal-description">Description: </label>
227
                            <input type="text" id="edit-group-modal-description" name="description" value="" />
242
                            <input type="text" id="edit-group-modal-description" name="description" value="" />
228
                        </p>
243
                        </p>
229
                        <h3>Features</h3>
244
                        <div id="root-group-features-edit">
230
                        <div class="checkbox">
245
                            <h3>Features</h3>
231
                            <label>
246
                            <div class="checkbox">
232
                                <input type="checkbox" id="edit-group-modal-ft_hide_patron_info" name="ft_hide_patron_info" value="1" />
247
                                <label>
233
                                Limit patron data access by group
248
                                    <input type="checkbox" id="edit-group-modal-ft_hide_patron_info" name="ft_hide_patron_info" value="1" />
234
                            </label>
249
                                    Limit patron data access by group
250
                                </label>
251
                                <p>
252
                                <label>
253
                                    <input type="checkbox" id="edit-group-modal-ft_search_groups_opac" name="ft_search_groups_opac" value="1" />
254
                                    Use for OPAC search groups
255
                                </label>
256
                                <p>
257
                                <label>
258
                                    <input type="checkbox" id="edit-group-modal-ft_search_groups_staff" name="ft_search_groups_staff" value="1" />
259
                                    Use for staff search groups
260
                                </label>
261
                            </div>
235
                        </div>
262
                        </div>
236
                    </div>
263
                    </div>
237
                    <div class="modal-footer">
264
                    <div class="modal-footer">
Lines 306-314 Link Here
306
        </td>
333
        </td>
307
        <td>
334
        <td>
308
            [% UNLESS group.branchcode %]
335
            [% UNLESS group.branchcode %]
336
              <ul>
309
                [% IF group.ft_hide_patron_info %]
337
                [% IF group.ft_hide_patron_info %]
310
                    <span> * Hide patron's info for librarians outside of this group.</span>
338
                    <li>Hide patron's info for librarians outside of this group.</li>
339
                [% END %]
340
                [% IF group.ft_search_groups_opac %]
341
                    <li>Use for OPAC search groups</li>
342
                [% END %]
343
                [% IF group.ft_search_groups_staff %]
344
                    <li>Use for staff search groups</li>
311
                [% END %]
345
                [% END %]
346
              </ul>
312
            [% END %]
347
            [% END %]
313
        </td>
348
        </td>
314
        <td>
349
        <td>
Lines 325-331 Link Here
325
                       </li>
360
                       </li>
326
361
327
                        <li>
362
                        <li>
328
                            <a class="edit-group" id="edit-group-[% group.id %]" href="#" class="edit-group" data-group-id="[% group.id %]" data-group-parent-id="[% group.parent_id %]" data-group-title="[% group.title | html %]" data-group-description="[% group.description | html %]" data-group-ft_hide_patron_info="[% group.ft_hide_patron_info | html %]">
363
                            <a class="edit-group" id="edit-group-[% group.id %]" href="#" class="edit-group" data-group-id="[% group.id %]" data-group-parent-id="[% group.parent_id %]" data-group-title="[% group.title | html %]" data-group-description="[% group.description | html %]" data-group-ft_hide_patron_info="[% group.ft_hide_patron_info | html %]" data-group-ft_search_groups_opac="[% group.ft_search_groups_opac | html %]" data-group-ft_search_groups_staff="[% group.ft_search_groups_staff | html %]" >
329
                                <i class="fa fa-pencil"></i> Edit
364
                                <i class="fa fa-pencil"></i> Edit
330
                            </a>
365
                            </a>
331
                       </li>
366
                       </li>
(-)a/opac/opac-search.pl (-3 / +2 lines)
Lines 214-221 if ($cgi->cookie("search_path_code")) { Link Here
214
    }
214
    }
215
}
215
}
216
216
217
my $search_groups = Koha::Library::Groups->get_search_groups();
217
my @search_groups = Koha::Library::Groups->get_search_groups();
218
$template->param( search_groups => $search_groups );
218
$template->param( search_groups => \@search_groups );
219
219
220
# load the language limits (for search)
220
# load the language limits (for search)
221
my $languages_limit_loop = getLanguages($lang, 1);
221
my $languages_limit_loop = getLanguages($lang, 1);
222
- 

Return to bug 20157