1 [% PROCESS 'merge-record.inc' %]
3 [% INCLUDE 'doc-head-open.inc' %]
4 <title>Koha › Cataloging › Merging records</title>
5 [% INCLUDE 'greybox.inc' %]
6 [% INCLUDE 'doc-head-close.inc' %]
7 <script type="text/javascript" src="[% themelang %]/js/merge-record.js"></script>
8 [% INCLUDE 'merge-record-strings.inc' %]
9 <style type="text/css">
10 div.record ul, div.record li { float:none; display:block; }
11 div#result { margin-top: 1em; }
12 /* We use this style "against" the li ui-tabs-nav style automatically applied */
14 <script type="text/javascript">
17 [% IF (choosereference) %]
18 function changeFramework(fw) {
19 $("#frameworkcode").val(fw);
22 function check_mandatory () {
27 for (tag in tagslib) {
28 if (tag == '000' || tag == '001')
30 if (tagslib[tag].mandatory == 1) {
31 if ($("#resultul span.field:contains("+ tag +")").length == 0) {
32 missing.fields.push(tag);
35 for (subfieldcode in tagslib[tag]) {
36 if (subfieldcode == 'lib' || subfieldcode == 'mandatory'
37 || subfieldcode == 'repeatable' || subfieldcode == 'tab') {
40 if (tagslib[tag][subfieldcode].mandatory == 1 && tagslib[tag][subfieldcode].tab >= 0) {
41 var fields = $("#resultul span.field:contains("+ tag +")");
42 $(fields).each(function() {
43 var subfields = $(this).parents('li').find("span.subfield:contains("+ subfieldcode +")");
44 if (subfields.length == 0) {
45 missing.subfields.push( {
47 'subfieldcode': subfieldcode
57 // When submiting the form
58 function mergeformsubmit() {
59 var missing = check_mandatory();
62 if (missing.fields.length > 0) {
63 alert_msg += _("Following required fields are missing:") + "\n";
64 for (var i in missing.fields) {
65 alert_msg += "\t- " + missing.fields[i] + "\n";
70 if (missing.subfields.length > 0) {
71 alert_msg += _("Following required subfields are missing:") + "\n";
72 for (var i in missing.subfields) {
73 var subfield = missing.subfields[i];
74 alert_msg += "\t- " + subfield.tag + "$" + subfield.subfieldcode + "\n";
87 $(document).ready(function(){
89 $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
91 rebuild_target($("#tabs"), $("#resultul"));
97 // Check all checkboxes in first tab, and uncheck all others to avoid
98 // inconsistencies from a page refresh.
99 $('#tabs div#tabrecord[% ref_biblionumber %]').find('input[type="checkbox"]').attr('checked', true);
100 $('#tabs > div:not("#tabrecord[% ref_biblionumber %]")').find('input[type="checkbox"]').removeAttr('checked');
102 //Set focus to cataloging search
103 $("input[name=q]:eq(0)").focus();
112 <body id="cat_merge" class="cat">
113 [% INCLUDE 'header.inc' %]
114 [% INCLUDE 'cataloging-search.inc' %]
115 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> › <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a> › Merging records</div>
117 <div id="doc" class="yui-t7">
123 <h1>Merging records</h1>
125 [% IF ( errors.size ) %]
126 [% FOREACH error IN errors %]
127 <div class="dialog alert">
128 [% IF error.code == 'CANNOT_MOVE' %]
129 The following items could not be moved from the old record to the new one: [% error.value %]
134 Therefore, the record to be merged has not been deleted.
139 <p>The merge was successful. <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% ref_biblionumber %]">Click here to see the merged record.</a></p>
144 <th>Biblionumber</th>
145 [% FOREACH key IN report_header.keys.sort %]
146 [% tag = key.substr(0, 3) %]
147 [% code = key.substr(3, 1) %]
151 [% header = tag _ '$' _ code %]
153 <th>[% header %]</th>
158 [% FOREACH record IN report_records %]
161 [% record.biblionumber %]
166 [% FOREACH key IN report_header.keys.sort %]
168 [% values = record.fields.$key %]
170 [% FOREACH value IN record.fields.$key %]
172 [% UNLESS loop.last %]<br />[% END %]
185 [% IF ( choosereference ) %]
186 <p>Please choose which record will be the reference for the merge. The record chosen as reference will be kept, and the other will be deleted.</p>
187 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post">
188 <fieldset class="rows">
189 <legend>Merge reference</legend>
191 [% FOREACH record IN records %]
194 <input type="radio" value="[% record.biblionumber %]" checked="checked" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
196 <input type="radio" value="[% record.biblionumber %]" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
198 <label for="ref_biblionumber[% record.biblionumber %]">
199 [% record.data.title %]
200 [% FOREACH subtitle IN record.subtitles %]
201 [% subtitle.subfield %]
203 (<a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">[% record.biblionumber %]</a>)
208 [% IF frameworkselect.size %]
210 <label for="frameworkcode">Using framework:</label>
211 <select name="frameworkcode" id="frameworkcode">
212 <option value="">Default</option>
213 [% FOREACH frameworkcode IN frameworkselect %]
214 [% IF ( frameworkcode.selected ) %]
215 <option value="[% frameworkcode.value %]" selected="selected">
217 <option value="[% frameworkcode.value %]">
219 [% frameworkcode.frameworktext %]
227 [% FOREACH record IN records %]
228 <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
230 <fieldset class="action">
231 <input type="submit" value="Next" />
236 [% IF ( errors.size ) %]
237 <div class="dialog alert">
238 [% FOREACH error IN errors %]
243 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
246 <div class="yui-u first">
247 [% PROCESS mergesource sourcerecords=records %]
250 [% PROCESS mergetarget %]
251 </div> <!-- .yui-u -->
253 <input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber %]" />
254 [% FOREACH record IN records %]
255 <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
257 <input type="hidden" name="frameworkcode" value="[% framework %]" />
259 <fieldset class="action">
260 <input type="submit" name="merge" value="Merge" />
261 <label for="report_fields">Fields to display in report:</label>
262 <input type="text" name="report_fields" id="report_fields" value="[% MergeReportFields %]" />
263 <span class="hint">(Example: "001,245ab,600")
275 [% INCLUDE 'intranet-bottom.inc' %]