Marcel de Rooy
9dfff3ab19
This actually refactors koha2marclinks.pl in order to support multiple mappings per kohafield. Instead of three separate mapping pages for biblio, biblioitems and items, the script now lists them together. This gives a complete overview of all mappings rightaway. Changes are applied immediately across all frameworks. Note: This report handles the Default mappings just like it did before. In this script Koha already considered them as authoritative, although other parts of Koha did not. Follow-up report 19096 makes Default mappings authoritative throughout all Koha. On each line two buttons are provided, Add and Remove, in order to add or remove an individual mapping. We do no longer provide a separate form with the names of MARC tags. Since this form is targeted for administrators, it should be enough to ask for a field tag and subfield code. Note: The mappings for biblionumber, biblioitemnumber and itemnumber are so vital that this form marks them as readonly. It is not recommended to change them. Test plan: [1] Add a mapping. Verify via Frameworks or mysql command line that the kohafield is saved to the other frameworks too. [2] Remove the mapping again. Check Frameworks or mysql cl again. [3] Test adding a second mapping. Map copyrightdate to 260c and 264c. And map biblioitems.place to 260a and 264a. [4] Edit biblio record 1: Put 1980 in 260c. Do not include 264c. Edit biblio record 2: Put 1990 in 264c. Do not include 260c. Edit biblio record 3: Put 2000 in both 260c and 264c. Put CityA in 260a and in 264a. Edit biblio record 4: Put 2010 in 260c, and 2015 in 264c (which you should refuse normally). Put CityA in 260a, and CityB in 264a. [5] Create a report that shows biblioitems.place and biblio.copyrightdate for those biblio records. Record 4 should have 2010 in copyrightdate (since TransformMarcToKoha picks the first year for copyrightdate). Record 3 should have place CityA; record 4 should have CityA | CityB. Note: The CityA | CityB example illustrates that we should add some additional handling in TransformMarcToKoha for multiple 264s. [6] Add these four biblio records to a new list. Sort by Year. With OPACXSLTListsDisplay==default, check if the order = 1,2,3,4. (The order is based on biblio.copyrightdate.) Note that (RDA) record 2 would be on top without this patch set, since copyrightdate would have been null. Signed-off-by: Josef Moravec <josef.moravec@gmail.com> Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com> Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>
85 lines
2.4 KiB
Text
85 lines
2.4 KiB
Text
[% INCLUDE 'doc-head-open.inc' %]
|
|
<title>Koha › Administration › Koha to MARC mapping</title>
|
|
|
|
[% INCLUDE 'doc-head-close.inc' %]
|
|
<script type="text/javascript">
|
|
//<![CDATA[
|
|
$(document).ready(function() {
|
|
});
|
|
|
|
function AddFld(kohafield) {
|
|
var fieldstr = prompt( _("Adding a mapping for: ") + kohafield + ".\n" + _("Please enter field tag and subfield code, separated by a comma. (For control fields: add '@' as subfield code.)\nThe change will be applied immediately.") );
|
|
var temp = fieldstr.split(',');
|
|
if( temp.length == 2 ) {
|
|
$('#add_field').val( kohafield+','+fieldstr );
|
|
$('#koha2marc').submit();
|
|
}
|
|
}
|
|
|
|
function RemFld(tagfield, subfield ) {
|
|
if( confirm( _("Mapping will be removed for: ") + tagfield + subfield + ".\n" + _("The change will be applied immediately." ))) {
|
|
$('#remove_field').val(tagfield+','+subfield);
|
|
$('#koha2marc').submit();
|
|
}
|
|
}
|
|
//]]>
|
|
</script>
|
|
</head>
|
|
|
|
<body id="admin_koha2marclinks" class="admin">
|
|
[% INCLUDE 'header.inc' %]
|
|
[% INCLUDE 'prefs-admin-search.inc' %]
|
|
|
|
<div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/admin/admin-home.pl">Administration</a> › <a href="/cgi-bin/koha/admin/koha2marclinks.pl">Koha to MARC Mapping</a> ›</div>
|
|
|
|
<div id="doc3" class="yui-t2">
|
|
|
|
<div id="bd">
|
|
<div id="yui-main">
|
|
<div class="yui-b">
|
|
|
|
<h1>Koha to MARC mapping</h1>
|
|
<br/>
|
|
<form action="/cgi-bin/koha/admin/koha2marclinks.pl" method="post" id="koha2marc">
|
|
|
|
<table id="kohafields">
|
|
<thead><tr>
|
|
<th>Koha field</th>
|
|
<th>Tag</th>
|
|
<th>Subfield</th>
|
|
<th>Lib</th>
|
|
<th> </th>
|
|
</tr></thead>
|
|
<tbody>
|
|
[% FOREACH loo IN loop %]
|
|
<tr>
|
|
<td>[% loo.kohafield %]</td>
|
|
<td>[% loo.tagfield %]</td>
|
|
<td>[% loo.tagsubfield %]</td>
|
|
<td>[% loo.liblibrarian %]</td>
|
|
<td>
|
|
[% IF !loo.readonly %]
|
|
<a onclick="AddFld('[% loo.kohafield %]');" class="btn btn-default btn-xs">Add</a>
|
|
[% IF loo.tagfield %] <a onclick="RemFld('[% loo.tagfield %]','[% loo.tagsubfield %]');" class="btn btn-default btn-xs">Remove</a> [% END %]
|
|
[% END %]
|
|
</td>
|
|
</td>
|
|
</tr>
|
|
[% END %]
|
|
</tbody>
|
|
</table>
|
|
|
|
<input id="remove_field" name="remove_field" type="hidden" value=""/>
|
|
<input id="add_field" name="add_field" type="hidden" value=""/>
|
|
|
|
</form>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<div class="yui-b">
|
|
[% INCLUDE 'admin-menu.inc' %]
|
|
</div>
|
|
|
|
</div>
|
|
[% INCLUDE 'intranet-bottom.inc' %]
|