Bug 8064: Change the way target record is built.
[koha_ffzg] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / merge.tt
1 [% PROCESS 'merge-record.inc' %]
2
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).parents('li').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     }
56
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         }
78
79         if (error != 0) {
80             alert(alert_msg);
81             return false;
82         } else {
83             $("#tabs").remove();
84         }
85     }
86
87 $(document).ready(function(){
88     tagslib = [];
89     $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
90       tagslib = json;
91       rebuild_target($("#tabs"), $("#resultul"));
92     });
93
94     // Creating tabs
95     $("#tabs").tabs();
96
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');
101
102     //Set focus to cataloging search
103     $("input[name=q]:eq(0)").focus();
104 });
105
106   [% END %]
107 [% END %]
108
109 //]]>
110 </script>
111 </head>
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> &rsaquo; <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo; Merging records</div>
116
117 <div id="doc" class="yui-t7">
118
119 <div id="bd">
120         <div id="yui-main">
121
122
123 <h1>Merging records</h1>
124 [% IF ( result ) %]
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 %]
130                 [% ELSE %]
131                     [% error %]
132                 [% END %]
133                 <br />
134                 Therefore, the record to be merged has not been deleted.
135             </div>
136        [% END %]
137
138     [% ELSE %]
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>
140         <h3>Report</h3>
141         <table>
142             <thead>
143                 <tr>
144                     <th>Biblionumber</th>
145                     [% FOREACH key IN report_header.keys.sort %]
146                         [% tag = key.substr(0, 3) %]
147                         [% code = key.substr(3, 1) %]
148                         [% IF code == '@' %]
149                             [% header = tag %]
150                         [% ELSE %]
151                             [% header = tag _ '$' _ code %]
152                         [% END %]
153                         <th>[% header %]</th>
154                     [% END %]
155                 </tr>
156             </thead>
157             <tbody>
158                 [% FOREACH record IN report_records %]
159                     <tr>
160                         <td>
161                             [% record.biblionumber %]
162                             [% IF loop.first %]
163                                 (record kept)
164                             [% END %]
165                         </td>
166                         [% FOREACH key IN report_header.keys.sort %]
167                             <td>
168                                 [% values = record.fields.$key %]
169                                 [% IF values %]
170                                     [% FOREACH value IN record.fields.$key %]
171                                         [% value %]
172                                         [% UNLESS loop.last %]<br />[% END %]
173                                     [% END %]
174                                 [% END %]
175                             </td>
176                         [% END %]
177                     </tr>
178                 [% END %]
179             </tbody>
180         </table>
181     [% END %]
182
183 [% ELSE %]
184
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>
190     <ol>
191         [% FOREACH record IN records %]
192             <li class="radio">
193                 [% IF loop.first %]
194                     <input type="radio" value="[% record.biblionumber %]" checked="checked" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
195                 [% ELSE %]
196                     <input type="radio" value="[% record.biblionumber %]" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
197                 [% END %]
198                 <label for="ref_biblionumber[% record.biblionumber %]">
199                     [% record.data.title %]
200                     [% FOREACH subtitle IN record.subtitles %]
201                         [% subtitle.subfield %]
202                     [% END %]
203                     (<a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber %]" title="MARC" rel="gb_page_center[600,500]">[% record.biblionumber %]</a>)
204                 </label>
205             </li>
206         [% END %]
207
208         [% IF frameworkselect.size %]
209             <li>
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">
216                         [% ELSE %]
217                             <option value="[% frameworkcode.value %]">
218                         [% END %]
219                             [% frameworkcode.frameworktext %]
220                         </option>
221                     [% END %]
222                 </select>
223             </li>
224         [% END %]
225     </ol>
226
227     [% FOREACH record IN records %]
228         <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
229     [% END %]
230     <fieldset class="action">
231         <input type="submit" value="Next" />
232     </fieldset>
233     </fieldset>
234 </form>
235 [% ELSE %]
236 [% IF ( errors.size ) %]
237     <div class="dialog alert">
238         [% FOREACH error IN errors %]
239             <p>[% error %]</p>
240         [% END %]
241     </div>
242 [% ELSE %]
243 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
244
245 <div class="yui-g">
246 <div class="yui-u first">
247 [% PROCESS mergesource sourcerecords=records %]
248 </div>
249 <div class="yui-u">
250 [% PROCESS mergetarget %]
251 </div> <!-- .yui-u -->
252
253 <input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber %]" />
254 [% FOREACH record IN records %]
255     <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
256 [% END %]
257 <input type="hidden" name="frameworkcode" value="[% framework %]" />
258
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")
264 </fieldset>
265 </div>
266 </form>
267 [% END %]
268 [% END %]
269 [% END %]
270
271 </div>
272 </div>
273 </div>
274
275 [% INCLUDE 'intranet-bottom.inc' %]