Bug 27846: (follow-up) Add id back to breadcrumbs container
[srvgit] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / addbiblio.tt
1 [% USE raw %]
2 [% USE Asset %]
3 [% USE Koha %]
4 [% INCLUDE 'doc-head-open.inc' %]
5 <title>Koha &rsaquo; Cataloging &rsaquo; [% IF ( biblionumber ) %]Editing [% title | html %] (Record number [% biblionumber | html %])[% ELSE %]Add MARC record[% END %]</title>
6 [% INCLUDE 'doc-head-close.inc' %]
7 [% Asset.js("lib/hc-sticky.js") | $raw %]
8 [% INCLUDE 'select2.inc' %]
9 <script>
10     var CAN_user_parameters_manage_auth_values = "[% CAN_user_parameters_manage_auth_values | html %]";
11     $.fn.select2.defaults.set("width", "100%" );
12 </script>
13 [% Asset.js("js/cataloging.js") | $raw %]
14 [% Asset.js("js/browser.js") | $raw %]
15 <script>
16     var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10));
17     browser.show();
18
19     $(window).load(function(){
20         $("#loading").hide();
21     });
22     var Sticky;
23     $(document).ready(function() {
24
25         [% IF bib_doesnt_exist %]
26             $("#addbibliotabs").hide();
27             $("#toolbar").hide();
28         [% END %]
29
30         var $tabs = $('#addbibliotabs').tabs().bind('show.ui-tabs', function(e, ui) {
31             $("#"+ui.panel.id+" input:eq(0)").focus();
32         });
33         $( "ul.sortable_field", $tabs ).sortable({
34             axis: "y",
35             containment: $("#addbibliotabs")
36         });
37         $( "ul.sortable_subfield", $tabs ).sortable({
38             axis: "y",
39             containment: "parent"
40         });
41
42         [% IF tab %]
43             link = $("a[href='#[% tab | html %]']");
44             selectTab( link );
45         [% END %]
46
47         Sticky = $("#toolbar");
48         Sticky.hcSticky({
49             stickTo: "#f",
50             stickyClass: "floating"
51         });
52
53         /* check cookie to hide/show marcdocs*/
54         if( Cookies.get("marcdocs_[% borrowernumber | html %]") == 'hide'){
55             toggleMARCdocLinks(false);
56         } else {
57             toggleMARCdocLinks(true);
58         }
59
60         $("#marcDocsSelect").click(function(){
61             if( Cookies.get("marcdocs_[% borrowernumber | html %]") == 'hide'){
62                 toggleMARCdocLinks(true);
63             } else {
64                 toggleMARCdocLinks(false);
65             }
66         });
67
68         /* check cookie to hide/show marc tags*/
69         var marctags_cookie = Cookies.get("marctags_[% borrowernumber | html %]");
70         if( marctags_cookie == 'hide'){
71             toggleMARCTagLinks(false);
72         } else if( marctags_cookie == 'show'){
73             toggleMARCTagLinks(true)
74         } else {
75             [% UNLESS Koha.Preference("hide_marc") %]
76                 toggleMARCTagLinks(true)
77             [% ELSE %]
78                 toggleMARCTagLinks(false);
79             [% END %]
80         }
81
82         $("#marcTagsSelect").click(function(){
83             if( Cookies.get("marctags_[% borrowernumber | html %]") == 'hide'){
84                 toggleMARCTagLinks(true)
85             } else {
86                 toggleMARCTagLinks(false);
87             }
88         });
89
90         $("#z3950search").click(function(){
91             PopupZ3950();
92         });
93
94         $("#linkerbutton").click(function(){
95             AutomaticLinker();
96         });
97
98         $("#saverecord").click(function(){
99             $(".btn-group").removeClass("open");
100             onOption();
101             return false;
102         });
103
104         $("#saveandview").click(function(){
105             $(".btn-group").removeClass("open");
106             redirect("view");
107             return false;
108         });
109
110         $("#saveanditems").click(function(){
111             $(".btn-group").removeClass("open");
112             redirect("items");
113             return false;
114         });
115         $("#saveandcontinue").click(function(){
116             $(".btn-group").removeClass("open");
117             var tab = $("#addbibliotabs li.ui-tabs-active:first a").attr('href');
118             tab = tab.replace('#', '');
119             $("#current_tab").val(tab);
120             redirect("just_save", tab);
121             return false;
122         });
123
124         $( '#switcheditor' ).click( function() {
125             var breedingid = [% breedingid || "null" | html %];
126
127             if ( !confirm( breedingid ? _("This record cannot be transferred to the advanced editor. Continue?") : _("Any changes will not be saved. Continue?") ) ) return false;
128
129             Cookies.set( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/' } );
130
131             var biblionumber = [% biblionumber || "null" | html %];
132
133             if ( biblionumber ) {
134                 window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber;
135             } else {
136                 window.location = '/cgi-bin/koha/cataloguing/editor.pl';
137             }
138
139             return false;
140         } );
141         $(".change-framework").on("click", function(){
142             var frameworkcode = $(this).data("frameworkcode");
143             $("#frameworkcode").val( frameworkcode );
144             Changefwk();
145         });
146
147         $(".toolbar-tabs a").on("click",function(e){
148             e.preventDefault();
149             selectTab( $(this ) );
150         });
151
152         $(".tag_anchor").on("click", function(e){
153             e.preventDefault();
154             var toolbar_height = $("#toolbar").outerHeight();
155             $(".tag_anchor").removeClass("selected");
156             $(this).addClass("selected");
157             var link = this.href;
158             var linkid = link.substring( link.indexOf("#") + 1 );
159             var dest = $("#" + linkid );
160             var yoffset = dest.offset();
161             window.scrollTo( 0, yoffset.top - toolbar_height - 20 );
162         });
163
164     });
165
166     function selectTab( tablink ){
167         $(".toolbar-tabs li").removeClass("selected");
168         tablink.parent().addClass("selected");
169         var tabid = tablink.data("tabid");
170         $('#addbibliotabs').selectTabByID("#tab" + tabid + "XX");
171         $(".tag_anchors").removeClass("tab_selected").hide();
172         $(".tag_anchors_" + tabid ).addClass("tab_selected").show();
173     }
174
175     function redirect(dest){
176         $("#redirect").attr("value",dest);
177         return Check();
178     }
179
180     [% IF ( CAN_user_editcatalogue_edit_items ) %]
181         var onOption = function () {
182             return Check();
183         }
184 [% END %]
185
186 /**
187 * this function append button for create new authority if not found
188 */
189
190 function addCreateAuthorityButton(tag_subfield_line, heading, tag_index) {
191     var title = _("Create authority");
192     var elem = $('<a href="#" title="' + title + '"><i class="fa fa-plus-circle"></i></a>');
193     tag_subfield_line.append(elem);
194     var tag_subfield_line_a = $('.subfield_line[id^=subfield' + heading.tag + 'a]').eq(tag_index);
195     var subfield_a = tag_subfield_line_a.find('.input_marceditor').eq(0);
196     var index = subfield_a.attr('id');
197     elem.click(function() {
198         var popup = window.open("", "new_auth_popup",'fullscreen,toolbar=false,scrollbars=yes');
199         if(popup !== null) {
200             // Create a new form that will be POSTed in the new window
201             var form = $('<form>').attr({
202             method: 'post',
203             action: "/cgi-bin/koha/authorities/authorities.pl",
204             target: "new_auth_popup"
205             });
206             //add the authtypecode
207             form.append($('<input>').attr({
208                 type: 'hidden',
209                 name: 'authtypecode',
210                 value: heading.auth_type
211             }));
212             form.append($('<input>').attr({
213                 type: 'hidden',
214                 name: 'tagreport',
215                 value: heading.tag_to_report
216             }));
217             form.append($('<input>').attr({
218                 type: 'hidden',
219                 name: 'tagbiblio',
220                 value: heading.tag
221             }));
222             form.append($('<input>').attr({
223                 type: 'hidden',
224                 name: 'index',
225                 value: index
226             }));
227             $('.tag[id^=tag_' + heading.tag + '_]').eq(tag_index).find(':input').each(function(){
228                 form.append($('<input>').attr({
229                     type: 'hidden',
230                     name: this.name.split('_',4).join(''),
231                     value: $(this).val()
232                 }));
233             });
234             $('body').append(form);
235             form.submit();
236             form.remove();
237         }
238         return false;
239     });
240
241 }
242
243 /**
244  * Updates the authid for every heading field
245  * Adds visual feedback for the changes made on the form.
246  */
247 function updateHeadingLinks(links) {
248     var current_tag = '';
249     var tag_index = 0;
250
251     // Delete the old message dialog and create a new one
252     $('#autolinker_dialog').remove();
253     var message_dialog = $('<div id="autolinker_dialog" class="dialog message"><strong>' + _("Automatic authority link results:") + '</strong><ul></ul></div>');
254     var message_dialog_ul = message_dialog.find('ul');
255
256     $.each(links, function(index, heading) {
257         if(current_tag == heading.tag) {
258             tag_index++;
259         }
260         else {
261             current_tag = heading.tag;
262             tag_index = 0;
263         }
264
265         // Find the $9 field to update
266         var tag_subfield_line = $('.subfield_line[id^=subfield' + heading.tag + '9]').eq(tag_index);
267         if( tag_subfield_line.length < 1 ){ return; }
268
269         var subfield = tag_subfield_line.find('.input_marceditor').eq(0);
270         subfield.removeClass("matching_authority_field no_matching_authority_field");
271
272         // Delete the old status if one exists
273         tag_subfield_line.children('.subfield_status').remove();
274
275         // If the field wasn't modified. Skip it.
276         if(heading.status == 'UNCHANGED') {
277             return;
278         }
279
280
281         // Make the subfield line visible and update its value
282         tag_subfield_line.show();
283         subfield.val(heading.authid);
284
285         // Add the new status
286         var image = '<i class="fa fa-close subfield_status no_matching_authority" </i> ';
287         var message = '';
288         var field_class = 'no_matching_authority_field';
289         switch(heading.status) {
290             case 'LOCAL_FOUND':
291                 image = '<i class="fa fa-check subfield_status matching_authority"</i> ';
292                 message = _("A matching authority was found in the local database.");
293                 field_class = 'matching_authority_field';
294                 break;
295             case 'CREATED':
296                 image = '<i class="fa fa-check subfield_status matching_authority"></i> ';
297                 message = _("No matching authority found. A new authority was created automatically.");
298                 field_class = 'matching_authority_field';
299                 break;
300             case 'MULTIPLE_MATCH':
301                 message = _("More than one local match found. Possibly a duplicate authority!");
302                 break;
303             case 'NONE_FOUND':
304                 message = _("No matching authority found.");
305                 break;
306             default:
307                 message = heading.status;
308                 break;
309         }
310
311         subfield[0].classList.add(field_class);
312         tag_subfield_line.find('i').each(function() {
313             this.remove();
314         });
315         tag_subfield_line.append(image);
316
317         // Add the message to the dialog
318         message_dialog_ul.append('<li><strong>' + heading.tag + '</strong> - ' + message + '</li>');
319
320         // Add a link to create a new authority if none was found
321         if(heading.status == 'NONE_FOUND' && tag_subfield_line.find('i').length == 1) {
322             addCreateAuthorityButton(tag_subfield_line, heading , tag_index);
323         }
324     });
325
326     if(message_dialog.find('li').length == 0) {
327         message_dialog_ul.append("<li>" + _("No authority link was changed.") + "</li>");
328     }
329     $('#addbibliotabs').before(message_dialog);
330 }
331
332 /**
333  * Use an ajax request to automatically find authority links for the current record
334  */
335 function AutomaticLinker() {
336     // Show the Loading overlay
337     $("#loading").show();
338
339     // Remove fields that are completely empty
340     $('#f').find('.tag').each(function() {
341         var empty = true;
342         $(this).find('.input_marceditor').each(function() {
343             if($(this).val() != '') {
344                 empty = false;
345                 return false;
346             }
347         });
348         if(empty) {
349             UnCloneField($(this).attr('id'));
350         }
351     });
352
353     // Get all the form values to post via AJAX
354     var form_data = {};
355     $('#f').find(':input').each(function(){
356         form_data[this.name] = $(this).val();
357     });
358     delete form_data[''];
359
360     // Send the data to automatic_linker.pl
361     $.ajax({
362         url:'/cgi-bin/koha/svc/cataloguing/automatic_linker.pl',
363         type:'post',
364         data: form_data,
365         dataType: 'json',
366         error: function(xhr) {
367             alert("Error : \n" + xhr.responseText);
368         },
369         success: function(json) {
370             switch(json.status) {
371                 case 'UNAUTHORIZED':
372                     alert(_("Error : You do not have the permissions necessary to use this functionality."));
373                     break;
374                 case 'OK':
375                     updateHeadingLinks(json.links);
376                     break;
377             }
378         },
379         complete: function() {
380             $("#loading").hide();
381         }
382     });
383 }
384
385
386 function PopupMARCFieldDoc(field) {
387     [% IF Koha.Preference('marcfielddocurl') %]
388         var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','&quot;') | html %]";
389         docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
390         docurl = docurl.replace("{FIELD}", ""+field);
391         docurl = docurl.replace("{LANG}", "[% lang | html %]");
392         window.open(docurl);
393     [% ELSIF ( marcflavour == 'MARC21' ) %]
394         _MARC21FieldDoc(field);
395     [% ELSIF ( marcflavour == 'UNIMARC' ) %]
396         _UNIMARCFieldDoc(field);
397     [% END %]
398 }
399     function confirmnotdup(redirect){
400         $("#confirm_not_duplicate").attr("value","1");
401         $("#redirect").attr("value",redirect);
402         Check();
403     }
404
405     function Dopop(link,i) {
406         defaultvalue = document.getElementById(i).value;
407         window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
408     }
409
410     /**
411      * this function open a popup to search on z3950 server.
412      */
413     function PopupZ3950() {
414         var strQuery = GetZ3950Terms();
415         if(strQuery){
416             window.open("/cgi-bin/koha/cataloguing/z3950_search.pl?biblionumber=[% biblionumber | html %]"+strQuery,"z3950search",'width=740,height=450,location=yes,toolbar=no,scrollbars=yes,resize=yes');
417         }
418     }
419
420     function PopupMARCFieldDoc(field) {
421         [% IF Koha.Preference('marcfielddocurl') %]
422             var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','&quot;') | html %]";
423             docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
424             docurl = docurl.replace("{FIELD}", ""+field);
425             docurl = docurl.replace("{LANG}", "[% lang | html %]");
426             window.open(docurl);
427         [% ELSIF ( marcflavour == 'MARC21' ) %]
428             _MARC21FieldDoc(field);
429         [% ELSIF ( marcflavour == 'UNIMARC' ) %]
430             _UNIMARCFieldDoc(field);
431         [% END %]
432     }
433
434     function _MARC21FieldDoc(field) {
435         if(field == 0) {
436             window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
437         } else if (field >= 90 && field <= 99 ){
438             window.open("http://www.loc.gov/marc/bibliographic/bd09x.html");
439         } else if (field >= 590 && field <= 599 ){
440             window.open("http://www.loc.gov/marc/bibliographic/bd59x.html");
441         } else if (field >= 690 && field <= 699 ){
442             window.open("http://www.loc.gov/marc/bibliographic/bd69x.html");
443         } else if (field < 900) {
444             window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
445         } else {
446             window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
447         }
448     }
449
450     function _UNIMARCFieldDoc(field) {
451         /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
452            seems to be the only version available that can be linked to per tag.  More recent
453            versions of the UNIMARC standard are available on the IFLA website only as
454            PDFs!
455         */
456         var url;
457         if (field == 0) {
458             url = "http://archive.ifla.org/VI/3/p1996-1/uni.htm";
459         } else {
460             var first = field.substring(0,1);
461             url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#";
462             if (first == 0) url = url + "b";
463             url = first == 9
464                   ? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm"
465                   : url + field;
466         }
467         window.open(url);
468     }
469
470     /*
471      * Functions to hide/show marc docs and tags links
472      */
473
474     function toggleMARCdocLinks(flag){
475         if( flag === true ){
476             $(".marcdocs").show();
477             Cookies.set("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
478             $("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
479         } else {
480             $(".marcdocs").hide();
481             Cookies.set("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
482             $("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
483         }
484     }
485
486     function toggleMARCTagLinks(flag){
487         if( flag === true ){
488             $(".tagnum").show();
489             $(".subfieldcode").show();
490             Cookies.set("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
491             $("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
492         } else {
493             $(".tagnum").hide();
494             $(".subfieldcode").hide();
495             Cookies.set("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
496             $("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
497         }
498     }
499
500     /**
501      * check if mandatory/important subfields are written
502      * @param mandatory true to check for mandatories, false for importants
503      */
504     function AreFieldsNotOk (mandatory = true) {
505         var fields = new Array();
506         var subfields = new Array();
507         var tab = new Array();
508         var label = new Array();
509         var flag=0;
510         var tabflag= new Array();
511         var StrAlert = "";
512         var notFilledClass = "subfield_not_filled";
513
514         if (mandatory) {
515             [% FOREACH BIG_LOO IN BIG_LOOP %]
516                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
517                     [% IF ( innerloo.mandatory ) %]
518                         fields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
519                     [% END %]
520                     [% FOREACH subfield_loo IN innerloo.subfield_loop %]
521                         [% IF ( subfield_loo.mandatory ) %]subfields.push("[% subfield_loo.id | html %]");
522                             tab.push("[% BIG_LOO.number | html %]");
523                             label.push("[% subfield_loo.marc_lib | $raw %]");
524                         [% END %]
525                     [% END %]
526                 [% END %]
527             [% END %]
528             StrAlert = _("Can't save this record because the following field aren't filled:");
529         } else {
530             [% FOREACH BIG_LOO IN BIG_LOOP %]
531                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
532                     [% IF ( innerloo.important ) %]
533                     fields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
534                     [% END %]
535                     [% FOREACH subfield_loo IN innerloo.subfield_loop %]
536                         [% IF ( subfield_loo.important ) %]subfields.push("[% subfield_loo.id | html %]");
537                             tab.push("[% BIG_LOO.number | html %]");
538                             label.push("[% subfield_loo.marc_lib | $raw %]");
539                         [% END %]
540                     [% END %]
541                 [% END %]
542             [% END %]
543             StrAlert = _("A few important fields are not filled:");
544             notFilledClass = "important_subfield_not_filled";
545         }
546
547         StrAlert += "\n\n";
548         for(var i=0,len=subfields.length; i<len ; i++){
549             var tag=subfields[i].substr(4,3);
550             var subfield=subfields[i].substr(17,1);
551             var tagnumber=subfields[i].substr(19,subfields[i].lastIndexOf("_")-19);
552             if (tabflag[tag+subfield+tagnumber] ==  null) {
553                 tabflag[tag+subfield+tagnumber]=new Array();
554                 tabflag[tag+subfield+tagnumber][0]=0;
555             }
556             if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(subfields[i]) != null && ! document.getElementById(subfields[i]).value || document.getElementById(subfields[i]) == null)){
557                 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
558
559                 var elt = document.getElementById(subfields[i]);
560                 if ( elt.nodeName == 'SELECT' ) {
561                     $(elt).siblings('.select2').find("span[role='combobox']").addClass(notFilledClass);
562                 } else {
563                     elt.setAttribute('class','input_marceditor noEnterSubmit ' + notFilledClass);
564                 }
565                 $('#' + subfields[i]).focus();
566                 tabflag[tag+subfield+tagnumber][1]=label[i];
567                 tabflag[tag+subfield+tagnumber][2]=tab[i];
568             } else {
569                 tabflag[tag+subfield+tagnumber][0] = 1;
570             }
571         }
572         for (var tagsubfieldid in tabflag){
573             if (tabflag[tagsubfieldid][0]==0){
574                 var tag=tagsubfieldid.substr(0,3);
575                 var subfield=tagsubfieldid.substr(3,1);
576                 StrAlert += "\t* "+_("tag %s subfield %s %s in tab %s").format(tag, subfield, tabflag[tagsubfieldid][1], tabflag[tagsubfieldid][2]) + "\n";
577                 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
578                 flag=1;
579             }
580         }
581
582         /* Check for mandatories/importants field(not subfields) */
583         for(var i=0,len=fields.length; i<len; i++){
584             isempty  = true;
585             arr      = fields[i];
586             divid    = "tag_" + arr[0] + "_" + arr[1];
587             varegexp = new RegExp("^tag_" + arr[0] + "_code_");
588
589             if(parseInt(arr[0]) >= 10){
590                 elem = document.getElementById(divid);
591                 eleminputs = elem.getElementsByTagName('input');
592
593                 for(var j=0,len2=eleminputs.length; j<len2; j++){
594
595                     if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
596                         inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
597
598                         for( var k=0; k<len2; k++){
599                             if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
600                                 isempty = false
601                             }
602                         }
603
604                         elemselect = elem.getElementsByTagName('select');
605                         for( var k=0; k<elemselect.length; k++){
606                             if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
607                                 isempty = false
608                             }
609                         }
610                     }
611                 }
612
613                 elemtextareas = elem.getElementsByTagName('textarea');
614                 for(var j=0,len2=elemtextareas.length; j<len2; j++){
615                     // this bit assumes that the only textareas in this context would be for subfields
616                     if (elemtextareas[j].value) {
617                         isempty = false;
618                     }
619                 }
620             } else {
621                 isempty = false;
622             }
623
624             if(isempty){
625                 flag = 1;
626                 StrAlert += "\t* ";
627                 if (mandatory) {
628                     StrAlert += _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]);
629                 } else {
630                     StrAlert += _("Field %s is important, at least one of its subfields must be filled.").format(arr[0]);
631                 }
632                 StrAlert += "\n";
633             }
634
635         }
636
637         if(flag){
638             return StrAlert;
639         } else {
640             return flag;
641         }
642     }
643
644     /**
645      *
646      *
647      */
648     function Check(){
649         var StrAlert = AreFieldsNotOk();
650         if( ! StrAlert ){
651             var StrWarning = AreFieldsNotOk(false);
652             if (StrWarning){
653                 StrWarning += "\n" + _("Are you sure you want to save?");
654                 var r=confirm(StrWarning);
655                 if (! r){
656                     return false;
657                 }
658             }
659             document.f.submit();
660             return true;
661         } else {
662             alert(StrAlert);
663             return false;
664         }
665     }
666
667     /**
668      * check if z3950 mandatories are set or not
669      */
670     function GetZ3950Terms(){
671         var frameworkcode = document.getElementById("frameworkcode").value;
672         var strQuery = "&frameworkcode=" + encodeURIComponent(frameworkcode);
673         var mandatories = new Array();
674         var mandatories_label = new Array();
675         [% FOREACH BIG_LOO IN BIG_LOOP %]
676             [% FOREACH innerloo IN BIG_LOO.innerloop %]
677                 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
678                     [% IF ( subfield_loo.z3950_mandatory ) %]
679                         mandatories.push("[% subfield_loo.id | html %]");
680                         mandatories_label.push("[% subfield_loo.z3950_mandatory | html %]");
681                     [% END %]
682                 [% END %]
683             [% END %]
684         [% END %]
685
686         for(var i=0,len=mandatories.length; i<len ; i++){
687             var field_value = document.getElementById(mandatories[i]).value;
688             if( field_value ){
689                 strQuery += "&"+encodeURIComponent(mandatories_label[i])+"="+encodeURIComponent(field_value);
690             }
691         }
692         return strQuery;
693     }
694
695     function Changefwk() {
696         var f = document.f;
697         f.op.value = "[% op | html %]";
698         f.biblionumber.value = "[% biblionumberdata | html %]";
699         f.changed_framework.value = "changed";
700         f.submit();
701     }
702
703 </script>
704 [% Asset.css("css/addbiblio.css") | $raw %]
705 </head>
706 <body id="cat_addbiblio" class="cat">
707
708    <div id="loading">
709        <div>Loading, please wait...</div>
710    </div>
711
712     [% INCLUDE 'header.inc' %]
713
714     <nav id="breadcrumbs" aria-label="Breadcrumb" class="breadcrumb">
715         <ol>
716             <li>
717                 <a href="/cgi-bin/koha/mainpage.pl">Home</a>
718             </li>
719             <li>
720                 <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>
721             </li>
722             <li>
723                 <a href="#" aria-current="page">
724                     [% IF ( biblionumber ) %]
725                         Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
726                     [% ELSE %]
727                         Add MARC record
728                     [% END %]
729                 </a>
730             </li>
731         </ol>
732     </nav>
733
734     <div class="main container-fluid">
735         <div class="row">
736             <div class="col-md-10 col-md-offset-1">
737
738                 <h1>
739                     [% IF ( biblionumber ) %]
740                         Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
741                     [% ELSE %]
742                         Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
743                     [% END %]
744                 </h1>
745
746                 [% UNLESS ( number ) %]
747                     <!-- show duplicate warning on tab 0 only -->
748                     [% IF ( duplicatebiblionumber ) %]
749                         <div class="dialog alert">
750                             <h3>Duplicate record suspected</h3>
751                             <p>Is this a duplicate of <a href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber | uri %]" onclick="openWindow('/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% duplicatebiblionumber | uri %]&amp;popup=1', 'DuplicateBiblio','800','600'); return false;">[% duplicatetitle | html %] <i class="fa fa-window-restore"></i></a> ?</p>
752                             [% IF ( CAN_user_editcatalogue_edit_items ) %]
753                                 <form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
754                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
755                                     <button type="submit" class="new"><i class="fa fa-fw fa-pencil"></i> Yes, edit existing items</button>
756                                 </form>
757                             [% ELSE %]
758                                 <form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
759                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
760                                     <input type="submit" value="Yes: View existing items" />
761                                 </form>
762                             [% END %]
763                             <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
764                                 [% IF ( CAN_user_editcatalogue_edit_items ) %]
765                                     <button type="submit" class="new" onclick="confirmnotdup('items'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
766                                 [% ELSE %]
767                                     <button type="submit" class="new" onclick="confirmnotdup('view'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
768                                 [% END %]
769                             </form>
770                         </div> <!-- /.dialog.alert -->
771                     [% END # /IF duplicatebiblionumber %]
772                 [% END # /UNLESS number %]
773
774                 [% IF ( done ) %]
775                     <script>
776                         opener.document.forms['f'].biblionumber.value=[% biblionumber | html %];
777                         opener.document.forms['f'].title.value='[% title | html %]';
778                         window.close();
779                     </script>
780                 [% ELSE %]
781                     <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
782                         <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
783                         <input type="hidden" value="" id="current_tab" name="current_tab" />
784                         <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
785                 [% END %]
786
787                 <div id="toolbar" class="btn-toolbar">
788                     [% IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) %]
789                         [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
790                             <!-- Action is under fast cataloging - Save button redirecting to items -->
791                             <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
792                         [% ELSE %]
793                             <!-- Not using fast cataloging - Display split menu -->
794                             <div class="btn-group">
795                                 <button class="btn btn-default" id="saverecord"><i class="fa fa-save"></i> Save</button>
796                                 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
797                                 <span class="caret"></span>
798                                 </button>
799                                 <ul class="dropdown-menu">
800                                     <li><a id="saveandview" href="#">Save and view record</a></li>
801                                     <li><a id="saveanditems" href="#">Save and edit items</a></li>
802                                     <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
803                                 </ul>
804                             </div>
805                         [% END %]
806                     [% ELSE %]
807                         <!-- User cannot edit items - single button redirecting to view -->
808                         <div class="btn-group"><a href="#" id="saveandview" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
809                     [% END # /IF CAN_user_editcatalogue_edit_items %]
810
811                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
812                         [% IF biblionumber %]
813                             <div class="btn-group"><a class="btn btn-default" href="#" id="z3950search"><i class="fa fa-search"></i> Replace record via Z39.50/SRU search</a></div>
814                         [% ELSE %]
815                             <div class="btn-group"><a class="btn btn-default" href="#" id="z3950search"><i class="fa fa-search"></i> Z39.50/SRU search</a></div>
816                         [% END %]
817                         [% IF ( CAN_user_editauthorities ) %]
818                             <div class="btn-group"><a class="btn btn-default" href="#" id="linkerbutton"><i class="fa fa-refresh"></i> Link authorities automatically</a></div>
819                         [% END %]
820                     [% END %]
821
822                     <div class="btn-group">
823                         <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button>
824                         <ul id="settings-menu" class="dropdown-menu">
825                             [% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %]
826                                 <li><a href="#" id="switcheditor">Switch to advanced editor</a></li>
827                             [% END %]
828                             [% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %]
829                                 <li>
830                                     <a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a>
831                                 <li>
832                                     <a href="#" id="marcTagsSelect"><i class="fa fa-check-square-o"></i> Show tags</a>
833                                 </li>
834                             [% END %]
835                             <li class="dropdown-header">Change framework</li>
836                             <li>
837                                 <a href="#" class="change-framework" data-frameworkcode="">
838                                     [% IF ( frameworkcode ) %]
839                                        <i class="fa fa-fw">&nbsp;</i>
840                                     [% ELSE %]
841                                         <i class="fa fa-fw fa-check"></i>
842                                     [% END %]
843                                     Default
844                                 </a>
845                             </li>
846                             [% FOREACH framework IN frameworks%]
847                                 <li>
848                                     <a href="#" class="change-framework" data-frameworkcode="[% framework.frameworkcode | html %]">
849                                         [% IF framework.frameworkcode == frameworkcode %]
850                                             <i class="fa fa-fw fa-check"></i>
851                                         [% ELSE %]
852                                             <i class="fa fa-fw">&nbsp;</i>
853                                         [% END %]
854                                         [% framework.frameworktext | html %]
855                                     </a>
856                                 </li>
857                             [% END %]
858                         </ul> <!-- /#settings-menu -->
859                     </div> <!-- /.btn-group -->
860                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
861                         [% IF (biblionumber) %]
862                             [% IF ( BiblioDefaultViewmarc ) %]
863                                 <div class="btn-group">
864                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
865                                 </div>
866                             [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
867                                 <div class="btn-group">
868                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
869                                 </div>
870                             [% ELSIF ( BiblioDefaultViewisbd ) %]
871                                 <div class="btn-group">
872                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
873                                 </div>
874                             [% ELSE %]
875                                 <div class="btn-group">
876                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
877                                 </div>
878                             [% END %]
879                         [% ELSE %]
880                             <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
881                         [% END %]
882                     [% END # /UNLESS circborrowernumber %]
883                     <div class="toolbar-tabs-container">
884                         [% IF ( BIG_LOOP.size > 1 ) %]
885                             <ul class="toolbar-tabs">
886                                 [%- FOREACH BIG_LOO IN BIG_LOOP -%]
887                                     [% IF loop.first %]
888                                         <li class="selected">
889                                     [% ELSE %]
890                                         <li>
891                                     [% END %]
892                                         <a data-tabid="[% BIG_LOO.number | html %]" href="#tab[% BIG_LOO.number | html %]XX">[% BIG_LOO.number | html %]</a>
893                                     </li>
894                                 [%- END -%]
895                             </ul>
896                         [% END %]
897                         <ul class="tag_anchors_list">
898                             [% FOREACH BIG_LOO IN BIG_LOOP %]
899                                 [% IF loop.first %][% SET tab_selected = "tab_selected" %][% ELSE %][% SET tab_selected = "" %][% END %]
900                                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
901                                     [% IF ( innerloo.tag ) %]
902                                         <li class="tag_anchors tag_anchors_[% BIG_LOO.number | html %] [% tab_selected | html %]">
903                                             <a class="tag_anchor" id="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" title="tag_anchor_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]" href="#div_indicator_tag_[% innerloo.tag | uri %]_[% innerloo.index | uri %][% innerloo.random | uri %]">[% innerloo.tag | uri %]</a>
904                                         </li>
905                                     [% END %]
906                                 [% END %]
907                             [% END %]
908                         </ul>
909                     </div>
910                 </div> <!-- /#toolbar.btn-toolbar -->
911
912                 [% IF bib_doesnt_exist %]
913                     <div class="dialog alert">
914                         The record you are trying to edit doesn't exist.<br>
915                         <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?frameworkcode=">Add a new record</a> or <a href="/cgi-bin/koha/catalogue/search.pl">do a catalog search</a>.
916                     </div>
917                 [% END %]
918
919                 [% IF ( popup ) %]
920                         <input type="hidden" name="mode" value="popup" />
921                 [% END %]
922                 <input type="hidden" name="op" value="addbiblio" />
923                 <input type="hidden" id="frameworkcode" name="frameworkcode" value="[% frameworkcode | html %]" />
924                 <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
925                 <input type="hidden" name="breedingid" value="[% breedingid | html %]" />
926                 <input type="hidden" name="changed_framework" value="" />
927
928                 <div id="addbibliotabs" class="toptabs numbered">
929                     <ul>
930                         [% FOREACH BIG_LOO IN BIG_LOOP %]
931                             <li><a href="#tab[% BIG_LOO.number | uri %]XX">[% BIG_LOO.number | html %]</a></li>
932                         [% END %]
933                     </ul>
934
935                     [% FOREACH BIG_LOO IN BIG_LOOP %]
936                         <div id="tab[% BIG_LOO.number | html %]XX">
937
938                             [% IF ( BIG_LOOP.size > 1 ) %]
939                                 <h3>Section [% BIG_LOO.number | html %]</h3>
940                             [% END %]
941                             [% previous = "" %]
942                             [% FOREACH innerloo IN BIG_LOO.innerloop %]
943                                 [% IF ( innerloo.tag ) %]
944                                 [% IF innerloo.tag != previous %]
945                                     [% IF previous != "" %]
946                                         </ul>
947                                     [% END %]
948                                     [% previous = innerloo.tag %]
949                                     [% IF ( innerloo.repeatable ) %]
950                                         <ul class="sortable_field">
951                                     [% ELSE %]
952                                         <ul>
953                                     [% END %]
954                                 [% END %]
955                                     [% IF ( innerloo.repeatable ) %]
956                                         <li class="tag sortable_tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
957                                     [% ELSE %]
958                                         <li class="tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
959                                     [% END %]
960                                         <div class="tag_title" id="div_indicator_tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
961                                             [% IF advancedMARCEditor %]
962                                                 <a href="#" tabindex="1" class="tagnum" title="[% innerloo.tag_lib | html %] - Click to Expand this Tag" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;">[% innerloo.tag | html %]</a>
963                                             [% ELSE %]
964                                                 <span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span>
965                                                 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;">&nbsp;?</a>[% END %]
966                                             [% END %]
967
968                                             [% IF ( innerloo.fixedfield ) %]
969                                                 <input type="text"
970                                                     tabindex="1"
971                                                     class="indicator flat"
972                                                     style="display:none;"
973                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
974                                                     size="1"
975                                                     maxlength="1"
976                                                     value="[% innerloo.indicator1 | html %]" />
977                                                 <input type="text"
978                                                     tabindex="1"
979                                                     class="indicator flat"
980                                                     style="display:none;"
981                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
982                                                     size="1"
983                                                     maxlength="1"
984                                                     value="[% innerloo.indicator2 | html %]" />
985                                             [% ELSE %]
986                                                 <input type="text"
987                                                     tabindex="1"
988                                                     class="indicator flat"
989                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
990                                                     size="1"
991                                                     maxlength="1"
992                                                     value="[% innerloo.indicator1 | html %]" />
993                                                 <input type="text"
994                                                     tabindex="1"
995                                                     class="indicator flat"
996                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
997                                                     size="1"
998                                                     maxlength="1"
999                                                     value="[% innerloo.indicator2 | html %]" />
1000                                             [% END # /IF innerloo.fixedfield %] -
1001
1002                                             [% UNLESS advancedMARCEditor %]
1003                                                 <a href="#" tabindex="1" class="expandfield" onclick="ExpandField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Click to Expand this Tag">[% innerloo.tag_lib | html %]</a>
1004                                             [% END %]
1005
1006                                             <span class="field_controls">
1007                                                 [% IF ( innerloo.repeatable ) %]
1008                                                     <a href="#" tabindex="1" class="buttonPlus" onclick="CloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]','0','[% advancedMARCEditor | html %]'); return false;" title="Repeat this Tag">
1009                                                         <img src="[% interface | html %]/[% theme | html %]/img/repeat-tag.png" alt="Repeat this Tag" />
1010                                                     </a>
1011                                                 [% END %]
1012                                                 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Delete this Tag">
1013                                                     <img src="[% interface | html %]/[% theme | html %]/img/delete-tag.png" alt="Delete this Tag" />
1014                                                 </a>
1015                                             </span> <!-- /.field_controls -->
1016                                         </div> <!-- /div.tag_title -->
1017
1018                                         <ul class="sortable_subfield">
1019                                         [% FOREACH subfield_loo IN innerloo.subfield_loop %]
1020                                             <!--  One line on the marc editor -->
1021                                             <li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]">
1022                                                 <div class="subfieldcode">
1023                                                     <input type="text"
1024                                                             title="[% subfield_loo.marc_lib | $raw %]"
1025                                                             style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
1026                                                             name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]"
1027                                                             value="[% subfield_loo.subfield | html %]"
1028                                                             size="1"
1029                                                             maxlength="1"
1030                                                             class="flat"
1031                                                             tabindex="0" />
1032                                                 </div>
1033                                                 [% UNLESS advancedMARCEditor %]
1034                                                     [% IF ( subfield_loo.mandatory ) %]
1035                                                         <div class="subfield subfield_mandatory">
1036                                                     [% ELSIF ( subfield_loo.important ) %]
1037                                                         <div class="subfield subfield_important">
1038                                                     [% ELSE %]
1039                                                         <div class="subfield">
1040                                                     [% END %]
1041                                                         [% IF ( subfield_loo.fixedfield ) %]
1042                                                             <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" style="display:none;" class="labelsubfield">
1043                                                         [% ELSE %]
1044                                                             <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield">
1045                                                         [% END %]
1046                                                         [% subfield_loo.marc_lib | $raw %]
1047                                                         </label>
1048                                                     </div>
1049                                                 [% END %]
1050
1051                                                 [% SET mv = subfield_loo.marc_value %]
1052                                                 <div id="field_marceditor[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]" class="field_marceditor">
1053                                                     [% IF ( mv.type == 'text' ) %]
1054                                                         [% IF ( mv.readonly == 1 ) %]
1055                                                             <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor readonly" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" readonly="readonly" />
1056                                                         [% ELSE %]
1057                                                             <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" />
1058                                                         [% END %]
1059
1060                                                     [% ELSIF ( mv.type == 'text_complex' ) %]
1061                                                         <input type="text" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" value="[%- mv.value | html -%]" class="input_marceditor framework_plugin" tabindex="1" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" />
1062                                                         [% mv.javascript | $raw %]
1063                                                     [% ELSIF ( mv.type == 'hidden' ) %]
1064                                                         <input tabindex="1" type="hidden" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" size="[%- mv.size | html -%]" maxlength="[%- mv.maxlength | html -%]" value="[%- mv.value | html -%]" />
1065                                                     [% ELSIF ( mv.type == 'textarea' ) %]
1066                                                         <textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea>
1067                                                     [% ELSIF ( mv.type == 'select' ) %]
1068                                                     [% IF mv.category AND CAN_user_parameters_manage_auth_values %]
1069                                                         <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor" id="[%- mv.id | html -%]" data-category="[% mv.category | html %]">
1070                                                     [% ELSE %]
1071                                                         <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor select2" id="[%- mv.id | html -%]">
1072                                                     [% END %]
1073                                                         [% FOREACH aval IN mv.values %]
1074                                                             [% IF aval == mv.default %]
1075                                                             <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
1076                                                             [% ELSE %]
1077                                                             <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
1078                                                             [% END %]
1079                                                         [% END %]
1080                                                         </select>
1081                                                     [% END  # /IF (mv.type...) %]
1082                                                 </div>
1083                                                 [% IF ( subfield_loo.mandatory ) %]
1084                                                     <div class="subfield_loop_mandatory">
1085                                                         <span class="required">Required</span>
1086                                                     </div>
1087                                                 [% ELSIF ( subfield_loo.important ) %]
1088                                                     <div class="subfield_loop_mandatory">
1089                                                         <span class="important">Important</span>
1090                                                     </div>
1091                                                 [% END %]
1092                                                 <div class="subfield_controls">
1093                                                     [% IF ( mv.type == 'text' ) %]
1094                                                         [% IF ( mv.authtype ) %]
1095                                                             <a href="#" class="buttonDot tag_editor" onclick="openAuth(this.parentNode.parentNode.getElementsByTagName('input')[1].id,'[%- mv.authtype | html -%]','biblio'); return false;" tabindex="1" title="Tag editor">Tag editor</a>
1096                                                         [% END %]
1097                                                     [% ELSIF ( mv.type == 'text_complex' ) %]
1098                                                             [% IF mv.noclick %]
1099                                                                 <span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span>
1100                                                             [% ELSE %]
1101                                                                 [% IF mv.plugin == "upload.pl" %]
1102                                                                     <a href="#" id="buttonDot_[% mv.id | html %]" class="tag_editor upload framework_plugin" tabindex="1"><i class="fa fa-upload" aria-hidden="true"></i> Upload</a>
1103                                                                 [% ELSE %]
1104                                                                     <a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a>
1105                                                                 [% END %]
1106                                                             [% END %]
1107                                                         </span>
1108                                                     [% END %]
1109                                                     [% IF ( subfield_loo.repeatable ) %]
1110                                                         <a href="#" class="buttonPlus" tabindex="1" onclick="CloneSubfield('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]','[% advancedMARCEditor | html %]'); return false;">
1111                                                             <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
1112                                                         </a>
1113                                                         <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]'); return false;">
1114                                                             <img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
1115                                                         </a>
1116                                                     [% END %]
1117                                                 </div>
1118                                             </li> <!-- /.subfield_line -->
1119                                             <!-- End of the line -->
1120                                         [% END # /FOREACH subfield_loop %]
1121                                         </ul> <!--  /.sortable_subfield -->
1122                                     </li> <!-- /.tag.clearfix -->
1123                                 [% END %]<!-- if innerloo.tag -->
1124                             [% END # /FOREACH BIG_LOO.innerloop %]
1125                             </ul> <!--  /.sortable_field -->
1126                         </div> <!-- /#tabXXX -->
1127                     [% END # /FOREACH BIG_LOOP %]
1128                 </div><!-- /#addbibliotabs -->
1129
1130                 [%# Fields for fast cataloging %]
1131                 <input type="hidden" name="barcode" value="[% barcode | html %]" />
1132                 <input type="hidden" name="branch" value="[% branch | html %]" />
1133                 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber | html %]" />
1134                 <input type="hidden" name="stickyduedate" value="[% stickyduedate | html %]" />
1135                 <input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
1136                 [%# End of fields for fast cataloging %]
1137             </form> <!-- /name=f -->
1138
1139             [% INCLUDE 'modals/cataloguing_create_av.inc' %]
1140
1141         </div> <!-- /.col-md-10.col-md-offset-1 -->
1142     </div> <!-- /.row -->
1143
1144 [% INCLUDE 'intranet-bottom.inc' %]