diff --git a/cataloguing/value_builder/validate_issn.pl b/cataloguing/value_builder/validate_issn.pl new file mode 100755 index 0000000000..7bda38082b --- /dev/null +++ b/cataloguing/value_builder/validate_issn.pl @@ -0,0 +1,68 @@ +#!/usr/bin/perl + +# Copyright 2025 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 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. +# +# You should have received a copy of the GNU General Public License +# along with Koha; if not, see . + +use Modern::Perl; +use CGI qw ( -utf8 ); + +use C4::Auth qw( get_template_and_user ); +use C4::Output qw( output_html_with_http_headers ); +use Business::ISSN qw( is_valid_checksum ); + +my $builder = sub { + my $params = shift; + my $id = $params->{id}; + + return qq| +|; +}; + +my $launcher = sub { + my $params = shift; + my $cgi = $params->{cgi}; + my $issn = $cgi->param('issn'); + + my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "cataloguing/value_builder/ajax.tt", + query => $cgi, + type => "intranet", + flagsrequired => { editcatalogue => '*' }, + } + ); + my $is_valid = is_valid_checksum($issn); + $template->param( return => $is_valid ); + output_html_with_http_headers $cgi, $cookie, $template->output; +}; + +return { builder => $builder, launcher => $launcher }; diff --git a/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml b/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml index eaa9e4c9fb..8dd4f60d41 100644 --- a/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml +++ b/installer/data/mysql/en/marcflavour/marc21/mandatory/marc21_framework_DEFAULT.yml @@ -4790,7 +4790,7 @@ tables: tab: 0 authorised_value: "" authtypecode: "" - value_builder: "" + value_builder: validate_issn.pl isurl: 0 hidden: 0 frameworkcode: "" diff --git a/installer/data/mysql/en/marcflavour/unimarc/mandatory/unimarc_framework_DEFAULT.yml b/installer/data/mysql/en/marcflavour/unimarc/mandatory/unimarc_framework_DEFAULT.yml index fa35a8285e..9dd2750468 100644 --- a/installer/data/mysql/en/marcflavour/unimarc/mandatory/unimarc_framework_DEFAULT.yml +++ b/installer/data/mysql/en/marcflavour/unimarc/mandatory/unimarc_framework_DEFAULT.yml @@ -3230,7 +3230,7 @@ tables: tab: 0 authorised_value: authtypecode: "" - value_builder: "" + value_builder: validate_issn.pl isurl: 0 hidden: 0 frameworkcode: ""