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