From 53d1457b394862f0d7b186ec03fc967f54ae1428 Mon Sep 17 00:00:00 2001 From: George Veranis Date: Fri, 12 Mar 2021 12:51:57 +0100 Subject: [PATCH] Bug 24698: Add plugin and template files for unimarc authority leader MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Unimarc installations when adding/editing an authority record there is no Tag Editor for the leader field ( 000 ). This patch fixes that. Test plan: 1) Try to catalogue a new authoritry and check if on field 000 you can find the Tag Editor. 2) Apply the patch. 3) In the authorities framework view the subfields of field 000 and select for plugin option the value unimarc_leader_authorities.pl. 4) Restart memcached / plack if needed. 5) Repeat step 1 and notice if the Tag Editor is visible and click it to open new window in order to manage the field contents and press OK. 6) Check the value of the generated leader. Signed-off-by: Esther Signed-off-by: Joonas Kylmälä --- .../unimarc_leader_authorities.pl | 86 ++++++++ .../unimarc_leader_authorities.tt | 201 ++++++++++++++++++ 2 files changed, 287 insertions(+) create mode 100644 cataloguing/value_builder/unimarc_leader_authorities.pl create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_leader_authorities.tt diff --git a/cataloguing/value_builder/unimarc_leader_authorities.pl b/cataloguing/value_builder/unimarc_leader_authorities.pl new file mode 100644 index 0000000000..becdc574af --- /dev/null +++ b/cataloguing/value_builder/unimarc_leader_authorities.pl @@ -0,0 +1,86 @@ +#!/usr/bin/perl + +# This file is part of Koha. +# +# Copyright (C) 2013 Vitor Fernandes , adapted for UNIMARC by George Veranis +# +# 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 Koha::Util::FrameworkPlugin qw(wrapper); +use C4::Auth; +use CGI qw ( -utf8 ); +use C4::Context; +use C4::Output; + + +sub plugin_javascript { + my ( $dbh, $record, $tagslib, $field_number, $tabloop ) = @_; + my $res = " + +"; + + return ( $field_number, $res ); +} + + +sub plugin { + my ($input) = @_; + my $index = $input->param('index'); + my $result = $input->param('result'); + + my $dbh = C4::Context->dbh; + + #my $defaultlanguage = C4::Context->preference("UNIMARCField100Language"); + # $defaultlanguage = "fre" if (!$defaultlanguage || length($defaultlanguage) != 3); + + my ( $template, $loggedinuser, $cookie ) = get_template_and_user( + { + template_name => "cataloguing/value_builder/unimarc_leader_authorities.tt", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => { editcatalogue => '*' }, + debug => 1, + } + ); + $result = " nz a22 3 4500" unless $result; + + + my $f5 = substr( $result, 5, 1 ); $f5 = wrapper( $f5 ) if $f5; + my $f6 = substr( $result, 6, 1 ); $f6 = wrapper( $f6 ) if $f6; + my $f9 = substr( $result, 9, 1 ); $f9 = wrapper( $f9 ) if $f9; + my $f17 = substr( $result, 17, 1 ); $f17 = wrapper( $f17 ) if $f17; + + $template->param( + index => $index, + "f5$f5" => 1, + "f6$f6" => 1, + "f9$f9" => 1, + "f17$f17" => 1, +); + output_html_with_http_headers $input, $cookie, $template->output; +} diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_leader_authorities.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_leader_authorities.tt new file mode 100644 index 0000000000..6a9ce16861 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/value_builder/unimarc_leader_authorities.tt @@ -0,0 +1,201 @@ +[% INCLUDE 'doc-head-open.inc' %] +UNIMARC leader builder +[% INCLUDE 'doc-head-close.inc' %] + + +

000 - Leader

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
1-4 Record length(auto-calculated)
+ +
+ +
+ +
(auto-calculated)
+ +
18-19 Undefined
20-24 Entry map & lengths(auto-filled)
+
Cancel
+
+ + +[% INCLUDE 'popup-bottom.inc' %] -- 2.20.1