Bug 8064: Merge several biblios
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / merge.tt
blobb6495fa41c098e400598c9349e8a1b5356782078
1 [% PROCESS 'merge-record.inc' %]
3 [% INCLUDE 'doc-head-open.inc' %]
4 <title>Koha &rsaquo; Cataloging &rsaquo; 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 */
13 </style>
14 <script type="text/javascript">
15 //<![CDATA[
16 [% UNLESS (result) %]
17   [% IF (choosereference) %]
18     function changeFramework(fw) {
19         $("#frameworkcode").val(fw);
20     }
21   [% ELSE %]
22     function check_mandatory () {
23         var missing = {
24             'fields': [],
25             'subfields': []
26         };
27         for (tag in tagslib) {
28             if (tag == '000' || tag == '001')
29                 continue;
30             if (tagslib[tag].mandatory == 1) {
31                 if ($("#resultul span.field:contains("+ tag +")").length == 0) {
32                     missing.fields.push(tag);
33                 }
34             }
35             for (subfieldcode in tagslib[tag]) {
36                 if (subfieldcode == 'lib' || subfieldcode == 'mandatory'
37                 || subfieldcode == 'repeatable' || subfieldcode == 'tab') {
38                     continue;
39                 }
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).parent().find("span.subfield:contains("+ subfieldcode +")");
44                         if (subfields.length == 0) {
45                             missing.subfields.push( {
46                                 'tag': tag,
47                                 'subfieldcode': subfieldcode
48                             } );
49                         }
50                     });
51                 }
52             }
53         }
54         return missing;
55     }
57     // When submiting the form
58     function mergeformsubmit() {
59         var missing = check_mandatory();
60         var alert_msg = '';
61         var error = 0;
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";
66                 error ++;
67             }
68             alert_msg += "\n";
69         }
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";
75                 error ++;
76             }
77         }
79         if (error != 0) {
80             alert(alert_msg);
81             return false;
82         } else {
83             $("#tabs").remove();
84         }
85     }
87 $(document).ready(function(){
88     // Getting marc structure via ajax
89     tagslib = [];
90     $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
91         tagslib = json;
93     //Set focus to cataloging search
94     $("input[name=q]:eq(0)").focus();
95     });
97     // Creating tabs
98     $("#tabs").tabs();
100     // Check all checkboxes in first tab, and uncheck all others to avoid
101     // inconsistencies from a page refresh.
102     $('#tabs div#tabrecord[% ref_biblionumber %]').find('input[type="checkbox"]').attr('checked', true);
103     $('#tabs > div:not("#tabrecord[% ref_biblionumber %]")').find('input[type="checkbox"]').removeAttr('checked');
107   [% END %]
108 [% END %]
110 //]]>
111 </script>
112 </head>
113 <body id="cat_merge" class="cat">
114 [% INCLUDE 'header.inc' %]
115 [% INCLUDE 'cataloging-search.inc' %]
116 <div id="breadcrumbs"><a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo; <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo; Merging records</div>
118 <div id="doc" class="yui-t7">
120 <div id="bd">
121         <div id="yui-main">
124 <h1>Merging records</h1>
125 [% IF ( result ) %]
126     [% IF ( errors.size ) %]
127        [% FOREACH error IN errors %]
128            <div class="dialog alert">
129                 [% IF error.code == 'CANNOT_MOVE' %]
130                     The following items could not be moved from the old record to the new one: [% error.value %]
131                 [% ELSE %]
132                     [% error %]
133                 [% END %]
134                 <br />
135                 Therefore, the record to be merged has not been deleted.
136             </div>
137        [% END %]
139     [% ELSE %]
140         <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>
141         <h3>Report</h3>
142         <table>
143             <thead>
144                 <tr>
145                     <th>Biblionumber</th>
146                     [% FOREACH key IN report_header.keys.sort %]
147                         [% tag = key.substr(0, 3) %]
148                         [% code = key.substr(3, 1) %]
149                         [% IF code == '@' %]
150                             [% header = tag %]
151                         [% ELSE %]
152                             [% header = tag _ '$' _ code %]
153                         [% END %]
154                         <th>[% header %]</th>
155                     [% END %]
156                 </tr>
157             </thead>
158             <tbody>
159                 [% FOREACH record IN report_records %]
160                     <tr>
161                         <td>
162                             [% record.biblionumber %]
163                             [% IF loop.first %]
164                                 (record kept)
165                             [% END %]
166                         </td>
167                         [% FOREACH key IN report_header.keys.sort %]
168                             <td>
169                                 [% values = record.fields.$key %]
170                                 [% IF values %]
171                                     [% FOREACH value IN record.fields.$key %]
172                                         [% value %]
173                                         [% UNLESS loop.last %]<br />[% END %]
174                                     [% END %]
175                                 [% END %]
176                             </td>
177                         [% END %]
178                     </tr>
179                 [% END %]
180             </tbody>
181         </table>
182     [% END %]
184 [% ELSE %]
186 [% IF ( choosereference ) %]
187 <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>
188 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post">
189     <fieldset class="rows">
190     <legend>Merge reference</legend>
191     <ol>
192         [% FOREACH record IN records %]
193             <li class="radio">
194                 [% IF loop.first %]
195                     <input type="radio" value="[% record.biblionumber %]" checked="checked" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
196                 [% ELSE %]
197                     <input type="radio" value="[% record.biblionumber %]" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
198                 [% END %]
199                 <label for="ref_biblionumber[% record.biblionumber %]">
200                     [% record.data.title %]
201                     [% FOREACH subtitle IN record.subtitles %]
202                         [% subtitle.subfield %]
203                     [% END %]
204                     (<a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">[% record.biblionumber %]</a>)
205                 </label>
206             </li>
207         [% END %]
209         [% IF frameworkselect.size %]
210             <li>
211                 <label for="frameworkcode">Using framework:</label>
212                 <select name="frameworkcode" id="frameworkcode">
213                     <option value="">Default</option>
214                     [% FOREACH frameworkcode IN frameworkselect %]
215                         [% IF ( frameworkcode.selected ) %]
216                             <option value="[% frameworkcode.value %]" selected="selected">
217                         [% ELSE %]
218                             <option value="[% frameworkcode.value %]">
219                         [% END %]
220                             [% frameworkcode.frameworktext %]
221                         </option>
222                     [% END %]
223                 </select>
224             </li>
225         [% END %]
226     </ol>
228     [% FOREACH record IN records %]
229         <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
230     [% END %]
231     <fieldset class="action">
232         <input type="submit" value="Next" />
233     </fieldset>
234     </fieldset>
235 </form>
236 [% ELSE %]
237 [% IF ( errors.size ) %]
238     <div class="dialog alert">
239         [% FOREACH error IN errors %]
240             <p>[% error %]</p>
241         [% END %]
242     </div>
243 [% ELSE %]
244 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
246 <div class="yui-g">
247 <div class="yui-u first">
248 [% PROCESS mergesource sourcerecords=records %]
249 </div>
250 <div class="yui-u">
251 [% PROCESS mergetarget %]
252 </div> <!-- .yui-u -->
254 <input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber %]" />
255 [% FOREACH record IN records %]
256     <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
257 [% END %]
258 <input type="hidden" name="frameworkcode" value="[% framework %]" />
260 <fieldset class="action">
261     <input type="submit" name="merge" value="Merge" />
262     <label for="report_fields">Fields to display in report:</label>
263     <input type="text" name="report_fields" id="report_fields" value="[% MergeReportFields %]" />
264     <span class="hint">(Example: "001,245ab,600")
265 </fieldset>
266 </div>
267 </form>
268 [% END %]
269 [% END %]
270 [% END %]
272 </div>
273 </div>
274 </div>
276 [% INCLUDE 'intranet-bottom.inc' %]