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