a76c73ac57f145c9a95e285559916bd774507f49
[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.children('.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.children('.input_marceditor').eq(0);
270
271         // Delete the old status if one exists
272         tag_subfield_line.children('.subfield_status').remove();
273
274         // If the field wasn't modified. Skip it.
275         if(heading.status == 'UNCHANGED') {
276             return;
277         }
278
279
280         // Make the subfield line visible and update its value
281         tag_subfield_line.show();
282         subfield.val(heading.authid);
283
284         // Add the new status
285         var image = '<i class="fa fa-close no_matching_authority" </i> ';
286         var message = '';
287         var field_class = 'no_matching_authority_field';
288         switch(heading.status) {
289             case 'LOCAL_FOUND':
290                 image = '<i class="fa fa-check matching_authority"</i> ';
291                 message = _("A matching authority was found in the local database.");
292                 field_class = 'matching_authority_field';
293                 break;
294             case 'CREATED':
295                 image = '<i class="fa fa-check matching_authority"></i> ';
296                 message = _("No matching authority found. A new authority was created automatically.");
297                 field_class = 'matching_authority_field';
298                 break;
299             case 'MULTIPLE_MATCH':
300                 message = _("More than one local match found. Possibly a duplicate authority!");
301                 break;
302             case 'NONE_FOUND':
303                 message = _("No matching authority found.");
304                 break;
305             default:
306                 message = heading.status;
307                 break;
308         }
309
310         subfield[0].classList.add(field_class);
311         tag_subfield_line.find('i').each(function() {
312             this.remove();
313         });
314         tag_subfield_line.append(image);
315
316         // Add the message to the dialog
317         message_dialog_ul.append('<li><strong>' + heading.tag + '</strong> - ' + message + '</li>');
318
319         // Add a link to create a new authority if none was found
320         if(heading.status == 'NONE_FOUND' && tag_subfield_line.find('i').length == 1) {
321             addCreateAuthorityButton(tag_subfield_line, heading , tag_index);
322         }
323     });
324
325     if(message_dialog.find('li').length == 0) {
326         message_dialog_ul.append("<li>" + _("No authority link was changed.") + "</li>");
327     }
328     $('#addbibliotabs').before(message_dialog);
329 }
330
331 /**
332  * Use an ajax request to automatically find authority links for the current record
333  */
334 function AutomaticLinker() {
335     // Show the Loading overlay
336     $("#loading").show();
337
338     // Remove fields that are completely empty
339     $('#f').find('.tag').each(function() {
340         var empty = true;
341         $(this).find('.input_marceditor').each(function() {
342             if($(this).val() != '') {
343                 empty = false;
344                 return false;
345             }
346         });
347         if(empty) {
348             UnCloneField($(this).attr('id'));
349         }
350     });
351
352     // Get all the form values to post via AJAX
353     var form_data = {};
354     $('#f').find(':input').each(function(){
355         form_data[this.name] = $(this).val();
356     });
357     delete form_data[''];
358
359     // Send the data to automatic_linker.pl
360     $.ajax({
361         url:'/cgi-bin/koha/svc/cataloguing/automatic_linker.pl',
362         type:'post',
363         data: form_data,
364         dataType: 'json',
365         error: function(xhr) {
366             alert("Error : \n" + xhr.responseText);
367         },
368         success: function(json) {
369             switch(json.status) {
370                 case 'UNAUTHORIZED':
371                     alert(_("Error : You do not have the permissions necessary to use this functionality."));
372                     break;
373                 case 'OK':
374                     updateHeadingLinks(json.links);
375                     break;
376             }
377         },
378         complete: function() {
379             $("#loading").hide();
380         }
381     });
382 }
383
384
385 function PopupMARCFieldDoc(field) {
386     [% IF Koha.Preference('marcfielddocurl') %]
387         var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','&quot;') | html %]";
388         docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
389         docurl = docurl.replace("{FIELD}", ""+field);
390         docurl = docurl.replace("{LANG}", "[% lang | html %]");
391         window.open(docurl);
392     [% ELSIF ( marcflavour == 'MARC21' ) %]
393         _MARC21FieldDoc(field);
394     [% ELSIF ( marcflavour == 'UNIMARC' ) %]
395         _UNIMARCFieldDoc(field);
396     [% END %]
397 }
398     function confirmnotdup(redirect){
399         $("#confirm_not_duplicate").attr("value","1");
400         $("#redirect").attr("value",redirect);
401         Check();
402     }
403
404     function Dopop(link,i) {
405         defaultvalue = document.getElementById(i).value;
406         window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
407     }
408
409     /**
410      * this function open a popup to search on z3950 server.
411      */
412     function PopupZ3950() {
413         var strQuery = GetZ3950Terms();
414         if(strQuery){
415             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');
416         }
417     }
418
419     function PopupMARCFieldDoc(field) {
420         [% IF Koha.Preference('marcfielddocurl') %]
421             var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','&quot;') | html %]";
422             docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
423             docurl = docurl.replace("{FIELD}", ""+field);
424             docurl = docurl.replace("{LANG}", "[% lang | html %]");
425             window.open(docurl);
426         [% ELSIF ( marcflavour == 'MARC21' ) %]
427             _MARC21FieldDoc(field);
428         [% ELSIF ( marcflavour == 'UNIMARC' ) %]
429             _UNIMARCFieldDoc(field);
430         [% END %]
431     }
432
433     function _MARC21FieldDoc(field) {
434         if(field == 0) {
435             window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
436         } else if (field >= 90 && field <= 99 ){
437             window.open("http://www.loc.gov/marc/bibliographic/bd09x.html");
438         } else if (field >= 590 && field <= 599 ){
439             window.open("http://www.loc.gov/marc/bibliographic/bd59x.html");
440         } else if (field >= 690 && field <= 699 ){
441             window.open("http://www.loc.gov/marc/bibliographic/bd69x.html");
442         } else if (field < 900) {
443             window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
444         } else {
445             window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
446         }
447     }
448
449     function _UNIMARCFieldDoc(field) {
450         /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
451            seems to be the only version available that can be linked to per tag.  More recent
452            versions of the UNIMARC standard are available on the IFLA website only as
453            PDFs!
454         */
455         var url;
456         if (field == 0) {
457             url = "http://archive.ifla.org/VI/3/p1996-1/uni.htm";
458         } else {
459             var first = field.substring(0,1);
460             url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#";
461             if (first == 0) url = url + "b";
462             url = first == 9
463                   ? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm"
464                   : url + field;
465         }
466         window.open(url);
467     }
468
469     /*
470      * Functions to hide/show marc docs and tags links
471      */
472
473     function toggleMARCdocLinks(flag){
474         if( flag === true ){
475             $(".marcdocs").show();
476             Cookies.set("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
477             $("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
478         } else {
479             $(".marcdocs").hide();
480             Cookies.set("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
481             $("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
482         }
483     }
484
485     function toggleMARCTagLinks(flag){
486         if( flag === true ){
487             $(".tagnum").show();
488             $(".subfieldcode").show();
489             Cookies.set("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
490             $("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
491         } else {
492             $(".tagnum").hide();
493             $(".subfieldcode").hide();
494             Cookies.set("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
495             $("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
496         }
497     }
498
499     /**
500      * check if mandatory/important subfields are written
501      * @param mandatory true to check for mandatories, false for importants
502      */
503     function AreFieldsNotOk (mandatory = true) {
504         var fields = new Array();
505         var subfields = new Array();
506         var tab = new Array();
507         var label = new Array();
508         var flag=0;
509         var tabflag= new Array();
510         var StrAlert = "";
511         var notFilledClass = "subfield_not_filled";
512
513         if (mandatory) {
514             [% FOREACH BIG_LOO IN BIG_LOOP %]
515                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
516                     [% IF ( innerloo.mandatory ) %]
517                         fields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
518                     [% END %]
519                     [% FOREACH subfield_loo IN innerloo.subfield_loop %]
520                         [% IF ( subfield_loo.mandatory ) %]subfields.push("[% subfield_loo.id | html %]");
521                             tab.push("[% BIG_LOO.number | html %]");
522                             label.push("[% subfield_loo.marc_lib | $raw %]");
523                         [% END %]
524                     [% END %]
525                 [% END %]
526             [% END %]
527             StrAlert = _("Can't save this record because the following field aren't filled:");
528         } else {
529             [% FOREACH BIG_LOO IN BIG_LOOP %]
530                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
531                     [% IF ( innerloo.important ) %]
532                     fields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
533                     [% END %]
534                     [% FOREACH subfield_loo IN innerloo.subfield_loop %]
535                         [% IF ( subfield_loo.important ) %]subfields.push("[% subfield_loo.id | html %]");
536                             tab.push("[% BIG_LOO.number | html %]");
537                             label.push("[% subfield_loo.marc_lib | $raw %]");
538                         [% END %]
539                     [% END %]
540                 [% END %]
541             [% END %]
542             StrAlert = _("A few important fields are not filled:");
543             notFilledClass = "important_subfield_not_filled";
544         }
545
546         StrAlert += "\n\n";
547         for(var i=0,len=subfields.length; i<len ; i++){
548             var tag=subfields[i].substr(4,3);
549             var subfield=subfields[i].substr(17,1);
550             var tagnumber=subfields[i].substr(19,subfields[i].lastIndexOf("_")-19);
551             if (tabflag[tag+subfield+tagnumber] ==  null) {
552                 tabflag[tag+subfield+tagnumber]=new Array();
553                 tabflag[tag+subfield+tagnumber][0]=0;
554             }
555             if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(subfields[i]) != null && ! document.getElementById(subfields[i]).value || document.getElementById(subfields[i]) == null)){
556                 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
557
558                 var elt = document.getElementById(subfields[i]);
559                 if ( elt.nodeName == 'SELECT' ) {
560                     $(elt).siblings('.select2').find("span[role='combobox']").addClass(notFilledClass);
561                 } else {
562                     elt.setAttribute('class','input_marceditor noEnterSubmit ' + notFilledClass);
563                 }
564                 $('#' + subfields[i]).focus();
565                 tabflag[tag+subfield+tagnumber][1]=label[i];
566                 tabflag[tag+subfield+tagnumber][2]=tab[i];
567             } else {
568                 tabflag[tag+subfield+tagnumber][0] = 1;
569             }
570         }
571         for (var tagsubfieldid in tabflag){
572             if (tabflag[tagsubfieldid][0]==0){
573                 var tag=tagsubfieldid.substr(0,3);
574                 var subfield=tagsubfieldid.substr(3,1);
575                 StrAlert += "\t* "+_("tag %s subfield %s %s in tab %s").format(tag, subfield, tabflag[tagsubfieldid][1], tabflag[tagsubfieldid][2]) + "\n";
576                 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
577                 flag=1;
578             }
579         }
580
581         /* Check for mandatories/importants field(not subfields) */
582         for(var i=0,len=fields.length; i<len; i++){
583             isempty  = true;
584             arr      = fields[i];
585             divid    = "tag_" + arr[0] + "_" + arr[1];
586             varegexp = new RegExp("^tag_" + arr[0] + "_code_");
587
588             if(parseInt(arr[0]) >= 10){
589                 elem = document.getElementById(divid);
590                 eleminputs = elem.getElementsByTagName('input');
591
592                 for(var j=0,len2=eleminputs.length; j<len2; j++){
593
594                     if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
595                         inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
596
597                         for( var k=0; k<len2; k++){
598                             if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
599                                 isempty = false
600                             }
601                         }
602
603                         elemselect = elem.getElementsByTagName('select');
604                         for( var k=0; k<elemselect.length; k++){
605                             if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
606                                 isempty = false
607                             }
608                         }
609                     }
610                 }
611
612                 elemtextareas = elem.getElementsByTagName('textarea');
613                 for(var j=0,len2=elemtextareas.length; j<len2; j++){
614                     // this bit assumes that the only textareas in this context would be for subfields
615                     if (elemtextareas[j].value) {
616                         isempty = false;
617                     }
618                 }
619             } else {
620                 isempty = false;
621             }
622
623             if(isempty){
624                 flag = 1;
625                 StrAlert += "\t* ";
626                 if (mandatory) {
627                     StrAlert += _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]);
628                 } else {
629                     StrAlert += _("Field %s is important, at least one of its subfields must be filled.").format(arr[0]);
630                 }
631                 StrAlert += "\n";
632             }
633
634         }
635
636         if(flag){
637             return StrAlert;
638         } else {
639             return flag;
640         }
641     }
642
643     /**
644      *
645      *
646      */
647     function Check(){
648         var StrAlert = AreFieldsNotOk();
649         if( ! StrAlert ){
650             var StrWarning = AreFieldsNotOk(false);
651             if (StrWarning){
652                 StrWarning += "\n" + _("Are you sure you want to save?");
653                 var r=confirm(StrWarning);
654                 if (! r){
655                     return false;
656                 }
657             }
658             document.f.submit();
659             return true;
660         } else {
661             alert(StrAlert);
662             return false;
663         }
664     }
665
666     /**
667      * check if z3950 mandatories are set or not
668      */
669     function GetZ3950Terms(){
670         var frameworkcode = document.getElementById("frameworkcode").value;
671         var strQuery = "&frameworkcode=" + encodeURIComponent(frameworkcode);
672         var mandatories = new Array();
673         var mandatories_label = new Array();
674         [% FOREACH BIG_LOO IN BIG_LOOP %]
675             [% FOREACH innerloo IN BIG_LOO.innerloop %]
676                 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
677                     [% IF ( subfield_loo.z3950_mandatory ) %]
678                         mandatories.push("[% subfield_loo.id | html %]");
679                         mandatories_label.push("[% subfield_loo.z3950_mandatory | html %]");
680                     [% END %]
681                 [% END %]
682             [% END %]
683         [% END %]
684
685         for(var i=0,len=mandatories.length; i<len ; i++){
686             var field_value = document.getElementById(mandatories[i]).value;
687             if( field_value ){
688                 strQuery += "&"+encodeURIComponent(mandatories_label[i])+"="+encodeURIComponent(field_value);
689             }
690         }
691         return strQuery;
692     }
693
694     function Changefwk() {
695         var f = document.f;
696         f.op.value = "[% op | html %]";
697         f.biblionumber.value = "[% biblionumberdata | html %]";
698         f.changed_framework.value = "changed";
699         f.submit();
700     }
701
702 </script>
703 [% Asset.css("css/addbiblio.css") | $raw %]
704 </head>
705 <body id="cat_addbiblio" class="cat">
706
707    <div id="loading">
708        <div>Loading, please wait...</div>
709    </div>
710
711     [% INCLUDE 'header.inc' %]
712
713     <div id="breadcrumbs">
714         <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
715         <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo;
716         [% IF ( biblionumber ) %]
717             Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
718         [% ELSE %]
719             Add MARC record
720         [% END %]
721     </div>
722
723     <div class="main container-fluid">
724         <div class="row">
725             <div class="col-md-10 col-md-offset-1">
726
727                 <h1>
728                     [% IF ( biblionumber ) %]
729                         Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
730                     [% ELSE %]
731                         Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
732                     [% END %]
733                 </h1>
734
735                 [% UNLESS ( number ) %]
736                     <!-- show duplicate warning on tab 0 only -->
737                     [% IF ( duplicatebiblionumber ) %]
738                         <div class="dialog alert">
739                             <h3>Duplicate record suspected</h3>
740                             <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>
741                             [% IF ( CAN_user_editcatalogue_edit_items ) %]
742                                 <form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
743                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
744                                     <button type="submit" class="new"><i class="fa fa-fw fa-pencil"></i> Yes, edit existing items</button>
745                                 </form>
746                             [% ELSE %]
747                                 <form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
748                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
749                                     <input type="submit" value="Yes: View existing items" />
750                                 </form>
751                             [% END %]
752                             <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
753                                 [% IF ( CAN_user_editcatalogue_edit_items ) %]
754                                     <button type="submit" class="new" onclick="confirmnotdup('items'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
755                                 [% ELSE %]
756                                     <button type="submit" class="new" onclick="confirmnotdup('view'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
757                                 [% END %]
758                             </form>
759                         </div> <!-- /.dialog.alert -->
760                     [% END # /IF duplicatebiblionumber %]
761                 [% END # /UNLESS number %]
762
763                 [% IF ( done ) %]
764                     <script>
765                         opener.document.forms['f'].biblionumber.value=[% biblionumber | html %];
766                         opener.document.forms['f'].title.value='[% title | html %]';
767                         window.close();
768                     </script>
769                 [% ELSE %]
770                     <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
771                         <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
772                         <input type="hidden" value="" id="current_tab" name="current_tab" />
773                         <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
774                 [% END %]
775
776                 <div id="toolbar" class="btn-toolbar">
777                     [% IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) %]
778                         [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
779                             <!-- Action is under fast cataloging - Save button redirecting to items -->
780                             <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
781                         [% ELSE %]
782                             <!-- Not using fast cataloging - Display split menu -->
783                             <div class="btn-group">
784                                 <button class="btn btn-default" id="saverecord"><i class="fa fa-save"></i> Save</button>
785                                 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
786                                 <span class="caret"></span>
787                                 </button>
788                                 <ul class="dropdown-menu">
789                                     <li><a id="saveandview" href="#">Save and view record</a></li>
790                                     <li><a id="saveanditems" href="#">Save and edit items</a></li>
791                                     <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
792                                 </ul>
793                             </div>
794                         [% END %]
795                     [% ELSE %]
796                         <!-- User cannot edit items - single button redirecting to view -->
797                         <div class="btn-group"><a href="#" id="saveandview" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
798                     [% END # /IF CAN_user_editcatalogue_edit_items %]
799
800                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
801                         [% IF biblionumber %]
802                             <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>
803                         [% ELSE %]
804                             <div class="btn-group"><a class="btn btn-default" href="#" id="z3950search"><i class="fa fa-search"></i> Z39.50/SRU search</a></div>
805                         [% END %]
806                         [% IF ( CAN_user_editauthorities ) %]
807                             <div class="btn-group"><a class="btn btn-default" href="#" id="linkerbutton"><i class="fa fa-refresh"></i> Link authorities automatically</a></div>
808                         [% END %]
809                     [% END %]
810
811                     <div class="btn-group">
812                         <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button>
813                         <ul id="settings-menu" class="dropdown-menu">
814                             [% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %]
815                                 <li><a href="#" id="switcheditor">Switch to advanced editor</a></li>
816                             [% END %]
817                             [% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %]
818                                 <li>
819                                     <a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a>
820                                 <li>
821                                     <a href="#" id="marcTagsSelect"><i class="fa fa-check-square-o"></i> Show tags</a>
822                                 </li>
823                             [% END %]
824                             <li class="dropdown-header">Change framework</li>
825                             <li>
826                                 <a href="#" class="change-framework" data-frameworkcode="">
827                                     [% IF ( frameworkcode ) %]
828                                        <i class="fa fa-fw">&nbsp;</i>
829                                     [% ELSE %]
830                                         <i class="fa fa-fw fa-check"></i>
831                                     [% END %]
832                                     Default
833                                 </a>
834                             </li>
835                             [% FOREACH framework IN frameworks%]
836                                 <li>
837                                     <a href="#" class="change-framework" data-frameworkcode="[% framework.frameworkcode | html %]">
838                                         [% IF framework.frameworkcode == frameworkcode %]
839                                             <i class="fa fa-fw fa-check"></i>
840                                         [% ELSE %]
841                                             <i class="fa fa-fw">&nbsp;</i>
842                                         [% END %]
843                                         [% framework.frameworktext | html %]
844                                     </a>
845                                 </li>
846                             [% END %]
847                         </ul> <!-- /#settings-menu -->
848                     </div> <!-- /.btn-group -->
849                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
850                         [% IF (biblionumber) %]
851                             [% IF ( BiblioDefaultViewmarc ) %]
852                                 <div class="btn-group">
853                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
854                                 </div>
855                             [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
856                                 <div class="btn-group">
857                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
858                                 </div>
859                             [% ELSIF ( BiblioDefaultViewisbd ) %]
860                                 <div class="btn-group">
861                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
862                                 </div>
863                             [% ELSE %]
864                                 <div class="btn-group">
865                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
866                                 </div>
867                             [% END %]
868                         [% ELSE %]
869                             <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
870                         [% END %]
871                     [% END # /UNLESS circborrowernumber %]
872                     <div class="toolbar-tabs-container">
873                         [% IF ( BIG_LOOP.size > 1 ) %]
874                             <ul class="toolbar-tabs">
875                                 [%- FOREACH BIG_LOO IN BIG_LOOP -%]
876                                     [% IF loop.first %]
877                                         <li class="selected">
878                                     [% ELSE %]
879                                         <li>
880                                     [% END %]
881                                         <a data-tabid="[% BIG_LOO.number | html %]" href="#tab[% BIG_LOO.number | html %]XX">[% BIG_LOO.number | html %]</a>
882                                     </li>
883                                 [%- END -%]
884                             </ul>
885                         [% END %]
886                         <ul class="tag_anchors_list">
887                             [% FOREACH BIG_LOO IN BIG_LOOP %]
888                                 [% IF loop.first %][% SET tab_selected = "tab_selected" %][% ELSE %][% SET tab_selected = "" %][% END %]
889                                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
890                                     [% IF ( innerloo.tag ) %]
891                                         <li class="tag_anchors tag_anchors_[% BIG_LOO.number | html %] [% tab_selected | html %]">
892                                             <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>
893                                         </li>
894                                     [% END %]
895                                 [% END %]
896                             [% END %]
897                         </ul>
898                     </div>
899                 </div> <!-- /#toolbar.btn-toolbar -->
900
901                 [% IF bib_doesnt_exist %]
902                     <div class="dialog alert">
903                         The record you are trying to edit doesn't exist.<br>
904                         <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>.
905                     </div>
906                 [% END %]
907
908                 [% IF ( popup ) %]
909                         <input type="hidden" name="mode" value="popup" />
910                 [% END %]
911                 <input type="hidden" name="op" value="addbiblio" />
912                 <input type="hidden" id="frameworkcode" name="frameworkcode" value="[% frameworkcode | html %]" />
913                 <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
914                 <input type="hidden" name="breedingid" value="[% breedingid | html %]" />
915                 <input type="hidden" name="changed_framework" value="" />
916
917                 <div id="addbibliotabs" class="toptabs numbered">
918                     <ul>
919                         [% FOREACH BIG_LOO IN BIG_LOOP %]
920                             <li><a href="#tab[% BIG_LOO.number | uri %]XX">[% BIG_LOO.number | html %]</a></li>
921                         [% END %]
922                     </ul>
923
924                     [% FOREACH BIG_LOO IN BIG_LOOP %]
925                         <div id="tab[% BIG_LOO.number | html %]XX">
926
927                             [% IF ( BIG_LOOP.size > 1 ) %]
928                                 <h3>Section [% BIG_LOO.number | html %]</h3>
929                             [% END %]
930                             [% previous = "" %]
931                             [% FOREACH innerloo IN BIG_LOO.innerloop %]
932                                 [% IF ( innerloo.tag ) %]
933                                 [% IF innerloo.tag != previous %]
934                                     [% IF previous != "" %]
935                                         </ul>
936                                     [% END %]
937                                     [% previous = innerloo.tag %]
938                                     [% IF ( innerloo.repeatable ) %]
939                                         <ul class="sortable_field">
940                                     [% ELSE %]
941                                         <ul>
942                                     [% END %]
943                                 [% END %]
944                                     [% IF ( innerloo.repeatable ) %]
945                                         <li class="tag sortable_tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
946                                     [% ELSE %]
947                                         <li class="tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
948                                     [% END %]
949                                         <div class="tag_title" id="div_indicator_tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
950                                             [% IF advancedMARCEditor %]
951                                                 <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>
952                                             [% ELSE %]
953                                                 <span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span>
954                                                 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;">&nbsp;?</a>[% END %]
955                                             [% END %]
956
957                                             [% IF ( innerloo.fixedfield ) %]
958                                                 <input type="text"
959                                                     tabindex="1"
960                                                     class="indicator flat"
961                                                     style="display:none;"
962                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
963                                                     size="1"
964                                                     maxlength="1"
965                                                     value="[% innerloo.indicator1 | html %]" />
966                                                 <input type="text"
967                                                     tabindex="1"
968                                                     class="indicator flat"
969                                                     style="display:none;"
970                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
971                                                     size="1"
972                                                     maxlength="1"
973                                                     value="[% innerloo.indicator2 | html %]" />
974                                             [% ELSE %]
975                                                 <input type="text"
976                                                     tabindex="1"
977                                                     class="indicator flat"
978                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
979                                                     size="1"
980                                                     maxlength="1"
981                                                     value="[% innerloo.indicator1 | html %]" />
982                                                 <input type="text"
983                                                     tabindex="1"
984                                                     class="indicator flat"
985                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
986                                                     size="1"
987                                                     maxlength="1"
988                                                     value="[% innerloo.indicator2 | html %]" />
989                                             [% END # /IF innerloo.fixedfield %] -
990
991                                             [% UNLESS advancedMARCEditor %]
992                                                 <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>
993                                             [% END %]
994
995                                             <span class="field_controls">
996                                                 [% IF ( innerloo.repeatable ) %]
997                                                     <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">
998                                                         <img src="[% interface | html %]/[% theme | html %]/img/repeat-tag.png" alt="Repeat this Tag" />
999                                                     </a>
1000                                                 [% END %]
1001                                                 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Delete this Tag">
1002                                                     <img src="[% interface | html %]/[% theme | html %]/img/delete-tag.png" alt="Delete this Tag" />
1003                                                 </a>
1004                                             </span> <!-- /.field_controls -->
1005                                         </div> <!-- /div.tag_title -->
1006
1007                                         <ul class="sortable_subfield">
1008                                         [% FOREACH subfield_loo IN innerloo.subfield_loop %]
1009                                             <!--  One line on the marc editor -->
1010                                             <li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]">
1011                                                 <div class="subfieldcode">
1012                                                     <input type="text"
1013                                                             title="[% subfield_loo.marc_lib | $raw %]"
1014                                                             style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
1015                                                             name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]"
1016                                                             value="[% subfield_loo.subfield | html %]"
1017                                                             size="1"
1018                                                             maxlength="1"
1019                                                             class="flat"
1020                                                             tabindex="0" />
1021                                                 </div>
1022                                                 [% UNLESS advancedMARCEditor %]
1023                                                     [% IF ( subfield_loo.mandatory ) %]
1024                                                         <div class="subfield subfield_mandatory">
1025                                                     [% ELSIF ( subfield_loo.important ) %]
1026                                                         <div class="subfield subfield_important">
1027                                                     [% ELSE %]
1028                                                         <div class="subfield">
1029                                                     [% END %]
1030                                                         [% IF ( subfield_loo.fixedfield ) %]
1031                                                             <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">
1032                                                         [% ELSE %]
1033                                                             <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield">
1034                                                         [% END %]
1035                                                         [% subfield_loo.marc_lib | $raw %]
1036                                                         </label>
1037                                                     </div>
1038                                                 [% END %]
1039
1040                                                 [% SET mv = subfield_loo.marc_value %]
1041                                                 <div id="field_marceditor[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]" class="field_marceditor">
1042                                                     [% IF ( mv.type == 'text' ) %]
1043                                                         [% IF ( mv.readonly == 1 ) %]
1044                                                             <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" />
1045                                                         [% ELSE %]
1046                                                             <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 -%]" />
1047                                                         [% END %]
1048
1049                                                     [% ELSIF ( mv.type == 'text_complex' ) %]
1050                                                         <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 -%]" />
1051                                                         [% mv.javascript | $raw %]
1052                                                     [% ELSIF ( mv.type == 'hidden' ) %]
1053                                                         <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 -%]" />
1054                                                     [% ELSIF ( mv.type == 'textarea' ) %]
1055                                                         <textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea>
1056                                                     [% ELSIF ( mv.type == 'select' ) %]
1057                                                     [% IF mv.category AND CAN_user_parameters_manage_auth_values %]
1058                                                         <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor" id="[%- mv.id | html -%]" data-category="[% mv.category | html %]">
1059                                                     [% ELSE %]
1060                                                         <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor select2" id="[%- mv.id | html -%]">
1061                                                     [% END %]
1062                                                         [% FOREACH aval IN mv.values %]
1063                                                             [% IF aval == mv.default %]
1064                                                             <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
1065                                                             [% ELSE %]
1066                                                             <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
1067                                                             [% END %]
1068                                                         [% END %]
1069                                                         </select>
1070                                                     [% END  # /IF (mv.type...) %]
1071                                                 </div>
1072                                                 [% IF ( subfield_loo.mandatory ) %]
1073                                                     <div class="subfield_loop_mandatory">
1074                                                         <span class="required">Required</span>
1075                                                     </div>
1076                                                 [% ELSIF ( subfield_loo.important ) %]
1077                                                     <div class="subfield_loop_mandatory">
1078                                                         <span class="important">Important</span>
1079                                                     </div>
1080                                                 [% END %]
1081                                                 <div class="subfield_controls">
1082                                                     [% IF ( mv.type == 'text' ) %]
1083                                                         [% IF ( mv.authtype ) %]
1084                                                             <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>
1085                                                         [% END %]
1086                                                     [% ELSIF ( mv.type == 'text_complex' ) %]
1087                                                             [% IF mv.noclick %]
1088                                                                 <span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span>
1089                                                             [% ELSE %]
1090                                                                 [% IF mv.plugin == "upload.pl" %]
1091                                                                     <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>
1092                                                                 [% ELSE %]
1093                                                                     <a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a>
1094                                                                 [% END %]
1095                                                             [% END %]
1096                                                         </span>
1097                                                     [% END %]
1098                                                     [% IF ( subfield_loo.repeatable ) %]
1099                                                         <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;">
1100                                                             <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
1101                                                         </a>
1102                                                         <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]'); return false;">
1103                                                             <img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
1104                                                         </a>
1105                                                     [% END %]
1106                                                 </div>
1107                                             </li> <!-- /.subfield_line -->
1108                                             <!-- End of the line -->
1109                                         [% END # /FOREACH subfield_loop %]
1110                                         </ul> <!--  /.sortable_subfield -->
1111                                     </li> <!-- /.tag.clearfix -->
1112                                 [% END %]<!-- if innerloo.tag -->
1113                             [% END # /FOREACH BIG_LOO.innerloop %]
1114                             </ul> <!--  /.sortable_field -->
1115                         </div> <!-- /#tabXXX -->
1116                     [% END # /FOREACH BIG_LOOP %]
1117                 </div><!-- /#addbibliotabs -->
1118
1119                 [%# Fields for fast cataloging %]
1120                 <input type="hidden" name="barcode" value="[% barcode | html %]" />
1121                 <input type="hidden" name="branch" value="[% branch | html %]" />
1122                 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber | html %]" />
1123                 <input type="hidden" name="stickyduedate" value="[% stickyduedate | html %]" />
1124                 <input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
1125                 [%# End of fields for fast cataloging %]
1126             </form> <!-- /name=f -->
1127
1128             [% INCLUDE 'modals/cataloguing_create_av.inc' %]
1129
1130         </div> <!-- /.col-md-10.col-md-offset-1 -->
1131     </div> <!-- /.row -->
1132
1133 [% INCLUDE 'intranet-bottom.inc' %]