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