From 9705dbdc284890f6218e5bcef404ff7651e64393 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy <m.de.rooy@rijksmuseum.nl> Date: Thu, 22 May 2014 15:37:29 +0200 Subject: [PATCH] Bug 6536: Add a form for SRU Field mapping This form allows you to enter the match between the standard names of the Z3950 search fields and the field names for a specific SRU server. This patch only adds the form; it will be used in a subsequent patch. Test plan: Not needed, but you can call the form by constructing a URL like: cgi-bin/koha/admin/sru_modmapping.pl?mapping=title=1,author=2 You should see the form with title and author filled. Note that you cannot save the information yet. Signed-off-by: Giuseppe Angilella <giuseppe.angilella@ct.infn.it> --- admin/sru_modmapping.pl | 46 ++++++++++ .../prog/en/modules/admin/sru_modmapping.tt | 91 ++++++++++++++++++++ 2 files changed, 137 insertions(+), 0 deletions(-) create mode 100755 admin/sru_modmapping.pl create mode 100644 koha-tmpl/intranet-tmpl/prog/en/modules/admin/sru_modmapping.tt diff --git a/admin/sru_modmapping.pl b/admin/sru_modmapping.pl new file mode 100755 index 0000000..d5ef116 --- /dev/null +++ b/admin/sru_modmapping.pl @@ -0,0 +1,46 @@ +#!/usr/bin/perl + +# Copyright 2014 Rijksmuseum +# +# 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 <http://www.gnu.org/licenses>. + +use Modern::Perl; +use CGI; +use C4::Auth; +use C4::Output; + +# Initialize CGI, template + +my $input = new CGI; +my $mapstr = $input->param('mapping')//''; +my ( $template, $loggedinuser, $cookie ) = get_template_and_user( { + template_name => "admin/sru_modmapping.tt", + query => $input, + type => "intranet", + authnotrequired => 0, +}); + +# Main code: convert mapping string to hash structure and show template + +my %map; +foreach my $singlemap ( split ',', $mapstr ) { + my @temp = split '=', $singlemap; + $map{ $temp[0] } = $temp[1] if @temp>1; +} +$template->param( mapping => \%map ); +output_html_with_http_headers $input, $cookie, $template->output; + +# End of main code diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/admin/sru_modmapping.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/sru_modmapping.tt new file mode 100644 index 0000000..6ededf6 --- /dev/null +++ b/koha-tmpl/intranet-tmpl/prog/en/modules/admin/sru_modmapping.tt @@ -0,0 +1,91 @@ +[% INCLUDE 'doc-head-open.inc' %] +<title>Koha › SRU Search fields mapping</title> +[% INCLUDE 'doc-head-close.inc' %] + +<script type="text/javascript"> +//<![CDATA[ + $(document).ready(function() { + $("#form01").submit(function(event) { + if(window.opener) { + var newmap=allInputs(); + window.opener.$('#show_sru_fields').val(newmap); + window.close(); + } else { + // In this case not called as a popup. Just do nothing. + event.preventDefault(); + } + }); + }); + function allInputs () { + var aInput= new Array(); + $("form :input").each(function() { + if( this.id && $(this).val() ) { + aInput.push(this.id+'='+$(this).val()); + } + }); + return aInput.join(','); + } +//]]> +</script> +</head> + +<body id="sru_modmapping"> +<div id="custom-doc" class="yui-t7"> + + <div id="bd"> + <h1>Modify SRU Search fields mapping</h1> + <form id="form01" method="post"> + <fieldset class="rows"> + <legend>Legend </legend> + <ul> + <li> + <label for="Title">Title: </label> + <input id="title" type="text" value="[% mapping.title %]" /> + </li> + <li> + <label for="ISBN">ISBN: </label> + <input id="isbn" type="text" value="[% mapping.isbn %]" /> + </li> + <li> + <label for="LCCall">LC Call No: </label> + <input id="lccall" type="text" value="[% mapping.lccall %]" /> + </li> + <li> + <label for="Control number">Control no: </label> + <input id="controlnumber" type="text" value="[% mapping.controlnumber %]" /> + </li> + <li> + <label for="Any">Any: </label> + <input id="srchany" type="text" value="[% mapping.srchany %]" /> + </li> + <li> + <label for="Author">Author: </label> + <input id="author" type="text" value="[% mapping.author %]" /> + </li> + <li> + <label for="ISSN">ISSN: </label> + <input id="issn" type="text" value="[% mapping.issn %]" /> + </li> + <li> + <label for="Subject">Subject: </label> + <input id="subject" type="text" value="[% mapping.subject %]" /> + </li> + <li> + <label for="Dewey">Dewey: </label> + <input id="dewey" type="text" value="[% mapping.dewey %]" /> + </li> + <li> + <label for="Standard ID">Standard ID: </label> + <input id="stdid" type="text" value="[% mapping.stdid %]" /> + </li> + + </ul> + </fieldset> + <fieldset class="action"> + <input type="submit" value="Save" class="submit" /> + <a class="close cancel" href="#">Cancel</a> + </fieldset> + </form> + </div> + +[% INCLUDE 'intranet-bottom.inc' %] -- 1.7.2.5