Bug 24879: Add check_cookie_auth when missing
[koha.git] / cataloguing / value_builder / marc21_field_260b.pl
1 #!/usr/bin/perl
2
3 # Copyright 2020 Athens County Public Libraries
4 #
5 # This file is part of Koha.
6 #
7 # Koha is free software; you can redistribute it and/or modify it
8 # under the terms of the GNU General Public License as published by
9 # the Free Software Foundation; either version 3 of the License, or
10 # (at your option) any later version.
11 #
12 # Koha is distributed in the hope that it will be useful, but
13 # WITHOUT ANY WARRANTY; without even the implied warranty of
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 # GNU General Public License for more details.
16 #
17 # You should have received a copy of the GNU General Public License
18 # along with Koha; if not, see <http://www.gnu.org/licenses>.
19
20 =head1 SYNOPSIS
21
22 This plugin is used to fill 260$a with a value already existing in
23 biblioitems.publishercode
24
25 =cut
26
27 use Modern::Perl;
28 use C4::Context;
29
30 use CGI qw ( -utf8 );
31 use C4::Auth qw( check_cookie_auth );
32 my $input = CGI->new;
33 my ($auth_status) =
34     check_cookie_auth( $input->cookie('CGISESSID'), { catalogue => 1 } );
35 if ( $auth_status ne "ok" ) {
36     print $input->header( -type => 'text/plain', -status => '403 Forbidden' );
37     exit 0;
38 }
39
40 my $builder = sub {
41     my ( $params ) = @_;
42     my $function_name = $params->{id};
43
44     my $res  = "
45 <script>
46     function Focus$function_name(event) {
47         var tagfield = jQuery( this );
48         tagfield.autocomplete({
49             source: '/cgi-bin/koha/cataloguing/ysearch.pl?table=biblioitems&field=publishercode',
50             minLength: 3,
51             select: function( event, ui ) {
52                 tagfield.val( ui.item.fieldvalue );
53                 return false;
54             }
55         })
56         .data( 'ui-autocomplete' )._renderItem = function( ul, item ) {
57             return jQuery( '<li></li>' )
58             .data( 'ui-autocomplete-item', item )
59             .append( '<a>' + item.fieldvalue + '</a>' )
60             .appendTo( ul );
61         };
62         return 1;
63     }
64 </script>
65 ";
66     return $res;
67 };
68
69 return { builder => $builder };