Bug 19623: (follow-up) Correct footer include in pop-up windows
[koha.git] / 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 'doc-head-close.inc' %]
6 <style type="text/css">
7 div.record ul, div.record li { float:none; display:block; }
8 div#result { margin-top: 1em; }
9 /* We use this style "against" the li ui-tabs-nav style automatically applied */
10 #dataPreview { width : 80%; } @media (max-width: 767px) { #dataPreview { margin: 0; width : auto; } }
11 </style>
12 </head>
13
14 <body id="cat_merge" class="cat">
15 [% INCLUDE 'header.inc' %]
16 [% INCLUDE 'cataloging-search.inc' %]
17 <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>
18
19 <div id="doc" class="yui-t7">
20
21 <div id="bd">
22         <div id="yui-main">
23
24
25 <h1>Merging records</h1>
26 [% IF ( result ) %]
27     [% IF ( errors.size ) %]
28        [% FOREACH error IN errors %]
29            <div class="dialog alert">
30                 [% IF error.code == 'CANNOT_MOVE' %]
31                     The following items could not be moved from the old record to the new one: [% error.value %]
32                 [% ELSE %]
33                     [% error %]
34                 [% END %]
35                 <br />
36                 Therefore, the record to be merged has not been deleted.
37             </div>
38        [% END %]
39
40     [% ELSE %]
41         <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>
42         <h3>Report</h3>
43         <table>
44             <thead>
45                 <tr>
46                     <th>Biblionumber</th>
47                     [% FOREACH key IN report_header.keys.sort %]
48                         [% tag = key.substr(0, 3) %]
49                         [% code = key.substr(3, 1) %]
50                         [% IF code == '@' %]
51                             [% header = tag %]
52                         [% ELSE %]
53                             [% header = tag _ '$' _ code %]
54                         [% END %]
55                         <th>[% header %]</th>
56                     [% END %]
57                 </tr>
58             </thead>
59             <tbody>
60                 [% FOREACH record IN report_records %]
61                     <tr>
62                         <td>
63                             [% record.biblionumber %]
64                             [% IF loop.first %]
65                                 (record kept)
66                             [% END %]
67                         </td>
68                         [% FOREACH key IN report_header.keys.sort %]
69                             <td>
70                                 [% values = record.fields.$key %]
71                                 [% IF values %]
72                                     [% FOREACH value IN record.fields.$key %]
73                                         [% value %]
74                                         [% UNLESS loop.last %]<br />[% END %]
75                                     [% END %]
76                                 [% END %]
77                             </td>
78                         [% END %]
79                     </tr>
80                 [% END %]
81             </tbody>
82         </table>
83     [% END %]
84
85 [% ELSE %]
86
87 [% IF ( choosereference ) %]
88 <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>
89 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post">
90     <fieldset class="rows">
91     <legend>Merge reference</legend>
92     <ol>
93         [% FOREACH record IN records %]
94             <li class="radio">
95                 [% IF loop.first %]
96                     <input type="radio" value="[% record.biblionumber %]" checked="checked" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
97                 [% ELSE %]
98                     <input type="radio" value="[% record.biblionumber %]" id="ref_biblionumber[% record.biblionumber %]" name="ref_biblionumber" onclick="changeFramework('[% record.frameworkcode %]')" />
99                 [% END %]
100                 <label for="ref_biblionumber[% record.biblionumber %]">
101                     [% record.data.title %]
102                     [% FOREACH subtitle IN record.subtitles %]
103                         [% subtitle.subfield %]
104                     [% END %]
105                     ([% record.biblionumber %]) <a href="/cgi-bin/koha/catalogue/showmarc.pl?id=[% record.biblionumber %]" class="previewData">View MARC</a>
106                 </label>
107             </li>
108         [% END %]
109
110             <li>
111                 <label for="frameworkcode">Using framework:</label>
112                 <select name="frameworkcode" id="frameworkcode">
113                     <option value="">Default</option>
114                     [% FOREACH framework IN frameworks %]
115                         <option value="[% framework.frameworkcode %]">[% framework.frameworktext %]</option>
116                     [% END %]
117                 </select>
118             </li>
119     </ol>
120
121     [% FOREACH record IN records %]
122         <input type="hidden" name="biblionumber" value="[% record.biblionumber %]" />
123     [% END %]
124     <fieldset class="action">
125         <input type="submit" value="Next" />
126     </fieldset>
127     </fieldset>
128 </form>
129
130 <div id="dataPreview" class="modal" tabindex="-1" role="dialog" aria-labelledby="dataPreviewLabel" aria-hidden="true">
131     <div class="modal-dialog">
132     <div class="modal-content">
133     <div class="modal-header">
134         <button type="button" class="closebtn" data-dismiss="modal" aria-hidden="true">×</button>
135         <h3 id="dataPreviewLabel">Preview</h3>
136     </div>
137     <div class="modal-body">
138         <div id="loading"> <img src="[% interface %]/[% theme %]/img/spinner-small.gif" alt="" /> Loading </div>
139     </div>
140     <div class="modal-footer">
141         <button class="btn btn-default" data-dismiss="modal" aria-hidden="true">Close</button>
142     </div>
143     </div>
144     </div>
145 </div>
146
147 [% ELSE %]
148 [% IF ( errors.size ) %]
149     <div class="dialog alert">
150         [% FOREACH error IN errors %]
151             <p>[% error %]</p>
152         [% END %]
153     </div>
154 [% ELSE %]
155 <form id="mergeform" action="/cgi-bin/koha/cataloguing/merge.pl" method="post" onsubmit="return mergeformsubmit()">
156
157 <div class="yui-g">
158 <div class="yui-u first">
159 [% PROCESS mergesource sourcerecords=records %]
160 </div>
161 <div class="yui-u">
162 [% PROCESS mergetarget %]
163 </div> <!-- .yui-u -->
164
165 <input type="hidden" name="ref_biblionumber" value="[% ref_biblionumber %]" />
166 [% FOREACH record IN records %]
167     <input type="hidden" name="biblionumber" value="[% record.recordid %]" />
168 [% END %]
169 <input type="hidden" name="frameworkcode" value="[% framework %]" />
170
171 <fieldset class="action">
172     <input type="submit" name="merge" value="Merge" />
173     <label for="report_fields">Fields to display in report:</label>
174     <input type="text" name="report_fields" id="report_fields" value="[% MergeReportFields %]" />
175     <span class="hint">(Example: "001,245ab,600")
176 </fieldset>
177 </div>
178 </form>
179 [% END %]
180 [% END %]
181 [% END %]
182
183 </div>
184 </div>
185 </div>
186
187 [% MACRO jsinclude BLOCK %]
188     <script type="text/javascript" src="[% interface %]/[% theme %]/js/merge-record.js"></script>
189     [% INCLUDE 'merge-record-strings.inc' %]
190     <script type="text/javascript">
191         [% UNLESS (result) %]
192           [% IF (choosereference) %]
193             function changeFramework(fw) {
194                 $("#frameworkcode").val(fw);
195             }
196             $(document).ready(function(){
197                     $(".previewData").on("click", function(e){
198                     e.preventDefault();
199                     var ltitle = $(this).text();
200                     var page = $(this).attr("href");
201                     $("#dataPreviewLabel").text(ltitle);
202                     $("#dataPreview .modal-body").load(page + " div");
203                     $('#dataPreview').modal({show:true});
204                 });
205                 $("#dataPreview").on("hidden", function(){
206                     $("#dataPreviewLabel").html("");
207                     $("#dataPreview .modal-body").html("<div id=\"loading\"><img src=\"[% interface %]/[% theme %]/img/spinner-small.gif\" alt=\"\" /> "+_("Loading")+"</div>");
208                 });
209             });
210           [% ELSE %]
211             function check_mandatory () {
212                 var missing = {
213                     'fields': [],
214                     'subfields': []
215                 };
216                 for (tag in tagslib) {
217                     if (tag == '000' || tag == '001')
218                         continue;
219                     if (tagslib[tag].mandatory == 1) {
220                         if ($("#resultul span.field:contains("+ tag +")").length == 0) {
221                             missing.fields.push(tag);
222                         }
223                     }
224                     for (subfieldcode in tagslib[tag]) {
225                         if (subfieldcode == 'lib' || subfieldcode == 'mandatory'
226                         || subfieldcode == 'repeatable' || subfieldcode == 'tab'
227                         || subfieldcode == '@') {
228                             continue;
229                         }
230                         if (tagslib[tag][subfieldcode].mandatory == 1 && tagslib[tag][subfieldcode].tab >= 0) {
231                             var fields = $("#resultul span.field:contains("+ tag +")");
232                             $(fields).each(function() {
233                                 var subfields = $(this).parents('li').find("span.subfield:contains("+ subfieldcode +")");
234                                 if (subfields.length == 0) {
235                                     missing.subfields.push( {
236                                         'tag': tag,
237                                         'subfieldcode': subfieldcode
238                                     } );
239                                 }
240                             });
241                         }
242                     }
243                 }
244                 return missing;
245             }
246
247             // When submiting the form
248             function mergeformsubmit() {
249                 var missing = check_mandatory();
250                 var alert_msg = '';
251                 var error = 0;
252                 if (missing.fields.length > 0) {
253                     alert_msg += _("Following required fields are missing:") + "\n";
254                     for (var i in missing.fields) {
255                         alert_msg += "\t- " + missing.fields[i] + "\n";
256                         error ++;
257                     }
258                     alert_msg += "\n";
259                 }
260                 if (missing.subfields.length > 0) {
261                     alert_msg += _("Following required subfields are missing:") + "\n";
262                     for (var i in missing.subfields) {
263                         var subfield = missing.subfields[i];
264                         alert_msg += "\t- " + subfield.tag + "$" + subfield.subfieldcode + "\n";
265                         error ++;
266                     }
267                 }
268
269                 if (error != 0) {
270                     alert(alert_msg);
271                     return false;
272                 } else {
273                     $("#tabs").remove();
274                 }
275             }
276
277         $(document).ready(function(){
278             tagslib = [];
279             $.getJSON("/cgi-bin/koha/cataloguing/merge_ajax.pl", {frameworkcode : "[% framework %]" }, function(json) {
280               tagslib = json;
281               rebuild_target($("#tabs"), $("#resultul"));
282             });
283
284             // Creating tabs
285             $("#tabs").tabs();
286
287             // Check all checkboxes in first tab, and uncheck all others to avoid
288             // inconsistencies from a page refresh.
289             $('#tabs div#tabrecord[% ref_biblionumber %]').find('input[type="checkbox"]').prop('checked', true);
290             $('#tabs > div:not("#tabrecord[% ref_biblionumber %]")').find('input[type="checkbox"]').prop('checked', false);
291
292             //Set focus to cataloging search
293             $("input[name=q]:eq(0)").focus();
294         });
295
296           [% END %]
297         [% END %]
298     </script>
299 [% END %]
300
301 [% INCLUDE 'intranet-bottom.inc' %]