Bug 17600: Standardize our EXPORT_OK
[srvgit] / cataloguing / value_builder / callnumber.pl
index ad2a82b..629f1c4 100755 (executable)
@@ -1,27 +1,30 @@
 #!/usr/bin/perl
 
+# Converted to new plugin style (Bug 13437)
+
 # Copyright 2010 BibLibre SARL
 #
 # This file is part of Koha.
 #
-# Koha is free software; you can redistribute it and/or modify it under the
-# terms of the GNU General Public License as published by the Free Software
-# Foundation; either version 2 of the License, or (at your option) any later
-# version.
+# Koha is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
 #
-# Koha is distributed in the hope that it will be useful, but WITHOUT ANY
-# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
-# A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+# Koha is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
 #
-# You should have received a copy of the GNU General Public License along
-# with Koha; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+# You should have received a copy of the GNU General Public License
+# along with Koha; if not, see <http://www.gnu.org/licenses>.
 
-use strict;
-use warnings;
-use C4::Auth;
+use Modern::Perl;
 use CGI qw ( -utf8 );
+
+use C4::Auth qw( get_template_and_user );
 use C4::Context;
+use C4::Output qw( output_html_with_http_headers );
 
 =head1 DESCRIPTION
 
@@ -36,12 +39,12 @@ In this case, a callnumber has this form : "PREFIX 0009678570".
 
 =cut
 
-sub plugin_javascript {
-    my ($dbh,$record,$tagslib,$field_number,$tabloop) = @_;
+my $builder = sub {
+    my ( $params ) = @_;
     my $res="
-    <script type='text/javascript'>
-        function Blur$field_number() {
-                var code = document.getElementById('$field_number');
+    <script>
+        function Blur$params->{id}() {
+                var code = document.getElementById('$params->{id}');
                 var url = '../cataloguing/plugin_launcher.pl?plugin_name=callnumber.pl&code=' + code.value;
                 var req = \$.get(url);
                 req.done(function(resp){
@@ -53,21 +56,19 @@ sub plugin_javascript {
 
     </script>
     ";
+    return $res;
+};
 
-    return ($field_number,$res);
-}
-
-sub plugin {
-    my ($input) = @_;
+my $launcher = sub {
+    my ( $params ) = @_;
+    my $input = $params->{cgi};
     my $code = $input->param('code');
 
     my ($template, $loggedinuser, $cookie) = get_template_and_user({
         template_name   => "cataloguing/value_builder/ajax.tt",
         query           => $input,
         type            => "intranet",
-        authnotrequired => 0,
         flagsrequired   => {editcatalogue => '*'},
-        debug           => 1,
     });
 
     my $dbh = C4::Context->dbh;
@@ -81,7 +82,7 @@ sub plugin {
                 return => $max+1,
             );
         }
-    # If a prefix is submited, we look for the highest itemcallnumber with this prefix, and return it incremented
+    # If a prefix is submitted, we look for the highest itemcallnumber with this prefix, and return it incremented
     } elsif ( $code =~ m/^[A-Z.\-']+$/ ) {
         my $sth = $dbh->prepare("SELECT MAX(CAST(SUBSTRING_INDEX(itemcallnumber,' ',-1) AS SIGNED)) FROM items WHERE itemcallnumber LIKE ?");
         $sth->execute($code.' %');
@@ -103,4 +104,6 @@ sub plugin {
         );
     }
     output_html_with_http_headers $input, $cookie, $template->output;
-}
+};
+
+return { builder => $builder, launcher => $launcher };