1 [% PROCESS 'merge-record.inc' %]
3 [% INCLUDE 'doc-head-open.inc' %]
4 <title>Koha › Cataloging › Merging records</title>
5 [% INCLUDE 'doc-head-close.inc' %]
6 <script type="text/javascript" src="[% interface %]/[% theme %]/js/merge-record.js"></script>
7 [% INCLUDE 'merge-record-strings.inc' %]
8 <style type="text/css">
9 div.record ul, div.record li { float:none; display:block; }
10 div#result { margin-top: 1em; }
11 /* We use this style "against" the li ui-tabs-nav style automatically applied */
12 #dataPreview { width : 80%; } @media (max-width: 767px) { #dataPreview { margin: 0; width : auto; } }
14 <script type="text/javascript">
17 [% IF (choosereference) %]
18 function changeFramework(fw) {
19 $("#frameworkcode").val(fw);
21 $(document).ready(function(){
22 $(".previewData").on("click", function(e){
24 var ltitle = $(this).text();
25 var page = $(this).attr("href");
26 $("#dataPreviewLabel").text(ltitle);
27 $("#dataPreview .modal-body").load(page + " div");
28 $('#dataPreview').modal({show:true});
30 $("#dataPreview").on("hidden", function(){
31 $("#dataPreviewLabel").html("");
32 $("#dataPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
36 function check_mandatory () {
41 for (tag in tagslib) {
42 if (tag == '000' || tag == '001')
44 if (tagslib[tag].mandatory == 1) {
45 if ($("#resultul span.field:contains("+ tag +")").length == 0) {
46 missing.fields.push(tag);
49 for (subfieldcode in tagslib[tag]) {
50 if (subfieldcode == 'lib' || subfieldcode == 'mandatory'
51 || subfieldcode == 'repeatable' || subfieldcode == 'tab'
52 || subfieldcode == '@') {
55 if (tagslib[tag][subfieldcode].mandatory == 1 && tagslib[tag][subfieldcode].tab >= 0) {
56 var fields = $("#resultul span.field:contains("+ tag +")");
57 $(fields).each(function() {
58 var subfields = $(this).parents('li').find("span.subfield:contains("+ subfieldcode +")");
59 if (subfields.length == 0) {
60 missing.subfields.push( {
62 'subfieldcode': subfieldcode
72 // When submiting the form
73 function mergeformsubmit() {
74 var missing = check_mandatory();
77 if (missing.fields.length > 0) {
78 alert_msg += _("Following required fields are missing:") + "\n";
79 for (var i in missing.fields) {
80 alert_msg += "\t- " + missing.fields[i] + "\n";
85 if (missing.subfields.length > 0) {
86 alert_msg += _("Following required subfields are missing:") + "\n";
87 for (var i in missing.subfields) {
88 var subfield = missing.subfields[i];
89 alert_msg += "\t- " + subfield.tag + "$" + subfield.subfieldcode + "\n";
102 $(document).ready(function(){
104 $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
106 rebuild_target($("#tabs"), $("#resultul"));
112 // Check all checkboxes in first tab, and uncheck all others to avoid
113 // inconsistencies from a page refresh.
114 $('#tabs div#tabrecord[% ref_biblionumber %]').find('input[type="checkbox"]').prop('checked', true);
115 $('#tabs > div:not("#tabrecord[% ref_biblionumber %]")').find('input[type="checkbox"]').prop('checked', false);
117 //Set focus to cataloging search
118 $("input[name=q]:eq(0)").focus();
126 <body id="cat_merge" class="cat">
127 [% INCLUDE 'header.inc' %]
128 [% INCLUDE 'cataloging-search.inc' %]
129 <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>
131 <div id="doc" class="yui-t7">
137 <h1>Merging records</h1>
139 [% IF ( errors.size ) %]
140 [% FOREACH error IN errors %]
141 <div class="dialog alert">
142 [% IF error.code == 'CANNOT_MOVE' %]
143 The following items could not be moved from the old record to the new one: [% error.value %]
148 Therefore, the record to be merged has not been deleted.
153 <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>
158 <th>Biblionumber</th>
159 [% FOREACH key IN report_header.keys.sort %]
160 [% tag = key.substr(0, 3) %]
161 [% code = key.substr(3, 1) %]
165 [% header = tag _ '$' _ code %]
167 <th>[% header %]</th>
172 [% FOREACH record IN report_records %]
175 [% record.biblionumber %]
180 [% FOREACH key IN report_header.keys.sort %]
182 [% values = record.fields.$key %]
184 [% FOREACH value IN record.fields.$key %]
186 [% UNLESS loop.last %]<br />[% END %]
199 [% IF ( choosereference ) %]
200 <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>
201 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post">
202 <fieldset class="rows">
203 <legend>Merge reference</legend>
205 [% FOREACH record IN records %]
208 <input type="radio" value="[% record.biblionumber %]" checked="checked" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
210 <input type="radio" value="[% record.biblionumber %]" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
212 <label for="ref_biblionumber[% record.biblionumber %]">
213 [% record.data.title %]
214 [% FOREACH subtitle IN record.subtitles %]
215 [% subtitle.subfield %]
217 ([% record.biblionumber %]) <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber %]" class="previewData">View MARC</a>
223 <label for="frameworkcode">Using framework:</label>
224 <select name="frameworkcode" id="frameworkcode">
225 <option value="">Default</option>
226 [% FOREACH framework IN frameworks %]
227 <option value="[% framework.frameworkcode %]">[% framework.frameworktext %]</option>
233 [% FOREACH record IN records %]
234 <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
236 <fieldset class="action">
237 <input type="submit" value="Next" />
242 <div id="dataPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="dataPreviewLabel" aria-hidden="true">
243 <div class="modal-dialog">
244 <div class="modal-content">
245 <div class="modal-header">
246 <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
247 <h3 id="dataPreviewLabel">Preview</h3>
249 <div class="modal-body">
250 <div id="loading"> <img src="[% interface %]/[% theme %]/img/spinner-small.gif" alt="" /> Loading </div>
252 <div class="modal-footer">
253 <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
260 [% IF ( errors.size ) %]
261 <div class="dialog alert">
262 [% FOREACH error IN errors %]
267 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
270 <div class="yui-u first">
271 [% PROCESS mergesource sourcerecords=records %]
274 [% PROCESS mergetarget %]
275 </div> <!-- .yui-u -->
277 <input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber %]" />
278 [% FOREACH record IN records %]
279 <input type="hidden" name="biblionumber" value="[% record.recordid %]" />
281 <input type="hidden" name="frameworkcode" value="[% framework %]" />
283 <fieldset class="action">
284 <input type="submit" name="merge" value="Merge" />
285 <label for="report_fields">Fields to display in report:</label>
286 <input type="text" name="report_fields" id="report_fields" value="[% MergeReportFields %]" />
287 <span class="hint">(Example: "001,245ab,600")
299 [% INCLUDE 'intranet-bottom.inc' %]