Bug 16314: Show upload link for upload plugin in basic MARC editor
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / cataloguing / addbiblio.tt
blob70dbd7e5a965909ce535c6c9f569f136f4be2142
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 <script>
9     var CAN_user_parameters_manage_auth_values = "[% CAN_user_parameters_manage_auth_values | html %]";
10 </script>
11 [% INCLUDE 'select2.inc' %]
12 [% Asset.js("js/cataloging.js") | $raw %]
13 [% INCLUDE 'strings.inc' %]
14 [% Asset.js("js/browser.js") | $raw %]
15 <script>
16     var browser = KOHA.browser('[% searchid | html %]', parseInt('[% biblionumber | html %]', 10));
17     browser.show();
19     $(window).load(function(){
20         $("#loading").hide();
21     });
22     var Sticky;
23     $(document).ready(function() {
25         [% IF bib_doesnt_exist %]
26             $("#addbibliotabs").hide();
27             $("#toolbar").hide();
28         [% END %]
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         });
42         [% IF tab %]
43             link = $("a[href='#[% tab | html %]']");
44             selectTab( link );
45         [% END %]
47         Sticky = $("#toolbar");
48         Sticky.hcSticky({
49             stickTo: "#f",
50             stickyClass: "floating"
51         });
53         /* check cookie to hide/show marcdocs*/
54         if( Cookies.get("marcdocs_[% borrowernumber | html %]") == 'hide'){
55             toggleMARCdocLinks(false);
56         } else {
57             toggleMARCdocLinks(true);
58         }
60         $("#marcDocsSelect").click(function(){
61             if( Cookies.get("marcdocs_[% borrowernumber | html %]") == 'hide'){
62                 toggleMARCdocLinks(true);
63             } else {
64                 toggleMARCdocLinks(false);
65             }
66         });
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         }
82         $("#marcTagsSelect").click(function(){
83             if( Cookies.get("marctags_[% borrowernumber | html %]") == 'hide'){
84                 toggleMARCTagLinks(true)
85             } else {
86                 toggleMARCTagLinks(false);
87             }
88         });
90         $("#z3950search").click(function(){
91             PopupZ3950();
92         });
94         $("#saverecord").click(function(){
95             $(".btn-group").removeClass("open");
96             onOption();
97             return false;
98         });
100         $("#saveandview").click(function(){
101             $(".btn-group").removeClass("open");
102             redirect("view");
103             return false;
104         });
106         $("#saveanditems").click(function(){
107             $(".btn-group").removeClass("open");
108             redirect("items");
109             return false;
110         });
111         $("#saveandcontinue").click(function(){
112             $(".btn-group").removeClass("open");
113             var tab = $("#addbibliotabs li.ui-tabs-active:first a").attr('href');
114             tab = tab.replace('#', '');
115             $("#current_tab").val(tab);
116             redirect("just_save", tab);
117             return false;
118         });
120         $( '#switcheditor' ).click( function() {
121             var breedingid = [% breedingid || "null" | html %];
123             if ( !confirm( breedingid ? _("This record cannot be transferred to the advanced editor. Continue?") : _("Any changes will not be saved. Continue?") ) ) return false;
125             Cookies.set( 'catalogue_editor_[% logged_in_user.borrowernumber | html %]', 'advanced', { expires: 365, path: '/' } );
127             var biblionumber = [% biblionumber || "null" | html %];
129             if ( biblionumber ) {
130                 window.location = '/cgi-bin/koha/cataloguing/editor.pl#catalog/' + biblionumber;
131             } else {
132                 window.location = '/cgi-bin/koha/cataloguing/editor.pl';
133             }
135             return false;
136         } );
137         $(".change-framework").on("click", function(){
138             var frameworkcode = $(this).data("frameworkcode");
139             $("#frameworkcode").val( frameworkcode );
140             Changefwk();
141         });
143         $(".toolbar-tabs a").on("click",function(e){
144             e.preventDefault();
145             selectTab( $(this ) );
146         });
148         $(".tag_anchor").on("click", function(e){
149             e.preventDefault();
150             var toolbar_height = $("#toolbar").outerHeight();
151             $(".tag_anchor").removeClass("selected");
152             $(this).addClass("selected");
153             var link = this.href;
154             var linkid = link.substring( link.indexOf("#") + 1 );
155             var dest = $("#" + linkid );
156             var yoffset = dest.offset();
157             window.scrollTo( 0, yoffset.top - toolbar_height - 20 );
158         });
160     });
162     function selectTab( tablink ){
163         $(".toolbar-tabs li").removeClass("selected");
164         tablink.parent().addClass("selected");
165         var tabid = tablink.data("tabid");
166         $('#addbibliotabs').selectTabByID("#tab" + tabid + "XX");
167         $(".tag_anchors").removeClass("tab_selected").hide();
168         $(".tag_anchors_" + tabid ).addClass("tab_selected").show();
169     }
171     function redirect(dest){
172         $("#redirect").attr("value",dest);
173         return Check();
174     }
176     [% IF ( CAN_user_editcatalogue_edit_items ) %]
177         var onOption = function () {
178             return Check();
179         }
180     [% END %]
182     function confirmnotdup(redirect){
183         $("#confirm_not_duplicate").attr("value","1");
184         $("#redirect").attr("value",redirect);
185         Check();
186     }
188     function Dopop(link,i) {
189         defaultvalue = document.getElementById(i).value;
190         window.open(link+"&result="+defaultvalue,"valuebuilder",'width=700,height=550,toolbar=false,scrollbars=yes');
191     }
193     /**
194      * this function open a popup to search on z3950 server.
195      */
196     function PopupZ3950() {
197         var strQuery = GetZ3950Terms();
198         if(strQuery){
199             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');
200         }
201     }
203     function PopupMARCFieldDoc(field) {
204         [% IF Koha.Preference('marcfielddocurl') %]
205             var docurl = "[% Koha.Preference('marcfielddocurl').replace('"','&quot;') | html %]";
206             docurl = docurl.replace("{MARC}", "[% marcflavour | html %]");
207             docurl = docurl.replace("{FIELD}", ""+field);
208             docurl = docurl.replace("{LANG}", "[% lang | html %]");
209             window.open(docurl);
210         [% ELSIF ( marcflavour == 'MARC21' ) %]
211             _MARC21FieldDoc(field);
212         [% ELSIF ( marcflavour == 'UNIMARC' ) %]
213             _UNIMARCFieldDoc(field);
214         [% END %]
215     }
217     function _MARC21FieldDoc(field) {
218         if(field == 0) {
219             window.open("http://www.loc.gov/marc/bibliographic/bdleader.html");
220         } else if (field >= 90 && field <= 99 ){
221             window.open("http://www.loc.gov/marc/bibliographic/bd09x.html");
222         } else if (field >= 590 && field <= 599 ){
223             window.open("http://www.loc.gov/marc/bibliographic/bd59x.html");
224         } else if (field >= 690 && field <= 699 ){
225             window.open("http://www.loc.gov/marc/bibliographic/bd69x.html");
226         } else if (field < 900) {
227             window.open("http://www.loc.gov/marc/bibliographic/bd" + ("000"+field).slice(-3) + ".html");
228         } else {
229             window.open("http://www.loc.gov/marc/bibliographic/bd9xx.html");
230         }
231     }
233     function _UNIMARCFieldDoc(field) {
234         /* http://archive.ifla.org/VI/3/p1996-1/ is an outdated version of UNIMARC, but
235            seems to be the only version available that can be linked to per tag.  More recent
236            versions of the UNIMARC standard are available on the IFLA website only as
237            PDFs!
238         */
239         var url;
240         if (field == 0) {
241             url = "http://archive.ifla.org/VI/3/p1996-1/uni.htm";
242         } else {
243             var first = field.substring(0,1);
244             url = "http://archive.ifla.org/VI/3/p1996-1/uni" + first + ".htm#";
245             if (first == 0) url = url + "b";
246             url = first == 9
247                   ? "http://archive.ifla.org/VI/3/p1996-1/uni9.htm"
248                   : url + field;
249         }
250         window.open(url);
251     }
253     /*
254      * Functions to hide/show marc docs and tags links
255      */
257     function toggleMARCdocLinks(flag){
258         if( flag === true ){
259             $(".marcdocs").show();
260             Cookies.set("marcdocs_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
261             $("#marcDocsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
262         } else {
263             $(".marcdocs").hide();
264             Cookies.set("marcdocs_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
265             $("#marcDocsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
266         }
267     }
269     function toggleMARCTagLinks(flag){
270         if( flag === true ){
271             $(".tagnum").show();
272             $(".subfieldcode").show();
273             Cookies.set("marctags_[% borrowernumber | html %]",'show', { path: "/", expires: 365 });
274             $("#marcTagsSelect i").addClass('fa-check-square-o').removeClass('fa-square-o');
275         } else {
276             $(".tagnum").hide();
277             $(".subfieldcode").hide();
278             Cookies.set("marctags_[% borrowernumber | html %]",'hide', { path: "/", expires: 365 });
279             $("#marcTagsSelect i").removeClass('fa-check-square-o').addClass('fa-square-o');
280         }
281     }
283     /**
284      * check if mandatory/important subfields are written
285      * @param mandatory true to check for mandatories, false for importants
286      */
287     function AreFieldsNotOk (mandatory = true) {
288         var fields = new Array();
289         var subfields = new Array();
290         var tab = new Array();
291         var label = new Array();
292         var flag=0;
293         var tabflag= new Array();
294         var StrAlert = "";
295         var notFilledClass = "subfield_not_filled";
297         if (mandatory) {
298             [% FOREACH BIG_LOO IN BIG_LOOP %]
299                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
300                     [% IF ( innerloo.mandatory ) %]
301                         fields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
302                     [% END %]
303                     [% FOREACH subfield_loo IN innerloo.subfield_loop %]
304                         [% IF ( subfield_loo.mandatory ) %]subfields.push("[% subfield_loo.id | html %]");
305                             tab.push("[% BIG_LOO.number | html %]");
306                             label.push("[% subfield_loo.marc_lib | $raw %]");
307                         [% END %]
308                     [% END %]
309                 [% END %]
310             [% END %]
311             StrAlert = _("Can't save this record because the following field aren't filled:");
312         } else {
313             [% FOREACH BIG_LOO IN BIG_LOOP %]
314                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
315                     [% IF ( innerloo.important ) %]
316                     fields.push(new Array("[% innerloo.tag | html %]","[% innerloo.index | html %][% innerloo.random | html %]","[% innerloo.index | html %]"));
317                     [% END %]
318                     [% FOREACH subfield_loo IN innerloo.subfield_loop %]
319                         [% IF ( subfield_loo.important ) %]subfields.push("[% subfield_loo.id | html %]");
320                             tab.push("[% BIG_LOO.number | html %]");
321                             label.push("[% subfield_loo.marc_lib | $raw %]");
322                         [% END %]
323                     [% END %]
324                 [% END %]
325             [% END %]
326             StrAlert = _("A few important fields are not filled:");
327             notFilledClass = "important_subfield_not_filled";
328         }
330         StrAlert += "\n\n";
331         for(var i=0,len=subfields.length; i<len ; i++){
332             var tag=subfields[i].substr(4,3);
333             var subfield=subfields[i].substr(17,1);
334             var tagnumber=subfields[i].substr(19,subfields[i].lastIndexOf("_")-19);
335             if (tabflag[tag+subfield+tagnumber] ==  null) {
336                 tabflag[tag+subfield+tagnumber]=new Array();
337                 tabflag[tag+subfield+tagnumber][0]=0;
338             }
339             if( tabflag[tag+subfield+tagnumber][0] != 1 && (document.getElementById(subfields[i]) != null && ! document.getElementById(subfields[i]).value || document.getElementById(subfields[i]) == null)){
340                 tabflag[tag+subfield+tagnumber][0] = 0 + tabflag[tag+subfield+tagnumber] ;
342                 var elt = document.getElementById(subfields[i]);
343                 if ( elt.nodeName == 'SELECT' ) {
344                     $(elt).siblings('.select2').find("span[role='combobox']").addClass(notFilledClass);
345                 } else {
346                     elt.setAttribute('class','input_marceditor noEnterSubmit ' + notFilledClass);
347                 }
348                 $('#' + subfields[i]).focus();
349                 tabflag[tag+subfield+tagnumber][1]=label[i];
350                 tabflag[tag+subfield+tagnumber][2]=tab[i];
351             } else {
352                 tabflag[tag+subfield+tagnumber][0] = 1;
353             }
354         }
355         for (var tagsubfieldid in tabflag){
356             if (tabflag[tagsubfieldid][0]==0){
357                 var tag=tagsubfieldid.substr(0,3);
358                 var subfield=tagsubfieldid.substr(3,1);
359                 StrAlert += "\t* "+_("tag %s subfield %s %s in tab %s").format(tag, subfield, tabflag[tagsubfieldid][1], tabflag[tagsubfieldid][2]) + "\n";
360                 //StrAlert += "\t* "+label[i]+_(" in tab ")+tab[i]+"\n";
361                 flag=1;
362             }
363         }
365         /* Check for mandatories/importants field(not subfields) */
366         for(var i=0,len=fields.length; i<len; i++){
367             isempty  = true;
368             arr      = fields[i];
369             divid    = "tag_" + arr[0] + "_" + arr[1];
370             varegexp = new RegExp("^tag_" + arr[0] + "_code_");
372             if(parseInt(arr[0]) >= 10){
373                 elem = document.getElementById(divid);
374                 eleminputs = elem.getElementsByTagName('input');
376                 for(var j=0,len2=eleminputs.length; j<len2; j++){
378                     if(eleminputs[j].name.match(varegexp) && eleminputs[j].value){
379                         inputregexp = new RegExp("^tag_" + arr[0] + "_subfield_" + eleminputs[j].value + "_" + arr[2]);
381                         for( var k=0; k<len2; k++){
382                             if(eleminputs[k].id.match(inputregexp) && eleminputs[k].value){
383                                 isempty = false
384                             }
385                         }
387                         elemselect = elem.getElementsByTagName('select');
388                         for( var k=0; k<elemselect.length; k++){
389                             if(elemselect[k].id.match(inputregexp) && elemselect[k].value){
390                                 isempty = false
391                             }
392                         }
393                     }
394                 }
396                 elemtextareas = elem.getElementsByTagName('textarea');
397                 for(var j=0,len2=elemtextareas.length; j<len2; j++){
398                     // this bit assumes that the only textareas in this context would be for subfields
399                     if (elemtextareas[j].value) {
400                         isempty = false;
401                     }
402                 }
403             } else {
404                 isempty = false;
405             }
407             if(isempty){
408                 flag = 1;
409                 StrAlert += "\t* ";
410                 if (mandatory) {
411                     StrAlert += _("Field %s is mandatory, at least one of its subfields must be filled.").format(arr[0]);
412                 } else {
413                     StrAlert += _("Field %s is important, at least one of its subfields must be filled.").format(arr[0]);
414                 }
415                 StrAlert += "\n";
416             }
418         }
420         if(flag){
421             return StrAlert;
422         } else {
423             return flag;
424         }
425     }
427     /**
428      *
429      *
430      */
431     function Check(){
432         var StrAlert = AreFieldsNotOk();
433         if( ! StrAlert ){
434             var StrWarning = AreFieldsNotOk(false);
435             if (StrWarning){
436                 StrWarning += "\n" + _("Are you sure you want to save?");
437                 var r=confirm(StrWarning);
438                 if (! r){
439                     return false;
440                 }
441             }
442             document.f.submit();
443             return true;
444         } else {
445             alert(StrAlert);
446             return false;
447         }
448     }
450     /**
451      * check if z3950 mandatories are set or not
452      */
453     function GetZ3950Terms(){
454         var frameworkcode = document.getElementById("frameworkcode").value;
455         var strQuery = "&frameworkcode=" + encodeURIComponent(frameworkcode);
456         var mandatories = new Array();
457         var mandatories_label = new Array();
458         [% FOREACH BIG_LOO IN BIG_LOOP %]
459             [% FOREACH innerloo IN BIG_LOO.innerloop %]
460                 [% FOREACH subfield_loo IN innerloo.subfield_loop %]
461                     [% IF ( subfield_loo.z3950_mandatory ) %]
462                         mandatories.push("[% subfield_loo.id | html %]");
463                         mandatories_label.push("[% subfield_loo.z3950_mandatory | html %]");
464                     [% END %]
465                 [% END %]
466             [% END %]
467         [% END %]
469         for(var i=0,len=mandatories.length; i<len ; i++){
470             var field_value = document.getElementById(mandatories[i]).value;
471             if( field_value ){
472                 strQuery += "&"+encodeURIComponent(mandatories_label[i])+"="+encodeURIComponent(field_value);
473             }
474         }
475         return strQuery;
476     }
478     function Changefwk() {
479         var f = document.f;
480         f.op.value = "[% op | html %]";
481         f.biblionumber.value = "[% biblionumberdata | html %]";
482         f.changed_framework.value = "changed";
483         f.submit();
484     }
486 </script>
487 [% Asset.css("css/addbiblio.css") | $raw %]
489 </head>
490 <body id="cat_addbiblio" class="cat">
492    <div id="loading">
493        <div>Loading, please wait...</div>
494    </div>
496     [% INCLUDE 'header.inc' %]
498     <div id="breadcrumbs">
499         <a href="/cgi-bin/koha/mainpage.pl">Home</a> &rsaquo;
500         <a href="/cgi-bin/koha/cataloguing/addbooks.pl">Cataloging</a>  &rsaquo;
501         [% IF ( biblionumber ) %]
502             Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
503         [% ELSE %]
504             Add MARC record
505         [% END %]
506     </div>
508     <div class="main container-fluid">
509         <div class="row">
510             <div class="col-md-10 col-md-offset-1">
512                 <h1>
513                     [% IF ( biblionumber ) %]
514                         Editing <em>[% title | html %]</em> (Record number [% biblionumber | html %])
515                     [% ELSE %]
516                         Add MARC record [% IF (circborrowernumber) %]<em>(fast cataloging)</em>[% END %]
517                     [% END %]
518                 </h1>
520                 [% UNLESS ( number ) %]
521                     <!-- show duplicate warning on tab 0 only -->
522                     [% IF ( duplicatebiblionumber ) %]
523                         <div class="dialog alert">
524                             <h3>Duplicate record suspected</h3>
525                             <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>
526                             [% IF ( CAN_user_editcatalogue_edit_items ) %]
527                                 <form action="/cgi-bin/koha/cataloguing/additem.pl" method="get">
528                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
529                                     <button type="submit" class="new"><i class="fa fa-fw fa-pencil"></i> Yes, edit existing items</button>
530                                 </form>
531                             [% ELSE %]
532                                 <form action="/cgi-bin/koha/catalogue/detail.pl" method="get">
533                                     <input type="hidden" name="biblionumber" value="[% duplicatebiblionumber | html %]" />
534                                     <input type="submit" value="Yes: View existing items" />
535                                 </form>
536                             [% END %]
537                             <form action="/cgi-bin/koha/cataloguing/addbiblio.pl" method="get">
538                                 [% IF ( CAN_user_editcatalogue_edit_items ) %]
539                                     <button type="submit" class="new" onclick="confirmnotdup('items'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
540                                 [% ELSE %]
541                                     <button type="submit" class="new" onclick="confirmnotdup('view'); return false;"><i class="fa fa-fw fa-save"></i> No, save as new record</button>
542                                 [% END %]
543                             </form>
544                         </div> <!-- /.dialog.alert -->
545                     [% END # /IF duplicatebiblionumber %]
546                 [% END # /UNLESS number %]
548                 [% IF ( done ) %]
549                     <script>
550                         opener.document.forms['f'].biblionumber.value=[% biblionumber | html %];
551                         opener.document.forms['f'].title.value='[% title | html %]';
552                         window.close();
553                     </script>
554                 [% ELSE %]
555                     <form method="post" name="f" id="f" action="/cgi-bin/koha/cataloguing/addbiblio.pl" onsubmit="return Check();">
556                         <input type="hidden" value="[% IF ( biblionumber ) %]view[% ELSE %]items[% END %]" id="redirect" name="redirect" />
557                         <input type="hidden" value="" id="current_tab" name="current_tab" />
558                         <input type="hidden" value="0" id="confirm_not_duplicate" name="confirm_not_duplicate" />
559                 [% END %]
561                 <div id="toolbar" class="btn-toolbar">
562                     [% IF CAN_user_editcatalogue_edit_items or ( frameworkcode == 'FA' and CAN_user_editcatalogue_fast_cataloging ) %]
563                         [% IF (circborrowernumber) %][%# fast cataloging must lead to items %]
564                             <!-- Action is under fast cataloging - Save button redirecting to items -->
565                             <div class="btn-group"><a href="#" id="saveanditems" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
566                         [% ELSE %]
567                             <!-- Not using fast cataloging - Display split menu -->
568                             <div class="btn-group">
569                                 <button class="btn btn-default" id="saverecord"><i class="fa fa-save"></i> Save</button>
570                                 <button class="btn btn-default dropdown-toggle" data-toggle="dropdown">
571                                 <span class="caret"></span>
572                                 </button>
573                                 <ul class="dropdown-menu">
574                                     <li><a id="saveandview" href="#">Save and view record</a></li>
575                                     <li><a id="saveanditems" href="#">Save and edit items</a></li>
576                                     <li><a id="saveandcontinue" href="#">Save and continue editing</a></li>
577                                 </ul>
578                             </div>
579                         [% END %]
580                     [% ELSE %]
581                         <!-- User cannot edit items - single button redirecting to view -->
582                         <div class="btn-group"><a href="#" id="saveandview" class="btn btn-default"><i class="fa fa-save"></i> Save</a></div>
583                     [% END # /IF CAN_user_editcatalogue_edit_items %]
585                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
586                         [% IF biblionumber %]
587                             <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>
588                         [% ELSE %]
589                             <div class="btn-group"><a class="btn btn-default" href="#" id="z3950search"><i class="fa fa-search"></i> Z39.50/SRU search</a></div>
590                         [% END %]
591                     [% END %]
593                     <div class="btn-group">
594                         <button class="btn btn-default dropdown-toggle" data-toggle="dropdown"><i class="fa fa-cog"></i> Settings <span class="caret"></span></button>
595                         <ul id="settings-menu" class="dropdown-menu">
596                             [% IF Koha.Preference( 'EnableAdvancedCatalogingEditor' ) == 1 && CAN_user_editcatalogue_advanced_editor %]
597                                 <li><a href="#" id="switcheditor">Switch to advanced editor</a></li>
598                             [% END %]
599                             [% IF marcflavour != 'NORMARC' AND NOT advancedMARCEditor %]
600                                 <li>
601                                     <a href="#" id="marcDocsSelect"><i class="fa fa-check-square-o"></i> Show MARC tag documentation links</a>
602                                 <li>
603                                     <a href="#" id="marcTagsSelect"><i class="fa fa-check-square-o"></i> Show tags</a>
604                                 </li>
605                             [% END %]
606                             <li class="dropdown-header">Change framework</li>
607                             <li>
608                                 <a href="#" class="change-framework" data-frameworkcode="">
609                                     [% IF ( frameworkcode ) %]
610                                        <i class="fa fa-fw">&nbsp;</i>
611                                     [% ELSE %]
612                                         <i class="fa fa-fw fa-check"></i>
613                                     [% END %]
614                                     Default
615                                 </a>
616                             </li>
617                             [% FOREACH framework IN frameworks%]
618                                 <li>
619                                     <a href="#" class="change-framework" data-frameworkcode="[% framework.frameworkcode | html %]">
620                                         [% IF framework.frameworkcode == frameworkcode %]
621                                             <i class="fa fa-fw fa-check"></i>
622                                         [% ELSE %]
623                                             <i class="fa fa-fw">&nbsp;</i>
624                                         [% END %]
625                                         [% framework.frameworktext | html %]
626                                     </a>
627                                 </li>
628                             [% END %]
629                         </ul> <!-- /#settings-menu -->
630                     </div> <!-- /.btn-group -->
631                     [% UNLESS (circborrowernumber) %][%# Hide in fast cataloging %]
632                         [% IF (biblionumber) %]
633                             [% IF ( BiblioDefaultViewmarc ) %]
634                                 <div class="btn-group">
635                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/MARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
636                                 </div>
637                             [% ELSIF ( BiblioDefaultViewlabeled_marc ) %]
638                                 <div class="btn-group">
639                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/labeledMARCdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
640                                 </div>
641                             [% ELSIF ( BiblioDefaultViewisbd ) %]
642                                 <div class="btn-group">
643                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/ISBDdetail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
644                                 </div>
645                             [% ELSE %]
646                                 <div class="btn-group">
647                                     <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=[% biblionumber |url %]">Cancel</a>
648                                 </div>
649                             [% END %]
650                         [% ELSE %]
651                             <a class="btn btn-default" id="cancel" href="/cgi-bin/koha/cataloguing/addbooks.pl">Cancel</a>
652                         [% END %]
653                     [% END # /UNLESS circborrowernumber %]
654                     <div class="toolbar-tabs-container">
655                         [% IF ( BIG_LOOP.size > 1 ) %]
656                             <ul class="toolbar-tabs">
657                                 [%- FOREACH BIG_LOO IN BIG_LOOP -%]
658                                     [% IF loop.first %]
659                                         <li class="selected">
660                                     [% ELSE %]
661                                         <li>
662                                     [% END %]
663                                         <a data-tabid="[% BIG_LOO.number | html %]" href="#tab[% BIG_LOO.number | html %]XX">[% BIG_LOO.number | html %]</a>
664                                     </li>
665                                 [%- END -%]
666                             </ul>
667                         [% END %]
668                         <ul class="tag_anchors_list">
669                             [% FOREACH BIG_LOO IN BIG_LOOP %]
670                                 [% IF loop.first %][% SET tab_selected = "tab_selected" %][% ELSE %][% SET tab_selected = "" %][% END %]
671                                 [% FOREACH innerloo IN BIG_LOO.innerloop %]
672                                     [% IF ( innerloo.tag ) %]
673                                         <li class="tag_anchors tag_anchors_[% BIG_LOO.number | html %] [% tab_selected | html %]">
674                                             <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>
675                                         </li>
676                                     [% END %]
677                                 [% END %]
678                             [% END %]
679                         </ul>
680                     </div>
681                 </div> <!-- /#toolbar.btn-toolbar -->
683                 [% IF bib_doesnt_exist %]
684                     <div class="dialog alert">
685                         The record you are trying to edit doesn't exist.<br>
686                         <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>.
687                     </div>
688                 [% END %]
690                 [% IF ( popup ) %]
691                         <input type="hidden" name="mode" value="popup" />
692                 [% END %]
693                 <input type="hidden" name="op" value="addbiblio" />
694                 <input type="hidden" id="frameworkcode" name="frameworkcode" value="[% frameworkcode | html %]" />
695                 <input type="hidden" name="biblionumber" value="[% biblionumber | html %]" />
696                 <input type="hidden" name="breedingid" value="[% breedingid | html %]" />
697                 <input type="hidden" name="changed_framework" value="" />
699                 <div id="addbibliotabs" class="toptabs numbered">
700                     <ul>
701                         [% FOREACH BIG_LOO IN BIG_LOOP %]
702                             <li><a href="#tab[% BIG_LOO.number | uri %]XX">[% BIG_LOO.number | html %]</a></li>
703                         [% END %]
704                     </ul>
706                     [% FOREACH BIG_LOO IN BIG_LOOP %]
707                         <div id="tab[% BIG_LOO.number | html %]XX">
709                             [% IF ( BIG_LOOP.size > 1 ) %]
710                                 <h3>Section [% BIG_LOO.number | html %]</h3>
711                             [% END %]
712                             [% previous = "" %]
713                             [% FOREACH innerloo IN BIG_LOO.innerloop %]
714                                 [% IF ( innerloo.tag ) %]
715                                 [% IF innerloo.tag != previous %]
716                                     [% IF previous != "" %]
717                                         </ul>
718                                     [% END %]
719                                     [% previous = innerloo.tag %]
720                                     [% IF ( innerloo.repeatable ) %]
721                                         <ul class="sortable_field">
722                                     [% ELSE %]
723                                         <ul>
724                                     [% END %]
725                                 [% END %]
726                                     [% IF ( innerloo.repeatable ) %]
727                                         <li class="tag sortable_tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
728                                     [% ELSE %]
729                                         <li class="tag clearfix" id="tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
730                                     [% END %]
731                                         <div class="tag_title" id="div_indicator_tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]">
732                                             [% IF advancedMARCEditor %]
733                                                 <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>
734                                             [% ELSE %]
735                                                 <span class="tagnum" title="[% innerloo.tag_lib | html %]">[% innerloo.tag | html %]</span>
736                                                 [% IF marcflavour != 'NORMARC' %]<a href="#" class="marcdocs" onclick="PopupMARCFieldDoc('[% innerloo.tag | html %]'); return false;">&nbsp;?</a>[% END %]
737                                             [% END %]
739                                             [% IF ( innerloo.fixedfield ) %]
740                                                 <input type="text"
741                                                     tabindex="1"
742                                                     class="indicator flat"
743                                                     style="display:none;"
744                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
745                                                     size="1"
746                                                     maxlength="1"
747                                                     value="[% innerloo.indicator1 | html %]" />
748                                                 <input type="text"
749                                                     tabindex="1"
750                                                     class="indicator flat"
751                                                     style="display:none;"
752                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
753                                                     size="1"
754                                                     maxlength="1"
755                                                     value="[% innerloo.indicator2 | html %]" />
756                                             [% ELSE %]
757                                                 <input type="text"
758                                                     tabindex="1"
759                                                     class="indicator flat"
760                                                     name="tag_[% innerloo.tag | html %]_indicator1_[% innerloo.index | html %][% innerloo.random | html %]"
761                                                     size="1"
762                                                     maxlength="1"
763                                                     value="[% innerloo.indicator1 | html %]" />
764                                                 <input type="text"
765                                                     tabindex="1"
766                                                     class="indicator flat"
767                                                     name="tag_[% innerloo.tag | html %]_indicator2_[% innerloo.index | html %][% innerloo.random | html %]"
768                                                     size="1"
769                                                     maxlength="1"
770                                                     value="[% innerloo.indicator2 | html %]" />
771                                             [% END # /IF innerloo.fixedfield %] -
773                                             [% UNLESS advancedMARCEditor %]
774                                                 <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>
775                                             [% END %]
777                                             <span class="field_controls">
778                                                 [% IF ( innerloo.repeatable ) %]
779                                                     <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">
780                                                         <img src="[% interface | html %]/[% theme | html %]/img/repeat-tag.png" alt="Repeat this Tag" />
781                                                     </a>
782                                                 [% END %]
783                                                 <a href="#" tabindex="1" class="buttonMinus" onclick="UnCloneField('tag_[% innerloo.tag | html %]_[% innerloo.index | html %][% innerloo.random | html %]'); return false;" title="Delete this Tag">
784                                                     <img src="[% interface | html %]/[% theme | html %]/img/delete-tag.png" alt="Delete this Tag" />
785                                                 </a>
786                                             </span> <!-- /.field_controls -->
787                                         </div> <!-- /div.tag_title -->
789                                         <ul class="sortable_subfield">
790                                         [% FOREACH subfield_loo IN innerloo.subfield_loop %]
791                                             <!--  One line on the marc editor -->
792                                             <li class="subfield_line" style="[% subfield_loo.visibility | html %]" id="subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]">
793                                                 [% UNLESS advancedMARCEditor %]
794                                                     [% IF ( subfield_loo.fixedfield ) %]
795                                                         <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">
796                                                     [% ELSE %]
797                                                         <label for="tag_[% subfield_loo.tag | html %]_subfield_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]" class="labelsubfield">
798                                                     [% END %]
799                                                 [% END %]
801                                                     <span class="subfieldcode">
802                                                             <input type="text"
803                                                                 title="[% subfield_loo.marc_lib | $raw %]"
804                                                                 style=" [% IF ( subfield_loo.fixedfield ) %]display:none; [% END %]border:0;"
805                                                                 name="tag_[% subfield_loo.tag | html %]_code_[% subfield_loo.subfield | html %]_[% subfield_loo.index | html %]_[% subfield_loo.index_subfield | html %]"
806                                                                 value="[% subfield_loo.subfield | html %]"
807                                                                 size="1"
808                                                                 maxlength="1"
809                                                                 class="flat"
810                                                                 tabindex="0" />
811                                                     </span>
813                                                 [% UNLESS advancedMARCEditor %]
814                                                         [% IF ( subfield_loo.mandatory ) %]
815                                                             <span class="subfield subfield_mandatory">
816                                                         [% ELSIF ( subfield_loo.important ) %]
817                                                             <span class="subfield subfield_important">
818                                                         [% ELSE %]
819                                                             <span class="subfield">
820                                                         [% END %]
821                                                         [% subfield_loo.marc_lib | $raw %]
822                                                         </span>
823                                                     </label>
824                                                 [% END %]
826                                                 [% SET mv = subfield_loo.marc_value %]
827                                                 [% IF ( mv.type == 'text' ) %]
828                                                     [% IF ( mv.readonly == 1 ) %]
829                                                         <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" />
830                                                     [% ELSE %]
831                                                         <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 -%]" />
832                                                     [% END %]
834                                                     [% IF ( mv.authtype ) %]
835                                                         <span class="subfield_controls"><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></span>
836                                                     [% END %]
837                                                 [% ELSIF ( mv.type == 'text_complex' ) %]
838                                                     <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 -%]" />
839                                                     <span class="subfield_controls">
840                                                         [% IF mv.noclick %]
841                                                             <span class="buttonDot tag_editor disabled" tabindex="-1" title="Field autofilled by plugin"></span>
842                                                         [% ELSE %]
843                                                             [% IF mv.plugin == "upload.pl" %]
844                                                                 <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>
845                                                             [% ELSE %]
846                                                                 <a href="#" id="buttonDot_[% mv.id | html %]" class="buttonDot tag_editor framework_plugin" tabindex="1" title="Tag editor">Tag editor</a>
847                                                             [% END %]
848                                                         [% END %]
849                                                     </span>
850                                                     [% mv.javascript | $raw %]
851                                                 [% ELSIF ( mv.type == 'hidden' ) %]
852                                                     <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 -%]" />
853                                                 [% ELSIF ( mv.type == 'textarea' ) %]
854                                                     <textarea cols="70" rows="4" id="[%- mv.id | html -%]" name="[%- mv.name | html -%]" class="input_marceditor" tabindex="1">[%- mv.value | html -%]</textarea>
855                                                 [% ELSIF ( mv.type == 'select' ) %]
856                                                     [% IF mv.category AND CAN_user_parameters_manage_auth_values %]
857                                                         <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor" id="[%- mv.id | html -%]" data-category="[% mv.category | html %]">
858                                                     [% ELSE %]
859                                                         <select name="[%- mv.name | html -%]" tabindex="1" size="1" class="input_marceditor select2" id="[%- mv.id | html -%]">
860                                                     [% END %]
861                                                     [% FOREACH aval IN mv.values %]
862                                                         [% IF aval == mv.default %]
863                                                         <option value="[%- aval | html -%]" selected="selected">[%- mv.labels.$aval | html -%]</option>
864                                                         [% ELSE %]
865                                                         <option value="[%- aval | html -%]">[%- mv.labels.$aval | html -%]</option>
866                                                         [% END %]
867                                                     [% END %]
868                                                     </select>
869                                                 [% END  # /IF (mv.type...) %]
870                                                 [% IF ( subfield_loo.mandatory ) %]
871                                                     <span class="required">Required</span>
872                                                 [% ELSIF ( subfield_loo.important ) %]
873                                                     <span class="important">Important</span>
874                                                 [% END %]
875                                                 <span class="subfield_controls">
876                                                     [% IF ( subfield_loo.repeatable ) %]
877                                                         <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;">
878                                                             <img src="[% interface | html %]/[% theme | html %]/img/clone-subfield.png" alt="Clone" title="Clone this subfield" />
879                                                         </a>
880                                                         <a href="#" class="buttonMinus" tabindex="1" onclick="UnCloneField('subfield[% subfield_loo.tag | html %][% subfield_loo.subfield | html %][% subfield_loo.random | html %]'); return false;">
881                                                             <img src="[% interface | html %]/[% theme | html %]/img/delete-subfield.png" alt="Delete" title="Delete this subfield" />
882                                                         </a>
883                                                     [% END %]
884                                                 </span>
885                                             </li> <!-- /.subfield_line -->
886                                             <!-- End of the line -->
887                                         [% END # /FOREACH subfield_loop %]
888                                         </ul> <!--  /.sortable_subfield -->
889                                     </li> <!-- /.tag.clearfix -->
890                                 [% END %]<!-- if innerloo.tag -->
891                             [% END # /FOREACH BIG_LOO.innerloop %]
892                             </ul> <!--  /.sortable_field -->
893                         </div> <!-- /#tabXXX -->
894                     [% END # /FOREACH BIG_LOOP %]
895                 </div><!-- /#addbibliotabs -->
897                 [%# Fields for fast cataloging %]
898                 <input type="hidden" name="barcode" value="[% barcode | html %]" />
899                 <input type="hidden" name="branch" value="[% branch | html %]" />
900                 <input type="hidden" name="circborrowernumber" value="[% circborrowernumber | html %]" />
901                 <input type="hidden" name="stickyduedate" value="[% stickyduedate | html %]" />
902                 <input type="hidden" name="duedatespec" value="[% duedatespec | html %]" />
903                 [%# End of fields for fast cataloging %]
904             </form> <!-- /name=f -->
906             [% INCLUDE 'modals/cataloguing_create_av.inc' %]
908         </div> <!-- /.col-md-10.col-md-offset-1 -->
909     </div> <!-- /.row -->
911 [% INCLUDE 'intranet-bottom.inc' %]